Azure Introduction (Exploring .NET E2)
Published on 2022-03-31 by Ruben Heeren
In this entry of Exploring .NET you'll get an introduction to the Microsoft Azure Cloud. In the previous episode we looked at .NET as a whole. In the next episode we'll build a minimalistic Web API using Azure Functions and Azure Cosmos DB.
If you’re new here, welcome! I’m Ruben and it’s my goal to help you learn Software Development with .NET.
Links to the sources I used can be found at the end of this blog post.
If you prefer video content, check out the video version of this blog post below:
Azure is really opening up to a wider audience by offering generous free tiers and allowing anyone to create a free account.
If you're interested in .NET development it's a good idea for your career to be able to work with Azure.
So let's start at the beginning.
What is Microsoft Azure?
The Microsoft Azure cloud (or just Azure) cloud platform is more than 200 products and cloud services. With Azure you can build, run, and manage applications across multiple clouds, on-premises (meaning servers running in a company), and at the edge (meaning cloud and on-premises combined, also called hybrid), with the tools and frameworks of your choice.
If you don't know what the cloud is: The cloud is made up of servers in data centers all over the world. Moving to the cloud can save companies money and add convenience for users. Big companies like Microsoft, Amazon and Google already had to make big investments in datacenters for their own infrastructures. Now they are basically renting these datacenters out to the public in a productized way. Microsoft offers Azure, Amazon offers AWS and Google offers the Google Cloud Platform. These are the 3 biggest players.
In 2021, the combined cloud market did $180 Billion in revenue. Amazon's AWS has the biggest market share of 33%. Microsoft's Azure comes in second with a market share of 21% and the Google Cloud comes in third with 10% of the market share. To date, Microsoft has Azure data centers in 140 countries and serves more global regions than any other cloud provider. All these facts indicate that it's good time to learn Microsoft Azure. Source
SaaS vs PaaS vs IaaS
A topic that confused me were these 3 cloud abbreviations. If you're doing anything in the cloud you see these coming up a lot so let's demystify them. These are types of products offered "as a Service". We have SaaS, which stands for Software as a Service, PaaS, which stands for Platform as a Service and IaaS, which stands for Infrastructure as a service. This handy infographic from https://azure.microsoft.com/en-us/overview/what-is-paas/ sums it up nicely.
Here are some well known examples per platform type: <br> SaaS: Office365, Gmail, and Dropbox <br> PaaS:: Azure App Service, Azure Search and Azure CDN <br> IaaS: Azure Container Service and Azure Virtual Machines
Software as a Service (SaaS)
Software as a Service, also known as cloud application services, represents the most commonly utilized option for businesses in the cloud market. SaaS utilizes the internet to deliver applications, which are managed by a third-party vendor, to its users. A majority of SaaS applications run directly through your web browser, which means they do not require any downloads or installations on the client side.
SaaS provides numerous advantages to employees and companies by greatly reducing the time and money spent on tedious tasks such as installing, managing, and upgrading software. This frees up plenty of time for technical staff to spend on more pressing matters and issues within the organization.
Platform as a Service (PaaS)
Cloud platform services, also known as Platform as a Service (PaaS), provide cloud components to certain software while being used mainly for applications. PaaS delivers a framework for developers that they can build upon and use to create customized applications. All servers, storage, and networking can be managed by the enterprise or a third-party provider while the developers can maintain management of the applications.
No matter the size of your company, using PaaS offers numerous advantages, including cost-effective development and deployment of apps, scalability and high availability.
Infrastructure as a Service (IaaS)
Cloud infrastructure services, known as Infrastructure as a Service (IaaS), are made of highly scalable and automated compute resources. IaaS is fully self-service for accessing and monitoring computers, networking, storage, and other services. IaaS allows businesses to purchase resources on-demand and as-needed instead of having to buy hardware outright.
IaaS offers many advantages, including that it gets easier to automate deployment of storage, networking, servers and processing power (compared to on-premises). Hardware purchases can also be based on consumption so that makes it harder to waste money on a too powerful server. Last but not least, IaaS products are highly scalable.
Exploring Some of the Most Well-Known Azure Services
So Azure is big, not just with the amount of products and services offered, but also in market share. According to Microsoft, 95% of Fortune 500 companies use Azure in some capacity. Let's continue by exploring some of the most well-known services Azure offers.
Azure DevOps is one of the first Azure cloud services launched into the market. It allows you to collaborate on software development through source control, work tracking, and continuous integration and delivery, both on-premises and in the cloud.
Azure DevOps consists of 6 main services:
Azure Boards <br> Deliver value to your users faster using proven agile tools to plan, track, and discuss work across your teams. You can track work with configurable Kanban boards, interactive backlogs, and powerful planning tools.
Azure Pipelines <br> Build, test, and deploy with CI/CD that works with any language, platform, and cloud. Connect to GitHub or any other Git provider and deploy continuously. Run in parallel on Linux, macOS, and Windows, and deploy containers to individual hosts or Kubernetes.
Azure Repos <br> Get unlimited, cloud-hosted private Git repos and collaborate to build better code with pull requests and advanced file management.
Azure Test Plans <br> Test and ship with confidence using manual and exploratory testing tools.
Azure Artifacts <br> Share Maven, npm, NuGet, and Python packages from public and private sources with your entire team. Integrate package sharing into your CI/CD pipelines in a way that’s simple and scalable.
Extensions Marketplace <br> Access extensions from Slack to SonarCloud to 1,000 other apps and services—built by the community.
Azure Blob Storage
Azure Blob Storage is Microsoft’s object storage cloud solution. It is optimized for storing huge amounts of unstructured data. Meaning data that doesn’t belong to a particular data model or definition.
It's designed to add images or documents to the browser directly, writing log files, streaming media such as audio or video files and storing data for backup and archiving purposes.
Azure Virtual Machines
With this service you can run SQL Server, SAP and Oracle® software and high-performance computing applications on virtual machines (VMs). You can choose your favorite Linux distribution or Windows Server. You can get VMs optimized for specific workloads: we have Burstable VMs, Compute-optimized VMs, Memory-optimized VMs, and general-purpose VMs. The per-second billing makes this service even more desirable for businesses.
You can deploy virtual machines featuring up to 416 vCPUs and 12 TB of memory. Get up to 3.7 million local storage IOPS per VM. Take advantage of up to 30 Gbps Ethernet and cloud’s first deployment of 200 Gbps InfiniBand.
A big advantage of virtual machines over on-premises machines is that you pay only for what you use. If a on-premises machine isn't always needed, some money is wasted. If the need arises, you can scale from one to thousands of VM instances in minutes with Azure Virtual Machine Scale Sets
Azure Cosmos DB
Azure Cosmos DB offers a globally distributed, fully managed NoSQL database service. Think MongoDB but from Microsoft. This distribution involves transparent multi-master replication. It is designed to ensure single-digit millisecond response times. This guarantees speed at any scale. As it is fully managed, it does database administration by automatic management, updates, and patching. Cosmos DB is also a multi-model with wire protocol-compatible API endpoints.
Azure Active Directory
This service is a complete identity and access management solution with integrated security. The Azure Active Directory (Azure AD) enterprise identity service provides single sign-on, multifactor authentication, and conditional access to guard against 99.9 percent of cybersecurity attacks. The facility of single sign-on can help users gain simpler access to their apps from any location. It helps the employees sign in and access resources from both external and internal resources. Many consider it to be the next iteration of Microsoft's Active Directory that ran on Windows Server machines.
Azure Functions basically allow you to run and host single functions (or methods in OOP) in the cloud. This is called a serverless architecture, because instead of a full blown API web server you only have single functions with hopefully a few lines of code. This allows you to focus on the pieces of code that matter most to you, and Functions handles the rest. You can use Functions to build web APIs, respond to database changes, process IoT streams, manage message queues, and more. Instead of worrying about deploying and maintaining servers, the cloud infrastructure provides all the up-to-date resources needed to keep your applications running.
The Azure Portal
You can manage your Azure services via a web-based graphical user interface called the Azure portal. If you're a command line enthusiast don't worry, 99% of the things you can do in the Azure Portal, you can also do via the command line.
In summary, in the Azure Portal you can: <ul> <li>Build, manage, and monitor everything from simple web apps to complex cloud deployments. <li>Create custom dashboards for an organized view of resources. <li>Configure accessibility options for an optimal experience. </ul>
The image below shows what the Azure portal looks like when you first sign in (minus the dark mode).
Microsoft has given a lot of thought on how to best structure Azure customers and the services they need for their IT infrastructure. It is structured as follows: there is ONE Azure Account, I think usually the CEO or the CTO owns this. This Azure Account can have multiple Subscriptions. A common way to organize it is to give each department their own subscription. Then these Subscriptions use Azure services. Individual services such as a Virtual Machine are called Resources. These Resources can then be grouped in little folders called Resource Groups.
The image below, coming from the Microsoft Introduction to Azure fundamentals learning module sums it up nicely.
Exploring Some Microsoft Azure Jobs
To end this episode, I want to explore some jobs that people that know Azure can do.
As more businesses flock to Microsoft Azure, demand for skilled cloud professionals is only going to increase. Right now, there’s nowhere near enough Azure talent around to fill the increasing number of roles on the market. Companies are battling to land the best candidates, driving up wages in the process, and putting those with the skills to do the job in a very comfortable position.
They say there’s no such thing as a job for life anymore, and in a fast-changing sector like tech, it’s certainly true that professionals need to keep upskilling throughout their careers to stay up to speed. But if you want to build a rewarding, lifelong career in tech, it is recommended to get on board with cloud.
According to IDC, almost 40% of all IT jobs will be cloud-focused by 2021. Serverless computing is slowly becoming mainstream, and those who start equipping themselves with valuable skills now will make themselves harder to replace for years to come.
Let's explore some of the jobs available to people that know Azure. There are many more roles out there, but I'll list some of the most well-known ones.
The role of administrator is a vital one across many technologies; admins keep their fingers on the pulse of their systems, installing, configuring, and monitoring everyday functions and ensuring everything is running as it should.
Azure Administrators need to have a good grip on topics like SQL databases, back up and disaster recovery, virtualization, high availability techniques to ensure their Azure platform is in top shape at all times. They’ll be expected to monitor the performance of Azure apps and services, perform audits, and proactively work to optimize functionality.
As an Azure Admin, you might be working in-house at an end user organization, overseeing its own Azure products and leasing with users to help them get the most out of the services. Or, you could be working for a Microsoft Partner, providing managed services to their clients and working on a number of different Azure instances or providing support for businesses migrating to the cloud.
If you want to get a head start on your Azure Administrator career, Microsoft has released a brand new role-based certification, especially for those interested in this position.
As of July 2019 the average salary of an Azure Administrator in the US is the following: <ul> <li>Junior (0-3 years): $80,000</li> <li>Mid (4-7 years): $100,000</li> <li>Senior (8+ years): $125,000</li> </ul>
Azure Developers build and deploy apps and services on the Azure platform. Having previous development experience is obviously a plus if you want to become an Azure Developer, as is being familiar with other Microsoft products like Powershell, Office 365, and Dynamics 365; all products that integrate with Azure.
As an Azure Developer, you’ll be charged with designing, creating, implementing, and maintaining solutions from technical infrastructure to apps. You’ll need to stay up to date with the latest developments in technologies and methodologies, and understand how to translate them into practical, reliable solutions that solve business problems.
Given the huge variety of products available on Azure, there’s a range of specialisms you could move into as an Azure Developer: developing for cloud storage, creating PaaS solutions, IaaS solutions, cognitive services like bots and AI, storage, or security to name just a few.
The corresponding certification for this role is Microsoft Certified: Azure Developer Associate.
As of July 2019 the average salary of an Azure Developer in the US is the following: <ul> <li>Junior (0-3 years): $115,000</li> <li>Mid (4-7 years): $150,000</li> <li>Senior (8+ years): $175,000</li> </ul>
Azure DevOps Engineer
Lastly, I want to cover the Azure DevOps Engineer role. Azure DevOps Engineers are responsible for bringing together people, processes, and technologies to deliver and improve first-rate products that meet user needs and business objectives on an on-going basis. That means architecting, designing, building, and implementing scalable Microsoft Azure solutions, and working across areas like virtual machine environments, storage, and network architecture.
The role of a DevOps Engineer involves extensive expertise, not only covering development and coding with PowerShell, .NET, and C#, but also system deployment and the wider operations. They need to understand DevOps strategy, how to roll out continuous integration and delivery, how to implement dependency management and application infrastructure, and how to develop roadmaps for current and future cloud deployments.
DevOps Engineers will work hand-in-hand with system admins, architects and developers, so need to have good soft skills like project management and communication to enable them to promote a DevOps culture across their organization.
As of July 2019 the average salary of an Azure DevOps Engineer in the US is the following: <ul> <li>Junior (0-3 years): $125,000</li> <li>Mid (4-7 years): $145,000</li> <li>Senior (8+ years): $185,000</li> </ul>
Microsoft Azure - What is Azure?: https://azure.microsoft.com/en-us/overview/what-is-azure/
Statista - Amazon Leads $180-Billion Cloud Market: https://www.statista.com/chart/18819/worldwide-market-share-of-leading-cloud-infrastructure-service-providers/
Microsoft Azure - Azure DevOps Services: https://azure.microsoft.com/en-us/services/devops/#overview
Microsoft Azure - Virtual Machines: https://azure.microsoft.com/en-us/services/virtual-machines/#overview
Intellipaat - Top Azure Services: https://intellipaat.com/blog/top-azure-services/
Microsoft Azure - Azure Active Directory: https://azure.microsoft.com/en-us/services/active-directory/#features
Microsoft Azure - Azure Functions: https://docs.microsoft.com/en-us/azure/azure-functions/functions-overview
Nigel Frank Blog - Azure jobs - https://www.nigelfrank.com/insights/microsoft-azure-jobs-and-how-much-they-pay
Microsoft Azure - What is PaaS? - https://azure.microsoft.com/en-us/overview/what-is-paas/
bmc.com - Saas vs Paas vs IaaS - https://www.bmc.com/blogs/saas-vs-paas-vs-iaas-whats-the-difference-and-how-to-choose/
If you're new to Azure and this blog post got you interested, I recommend studying the material for the Microsoft Certified: Azure Fundamentals certification exam next.
Thanks for reading.