Loading...

Streamlining Azure Marketplace Deployments

Streamlining Azure Marketplace Deployments

Streamlining Azure Marketplace Deployments

 

Navigating the complexity of deploying solutions to the Azure Marketplace is a common challenge faced by many of our partners at Microsoft. Recognizing this, our Global Partner Services team has developed a powerful tool to simplify this process: the Commercial Marketplace Offer Deployment Manager, or MODM.

 

Introducing MODM

 

MODM is a dedicated, first-party installer designed to streamline the deployment of intricate solutions in the Azure Marketplace. It is especially crafted to support deployments using HashiCorp's Terraform and Azure Bicep, enhancing the versatility and efficiency of the deployment process.

 

How MODM Simplifies Deployment

 

The deployment process with MODM is straightforward, involving two main steps:

 

Step 1: Create Your Application Package

 

The initial phase involves packaging your solution into an application package using the Azure CLI Partnercenter Extension. MODM accommodates two types of solutions for packaging:

 

1. HashiCorp's Terraform: This popular open-source infrastructure as code tool is now seamlessly supported for Azure Marketplace deployments. Previously, Terraform-based solutions needed conversion to Azure Resource Manager templates, a process that demanded significant development and testing efforts. MODM eliminates this requirement.

 

2. Azure Bicep: Azure Bicep offers a more readable and concise syntax compared to the JSON of Azure Resource Manager templates. With MODM, converting your Azure Bicep templates to ARM templates is a thing of the past.

 

Both Terraform and Bicep solutions require minimal prerequisites to be compatible with MODM. Place your solution in a directory with a main entry point file (main.tf for Terraform, main.bicep for Bicep), install the Azure CLI extension for Partnercenter, and execute a single command to create an application package ready for Azure Marketplace. 

 

Simply execute:

az partnercenter marketplace offer package build --id simpleterraform --src $src_dir --package-type AppInstaller

 

 

Step 2: Publish Your Application Package

 

Publishing your application package follows the same protocol as any other Marketplace solution. Utilize the Azure CLI Extension for Partnercenter or the Partnercenter Portal for this purpose.

 

Post-Deployment: Installing Your Published Package

 

Installing a marketplace offer deployed with MODM is as straightforward as installing any other managed app. A unique aspect of MODM is the inclusion of a user-friendly front-end experience that allows you to monitor the installation progress and troubleshoot any issues that arise. Detailed documentation and a helpful video tutorial on this process are available for further guidance.

 

MODM's Architecture Overview

 

MODM's architecture is anchored by the App Installer, a virtual machine that plays a pivotal role in the deployment process. This component takes the packaged app.zip from the Partnercenter CLI command and oversees the installation, managing aspects like retries and machine restarts. A detailed breakdown of MODM's architecture is available in our GitHub documentation.

 

bobjac_1-1707967126526.png

 

 

 

Educational Resources and Tutorials

 

To assist you further, we have prepared video tutorials covering various aspects of using MODM:

 

Source Code Repositories

Published on:

Learn more
Azure Tools Blog articles
Azure Tools Blog articles

Azure Tools Blog articles

Share post:

Related posts

How Azure CLI handles your tokens and what you might be ignoring

Running az login feels like magic. A browser pops up, you pick an account, and from then on, everything just works. No more passwords, no more...

13 hours ago

Boost your Azure Cosmos DB Efficiency with Azure Advisor Insights

Azure Cosmos DB is Microsoft’s globally distributed, multi-model database service, trusted for mission-critical workloads that demand high ava...

2 days ago

Microsoft Azure Fundamentals #5: Complex Error Handling Patterns for High-Volume Microsoft Dataverse Integrations in Azure

🚀 1. Problem Context When integrating Microsoft Dataverse with Azure services (e.g., Azure Service Bus, Azure Functions, Logic Apps, Azure SQ...

2 days ago

Using the Secret Management PowerShell Module with Azure Key Vault and Azure Automation

Automation account credential resources are the easiest way to manage credentials for Azure Automation runbooks. The Secret Management module ...

3 days ago

Microsoft Azure Fundamentals #4: Azure Service Bus Topics and Subscriptions for multi-system CRM workflows in Microsoft Dataverse / Dynamics 365

🚀 1. Scenario Overview In modern enterprise environments, a single business event in Microsoft Dataverse (CRM) can trigger workflows across m...

4 days ago

Easily connect AI workloads to Azure Blob Storage with adlfs

Microsoft works with the fsspec open-source community to enhance adlfs. This update delivers faster file operations and improved reliability f...

4 days ago

Microsoft Azure Fundamentals #3: Maximizing Event-Driven Architecture in Microsoft Power Platform

🧩 1. Overview Event-driven architecture (EDA) transforms how systems communicate.Instead of traditional request–response or batch integration...

4 days ago

Azure Developer CLI (azd) – October 2025

This post announces the October release of the Azure Developer CLI (`azd`). The post Azure Developer CLI (azd) – October 2025 appeared f...

5 days ago

Microsoft Azure Fundamentals #2: Designing Real-Time Bi-Directional Sync Between Dataverse and Azure SQL for Multi-Region Deployments

Here’s a detailed technical breakdown of designing a real-time bi-directional sync between Dataverse and Azure SQL for multi-region deployment...

5 days ago

Azure DevOps local MCP Server is generally available

Today we are excited to take our local MCP Server for Azure DevOps out of preview 🥳. Since the initial preview announcement, we’ve work...

6 days ago
Stay up to date with latest Microsoft Dynamics 365 and Power Platform news!
* Yes, I agree to the privacy policy