5 Tips for Successful Azure App Development

cloudapps alexbennettBy Alex Bennett, Firebrand Training

Alex works for Firebrand Training, a Microsoft Gold Learning Partner. He has worked in the IT training and certification industry for the past 3 years. He writes regularly about Windows Server, Microsoft Azure and IT security.

There’s no better time to be developing applications for Azure, and increasing migration towards cloud – with enterprise support – could equal great opportunities for developers.

But cloud application development isn’t always straightforward. Whether you’re new to the cloud, or a seasoned pro, take a look at these 5 tips for successful Azure app development.

1. Pick your software development kit

Install the Azure SDK for a set of templates and tools that help you access cloud resources directly from Visual Studio. Use these tools to deploy scalable applications, configure diagnostics, create and manage app service resources and integrate data.

Microsoft offer a variety of software development kits (SDKs) that support:

  • .NET
  • PHP
  • Python
  • Ruby
  • js
  • Java

Developers experienced in writing Microsoft .NET Framework code will transition easily and can expect only a small learning curve when developing applications for Azure.

Azure also makes it easy to deploy and scale Java apps. More information can be found on the Java Developer Center.

2. Pick your App Service subscription

Azure App service is a fully managed ‘platform as a service’ (PaaS) that integrates with Microsoft Azure, allowing developers to build cloud applications for web and mobile clients across any platform or device.

App Service supports multiple programming languages, like .NET, Node.js, PHP, Python and Java, as well as a series of APIs.

Professionals developing web or mobile apps in Azure should consider using Azure App Service. But if you’re not ready to put down the cash, there’s also a Free version available. The Free plan is ideal for app testing environments, runs at a limit of ten web/mobile/API apps, 200 Logic Apps actions per day and includes one gigabyte of disk space.

Other plans are available - a Shared plan is designed for low-traffic sites and lets users develop and test apps. It’s similar to the Free plan but offers more live apps (100 web, mobile, or API apps). However, you’ll be paying monthly for this service and those above it.

Next up, the Basic plan provides unlimited apps, ten gigabytes of disk space and up to three deployment instances. Users also receive 200 Logic Apps actions per day.

The Standard service plan adds a number of Logic Apps actions per day – bringing the number to 10,000 – and also adds an extra 40 gigabytes of disk space.

The Premium service, designed for Enterprise scale and integration, includes 50,000 logic actions per day, and supports a maximum of 10 instances as well as App Service Environments, and 250gb of disk space.

azure_app_service_pricing

Prices will also change based on whether or you add additional data storage services, like DocumentDB or Azure Storage.

App Service pricing can be found in full here. You can also take advantage of the Azure Pricing Calculator for a more in-depth look at your Azure pricing and services.

3. Maximise performance of your apps with Azure

You can’t always predict how often, how long, or how intense the workload on your applications will be. In order to react to changes in load, Azure developers should set up Autoscaling.

By enabling Autoscaling, your apps will be dynamically allocated resources to match their current performance requirements. You’ll minimise runtime costs without the need for an operator to continually monitor performance.

To make full use of Autoscaling, your solution must be designed to be horizontally scalable – scaling by adding more machines, rather than power. For example, do not design solutions that require your code to always be running in a specific instance.

When expecting a high-load on your application, use a scheduled Autoscaling policy that starts a sufficient number of instances before the load is expected. This avoids any potential overloads that could prevent users from accessing your application.

One of the greatest benefits of the cloud is the ability to dynamically control the availability and scalability of your applications. Highly available applications react to change in availability, load and temporary failures in services and hardware.

Azure has many built-in platform features that support highly available applications, so be sure to follow the ‘high availability checklist’. Here are some quick fixes you can implement now:

Geo-Replication

Use active Geo-Replication with SQL databases. This Azure feature allows you to use up to 4 secondary databases across multiple regions which can be relied on in the event of a service disruption.

Without Geo-Replication, if planned maintenance knocks your database offline, your application will be unavailable until you can work to bring it back online.

Content Delivery Networks (CDN)

Use a Content Delivery Network (CDN) to take load off your servers by caching content in CDN locations across the globe.

This can decrease latency and can also form part of your protection from denial of service (DoS) attacks on your applications.

Traffic Manager

Traffic Manager can increase your applications resiliency by distributing your traffic across multiple Azure regions. Fail to use this service and you’ll be limited to a single region for resources.

This can increase latency to users outside of your region and will lower protection in the case of a region-wide service disruption

4. Stay secure

Azure developers must practice secure programming or they’ll risk opening their applications (and the businesses that use them) to vulnerabilities, like the catastrophic Heartbleed flaw.

Identifying security issues and fixing them during production can be hugely costly and time-consuming, so it’s well worth getting to grips with security best-practices before you start developing.

Azure developers must:

  • Stage regular penetration tests on their apps
  • Conduct regular logging and traffic monitoring
  • Disable remote debugging immediately after troubleshooting
  • Ensure web applications enforce HTTPS

Plus, as cyber threats become more sophisticated, developers should consider making use of Azure Security Center to defend their cloud applications.

Security Center provides an expansive security overview for your Azure cloud estate, including recommendations for securing your apps.

For an in-depth look at Security Center, take a look at this guide to Azure Security Center in 2017. Microsoft promises an abundance of new updates for Security Center in 2017, so now’s the ideal time to make use of it.

azuresecuritycentre

Azure App Service users should also take a look at this guide from Microsoft on how to secure your applications.

5. Invest in learning and stay up to date

As with any technology, it’s important to keep your knowledge updated, especially with the continuous stream of new Azure updates. Luckily, Microsoft make it easy to stay current with Azure, and third party offerings do a great job too.

Microsoft provide tonnes of free Azure training, primarily through the Microsoft Virtual Academy (MVA). Navigate to the cloud development courses section for 28 high quality video courses, tutorials and guides.

You can find additional video content on the Microsoft Azure YouTube channel. Whilst you might encounter some overlap with the MVA content, it’s still worth checking out to keep your knowledge sharp.

Azure courses are also widely available from official providers and are often used to support learning whilst studying towards Microsoft’s Azure certifications. A full list of Microsoft certifications can be found on Microsoft Learning.

There are also now a large range of free MOOC (Massively Open Online Courses) Azure training courses. These free online courses, provided through EdX, are ideal for both entry-level and seasoned developers looking to maintain or expand their Azure knowledge.

azure_moocs