Special Offer: My C#/.NET Bootcamp Course is out now. Get 10% OFF using the code FRIENDS10.

The world is spinning fast. It’s true for anything in software engineering but especially true when it comes to cloud services. Ten years ago, it was not there, and in 2019 it’s everywhere. If you want to get started, it can be quiet overwhelming.

There is Microsoft Azure, Amazon AWS, Google Cloud Platform, the IBM Cloud to name only a few big players in the space. How you do start? What platform do you choose?

Getting started with cloud platforms can be challenging. This article is targeted towards developers who want to get started and don’t know how or why they should do it. I hope I can help you get started using Microsoft Azure for your projects.

My biased background

This article is obviously (as the title suggests) biased towards Microsoft Azure. I started playing with Azure when it was released (also known as made general available) in 2010 when it was initially named Windows Azure.

I think that Microsoft Azure is a platform from developers for developers. At least the services I consider relevant to single developer solutions or for small teams are manageable with developer skills and do not need a massive administrator, security or IT pro knowledge.

I have not tried other platforms, but friends tell me that other providers do often have more functionality which makes it harder to get started. Microsoft incorporates the F5 principle from its IDE Visual Studio to the cloud. It’s designed to get people quickly started.

What is Microsoft Azure?

Microsoft Azure is the cloud platform provided by Microsoft. Microsoft is well-known for its .NET platform and its programming languages including C#, VB.NET, F#, and others. It’s important to note that Microsoft Azure is not limited to Microsoft technologies but embraces open-source, the Java and JavaScript communities as well as its .NET community.

Microsoft Azure

I like to think about Microsoft Azure providing everything I need that I cannot buy myself or that I do not want to run myself. Examples are web servers for hosting websites, virtual machines to set up continuous integration pipelines, and much more.

There are many entry-level services mentioned above, but there are also advances services designed to help to build large distributed systems and high availability. In this article, I’m going to assume that you’re a developer as I am and that you care about the entry-level services such as web hosting, API hosting, MSSQL or NoSQL databases and other entry-level services.

What are the benefits?

There are a few benefits to using Microsoft Azure or another cloud platform instead of running everything on premise. I want to name only a few which I consider right in most scenarios.

  • Cost savings is an essential factor. If you don’t have to own the hardware, you can use it if you need it and drop it if you don’t need it. It is especially helpful in scenarios where you require a massive amount of computing power over a short period.
  • Security is another factor. If you don’t own the machine, you do not need to patch Windows or any other software or operating system running on that machine except for the part you are responsible. In general, it’s a good idea only to take ownership of what you need to have control over and let Microsoft handle everything else.
  • Flexibility is also very valuable. You can choose what resources you need, and they are instantly available for usage. You do not need to ask somebody to set up a server or to buy some stuff. You can log in to your Azure portal and request the resources you need, and within only a few seconds or minutes, you are good to go. If you don’t need the resources anymore, you delete them.

There are many more benefits depending on the situation.

Why did I start with Microsoft Azure?

Back in the days, I was building a mobile app which required me to create a backend API to access data. My first draft was a PHP backend connected to a MySQL database. Both hosted on my web hosting provider Kreativmedia. The reason I wrote my backend using PHP was that I was limited to this programming language if I wanted to run the backend on my web hoster.

I wanted to build my backend using ASP.NET WebAPI, and therefore I looked around where I could host my backend. It was precisely the time when Microsoft Azure was announced. I took the opportunity and started playing with the web app service. It was renamed a few times since it got released and there were a few features added, but in its core, it’s still the same.

The one thing that amazed me was the opportunity to create and delete applications very quickly. If I wanted to create a test or staging version I could do so within only a few minutes. That’s great!

Where would I start today?

There are many more services available than there was in the beginning. The Azure portal got optimized and redesigned a few times. There are so many services available that you can easily get lost.

If I would start again, I’d recommend starting with the App Service. You can go through all the steps required creating an Azure account, create a web app, configure it and creating an actual application and deploying it to the cloud. It is a short feedback circle, and it allows you to experience what it means to work with the cloud.

Microsoft is very developer friendly and allows you to deploy directly to Azure from Visual Studio. Although this is not recommended to use for production, it is a feature that helps you to get started with using Azure. You can even add different profiles if you want to deploy to different targets on Azure.

You can also create databases or Azure Functions. HD insight is a useful tool that lets you get insight into how the user uses your app. All of them are utilities you can use for modern applications.

Azure Functions is the serverless environment on Azure and can be compared to Amazon Lambdas. It’s a service where you do not have to create a complete web application (e.g., ASP.NET Core or NodeJs). Instead, you write only the application code you need to execute, for example calling a web service or saving data to a data store.

What are common pitfalls?

When I first started, I was afraid of the pricing model. If you want to create a virtual machine you have to choose a pricing plan. Prices are usually estimated for a continual use during a month.

It means that if your virtual machine runs 24/7 for a month, you have to pay the amount stated next to the plan. If you use your virtual machine only a few minutes or hours to play around it will be a lot cheaper. I suggest calculating the costs per hour to decide which plan you want to use.

Some services are split into different pricing models. If you want to run a virtual machine, you get charged for the compute power of the virtual machine (CPU and RAM) and additionally for the storage (HDD or SSD). Those two resources add up to your total price. I did not know about that from the beginning.

How to do it right?

If you are planning a solution, you want to make sure that you use the services best suitable for your problem. Sometimes Azure Functions might be a good choice; sometimes a good old fashioned web app does its job as well.

In my opinion, it is essential to make the right decision between full power, management effort, and comfort. A web app is an easy solution, and if it fits your requirements, it’s a great place to start. You can split your project into different web apps or Azure functions along the road. You don’t have to start with the fanciest architecture from the beginning.

Splitting your solution into different pieces allows you to deploy independently and scale independently. Let’s say your application gets used a lot, and you need to improve its performance. If you’re running on a single web app, you have to change your app service plan and pay more. And if your using Azure Functions your charged based on computing usage.

Most services come with a unique pricing model, and it’s a good idea to consider it when you decide which service you want to use for your project.

Luckily, Microsoft does not let you alone, and they provide you with a Pricing calculator, and you can set a spending limit in your account. Microsoft Azure also has a cost center which shows you a cost breakdown which can help you improve your usage a lot.

Free credits

One of the things Microsoft does an excellent job is providing resources to developers. If you’re an enterprise developer and have an MSDN (Microsoft Developer Network) subscription from your employer chances are that have access to free credits. Make sure to check it out.

I had about 140$ per month of free credits when I was an employee of a small business which had an MSDN subscription for its developers.

What to learn next?

If you start by creating a web app and deploying from Visual Studio to Azure, you might want to check out other deployment strategies. Another thing you could do is to check out advanced services. It depends on your goal and your project.

If you want to go into production with your applications, you should also consider security. Depending on which services you use this might be entirely done by Microsoft (Azure Functions), entirely up to you (Virtual Machines), or half-half (Web apps). It’s always a great idea to read through guidelines and security advice.

I wrote a few other articles on this blog which can you get started. Keep in mind that the portal has changed and some things might be found at different locations.

Top 5 Resources

I can provide you with a few resources that help me learn more about Azure and get news about the current development of the platform. Keep in mind that Azure is growing fast and changes are applied daily.

  • Azure Podcast is a project created by a group of Microsoft employees. They usually have a short section where they talk about recent changes to the platform and announcements made by different teams on Microsoft. The central part of each show contains an interview with a guest about a specific topic. It’s a weekly show usually released on Thursdays. At the time of this writing, they already released their 264th episode on January 31st, 2019.
  • DotNetRocks is another podcast which currently airs twice a week. It targets as the name implies a broader audience, but according to their filter on their website, they already released more than 180 episodes about Microsoft Azure and its services. In my opinion, it is a must-listen-to show for any .NET developer anyway.
  • The Microsoft Azure blog is another excellent resource. They announce changes to the platform, information about updated terms of service, and they publish articles about the different services. They publish up to two articles every day.
  • BuildAzure.com is a blog maintained by Chris Pietschmann. Chris is a 7-time Microsoft MVP, certified Solutions Architect and certified trainer and he’s not a Microsoft employee and puts his outside view into his articles. He also publishes an Azure Weekly every Monday.
  • Thomas Maurer is another guy blogging about Microsoft Azure. He is a Swiss developer, and he recently joined Microsoft as a Cloud Advocate. Thomas has many in-depth articles about specific topics including virtualization, Windows Server virtual machines, the Azure Stack and much more. He also has a few YouTube videos on his channel.

There is also a Top 20 Microsoft Azure Resources list on Feedspot.

Let me know in the comments if this article was helpful and which Azure services you’ve used and what your experiences are.

 

Claudio Bernasconi

I'm an enthusiastic Software Engineer with a passion for teaching .NET development on YouTube, writing articles about my journey on my blog, and making people smile.