of the OpenNebula book, lead developer & co-founder at Cloudesire.com, shooting to 2 euro coin at 36 meters with medieval heavy crossbow during the weekends 3
indirect resellers: • own the customer lifecycle and relationship end-to-end • set the price, terms and directly bill customers • directly provision and manage subscriptions • attach value-added services • be the first point of contact for customer support https://partner.microsoft.com/en-us/cloud-solution-provider/w hats-required 5
on top of Azure Resource Manager (ARM) • Subscription created in a customer tenant, but the customer cannot access it by default • Once a customer has access to the subscription, can make changes to services anche alter consumption usage 8
products can be sold: • Web applications that needs a VM to run • Web applications self-hosted (multi-tenant, e.g. dropbox) • Services (whatever can be billed) A control panel where different users access a set of features: • Customers: unified applications portal, billing, support • Vendors: catalog, subscriptions, invoices, earnings • Distributors: manage resellers catalogs • Reseller: sell distributors products
that is directly managed by the software vendor. This feature enables software vendors to sell applications that are already hosted somewhere and that has native support for multi-tenancy. The provisioning of a new tenant should be almost instantaneous, and the integration has to be done directly via Cloudesire API. https://docs.cloudesire.com/docs/syndication.html 11
with a JSON body) to an external endpoint every time an interesting event occurs on the marketplace lifecycle: • Subscription requested • Subscription renewal • Subscription termination The external endpoint should handle these notifications, e.g. fetch the needed information, provision a new user in its system and update the subscription status via Cloudesire API https://docs.cloudesire.com/docs/syndication.html#introduction-to-syndication 12
REST API • Continuous Integration on CircleCI • Packaging with Docker • Provisioning on VM via Chef • Automatically added behind load balancer ◦ Nginx / Consul • Error tracking via Sentry
cloudesire webhooks • Kotlin/Java client Partner Center REST API ◦ https://github.com/ClouDesire/partner-center-rest-api-client 1. Create customer resource 2. Place an order on the chosen product 3. Handle subscription created by order placing a. Suspend/Resume b. Unprovision 17
our microsoft-connector • Implement Azure SDK for nodejs ◦ https://github.com/Azure/azure-sdk-for-node • Redis as pending job queue state Features: ◦ Management of ARM templates ◦ Accept end-user agreement via API ▪ Found a bug 20
a deployment architecture ◦ Azure resources for ▪ Application ▪ Data ▪ Network ▪ DNS access • Re-use the Azure Marketplace configuration with more configuration parameter to link the JSON template and configure required variables 39