Build, deploy, and manage applications on Microsoft Azure. Learn virtual machines, networking, identity, and DevOps. Prepare for AZ-104 and AZ-305 certifications.
It is the Monday before Black Friday. Your e-commerce client's on-premises servers are at eighty-five percent capacity. Marketing just announced a flash sale starting in two hours. They expect traffic to double. Your on-premises infrastructure cannot scale fast enough. You have two hours to migrate critical workloads to Azure.
This scenario plays out in companies around the world. On-premises infrastructure is fixed. You buy servers based on peak capacity projections, but those projections are often wrong. When traffic exceeds projections, you cannot add capacity quickly. You wait days or weeks for hardware delivery, then hours for installation and configuration. By then, the opportunity is gone.
Azure solves this problem through elasticity. You can provision new virtual machines in minutes, not days. You can scale your application automatically based on demand. You pay only for what you use. This is why ninety-five percent of Fortune 500 companies use Azure. It gives them the agility to respond to market opportunities without waiting for hardware.
When you have two hours to prepare for a traffic surge, you need tools that work. Azure Migrate is designed for exactly this situation. It assesses your on-premises workloads, estimates Azure costs, and guides you through migration.
The first step is assessment. Azure Migrate discovers your on-premises servers, analyzes their configuration and performance, and generates cost estimates for running the same workloads in Azure. This gives you confidence that your migration will meet your budget.
The second step is replication. Azure Site Recovery replicates your on-premises virtual machines to Azure. While replication is ongoing, your production environment continues running normally. Users experience no disruption. When you are ready to cut over, you initiate a failover. Azure spins up the replicated virtual machines, and within minutes, your application is running in the cloud.
The third step is optimization. Once your application is running in Azure, you can configure auto-scaling to handle the traffic surge. You set scaling rules based on central processing unit usage. When usage exceeds seventy percent, Azure automatically adds more virtual machines. When usage drops, it removes them. Your application handles the flash sale without manual intervention.
Azure offers multiple compute services, each designed for different application architectures. Understanding these options is essential for designing cost-effective, scalable solutions.
Virtual machines are the foundation of Azure compute. They give you complete control over the operating system, software, and configuration. You can run any workload that runs on Windows or Linux. Virtual machines are ideal for lift-and-shift migrations, legacy applications, and workloads that require custom software installations.
Azure offers a wide range of virtual machine sizes. B-series burstable virtual machines are cost-effective for development and testing. D-series general purpose virtual machines balance compute, memory, and network for most production workloads. E-series memory-optimized virtual machines are for databases and in-memory caches. F-series compute-optimized virtual machines are for batch processing and gaming servers. L-series storage-optimized virtual machines are for big data and NoSQL databases.
App Services is a platform-as-a-service offering for web applications. You deploy your code, and Azure manages the underlying infrastructure. App Services handles patching, scaling, and load balancing automatically. It supports multiple programming languages including .NET, Java, Python, Node.js, and PHP.
App Services plans determine the resources available to your applications. Free and shared plans are for development and testing. Basic plans provide dedicated virtual machines for production workloads. Standard plans include auto-scaling and staging slots for blue-green deployments. Premium plans offer enhanced performance and virtual network integration.
Azure Kubernetes Service, or AKS, is a managed Kubernetes container orchestration service. It simplifies deploying, managing, and scaling containerized applications. AKS handles the control plane, including the API server and etcd, while you manage the worker nodes. AKS integrates with Azure Active Directory for authentication and Azure Policy for governance.
Azure Functions is a serverless compute service. You write code that runs in response to events, and Azure handles the infrastructure. Functions scale automatically based on demand, and you pay only for the compute time you use. Functions are ideal for event-driven processing, data transformation, and scheduled tasks.
Azure Virtual Network is your isolated network in the cloud. It provides complete control over IP addressing, routing, and security. You can connect virtual networks to your on-premises network using VPN or ExpressRoute, creating a hybrid cloud environment.
A virtual network is the foundation of Azure networking. You define an IP address space, then divide it into subnets. Each subnet can have its own security rules. For high availability, you deploy resources across multiple Availability Zones. If one zone fails, your application continues running in another zone.
Network security groups are firewalls that filter traffic to and from Azure resources. They contain rules that allow or deny traffic based on source and destination IP addresses, ports, and protocols. Security groups can be associated with subnets or individual network interfaces. Rules are evaluated in priority order, and the first rule that matches determines whether traffic is allowed.
Azure Load Balancer distributes traffic across multiple virtual machines. It operates at Layer 4, making routing decisions based on IP address and port. You can configure health probes that monitor the health of your virtual machines. If a machine becomes unhealthy, the load balancer stops sending traffic to it.
Application Gateway is a Layer 7 load balancer. It makes routing decisions based on HTTP attributes like URL path and host header. It includes a web application firewall that protects against common web vulnerabilities. Application Gateway also terminates SSL connections, offloading this compute-intensive work from your application servers.
VPN Gateway connects your on-premises network to Azure through an encrypted tunnel over the internet. It provides a secure connection for hybrid cloud architectures. VPN Gateway throughput ranges from 100 megabits per second to 10 gigabits per second.
ExpressRoute is a dedicated private connection to Azure. It does not traverse the public internet, providing higher reliability, lower latency, and higher security. ExpressRoute speeds range from 50 megabits per second to 10 gigabits per second.
Azure Storage is a scalable, durable cloud storage service. It offers multiple storage types for different use cases, all accessible through a unified API.
Blob storage is for unstructured data. It is ideal for images, videos, documents, backups, and logs. Blobs are organized into containers, which are similar to folders. Blob storage offers several access tiers. Hot tier is for frequently accessed data. Cool tier is for data accessed infrequently, with lower storage cost but higher access cost. Cold tier is for data accessed rarely, with even lower storage cost. Archive tier is for data accessed very rarely, with the lowest storage cost but retrieval times of hours.
Azure Files provides fully managed file shares in the cloud. You can mount these shares using Server Message Block protocol, making them accessible from Windows, Linux, and macOS. Azure Files is ideal for lift-and-shift migrations of on-premises file servers and for shared storage across multiple virtual machines.
Queue storage provides reliable messaging between application components. It is ideal for decoupling application tiers and handling background processing. Queues guarantee at-least-once delivery and support millions of messages.
Table storage is a NoSQL key-value store for semi-structured data. It is ideal for storing large amounts of data that do not require complex joins or foreign keys. Tables provide fast access to individual rows and support querying by partition key and row key.
Azure Active Directory, or Azure AD, is Microsoft's cloud-based identity service. It provides single sign-on, multi-factor authentication, and conditional access for your applications and resources.
Azure AD Free is included with any Azure subscription. It provides user and group management, single sign-on for Azure services, and basic reports. Azure AD Office 365 is included with Office 365 subscriptions. It adds self-service password reset for cloud users. Azure AD Premium P1 adds conditional access, dynamic groups, and self-service group management. Azure AD Premium P2 adds identity protection and privileged identity management.
Conditional access policies enforce security controls based on user, location, device, and risk. For example, you can require multi-factor authentication for all users accessing Azure Portal from outside the corporate network. You can block access from untrusted devices or require compliant devices. Conditional access is a powerful tool for protecting your organization without burdening users with unnecessary prompts.
Privileged Identity Management, or PIM, provides time-based and approval-based role activation. Users request elevation to privileged roles, and their access is limited to a specified duration. PIM provides alerts for suspicious activity and audit logs for compliance.
Identity Protection uses machine learning to detect suspicious sign-ins and user behavior. It identifies risks such as leaked credentials, impossible travel, and unfamiliar sign-in locations. You can configure policies to automatically respond to detected risks, such as requiring multi-factor authentication or blocking access.
Infrastructure as code is the practice of managing your infrastructure using configuration files rather than manual processes. Azure Resource Manager, or ARM, templates define your infrastructure in JSON format. Bicep is a domain-specific language that simplifies ARM template authoring.
ARM templates describe the resources you want to deploy. They define virtual machines, networks, storage accounts, and other Azure resources. Templates are declarative—you specify what you want, and ARM handles the deployment. You can version templates in source control, enabling collaboration and change tracking. You can reuse templates across environments, ensuring consistency between development, testing, and production.
Bicep is a domain-specific language for Azure infrastructure as code. It provides a cleaner syntax than ARM JSON, with fewer brackets and quotes. Bicep compiles to ARM JSON, so it works with all existing Azure tools. It supports modules for reusing common components, parameters for customizing deployments, and variables for simplifying expressions.
Incremental deployment adds new resources without affecting existing ones. Complete deployment removes resources not in the template. You can use deployment modes to control behavior. For production environments, you typically use incremental deployment to avoid accidental deletions.
Azure DevOps is a complete DevOps platform for building, testing, and deploying applications. It provides tools for source control, work tracking, continuous integration, and continuous delivery.
Azure Repos provides Git repositories for source code. You can use any Git client to push code. Repos supports pull requests with code review, branch policies that require builds to pass before merging, and work item linking.
Azure Pipelines is a continuous integration and continuous delivery service. It works with any language and any platform. Pipelines are defined as code in YAML files, enabling version control and reuse. You can run pipelines on Windows, Linux, or macOS agents, or use self-hosted agents for custom requirements.
Azure Boards provides work tracking using Kanban boards, backlogs, and dashboards. You can track user stories, tasks, bugs, and epics. Boards integrates with GitHub and Azure Repos, linking code changes to work items.
Azure Test Plans provides manual and exploratory testing tools. You can create test plans, run manual tests, and track results. Test Plans integrates with Azure Boards, linking test results to work items.
Cloud costs can spiral if not managed properly. Azure Cost Management provides tools to monitor, allocate, and optimize your cloud spending.
Budgets set spending limits for your subscriptions or resource groups. When spending approaches your budget, Azure sends alerts. You can set budgets at the subscription level, resource group level, or even per service. Budgets help prevent unexpected bills by alerting you before you exceed your threshold.
Cost Analysis provides visual tools for understanding your spending. You can view costs by service, region, resource group, or tag. You can set custom date ranges and compare periods. Cost Analysis helps you identify trends and anomalies.
Azure Advisor provides personalized recommendations for optimizing your Azure resources. It identifies idle resources that you can delete, suggests right-sizing opportunities, and recommends reserved instances for steady-state workloads. Advisor also provides security recommendations and performance recommendations.
Reserved Instances offer significant discounts in exchange for one- or three-year commitments. For virtual machines that run continuously, reserved instances can save forty to sixty percent compared to pay-as-you-go pricing. Reserved instances are also available for databases and other services.
Microsoft offers multiple Azure certifications for different roles. The certification path starts with fundamentals and progresses to role-based certifications.
The AZ-900 exam validates foundational knowledge of cloud concepts, Azure services, pricing, and compliance. It is designed for candidates with non-technical backgrounds or those beginning their cloud journey. The exam covers cloud concepts, core Azure services, security and compliance, and pricing.
The AZ-104 exam validates skills in managing Azure identities, governance, storage, compute, and virtual networks. It is designed for Azure administrators who manage cloud services. The exam covers Azure Active Directory, identity and access management, virtual machines, storage, networking, and monitoring.
The AZ-305 exam validates skills in designing solutions on Azure. It covers compute, network, storage, security, and migration. The exam assumes experience with Azure administration and design. The exam covers designing compute solutions, designing network solutions, designing storage solutions, designing security solutions, and designing migration strategies.
The AZ-400 exam validates skills in designing and implementing DevOps practices. It covers continuous integration, continuous delivery, configuration management, and monitoring. The exam assumes experience with Azure administration and software development.
The best way to learn Azure is to build. This exercise will guide you through deploying a web application to Azure App Service, configuring continuous deployment, and scaling the application.
You will deploy a sample web application to Azure App Service using GitHub for continuous deployment. You will configure the App Service plan, enable auto-scaling, and test the application.
You need an Azure account with Free Tier eligibility, a GitHub account, and a web browser. The Free Tier provides twelve months of popular services and always-free services including App Service.
Resource groups are containers for related resources. Create a resource group to organize your application resources. Choose a region close to your users.
App Service plans define the compute resources for your application. Create a plan in the Free tier for testing. The Free tier provides shared infrastructure with limited resources, sufficient for development and testing.
Create a web app in your App Service plan. Choose a unique name for your application. The web app will be accessible at https://your-app-name.azurewebsites.net.
Connect your GitHub repository to your web app. Azure App Service can automatically deploy code whenever you push to a specified branch. Configure the connection using your GitHub credentials.
Scale out your App Service plan to a Basic or Standard tier. Configure auto-scaling rules based on central processing unit usage. Set the minimum and maximum number of instances. Test by generating load on your application.
Browse to your web app's URL. Confirm that your application is running. Push a change to your GitHub repository and verify that Azure deploys the change automatically.