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
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, SSL, domain names and backup scheduling
- Monitoring your Web App
- Running/testing locally
- Spinning up more website instances
- How to implement traffic routing for A/B testing
- 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 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 for messaging in the cloud is the Service Bus. This one has different options like Relaying,
Notification Hubs, IoT Hubs, etc..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
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 big picture, i.e., the hardware, scaling, language, ... 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
- LAB: Moderate content using Functions and Cognitive Services
Serverless Computing with Logic apps
Serverless computing has many faces. E.g.: azure functions allows 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
- Adding your own API's as custom connectors
Azure SQL Database
Many business applications store their data behind the scenes in some relational database. When creating your
applications in the cloud, several relational database systems 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 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 secrets, 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
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 into 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 will want to make it load faster. Caching is one of the very first
things you might want to implement. Redis Cache is a popular open source based cache. 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 into 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 allowing 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
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 templates.
- The Azure Resource Manager
- The purpose of Resource groups
- Declarative syntax for ARM templates
- Getting ARM-templates for your deployed resources
- Creating templates in Visual Studio
- Deploying with templates
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 repository.
E.g., an Angular application is just a collection of static files and doesn't really require a backend except for a 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: Deploying a Static Web App