The Azure Marketplace is more than a place to get SaaS apps—you can deliver your own apps through it as well Credit: Kevin Elgan/IDG Azure is now very much at the heart of Microsoft’s enterprise strategy, providing a place to build the next generation of applications and services. It’s easy to focus on it as a platform and as a host for virtual infrastructures, forgetting one if its other roles: a host for software as a service (SaaS). Over the last few months, I’ve been talking to a lot of companies that you’d think of as traditional infrastructure or software providers. They’re the type of company you’d talk to about adding storage hardware, security platforms, or hefty pieces of enterprise software. But now, as well as hardware and software for your datacenter, they’re also providing software implementations in the Azure Marketplace. So can you. Introducing the Azure Marketplace For example, if you’ve been using a NetApp storage appliance in your on-premises applications, you may well want to use the company’s Ontap storage management platform to link your cloud storage to your own datacenter. Using the Azure Marketplace, you can drop a virtual appliance into your virtual network, linking the two environments without having to change your management tool. Other well-known vendors in the Azure Marketplace include Barracuda, Chef, and Oracle. There are two reasons this is happening: There’s long been in a trend in the datacenter hardware space away from specialized processors to building on cheaper x86 systems. That’s made it a lot easier to deliver virtual appliances for use in cloud-hosted virtual infrastructures, working with software-defined networks and storage. The growing maturity of Microsoft’s ARM (Azure Resource Manager) templating language, for defining and deploying Azure infrastructures. In the Azure Marketplace, you’ll see a mix of solutions, free tools and virtual machine images, subscription services that work as part of your own Azure applications, and hosted services that can be used as part of a virtual infrastructure or on their own. The service catalog sorts Marketplace services by role, either as specific functions like databases or management tools, or as compute, storage, and networking services. Adding a service to your Azure account is easy enough: Choose the service you want to use and then pick the subscription options, as well as choosing the Azure services you want to host the service instance. Generally, Azure resources are priced separately from a service, so you’ll need to consider them as part of any budget. That’s a different model from traditional SaaS plans, where you pay only for the licenses you need. Some services also require you to have existing on-premises licenses, so check before you deploy them into your applications. Building and selling your own services on Azure Microsoft provides a route from your own ARM templates to an Azure Marketplace service offering. That way, you can package existing software and services and sell them through Azure, giving you a new revenue stream. To sell on the Azure Marketplace, you need to be a certified, a process that starts with building the appropriate virtual machine images and templates for your application. Certified organizations also agree to various Azure Marketplace policies, along with publishing company information. Once certified, you get access to the Cloud Partner Portal, where you can put together marketing materials and code, either as VMs or complete virtual infrastructures. The approval process for code is relatively quick; VM-based applications are usually approved within three business days, but more-complex services can take longer. Describing infrastructure with ARM templates ARM is the basis of much of Microsoft’s infrastructure-as-a-service tools, and an essential tool if you’re planning on using devops practices on Azure. With simple service descriptions for all the elements of an Azure virtual infrastructure, from servers to networking to storage to Azure platform services, it’s an important part of working directly with Azure and integrating it with existing devops tools and services. Once you’ve built an Azure virtual network, you can take all the elements you’ve used, turn them into an Azure resource group, and use that as the basis for an ARM template. ARM templates are JSON files, declarative descriptions of the contents of a resource group that can recreate it as and when required. They’re a useful tool for developers and admins, allowing repeatable deployment of proven environments stored in configuration management systems and used as part of a continuous integration build process. With Azure Resource Manager, there’s a single consistent view for all the elements that go into building an Azure application. It’s accessible from the Azure Portal, from the command line (using PowerShell or Bash), and through Visual Studio. By wrapping them in a resource group, all those elements also have the same life cycle: They’re created and destroyed at the same time, as well as replicated in other regions. Building ARM templates You make your first an ARM template from existing resource group by exporting its current state. The resulting JSON file is ready for editing, using any text editor, though there is an ARM syntax tool built into Visual Studio and available for Visual Studio Code. It’s easy to see how ARM templates describe each aspect of your virtual network, and you can quickly build a library of components that assemble into whatever infrastructure template you might need. When a template loads into Azure, it’s parsed and checked before running as a series of Azure API operations. These operate in parallel to build, configure, and deploy your application, including setting up Azure services. Complex applications don’t need to be in a single file, where it’s easy to make mistakes that can affect deployments. Instead, you use a series of templates, wrapped in a single master template. That way, you can keep specific functions separate, with one template handling Azure databases, one storage and another for VMs. The master template handles the application life cycle, controlling the functional templates. Alternatively, you can have separate templates for separate parts of an application or service, where you’re managing each part’s life cycle separately. Because ARM templates can wrap other ARM templates, if you’re using an application from the Azure Marketplace, you can make it part of your own resource groups. This ensures that any future deployment accesses the same resources and services. Mixing third-party services and virtual appliances in your Azure applications makes a lot of sense; such mashups let you take advantage of familiar tools or use features that would otherwise require significant configuration and management. With Microsoft certifying code and offering it through the Azure Marketplace, you’ve also got the assurance that it’s been tested—as well as access to support services and a single billing platform. Related content opinion The Agile Manifesto was ahead of its time Back in the day, technology limitations forced software development teams to be disciplined, rigid, and inflexible. Thank goodness for SaaS and CI/CD. By Nick Hodges Nov 13, 2024 5 mins Agile Development CI/CD SaaS feature What is cloud computing? Everything you need to know Cloud computing has become the ideal way to deliver enterprise applications—and the preferred solution for companies extending their infrastructure or launching new innovations. By Eric Knorr and dan_muse Nov 01, 2024 18 mins Hybrid Cloud IaaS PaaS analysis Agile and devops for SaaS and low-code development Software as a service and low-code platforms can make some aspects of agile and devops easier, but not without adjustments. Here's how to modify your team's best practices for SaaS and low-code environments. By Isaac Sacolick Oct 22, 2024 9 mins Agile Development SaaS Devops feature 12 principles for improving devsecops SaaS organizations lead the pack when it comes to application reliability, scalability, security, and customer satisfaction. Here are 12 principles devsecops leaders can adopt from SaaS. By Isaac Sacolick May 20, 2024 11 mins SaaS Devops Cloud Computing Resources Videos