This article define what is Azure App Service? Comparing between different App Service Plans and how to deploy your website and how to manage it.
Azure App Service
It is a cloud platform to build powerful web and mobile apps that connect to data anywhere, in the cloud or on-premises.
It can Build highly scalable web and mobile apps on Azure, you can scale quickly to handle high traffic loads, and the built-in load balancing and traffic manager provide high availability.
Easy to deploy your website using different deployment techniques. these deployment techniques are mention below.
App Service and Virtual Machine (What are the differences?)
As mentioned before it is a cloud platform that can build highly scalable websites.
The characteristics of virtual machine are:
- Run web application on virtual machines in Azure as IaaS (Infrastructure as a Service) environment
- You have more administrative control on machine by having the control over the operation system, configuration and installed software and services.
- Good option for quickly migrating complex on-premises web applications to the cloud because machine can be moved as a whole.
- Must manage your virtual machine images and application architecture completely at the infrastructure level.
If you need more about the differences this Article make a good comparison.
Azure App Key feature
- Supporting many languages and framework such as ASP.NET, NodeJS, Java, PHP
- DevOps optimization: Set up continuous integration and deployment with many source control
- High availability by scaling up and out manually or automatically
- Choose from many application templates that are available on Azure Market place
- Dedicated tools in Visual Studio streamline the work of creating, deploying, and debugging.
App Service Plans
Azure App Service has different plans:
Free and Shared Service Plan
- Ideal for experimenting with the platform and for development and test scenarios
- Use Free Plan to quickly evaluate platform and convert the app at any time to one of the paid plans without delays or downtime.
- Shared Plan allows you to develop and test in an environment with features such as SSL, domain names, and more before production and is suitable for low traffic sites.
Basic Service Plan
- Designed for apps that have lower traffic requirements
- Do not need more advanced auto scale and traffic management features.
- Built-in network load balancing support automatically distributes traffic across VM instances.
Standard Service Plan
- Designed for production API, Mobile, and Web apps.
- There are no limits on the number of apps/domains you can host using the Standard service plan.
- Built-in network load balancing support automatically distributes traffic across the VM instances.
- Includes built-in auto scale support that can automatically adjust the number of VM instances running to match your traffic needs.
- Includes built-in backup support.
Premium Service Plan
- Designed for production apps
- Supports larger numbers of scale instances, additional connectors, and BizTalk capabilities.
- Including all the advanced capabilities found in the Standard plan.
- offers the ability to create App Service Environments which provide full isolation and operate in the customer’s virtual network and can scale up to 50 instances (more available upon request).
Microsoft provides a good comparison between different plans in this article.
If you need to know about the price of each plan you can visit this link
App Servics Application Types
- Web Apps: Host websites and web applications
- Mobile Apps: Host back end for mobile applications
- API Apps: Host RESTful APIs
- Logic Apps: For automating business processes and integrating systems and data across clouds without writing code
Create a Website
In order to create a new website in Azure:
- Open Azure Portal
- In the left side pane, Click on New button
- Press on See All button in order to see all available services
- You will see there are 2 option for create a new website. There is a Web App and Web App + SQL, the difference between them is the second option create a new Database for your website. In this Article we will proceed with Web App option
- After Choosing Web App, there is a tab that containing useful link and a small brief about the service, you need to click on Create button
- Enter your App name, choose the subscription and the resource group
- Press on App Service Plan in order to select your plan
- Click Create New Plan Button
- Enter App Service Name, Choose Location and the Pricing tier. in this article we are using the Standard Plan
- Click on Create button
Now It is created successfully.
After creating your website, you can go to service dashboard in order to change any of its configuration. In this section you will find definitions for dome tabs.
- Overview: it is a tab where you can find basic information about the Website like. the default URL, FTP URL, Resource Group name
- Deployment Credentials: Where you can change the credentials of the FTP user account
- Deployment Options: Where you can integrate with any of source controls in order to deploy on this service.
- Deployment Slot: it is one of the most important features on Azure Website, there is a section will define it.
- Scale Up & Scale Down: Where you can Scale Up\Down your App Service Plan.
- WebJobs: Where you can a program or Script with type whether it is Continuous or when it triggered
- Application Settings: Where you can edit you Configuration like .Net framework version, define app settings and connection string
It provides you to create a new slot with different or same configuration in order to validate your build before going to production.
you can create staging environment and deploy on it first. Then after testing and validation you can swap Staging with the Production without changing configuration
Settings that are swapped:
- General settings - such as framework version, 32/64-bit, Web sockets
- App settings (can be configured to stick to a slot)
- Connection strings (can be configured to stick to a slot)
- Handler mappings
- Monitoring and diagnostic settings
- WebJobs content
Settings that are not swapped:
- Publishing endpoints
- Custom Domain Names
- SSL certificates and bindings
- Scale settings
- WebJobs schedulers
To know more about Deployment Slots and how to create it, visit this link
Azure Web App provides different methods to deploy:
- Web deploy: by downloading publish profile from overview tab and importing it in Visual Studio, then choose to publish from visual studio. it will publish the new or modified files
- FTP: using any FTP program you can copy your build to the server, you can find the FTP URL and the credentials from overview tab
- Cloud based environment: you can deploy from OneDrive or DropBox, you can go to Deployment option tab in your Website settings and configure your build.
- Source Control: deploy from source control TFS, GitHub, Bitbucket or External Repository, you can go to Deployment option tab in your Website settings and configure your build.