Learning: Azure Fundamentals
Tags: cloud, azure, learning
Published: 2021-01-26 13:51:21

In this post, I'll share a summary of some modules I studied for the Azure fundamentals certification, and share some resources that might help you take the exam 😃.

##  [#](#cloud-concepts-📙) Cloud Concepts 📙
Some key concepts to know about the cloud are the types of cloud services: Infrastructure as a Service (IaaS), Platform as a Service (PaaS), and Software as a Service (SaaS). The difference between them is basically what is considered your responsibility, and what is considered the **cloud provider's responsibility**. I think [this blog post](https://medium.com/@pkerrison/pizza-as-a-service-2-0-5085cd4c365e) explains in more detail with the famous Pizza-As-A-Service example.

##  [#](#core-azure-services-📕) Core Azure Services 📕

### Virtual Machines (VM)
This is the cloud service I'm least familiar with (I use more PaaS offerings like App Service), so it's the one I spent more time on. That is not to say it'll come up often in questions on the exam, only that it's an area that has interesting and important topics to study and learn.

One important topic to know about VMs is **availability zones** (AZ) and **availability sets** (AS). A difference between the two is that AZ is a newer concept, so they are available in fewer regions, plus they have a **greater SLA than AS**. 

Imagine in your use case you need more than one VM for availability and/or fault-tolerance reasons. We want to have different VMs in different availability zones since each zone is in a physically separate location within a region.

Availability sets provide us a way to make our applications running in VMs fault-tolerant and **update-tolerant**. What I mean by update-tolerant is that our application keeps running even if there are maintenance or security updates on the physical hardware of our VM. This is possible with update domains and fault domains. I found [this video](https://www.youtube.com/watch?v=cw5UTSfR4EM&list=PLBfufR7vyJJ4sJX_1LAiQt9GTRioEc5Ld&index=28) that explains these two concepts well.

### AI
In Azure, we have some services related to AI: Azure Machine Learning, Azure Cognitive Services. Here is the appropriate use case for each:
- Use **Azure Machine Learning** if you want a tool that lets you bring your own data and **train models** over that data, making the best model available through a service
- Use **Azure Cognitive Services** if you want to feed your data to **pre-trained models** to get predictions on or data analysis

Here is a [good resource](https://docs.microsoft.com/en-us/learn/modules/ai-machine-learning-fundamentals/3-analyze-decision-criteria) that goes more in-depth about the scenarios to use each Azure cloud service.

### Serverless
In Azure we have two serverless computing services:
- **Azure Functions** can be often used for integration purposes, for example, to integrate two Azure cloud services. We can connect an Azure Function to the 
change feed of Azure CosmosDB, getting events about changes to documents, or we can receive events from Azure Event Hubs.
- **Azure Logic Apps** is a low-code/no-code development platform, and can also be used for integration purposes. Logic Apps connectors are the piece of software that acts as the
"integrator", for example, there are connectors for Salesforce, SAP, Oracle DB, and file shares.

The key decisions to choose one from another is if your task is **orchestration based** or not, and for **pricing**. For an orchestration based task then Logic Apps are the better solution since they were designed for that use case. You can however choose to use Azure Functions for orchestration tasks with Durable Functions.

## [#](#some-tips-✍️) Some tips ✍️
Here are some tips you might find useful for the exam:
- We need to consider multiple points of failure when using more than one cloud service, which brings us to **Composite SLAs**. They are calculated by multiplying both service SLAs
- Azure Distributed Denial of Service (DDoS) protection has a good basic free service, which is enabled by default
- We can use ARM templates but learning to use the Azure CLI or Powershell is also a great way to automate our work

## [#](#conclusion) Conclusion 

This concludes my short summary of notes for the Azure Fundamentals certification. I didn't cover the modules about security, pricing, or support as I need to study them more. At least I want to understand NSGs, VNets, and the pricing calculator. 

While writing this, I searched and studied some topics more in-depth, so I'm glad I did this since this blog post helped me deepen my knowledge. 

I also hope this helped you and if it didn't because I missed a major topic you needed help with, please write in the comments as I'd like to help as much as I can 😀. Plus, it might be a topic I overlooked and don't know much about either, meaning it becomes an even greater reason to learn it 😁.

## Resources
- [Azure Fundamentals Learning Paths](https://docs.microsoft.com/en-us/learn/certifications/exams/az-900#two-ways-to-prepare)
- [Microsoft Azure Virtual Training Day: Fundamentals](https://www.microsoft.com/en-ie/training-days?activetab=0%3aprimaryr4#primaryR3)
- [Microsoft Azure Fundamentals (AZ-900) Full Course by Adam Marczak](https://www.youtube.com/playlist?list=PLGjZwEtPN7j-Q59JYso3L4_yoCjj2syrM)