Publish WebApp to Azure MarketPlace - azure

My company has a direction to create web app to be published and sold on Azure Marketplace.
After reading up on the topic on https://azure.microsoft.com/en-us/marketplace/programs/certified/, I am confused that what is actually the right way to achieve what we want to do above.
Do we need to create a VM as a container for our webapp so that it can be sold on Market Place? In this method, are subscribers creating their own VM service from the image we publish? I wonder how are updates/fixes being pushed out to every subscriber.
I then came across AppSource. In this way, are we creating/hosting the app in our azure app service, and users are authorized into the app through AAD (it looks like we have to use AAD authentication?)? Are we able to segregate user data by say, organizations?
I really appreciate if someone can shed some light on this.

For point 1, you could look at this question: Publishing a web application on Azure
i think what you are looking for is the "solution template". it took me a while to get it, but if you look at the docs there is a comparison between "Virtual machine" and "Solution template".
From the docs:
VM example:
As an Azure publisher, you've created and validated a VM with an innovative database service. Other Azure subscribers want to procure and deploy this VM into their cloud service environments.
Solution template example
As an Azure publisher, you've bundled a set of services from across Azure that make it quick to deploy cloud services with load balancing, enhanced security, and high availability. Other Azure subscribers can save time by procuring the solution template that meets their objective. They don't have to manually locate, procure, deploy, and configure the same or similar Azure services.

Related

How to get an accurate cost of deploying a bot solution?

Before moving from prototype to production phase, I want to calcualte accurate cost of production solution for getting better understanding of ROI.
i have built and deploy a bot which is based on enterprise bot template which is deployed using msbot deployment script which creates following services:Web App Bot, Azure Cosmos DB Account, App Service Plan, App Service, Storage Account, Application Insights, Cognitive Services (LUIS), App Service (QNA Host), Cognitive Services (QnA Maker), Search Service.
Azure portal allows to get pricing (https://azure.microsoft.com/en-us/pricing/calculator/), however, i am not sure whether i should include Cosmos DB as well as Storage Account? or is it a deployment script problem,
Any pointers is appreciated!
This is a process i followed to get the correct cost of the production solution.
First, there are two ways you can build a bot (a) using VS studio template (VSIX) and build the bot and deploy using msbot script. (b) Create a bot on Azure and download the code and make changes.
(a) is a recommended option from MSFT.
With option (a) I have used msbot script to deploy the solution, that creates list of services in your Azure subscription. If you look closely, it creates Cosmos DB as well as Storage Account, Cosmos DB is mainly used for storing bot state and storage account is used for storing log and app insights, etc.
Also there are two app service are included, but if you look closely, both app service shares the same app service plan meaning one app service is used for both services, however, it depends on your need.
Most of the services are allowed to scale-up, but azure search can not be scale-up, it must be re-created and re-configured.
Finally you need to include following services for calculating price using the azure price calculator:App Service,QnA Maker Service,LUIS Service,Cosmos DB, Storage Account, and Bot

Alternative to using Azure Cloud service in a CSP subscription

Team,
I have a complete running cloud service application upgraded to latest Azure SDK version and unfortunately need to dump this into a CSP subscription. But I came to know that Azure CSP supports only the Azure Resource Manager model, the cloud service is a classic deployment model. So we cannot create a cloud service within a CSP subscription.
Is there any other alternative within Azure CSP to using "cloud service" so that we can migrate with minimal changes. Please help
Firstly, here are some good reads on Microsoft Docs to help comparing the options available and make decisions based on your requirements:
(I mean requirements like Hosting features, Service Limits, 3rd party software installation and RDP access is required or not, Network isolation to a separate VNET is required or not, Cost considerations, minimum SLA, Regions available, instant deployment and auto-scaling, state management etc.):
Azure App Service, Virtual Machines, Service Fabric, and Cloud Services comparison
Decision tree for Azure compute services (This one covers a big spectrum.. simple virtual machines, Batch, Functions, Containers, AKS, ServiceFabric)
Criteria for choosing an Azure Compute Service
Also know that when looking for alternatives, it's not uncommon to make use of multiple compute or other Azure service options by breaking up an older solution into parts at the time of such migration (for e.g. A serverless compute option like Azure Function + Service Fabric + something else if needed).
Generally speaking (and without knowing much about your application from your question currently), Azure App Service and Service Fabric could be considerations IMHO when migrating from an existing Cloud Service, but this is exactly where detailed requirements help you in decision making.
On a side note, here is a list of Azure Services available in CSP - Available Azure services in Azure CSP

New or existing App service plan in Azure deployment

When I publish an api to azure from visual studio I see an existing app-service plan and also an option to create a new plan. The api I am going deploy will be used by the web application which was deployed using the existing service.
I have the following questions:
If I use the existing plan what would happen to the sites which are
already deployed using that plan?
Should I create new or use
existing?
Cost-wise which is the best option?
By using the same service plan to host the web app and the api, nothing will happen to the existing website besides you won't have any extra cost. The web apps will share the same resources.
If you create a new service plan for you api, you will have extra cost depending on the pricing tier you need.
The choice can depend on your scaling needs. If you need to define differents scaling plan for the api and the web app, it's a good idea to use two services plan, if not an unique service plan can be used.

How to create or see existing App Service Plans in Azure portal and modify them?

I am trying to determine Azure portal provides any option to create an App Service Plan in a separate step (not while creating the website) and to modify them.
Currently I am creating App Service Plans in the WebSite creation step and modify them in WebSite's Scale option.
Is there any way to create them separately and see a list of available
App Service Plans?
Do websites created within an App Service Plan share the resources in it (CPU, Memory etc)?
What exactly happens when there is an auto scale up?
a.) Will it create a new instance of the App Service Plan and replicate all the websites within it?
b.) or will it create a new instance of the website and share the resources of same App Service Plan?
I am confused because, the App Service Settings (pricing tiers, scale-up option etc) are seen in websites scale option.
Please clarify my doubts.
Thanks in advance.
See page 8 of Developing Microsoft Azure Solutions Exam Reference for 70-532.
"Web hosting plans are created as part of website creation and are not created directly"
Even though this book was published in Feb 2015 some of the terminology is already out of date. It's an "application service plan", not "web hosting plan". And they call what is now known as a "web app" a "website".
Here is an awesome blog post about setting up azure web apps and deployment slots and hosting plans. It goes over what's shared and how to migrate between application service plans about halfway through.
Found this article which explains about App Service Plans in detail.

Deploying WebRoles to pre-existing VMs

We have developed and tested our webroles in our Free trial Azure cloud.
We now have to deploy the webroles to Company A Azure cloud. Company A is open to creating IIS VMs for our deployment but will not share username/pwds with us to publish our Webroles to their cloud.
This should be a pretty common scenario, would like to hear from folks who have solved it in their deployments.
How do we publish web roles to a pre-existing VM?
This isn't how Web Roles work. A Web Role (along with any other defined roles) is essentially a bundle of code, startup scripts, binaries, etc. that are needed on the VM. The VM itself is stateless: It's started up as a fresh (up to date) copy of Windows Server, and your code is executed. Anything needing install is done via your startup scripts.
You cannot push a Web Role independently to an existing Virtual Machine. You'd need to take your actual code project (e.g. asp.net) and publish that to a pre-existing VM, without any of the Web Role scaffolding. How you do that would be up to you (and the folks who are managing these VMs).
I guess there is a confusion with different concepts.
From what I understand you have already deployed your cloud service and associated web roles to a trial azure subscription. You were able to do that because you are the admin of the subscription. If you need to deploy the same set of roles and the cloud service to one of your customers azure subscription they will need to setup your account as a co-admin so you can follow the same deployment procedure you did with your trial subscription. They don't need to give you a user/pass pair. They just need to give your LiveID or appropriate credentials a temporary co-admin permission to do the deployment on their behalf. They can do this in the azure management portal.

Resources