Microsoft Azure Overview for Developers
In this module you will get a broad overview of Azure, and the different options for getting your applications
in the cloud.
- Overview of Microsoft Azure
- Usage Scenarios
- Software as a Service (SaaS)
- Platform as a Service (PaaS)
- Infrastructure as a Service (IaaS)
- The Azure Management Portals
- Azure Components
App Service Plans
When creating web, API or mobile applications. The content you provide has to be served somewhere with certain
requirements, like CPU, memory, scaling, .... Microsoft has created Service Plans to allow you to easily decide
on the capacity you may need. The service plan itself determines the region, scaling, and instance size of your
app services. In short, a service plan defines the resources you might possibly need to host your
application as well as which datacenter to host them in, the more resources you need, the higher the price.
- What is an App Service?
- Purpose of Service Plans
- Creating a Service Plan
- Scaling a Service Plan
- Moving and Cloning Apps to other Service Plans
Deploying Resources with ARM and Bicep Templates
The Azure Resource Manager allows us to group different parts of an application together in a resource group. It
also allows us to deploy different parts as one whole by using ARM and Bicep templates.
- The Azure Resource Manager
- Declarative syntax for ARM Templates
- Getting ARM-templates for your Deployed Resources
- Creating Resources with Bicep
- Deploying with Templates
App Services: Web Apps
Adding your website or API to Azure can easily be done with Web Apps. In this module, you will learn how to create
them, and the different deployment options.
- Deploying from Visual Studio
- Configuring App Settings, TLS, Domain Names and Backup Scheduling
- Monitoring your Web App
- Running and Testing Locally
- Spinning up Multiple Website Instances
- Working with Deployment Slots
- API Metadata and CORS
- API Management
- LAB: Festival Web App
Storing your Data in the Cloud
There will often be the need to store data in the cloud. Microsoft offers different ways of storing data within
a Storage Account depending on what kind of data you would like to store. In this module, you will learn more
about the storage options available to you in Microsoft Azure: things like Blob, File, Queue and Table-storage and how
to implement them into your website.
- Advantages of Storing Data in the Cloud
- Microsoft Azure Storage Concepts
- Storage APIs: Blob, File, Table and Queue
- Securing your Storage with Shared Access Signatures
- Using the Azure CDN in your Websites to Serve your Assets
- LAB: Storing Festival Pictures
Brokered Messaging in the Cloud
An important part of application design is integration by sending messages through a message broker.
In this module, the focus is on Queues, Topics, and Subscriptions. These can
be used for sending messages between the different parts of your cloud application.
- Using Service Bus Queues for Decoupling Applications
- Dispatching Messages with Topics and Subscriptions
- Adding Filters to Subscriptions
- LAB: Eventual Consistency with Service Bus Topics
Serverless Computing with Azure Functions
In certain cases, the only thing you need, is just a piece of code that has to be executed. You don't care about
the details of the infrastructure, i.e., the hardware, scaling, ... You just need it to execute somewhere based on some
event, like an HTTP call, a file was added to storage container, a message was added to a Service Bus Queue, ...
This is also referred to as serverless computing. Microsoft Azure offers Azure Functions as a way to provide
- Serverless Azure Functions
- Development Environments
- Triggers and Bindings
- Hosting and Scaling
- Creating Workflows with Durable Functions
- LAB: Moderate Content using Functions and Cognitive Services
Serverless Computing with Logic Apps
Serverless computing has many faces. E.g.: azure functions allow you to add serverless code in the cloud. Another one, which you will
see in this module is Logic Apps. Logic Apps is a more visual way for creating event-based functionalities.
- Workflow-like Logic
- Triggering a Logic App
- Connectors and Actions
- Controlling the Flow: Conditions, Variables, and Iterations
- LAB: News gathering, translations and using your own APIs
Azure SQL Database
Many business applications store their data in a relational database. When creating your
applications in the cloud, several relational database solutions exist. Azure SQL databases is Microsoft's way of
providing relational databases in the cloud, without the need of setting up your own virtual machine with SQL
- Features and Service Tiers
- Azure SQL Server and Azure SQL Database
- Comparison with on-prem SQL
- Backups and Replication
- Authentication and Firewall
- LAB: Storing Structured Data in the Cloud
Securing your Applications and APIs with the Microsoft Identity Platform
Azure Active Directory is a cloud-based identity and access management tool. It can easily be used to add identity to
your existing applications and thus securing them. Besides identity management it can also be used to set up
OAuth flow to grant rights to your applications.
- Azure Active Directory
- Basic Principles: Users, Groups, App Registrations, Roles and Scopes
- Tokens and Claims
- Authentication Scenarios
- Microsoft Authentication Library
- LAB: Securing a Web API
Eliminate Credentials using Managed Identity
Where do you put your sensitive data, like passwords, certificates, connection strings, etc.? In the application itself? In the configuration files?
But what if you really want to keep them secret? You could put them in the Azure Key Vault. But how do you access Key Vault without storing credentials in the app itself?
The answer lies in Managed Identities.
- System-Assigned and User-Assigned Managed Identities
- Storing secrets using Azure Key Vault
- Accessing Blob Storage, Azure SQL and Service Bus
- LAB: Accessing Azure SQL and Storage using Managed Identities
Logging and Monitoring your Applications with Application Insights
In this module, you will learn about Applications Insights which allows you to detect and diagnose exceptions
and application performance issues in the cloud. You will learn how to implement Applications Insights for your
website to monitor your backend and frontend behavior.
- Enabling Application Insights
- Diagnosing Failures
- Diagnosing Dependencies
- Custom events and using Metrics Explorer
- Availability and Performance
- Using Alerts to Detect Live Problems Early
- Snapshot Debugging
- Power BI Dashboards
- LAB: Adding Application Insights to the Festival Web App
Once you have your website running, you might need to make it faster. Caching is one of the very first
things you can implement to increase performance. Redis Cache is a popular open-source cache and is available as a cloud service on Azure.
In this module, you will learn more about implementing Redis Cache in your websites.
- What is Redis Cache
- Data Types you can use in your Cache
- Accessing the Cache
- Redis Messaging
- Implementing Redis Cache in your Website
- LAB: Speeding up Data Retrieval using Redis
Storing your Data in Cosmos DB
Cosmos DB is a globally distributed NoSQL database service with elastic scalability and allows for multiple
types of storage and APIs.
- What is Cosmos DB
- Scaling and Partitioning
- Using Document Databases using the SQL API
- Using Document Databases using the MongoDB API
- Using Graph Databases using the Gremlin API
- Using Key-Value Databases using the Table API
CI/CD with Azure DevOps
One of the options for deploying app services is by connecting to source code repositories. You will learn how
to enable deployment from Azure DevOps, and how to enable continuous integration and delivery (CI/CD).
- DevOps Lifecycle
- Release Management
- LAB: Adding a Web Project to Azure DevOps
Azure Static Web Apps
Azure Static Web Apps is a service that automatically builds and deploys full stack web apps to Azure from a GitHub or Azure DevOps repository.
E.g., an Angular application is just a collection of static files and doesn't really require a backend except for API calls.
Azure Static Web Apps makes it easy to deploy and scale such an app.
- Static Web Apps
- API support with Azure Functions
- Integrate with a GitHub Repository
- Automated and Distributed Deployment
- LAB: Creating a Static Web App