Azure App Services make it really easy for developers to deploy and manage their applications. They take away all the complexity of dealing with servers, which greatly simplifies the life of a developer. The way that Azure App Services work creates a few limitations that all developers need to understand. This article highlights some of those.
Typically, when we are deploying an app or troubleshooting application problems, you would tend to remote into the server to look at log files, review IIS settings, look at event viewer, etc. When you first start using Azure Web Apps, you have to get used to this and learn about the other ways of doing most of these functions. Deploying code is done via Visual Studio, git, a build server, or FTP. Viewing App Service log files, event viewer, running processes, and other tasks can be accomplished via the kudu console, Stackify, and/or Azure portal.
One of the biggest benefits of Azure App Services is also a big limitation. You don’t have to manage Windows Server at all and Microsoft is completely responsible for everything. But, you also have no access to install virtually all 3rd party software. This can be a negative if your corporate IT uses traditional monitoring tools like Nagios, SolarWinds, Dynatrace, Splunk and many others.
There are some vendors who have adapted their products to work with Azure App Services, like Stackify’s Retrace product, but there are very few. You can check the Azure marketplace to look for potential solutions. Do note that some of the listed products may only work for virtual machines and not Azure Web Apps.
If you are planning to move an app to Azure, you may need to think about how to accomplish certain tasks that your IT department may require. Like how to extract and archive all of the IIS logs for an Azure Web App for security and auditing purposes.
Performance counters can be a pain to work with. But they are critical to understanding key metrics about IIS, applications, and the .NET CLR. Without performance counters there is no way to monitor things like garbage collection, IIS queuing and a lot of other data that can be critical to troubleshooting weird performance problems.
Sorry, but you can’t view or monitor any of these key metrics that Microsoft recommends in Performance Counters for ASP.NET. We are anxiously waiting for Microsoft to add support for this!
Also, if you had been using performance counters to track your own custom app metrics, there are solutions for that. There are third party companies that have products built around these types of custom metrics, including Stackify (see our docs to learn more).
If you are using Visual Studio, deploying your application to Azure is just a couple of clicks. You can also deploy your app automatically via git, Powershell, and other options. Azure automatically handles deploying your code to multiple servers and high availability. Deployments are very fast.
One of the best features is being able to combine multiple applications together. If you used Azure Worker Roles before, they required that each app had its own servers. You can save a lot of money by switching to App Services and combining your application together. If you want to separate them, you can just put them on different App Service Plans, which is more like different groups of servers.
You can automatically or manually autoscale your app out to use additional servers. Based on your App Service Plan, you can define the server size and the rules about autoscaling. Azure also automatically takes care of high availability and provides a 99.95% SLA.
Microsoft Azure offers pay-as-you-go pricing. It is very cost effective for small and medium enterprises. App Services also has built-in load balancers that help save infrastructure costs.
You only pay for the services that are active on your Azure account. With this flexibility, developers can purchase the services only when necessary during the development process.
Along with the security, given by the developer, Azure App Service also provides Infrastructure and platform security where the application is run securely on the cloud. App service provides layered security like multi-factor authentication to access the application. Azure App Service is also ISO and PCI compliant.
Azure has made it much easier to deploy your applications directly from various IDE’s like Visual Studio (with Azure SDK), Xcode, IntelliJ IDEA. It helps the developer on the first hand aiding to get deeper insights into the application development lifecycle covering the basic tasks of developing the application by debugging and other code integrations.
Azure SDK on Visual Studio makes all the instances first class citizens, making it easy to query the database hosted on one of the Azure App Services and make CRUD operations easier and live on Azure app.
Deployments slots are one of the best features for App Services. They essentially provide a duplicated environment for your app so you can deploy a new version to a “staging” slot to test before swapping to production. The best part is they don’t cost any money like they did with Cloud Services.
The bad news is you don’t have access to login to the servers. The good news is you don’t need to. All you have to worry about is deploying your app. Microsoft Azure will take care of deploying it to servers, keeping the servers running, and all the other stuff that nobody wants to spend time on. App Services do have various logs that you can access to troubleshoot application issues.
Site Extensions are essentially plug-ins that can add various types of functionality to your applications. Including various monitoring solutions, additional management functions, Let’s Encrypt SSL, Azure Service Profiler, and much more.
If you are in need of a good developer solution for monitoring the performance of your Azure applications, be sure to check out Stackify! We have been using Azure for 4 years and we have the best application performance monitoring solution for Azure & .NET developers available! If you’re ready to check out Stackify with your own data, click here to begin your free trial today.
Have questions about Azure? Hit us up on Twitter @Stackify and maybe we can help. We know a few things about building and scaling massive apps on Azure.