D
David Starr
Overview
The SaaS Accelerator is an opensource project designed to provide a complete SaaS offer integration with the Azure Marketplace commerce engine, along with more capabilities enabled through a rich administration portal. The SaaS Accelerator enables ISVs to publish their SaaS offers without writing code and to complete the technical requirements in less than 20 minutes.
This article provides the information you need to get started with it and to understand the SaaS Accelerator from both technical and business value perspectives.
Enabling faster time-to-value
SaaS offers are very popular for ISVs bringing their software solutions to the Microsoft commercial marketplace. However, coding your own SaaS integration with the Azure Marketplace SaaS offer can take some organizations several weeks of work. This is due in part to getting the work on the development team’s schedule and in part because of the technical requirements needed for integration.
The SaaS Accelerator enables anyone meeting the following requirements to install and configure the tool.
This means that with the appropriate permissions, anyone can install the SaaS Accelerator and update Partner Center accordingly. It does not need to be a technologist.
Features and functionality
The SaaS Accelerator provides everything you need to create a SaaS offer in Partner Center as well as a fully featured administration portal that allows subscription management and a host of other features. I detail those features below.
Landing page
The landing page is a required component of any SaaS offer. Its role is to have ISVs who provide the software to design an experience to connect with the customer and take them on the onboarding process of their product.
For example, the landing page may ask for additional information from the customer, like the name and email address of the customer’s primary contact.
The SaaS Accelerator provides the ability to customize the landing page via configuration from the administration portal. The out-of-the-box customizations include the following.
ISVs can add additional fields to the landing page to collect information from customers. These include text inputs, drop downs, dates, and integers. This does not require writing code as it is a simple configuration exercise in the administration portal.
To start the billing process for a new subscription, the subscription must be activated. This is typically done by the ISV once the customer is onboarded to the actual SaaS product. However, the landing page may be configured such that the customer may self-activate a new subscription.
Additionally, the logo on the landing page may be changed via the administration portal.
The project is implemented in ASP.NET MVC. Additional customization is available by changing the landing page view and associated CSS within the opensource project in your own development environment.
Webhook
A HTTP webhook endpoint is required for all SaaS offers. It is called by the marketplace with detailed subscription information anytime the state of a subscription changes. For example, the marketplace will call the webhook when a customer changes their plan or cancels their subscription.
The webhook is a mechanism for ISVs to stay informed about their customer’s subscriptions. The webhook in the SaaS Accelerator writes subscription information into a database which is then used by the administration console for subscription management.
Administration website
The administration console provides several capabilities of interest to ISVs. This section details its major features and capabilities. The front screen of the administration portal is pictured below.
Activate new subscriptions
New subscriptions are typically activated after a new account is created for the customer in the ISV’s SaaS product. An API is provided to do this activation, but the SaaS Accelerator provides manual subscription activation out-of-the-box. This is very useful in scenarios where the ISV takes time to enable new customer accounts within the SaaS product, and then activate the subscription after the new account is available for use.
All subscriptions are shown on a single page, where ISVs can see the state of each subscription. To activate a new subscription, simply select the subscription to activate and submit the activation request. Billing for the new subscription begins now.
Email notification for subscription events
When subscriptions change state, the webhook is called. The SaaS Accelerator provides additional functionality enabling sending emails to various parties when subscription change events are detected. This serves to keep everyone up to date on the latest changes to subscriptions managed via the portal.
Add fields to landing page
Part of the role of a landing page is to collect any additional information from the customer needed to create their account and start the flow of business. In the administration portal, you can define input fields that can be used to collect that information. The data collected in these fields will be sent in the emails mentioned above and stored in the underlying database so you can see them when viewing a subscription inside the portal.
Submit usage for metered billing
If a plan has metered billing dimensions defined for it, the SaaS Accelerator administration portal gives you two ways to call those meters. Manually, or on a schedule.
Sending usage events manually simply requires selecting a subscription, indicating the plan and meter to invoke, and then sending a quantity to that meter. There is a simple tool included in the portal to do this one-time manual usage reporting.
A more robust model for calling meters is enabled through the optional metered billing scheduler. This tool allows scheduling meters to be sent at a point in the future. This can be useful when the out-of-the-box pricing models for SaaS offers don’t exactly meet your billing requirements, or when you want to emit usage events on a schedule.
Architecture and services
The three-tiered website architecture used by the SaaS Accelerator is simple and straightforward. As mentioned, this is an ASP.NET MVC project, implemented in C#. Let’s look at the overall architecture of the system.
Basic architecture model
As mentioned, the architecture of the application is simple and straightforward. The services deployed into Azure are few. Services include the following.
The following image shows what gets deployed into Azure.
Runtime costs
With the out-of-the-box settings on infrastructure components installed by the SaaS Accelerator, expect to pay less than $50 per month for your runtime costs. You can optionally upgrade services, like web apps. They can be made to be hot instances (needing no warm-up time to receive requests) and additions like this may increase your costs.
Consider the nature of your landing page before changing things, though. How often will it be called? Are you dealing with a high volume of purchases or a low volume? It’s something to consider before making changes to the out-of-the-box installation.
Get up and running in 20 minutes
Installing the SaaS Accelerator couldn’t be simpler, and you have two choices for how to proceed. You may choose to install via the Azure portal cloud shell or via the marketplace itself.
Cloud Shell installation
Installing in the Azure portal cloud shell is my preferred installation technique as everything about the deployment is automated. There is no need to create services or application registrations manually.
To perform the install, copy this PowerShell install script into your favorite text editor. Note the optional parameters and see if they are of interest to you. Then make the needed edits to the script. Finally, open the cloud shell and paste in the fully completed script. A video detailing this process may be found here.
Once installation is complete, the install script outputs to the screen the exact information needed by the Technical Configuration screen in Partner Center.
Partner Center integration
Lastly, you may choose to install via the Azure marketplace, because the SaaS Accelerator is offered as a free product on the marketplace as shown in the image below.
Installing via this technique requires a bit more manual work on your part, setting up and configuring application registrations, for example.
Getting started
Here are some resources to get you started with the SaaS Accelerator.
Conclusion
The SaaS Accelerator will save time and money when integrating your SaaS solution in the Azure Marketplace. Not only does it meet the core requirements of a SaaS offer (landing page and webhook), but it offers a host of features made available through the administration console that will make your cost of ownership for your SaaS integration much less expensive.
You don’t need to write a line of code to get the SaaS Accelerator up and running and serving your customers. Although it works cleanly as it is, you can always customize the code to your heart’s content. And remember, this is an opensource project, so we are always happy to receive pull requests!
Continue reading...
The SaaS Accelerator is an opensource project designed to provide a complete SaaS offer integration with the Azure Marketplace commerce engine, along with more capabilities enabled through a rich administration portal. The SaaS Accelerator enables ISVs to publish their SaaS offers without writing code and to complete the technical requirements in less than 20 minutes.
This article provides the information you need to get started with it and to understand the SaaS Accelerator from both technical and business value perspectives.
Enabling faster time-to-value
SaaS offers are very popular for ISVs bringing their software solutions to the Microsoft commercial marketplace. However, coding your own SaaS integration with the Azure Marketplace SaaS offer can take some organizations several weeks of work. This is due in part to getting the work on the development team’s schedule and in part because of the technical requirements needed for integration.
The SaaS Accelerator enables anyone meeting the following requirements to install and configure the tool.
- An active Azure subscription with permissions to create resources and application registrations within the appropriate tenants.
- A Partner Center account with privileges to edit the technical configuration of the SaaS offer.
This means that with the appropriate permissions, anyone can install the SaaS Accelerator and update Partner Center accordingly. It does not need to be a technologist.
Features and functionality
The SaaS Accelerator provides everything you need to create a SaaS offer in Partner Center as well as a fully featured administration portal that allows subscription management and a host of other features. I detail those features below.
Landing page
The landing page is a required component of any SaaS offer. Its role is to have ISVs who provide the software to design an experience to connect with the customer and take them on the onboarding process of their product.
For example, the landing page may ask for additional information from the customer, like the name and email address of the customer’s primary contact.
The SaaS Accelerator provides the ability to customize the landing page via configuration from the administration portal. The out-of-the-box customizations include the following.
ISVs can add additional fields to the landing page to collect information from customers. These include text inputs, drop downs, dates, and integers. This does not require writing code as it is a simple configuration exercise in the administration portal.
To start the billing process for a new subscription, the subscription must be activated. This is typically done by the ISV once the customer is onboarded to the actual SaaS product. However, the landing page may be configured such that the customer may self-activate a new subscription.
Additionally, the logo on the landing page may be changed via the administration portal.
The project is implemented in ASP.NET MVC. Additional customization is available by changing the landing page view and associated CSS within the opensource project in your own development environment.
Webhook
A HTTP webhook endpoint is required for all SaaS offers. It is called by the marketplace with detailed subscription information anytime the state of a subscription changes. For example, the marketplace will call the webhook when a customer changes their plan or cancels their subscription.
The webhook is a mechanism for ISVs to stay informed about their customer’s subscriptions. The webhook in the SaaS Accelerator writes subscription information into a database which is then used by the administration console for subscription management.
Administration website
The administration console provides several capabilities of interest to ISVs. This section details its major features and capabilities. The front screen of the administration portal is pictured below.
Activate new subscriptions
New subscriptions are typically activated after a new account is created for the customer in the ISV’s SaaS product. An API is provided to do this activation, but the SaaS Accelerator provides manual subscription activation out-of-the-box. This is very useful in scenarios where the ISV takes time to enable new customer accounts within the SaaS product, and then activate the subscription after the new account is available for use.
All subscriptions are shown on a single page, where ISVs can see the state of each subscription. To activate a new subscription, simply select the subscription to activate and submit the activation request. Billing for the new subscription begins now.
Email notification for subscription events
When subscriptions change state, the webhook is called. The SaaS Accelerator provides additional functionality enabling sending emails to various parties when subscription change events are detected. This serves to keep everyone up to date on the latest changes to subscriptions managed via the portal.
Add fields to landing page
Part of the role of a landing page is to collect any additional information from the customer needed to create their account and start the flow of business. In the administration portal, you can define input fields that can be used to collect that information. The data collected in these fields will be sent in the emails mentioned above and stored in the underlying database so you can see them when viewing a subscription inside the portal.
Submit usage for metered billing
If a plan has metered billing dimensions defined for it, the SaaS Accelerator administration portal gives you two ways to call those meters. Manually, or on a schedule.
Sending usage events manually simply requires selecting a subscription, indicating the plan and meter to invoke, and then sending a quantity to that meter. There is a simple tool included in the portal to do this one-time manual usage reporting.
A more robust model for calling meters is enabled through the optional metered billing scheduler. This tool allows scheduling meters to be sent at a point in the future. This can be useful when the out-of-the-box pricing models for SaaS offers don’t exactly meet your billing requirements, or when you want to emit usage events on a schedule.
Architecture and services
The three-tiered website architecture used by the SaaS Accelerator is simple and straightforward. As mentioned, this is an ASP.NET MVC project, implemented in C#. Let’s look at the overall architecture of the system.
Basic architecture model
As mentioned, the architecture of the application is simple and straightforward. The services deployed into Azure are few. Services include the following.
- 2 App Services: one for the landing page and one for the admin portal
- 1 SQL Server and associated database
- A Key Vault
The following image shows what gets deployed into Azure.
Runtime costs
With the out-of-the-box settings on infrastructure components installed by the SaaS Accelerator, expect to pay less than $50 per month for your runtime costs. You can optionally upgrade services, like web apps. They can be made to be hot instances (needing no warm-up time to receive requests) and additions like this may increase your costs.
Consider the nature of your landing page before changing things, though. How often will it be called? Are you dealing with a high volume of purchases or a low volume? It’s something to consider before making changes to the out-of-the-box installation.
Get up and running in 20 minutes
Installing the SaaS Accelerator couldn’t be simpler, and you have two choices for how to proceed. You may choose to install via the Azure portal cloud shell or via the marketplace itself.
Cloud Shell installation
Installing in the Azure portal cloud shell is my preferred installation technique as everything about the deployment is automated. There is no need to create services or application registrations manually.
To perform the install, copy this PowerShell install script into your favorite text editor. Note the optional parameters and see if they are of interest to you. Then make the needed edits to the script. Finally, open the cloud shell and paste in the fully completed script. A video detailing this process may be found here.
Once installation is complete, the install script outputs to the screen the exact information needed by the Technical Configuration screen in Partner Center.
Partner Center integration
Lastly, you may choose to install via the Azure marketplace, because the SaaS Accelerator is offered as a free product on the marketplace as shown in the image below.
Installing via this technique requires a bit more manual work on your part, setting up and configuring application registrations, for example.
Getting started
Here are some resources to get you started with the SaaS Accelerator.
- The GitHub repository for the project.
- A complete on-demand course that will take you through all features and functionality.
Conclusion
The SaaS Accelerator will save time and money when integrating your SaaS solution in the Azure Marketplace. Not only does it meet the core requirements of a SaaS offer (landing page and webhook), but it offers a host of features made available through the administration console that will make your cost of ownership for your SaaS integration much less expensive.
You don’t need to write a line of code to get the SaaS Accelerator up and running and serving your customers. Although it works cleanly as it is, you can always customize the code to your heart’s content. And remember, this is an opensource project, so we are always happy to receive pull requests!
Continue reading...