The Azure Marketplace series: How to list your cloud offer successfully?
This post is part of a series that is focused on how to successfully launch your software solution on the Azure Marketplace, Microsoft's online market for buying and selling cloud solutions certified to run on Azure.
I work for NebulaGraph, an open-source graph database management system. We've recently launched NebulaGraph on the Azure Marketplace to provide Azure users with a cloud-based database as a service (DBaaS). This is the result of six months' effort from me and my team members. During the whole process, we have encountered numerous challenges and failed miserably a lot of times. Now I'm telling my story and experience and, hopefully, this series of articles will help you navigate Azure's complex reviewing system and resolve some of the problems you may encounter.
The What – What is Azure Marketplace
Azure Marketplace is an online market that allows software providers to offer their cloud solutions to a global audience of businesses. Azure will handle account and billing systems so that you don't have to. The marketplace is a great channel where independent software vendors (ISVs) like NebulaGraph can sell their products. All you need to do in order to list your product in the Marketplace is to register as a Microsoft partner. Once you have a listing in place, customers can purchase it directly through the marketplace using their Microsoft accounts and billing information. It allows your solution to be easily discovered by customers. The marketplace can be used as a valuable marketing tool to acquire new customers.
The products you can offer in the Azure Marketplace mainly fall into three categories:
- Software, which includes virtual machine images, web applications, and developer services
- Data services, which include business intelligence, analytics, and networking services
- Consulting services
In the article, we will mainly focus on how to publish a software offer, but the process is pretty much the same for the other two types of products.
The Why – Azure Marketplace benefits for software solutions
After lots of research and comparison, we decided to list our product as a SaaS offer in the Azure Marketplace. One of the most obvious reasons is that Azure is huge – it is one of the world's largest public cloud service providers with 19.7% of the global market. This means that our listing will be visible to millions of enterprise customers like 3M Informatics and Verizon.
But as a team leader of a cloud database product, I'm a big fan of the Azure Marketplace also for the following reasons:
The Azure Marketplace provides a great opportunity for us to onboard new customers that are already using Microsoft Azure. Microsoft customers can easily find our cloud service in the Azure Marketplace, try it with a few clicks, and quickly get started with a free trial or by purchasing through their Azure subscription.
We can leverage Azure's account and billing systems directly
Azure Marketplace provides a neat solution for startups like NebulaGraph. Customers can purchase free or paid offers on-demand using Azure's account and billing systems directly. Microsoft's account and billing systems will help us gain more trust from potential customers – this is critically important since we are still new to the market. Plus, it will largely simplify the billing logic for us, reducing a lot of redundant work.
Azure also offers an easy and helpful admin system for you to configure your SaaS offer on demand.
The How - How to create a listing, correctly
While Azure already provided detailed instructions on how to list a SaaS offer in the marketplace, we still encountered numerous difficulties during the process. Here, I'd like to introduce the steps from my own experience. I hope this will have you navigate the process and reduce unnecessary back and forth.
First, you need to sign up for an account at the Microsoft Partner Center. This will allow you to create and configure your SaaS offer.
After you have created your commercial marketplace account, you can start to create a product. You can choose from many types of offers, including SaaS, managed services, and even consulting services. In this example, we will choose the SaaS offer type.
Create a demo listing
Your first step of successfully creating a SaaS listing will be creating a demo listing. In the SaaS Create Demo setup page, you will need to fill in all the configurations listed on the left sidebar, including the offer overview, properties, availability, and so on. You can refer to Azure's Plan a test and development SaaS offer for more details on how to fill in this information.
Once you have finished the basic setup and published it to preview, you will be prompted with a preview link where you can visit the SaaS offer you have created. On the preview page, you can create a test subscription to see if it works.
Here is where you can find your preview link.
Here is an example of the preview of your SaaS offer in the Azure Marketplace.
You may wonder how the Azure marketplace communicates with your SaaS application or solution. In the Technical configuration tab, you can find configurations that help Azure talk to your application.
- Landing page URL – A SaaS website URL that customers will land on after subscribing to your offer from the Azure Marketplace.
- Connection webhook – Microsoft will send all asynchronous events, including subscription creation, cancellation, and upgrade, to you through the webhook.
- Azure Active Directory tenant ID and Azure Active Directory application ID – You can find your tenant ID for your Azure Active Directory and your application ID in the App registrations blade in Azure Active Directory.
Set up billing
You can create SaaS offers that are billed according to non-standard units you have defined upfront, such as bandwidth, CPU, or storage. Customers then pay according to their consumption of these units. You will also need to inform Azure about these billable events via the commercial marketplace metering service API as they occur. For more details about how to set up the billing system, refer to Azure's documentation here.
Once you have completed the basic settings for your SaaS application, you can click the "Go live" button to publish your offer for real users to access.
Billing is a big challenge
Billing is one of the biggest challenges we faced during the listing process. While Azure has provided a solid billing solution, there are still quite a few problems you have to watch out for.
The first problem is how to keep users' usage on our own server updated with Azure's billing system. We know that Azure has provided an API where we can upload users' usage to the billing system. In order to keep the two sources of data up to date, you have to follow the following rules:
- One resource metric can only be updated once within one hour. You may encounter a duplicate error if you try to update twice within an hour.
- You have to update users' usage data to Azure's billing system within 24 hours. I think this rule helps avoid billing users more than what they should pay.
- Azure will notify you via the webhook you have configured if a user cancels their subscription. You have to confirm via the webhook that you have received the message. Otherwise, the notification will repeat forever.
The second problem you have to watch out for is that upon the configuration of your SaaS offer, you can only configure up to 30 billing metrics, or non-standard units as mentioned above. Metrics may include traffic usage, disk space, and emails sent. Remember that you cannot delete or update any of these metrics once you have published your SaaS offer. My advice is that you think thoroughly about what billing metrics you want to add and make sure you don't want to make any changes in the near future.
The last challenge related to billing is that Azure only provides a relatively fixed billing logic, meaning that sometimes you cannot configure your pricing and plans the way you wanted. For example, with Azure's vanilla billing system, you can't offer a pricing plan that gives new users a 30% discount for one year, or change the price of an existing subscriber if you need to.
Our solution to inflexible Azure's billing system is adding a standalone billing metric called "service credit" on our end. This billing metric is different from the billing metrics we defined. It solely serves as a buffer metric that enables us to control users' usage more flexibly. For example, if we want to give new users a 30% discount for one year, we will give them service credits that are equivalent to 30% of their billing amount so that they are essentially paying 70% of the amount of their billings.
I will talk more about billing problems in a follow-up article. Please stay tuned.
This article is about the main steps of listing a SaaS product in the Azure Marketplace. I mainly want to give you an overview of the whole process from a developer's perspective. In the rest of this series about how to deliver a SaaS product in the Azure Marketplace, I will talk about the following topics:
- Problems and limits of Azure's billing system and how to fix them.
- The difference between Azure's managed service, SaaS offer, and Azure Lighthouse.
Finally, NebulaGraph Cloud is currently available in the Azure Marketplace and it is in a beta period that offers a generous 70% off for beta users. Sign up here to get the offer if you are interested.