Going with the cloud is a popular option for software providers that want to easily make their products available for millions of users, optimize project costs and maintenance processes, and automate billing. Large cloud marketplaces ensure all these benefits and more. But to migrate a product to the cloud, you need to choose a cloud platform, study how it works, and figure out which changes to make in your software.
In this article, we share why cloud platforms are worth your attention, what deployment methods you can use for migrating your product to Amazon Web Services (AWS) Marketplace, and how to prepare your product for migration.
This article will be useful for software providers that want to start distributing their products via cloud marketplaces.
4 reasons to migrate an on-premises solution to the cloud
For a long time, on-premises deployment was an ultimate option for software distribution. This model requires end users to deploy, maintain, and administer software on their own hardware. However, this distribution model limits the number of end users that can find out about your product and use it.
To increase the availability of their products, many software providers migrate their on-premises software to cloud computing platforms and start distributing it according to the Software as a Service (SaaS) model. Such a format enables end users to comfortably interact with the software they need via web browsers or cloud marketplaces without having to install that software on their machines.
A cloud marketplace is basically an online shopping mall for applications that are maintained by a cloud computing provider. Usually, a provider sells both their own applications and services as well as third-party software on their marketplace. The most well-known cloud marketplaces are AWS Marketplace, Microsoft Azure Marketplace, Google Cloud Marketplace, and Oracle Marketplace.
Here’s why software providers choose to deploy their solutions in the cloud:
Access to a wider pool of customers. Popular cloud marketplaces have millions of active users all over the world. Deploying your solution on one of these marketplaces makes your product available for every marketplace user.
Simplicity of software maintenance. The cloud provider takes care of a lot of maintenance activities both for the software provider and end users. They deploy software, deliver updates and patches, create bills, and collect payments. For end users, a cloud solution is easier to use than an on-premises one, as they usually don’t need any technical skills to set it up and use it. For software providers, a cloud marketplace allows them to manage users in groups and automate certain billing processes.
Trust in a cloud marketplace. The reputation of well-known marketplaces depends on the quality of their services and the third-party applications they provide. Marketplaces also verify the identities of their users and sellers to ensure they are real people. Thanks to that, people using a cloud platform don’t need to double-check the reliability of software before using it.
Flexible pricing. Cloud platforms usually bill their users only for the amount of time they use cloud services. For example, if a user interacts with a service for one week, they don’t need to pay for monthly access or buy a permanent license. And third-party software providers pay only for cloud computing resources they’ve actually used.
To start working with a cloud marketplace of their choice, a software provider first has to study how the marketplace operates, how to deploy applications in the cloud, and how to optimize cloud maintenance expenses. They can request technical support from the marketplace, but such services cost extra.
Let’s take a look at how you can deploy your product on one of the most popular online software shops — AWS Marketplace.
Deployment methods in AWS Marketplace
AWS Marketplace is one of the leading cloud software stores that provides access to applications deployed in the AWS environment. AWS achieves a high level of security by checking the protection of applications in their marketplace as well as by implementing security practices and mechanisms to their cloud computing services.
The ability to choose from several deployment methods simplifies the deployment and licensing process for software providers. To deploy your application, you can use Amazon Machine Images (AMIs), containers, file-based datasets, Amazon SageMaker, and other options.
When working with AWS, AMI is the most common way to distribute software, as it’s easy to use for both software providers and their customers. For software providers, deploying their product as an Amazon Machine Image allows them to choose the environment for their solution, add preset configurations, and specify requirements for instances that launch this image. Customers of AWS Marketplace can install an AMI of a product with a couple of clicks, launch it on many instances, and customize it as they need.
There are several options for AMI deployment:
- Single AMI is the easiest method of AMI deployment, where you only have to choose an AMI with installed and preconfigured software and launch it using the Amazon Elastic Compute Cloud (Amazon EC2) service. This method of deployment is optimal for standalone products that don’t require additional solutions to work properly.
- CloudFormation template allows software providers to combine several products within one image, add several AMIs to their product, and define their distributed architecture and custom product configurations. Using such templates, you can distribute products that need a particular environment while simplifying the installation process for end users. When an end user buys an AWS product configured with a CloudFormation template, they can install it with a couple of clicks instead of configuring each product separately.
- Private image build allows an end user to install products from AWS Marketplace to their own gold images and AMIs. This type of deployment is convenient for end users that want to deploy your software in their private infrastructure and maintain their internal security, compliance, and infrastructure integrity.
Deploying your application as a single AMI is faster and easier compared to the two other methods. It also suits most products.
6 steps to deploy a single AMI in AWS Marketplace
There are six major steps in the AMI deployment process:
- Preparing your software for deployment
- Configuring the EC2 instance
- Creating an AMI out of the deployed EC2 instance
- Testing the product
- Filling in the product form
- Placing an AMI product request to AWS Marketplace
Let’s see what each step requires you to do.
1. Preparing your software for deployment
Before you start working with the cloud marketplace, determine if your solution satisfies AMI requirements. You need to check how your software identifies end users, which parameters end users have to input to configure your software, etc.
You also may want to adapt your software to a cloud environment to simplify its deployment and API configuration.
End users expect to start using the product right after purchasing it on the AWS Marketplace. Because of that, you may need to introduce changes in the product deployment process. The product should be pre-installed within an AMI or be installed during the AMI launch after the end user purchases it. With custom scripts, you can ensure the correct configuration of your product during installation.
You may also need to make adjustments in your product’s licensing process. After purchasing your product on AWS Marketplace, the end user is supposed to receive a product with the license of their choice if you provide several licensing options. It may be necessary to add license validation to prevent the use of one license on multiple computers.
2. Configuring the EC2 instance
Determine what you should include in your software infrastructure: the required version of the operating system, additional applications, databases, etc. AWS provides developers with multiple types of EC2 instances with various hardware and software options.
Amazon EC2 lets you choose among a wide range of instances with numerous hardware combinations that are optimized for specific tasks. You can choose an instance with a certain operating system, CPU, amount of RAM, disk space, and bandwidth. If you select an instance that fits your product perfectly, you can eliminate any risks of freezes and lags while saving on cloud computing costs.
Amazon offers recommendations for software developers that are choosing an EC2 instance type for their product, including defining the minimum hardware requirements. If you do so, it will be impossible to launch your product in any other type of instance other than the one you specify.
When choosing an EC2 instance type for your project, it’s best to test several types to figure out the optimal hardware configuration. You can also choose several instances for various versions of your product. For example, your product can use EC2 instances with different amounts of computing power depending on the number of users that can access one AMI.
3. Creating an AMI out of a deployed EC2 instance
After you have deployed and tested your EC2 instance and installed software, you can create an AMI with your product. Also, don’t forget to delete sensitive data like SSH access keys from the EC2 instance before AMI creation.
4. Testing the product
When the AMI is created, you can test it to make sure migration to the cloud works as intended. Repeat all the steps that your end users must take to make a purchase and install your software.
At this stage, you can assess how your customers will interact with your product in AWS Marketplace and during installation.
5. Filling in the product form
Before registering your Single AMI product on the AWS Marketplace, you need to fill out the Commercial Product form. In this form, you need to specify the operating system and third-party solutions your AMI uses, add its description, include keywords for search in AWS Marketplace, provide licensing and refund information, and more.
You’ll need to add this form to the product registration request.
6. Placing an AMI product request to AWS Marketplace
Using this checklist from AWS, check your AMI before submitting it to AWS Marketplace. When everything is ready, log in to your AWS seller account and go to AWS Marketplace Management Portal, navigate to the Products menu, select Server, and then click Create server product.
You’ll need to select the licensing type, add information about your product, select the type of EC2 instance to run your AMI, and submit the request.
There are numerous licensing options in AWS Marketplace, so let’s take a look at them in the next section.
Software licensing for AMI-based products
AWS Marketplace has six licensing options for AMI-based solutions:
- Free. An end user can deploy any number of instances with free software and use it for any amount of time free of charge.
- Bring your own license (BYOL). An end user can purchase a license key for the product directly from the software provider and add it to AWS instead of buying the key on the AWS Marketplace. This type of licensing is convenient for products that are sold on numerous platforms, including AWS Marketplace.
- Paid hourly or hourly-annual. Under this type of licensing, AMI has to include the license key for the product. This way, an end user purchases and deploys an already licensed product. Then, the end user gets billed per hour for using this software. The software provider can set any price. If a user works with software for less than an hour, AWS Marketplace rounds the time up to an hour. Also, this type of license allows a software provider to set a monthly or yearly price for a certain amount of product usage.
- Paid monthly. This is a monthly subscription for using a product. The price is fixed and doesn’t depend on the amount of time for which an end user interacts with the software or the number of instances they run it on.
- Paid usage pricing. This licensing is similar to the paid hourly model, as an end user pays per hour of using the product. But a paid usage pricing license allows a software provider to set different prices depending on the use case. For example, if multiple users across an organization need to access your product, the organization can be charged by the user. Each hour, the organization is charged for the total number of provisioned users.
- Contract pricing. An end user has to pay up front to deploy and use software distributed under this type of license.
Paid hourly and hourly annual are the most common types of licenses for cloud solutions as they are transparent, easy to understand, and cost-efficient for end users.
Cloud marketplaces help software providers find new end users, simplify product maintenance, and automate billing processes. That’s why many software providers choose to deploy their products in a hybrid environment or fully move them to the cloud.
To start selling your product in a cloud marketplace, you need to know how a particular marketplace operates and how to prepare your product to be published there. On the AWS Marketplace, you need to choose the type of EC2 instance to host your software, test the cloud deployment process, and choose a fitting license. The correct choice will help you ensure the smooth performance of cloud software while keeping cloud costs under control.
Each marketplace has its own process of software deployment. Our developers that specialize in cloud computing and virtualization are experienced in preparing software to work with AWS, Microsoft Azure, Google Cloud, and other popular marketplaces.
Reach out to start planning the migration of your on-premises solution to the cloud!