Azure App Service Team Blog

How the App Service team functions

Onboarding to Azure Web Marketplace and Certification

Azure Marketplace is a hub of solutions for users to create different types of resources.  Each category of resource such as Data services, Virtual machines, Web have different on-boarding processes for ISVs to publish their solutions in Azure marketplace. In this article we will discuss the process to on-board Web Apps to Web Marketplace in Azure.

To showcase your application in Web Azure marketplace , you need to get your application certified. The certification process is a 5 Step process.

 

APPLICATION
  • Step 1: Apply by providing basic information about your business and solution
  • Step 2: Share solution-specific information and wait for approval
ONBOARDING Build your Azure package and provide the marketing content for your application . See details below.
CERTIFICATION We’ll run tests to verify compatibility with our platform or service
PUBLISHING
  • Step 1: Showcase the Azure certified logo for your application
  • Step 2: Publish your application on Azure Marketplace/Azure pages
MARKETING Promote and market your application taking advantage of Microsoft go-to-marketing resources

On-boarding New applications to the Web Azure Marketplace

For new applications:

The on-boarding process is a gated approach and the application will be reviewed by our team. Click here to request for certification. Leverage the benefits of this program from being showcased in the Azure Marketplace but also advantages of being part of Microsoft partner network.

Follow the guidelines mentioned below to build your template and test your application on App service.  If accepted we will enable it in the Azure portal.

Existing Applications:

We will continue to maintain existing applications in the Azure Web Marketplace. Please reach out appgal@microsoft.com if you haven’t already to get details on updated process for managing updates to your application.

Azure Web Marketplace Principles

Users can browse and view applications for different types of Web sites, ranging from photo galleries to blogs to e-commerce sites. To be part of the Azure Web Marketplace, developers should follow these principles, which establish a consistent, quality user experience:

  • Be Current: The application you provide a link to must be the latest, stable final release version available, hosted on a publicly available Web URL.
  • Application License: The application Azure Web Marketplace may provide an entry point free of charge or use Bring your own license model (BOYL)  where users can purchase a license from the application publisher’s website.
  • Be Compatible: The generated and configured application deployed from Azure Web Marketplace must also run on any Windows OS.The application should support running on cloud infrastructure by providing an option to make the application stateless.
  • Be Hostable: The application to which you provide a link must run well in a shared hosted environment as well as when the user has administrative rights for the computer.
  • Be Deployable: The application must be deployable using Github or MSDeploy. Github deployment for package deployment is currently available for applications with no database or MySQL database.
  • Be Supported: You must provide a publicly available Web site where end users can download your application, find documentation and/or get free on a best effort basis support through a forum.
  • Be Platform Independent: The application to which you provide a link must be able to run on all Windows  platforms x86, and x64.
  • Be Inclusive: If your application is included in the Gallery, you should include a statement of availability in the Azure App Gallery on the application community’s Web site.
  • Be Safe: The application to which you provide a link must not harm customers or be malicious, dishonest, destructive, invasive, or act in any manner restricted by the Web Gallery Application Submission agreement.
  • Be a Web App: The application to which you provide a link must be a Web application that can be used to generate a working, usable Web site after deployment without requiring code or customization.
  • Support Database Dependencies: Currently our create experience supports Web App with Database ( MySQL and/or SQL DB). If your application has other dependencies , Web Marketplace may not be an option.You may want to look into Azure solution templates.

Package your application code

There are two ways to package your application code :

  • Using Web deploy:
    Microsoft Web Deploy provides the framework for deploying the Web applications onto Azure. With Web Deploy, a developer adds a couple of manifest files to the root directory of an existing ZIP package that tell Azure Gallery installer how to deploy the application.
    The manifest.XML file tells what is in the package and allows the developer to set the name of the directory and Web site where the package is deployed. The parameters.xml file gives developers the ability to ask the user for information during the install process, such as Web site path. Learn more about how to define the Web Deploy manifest files in the Application Packaging Guide. Also check out Tips and Tricks for a successful submission to Azure Website Gallery
  • Using Git Deploy:This is alternate method to Web Deploy. If your application code does not require run any database SQL scripts, you can use this option. This Github repository must be a public repository. We currently don’t support private repository.

Building an Azure Package for Marketplace

Azure Package has a special folder structure to be consumed by Azure Marketplace service. Each folder at the root level approximately represents a publisher. A folder contains one or more .json files, called package manifests, each of which contains the metadata for an Azure Gallery package. Every folder also includes a set of deployment templates, strings , icons and screenshots which can be referenced by the package manifests.

  • Icons : The relative path specified by iconPath in a package manifest must point to a folder that includes the following four images with these dimenions mentioned below:
    • Small.png (40×40 px)
    • Medium.png (90×90 px)
    • Large.png (115×115 px)
    • Wide.png (255×115 px)

    You can group icons under sub-folders if you have different ones per product. Just be sure to include the sub-folder in the iconPath for the package manifest that uses them.

  • Screenshots : Images must be exactly 533px by 324px and in PNG format. Specifying a screenshot for a gallery package is completely optional, so do not feel compelled to include one unless it makes sense for your offering.
  • Azure package samples  : You can find sample packages on GitHub 

Update your application version

When there is a new version of your existing application, update the following :

  • Change the packageURL property in UIdefinition.json file to point to HTTP URL for your application.
  • Change the packageURL in Deployments/Website_NewHostingPlan_SQL_NewDB-Default.json file with the HTTP url for your application.
  • [Optional] Update icons or screenshots , strings if needed

Build a new azure package in ZIP format and submit a request to certify.

Test your application

Follow the criteria below

  • Use the Azure resource manager templates and deploy using PowerShell.
  • Run these tests in at least 2 different Azure regions.
  • Save the results of these deployment in an Excel or Word document.  The excel document should have the following columns:
    • Resource group
    • Web app name
    • Region
    • Subscription ID
    • Time of deployment
    • Tested with Auto-scale feature [ Yes /No]
    • Tested with Continuous Integration [ Yes /No]
    • Tested with Deployment slots [ Yes /No]
    • Tested with Backup and restore [ Yes/No]

There are some limitations with the Azure create in the portal and power shell . If your application requires these configurations mentioned below , we will not be able to on board the application.

        • You web app need Virtual application setting to be configured for web app
        • Your web app need a dependency that is not supported by App Service create scenario. We currently support ONLY SQL DB , MySQL and Azure Storage dependencies.

Submit your application

Submit a certification request here .  Please do provide information about your application during submission .  Here is the kind of information we are looking for to learn about your application

        1. What is current Usage statistics of your application
        2. Do you have customers using your application on the Cloud ( Azure or other hosting providers). If yes share at least 2 customer stories.
        3. How active is the community engaged , primarily for Free applications this information is required

You will receive a response in 3-5 business days with a request for more information or with next steps to move forward.

Post publishing

We recommend to maintain documentation and support for your application on your website. This is key to help get new users started with using your application and follow best practices based on your guidance.

Marketing

Once approved your application will be visible in the Azure portal under “Web + Mobile” category. Users can view your application on Azure website in the Marketplace page.