Skip to main content

Azure Fundamentals Part-3 Computing Services

 

Overview of Azure Compute Services

Case Study: Orbit Logistics

Orbit Logistics, a global logistics and supply chain company, is exploring Azure Compute services to modernize its IT infrastructure. Their goal is to handle fluctuating workloads, improve application scalability, and optimize costs while focusing on developing business-critical applications.


Azure Compute Services

Azure Compute provides a range of on-demand resources for running cloud-based applications, supporting Linux, Windows Server, SQL Server, Oracle, IBM, and SAP. Below are the key Azure Compute offerings:


1. Azure Virtual Machines (VMs)

  • What it is: Software emulations of physical computers with virtual processors, memory, storage, and networking.
  • Use Case: Full control over the operating system and environment. Ideal for running custom software or configurations.
  • Example: Orbit Logistics provisions Linux and Windows VMs to run customized supply chain applications with the flexibility to scale as needed.

2. Virtual Machine Scale Sets

  • What it is: A resource to deploy and manage identical, load-balanced VMs.
  • Key Features:
    • Automatically adjusts the number of VMs based on demand or schedule.
    • Designed for high availability and scalability.
  • Example: Orbit Logistics uses VM Scale Sets to handle peak loads during holiday seasons by automatically scaling thousands of VM instances.

3. Azure Container Instances (ACI)

  • What it is: A lightweight, containerized environment for running applications.
  • Key Features:
    • Quick creation, scaling, and stopping of containerized apps.
    • Multiple containers on a single host.
  • Example: Orbit Logistics containerizes their microservices and deploys them using ACI for streamlined development and faster scaling.

4. Azure Kubernetes Service (AKS)

  • What it is: A managed Kubernetes platform for deploying and managing containers at scale.
  • Key Features:
    • Simplified Kubernetes management.
    • Ideal for complex containerized workloads.
  • Example: Orbit Logistics uses AKS for orchestrating containerized applications that handle real-time order tracking.

5. Azure App Service

  • What it is: A Platform-as-a-Service (PaaS) for building, deploying, and scaling web, mobile, and API apps.
  • Key Features:
    • Fully managed infrastructure with built-in security and compliance.
    • Supports multiple programming languages and frameworks.
  • Example: Orbit Logistics creates mobile and web apps for their customer portal using Azure App Service to ensure fast deployment and secure operations.

6. Azure Functions

  • What it is: A serverless computing service for event-driven workloads.
  • Key Features:
    • Focus solely on code, not infrastructure.
    • Triggered by REST requests, timers, or messages from other Azure services.
  • Example: Orbit Logistics automates shipping notifications using Azure Functions, triggered by new order events.

Exploring Azure Virtual Machines and Scaling Solutions

Case Study: Horizon Research Labs

Horizon Research Labs, a growing scientific data processing organization, is transitioning to Azure to modernize its infrastructure. Their goal is to handle fluctuating workloads for their astronomy image processing platform while maintaining cost efficiency and high availability.


Azure Virtual Machines: A Flexible Solution

Azure Virtual Machines (VMs) provide Infrastructure as a Service (IaaS), offering the flexibility of virtualization without the need to manage physical hardware. Key use cases include:

  1. Testing and Development:
    Quickly create and delete VMs with different operating systems and configurations for temporary environments.

  2. Running Applications in the Cloud:
    Host applications that experience fluctuating demand by scaling up or down as needed.
    Example: Horizon uses VMs to process astronomical data during peak observation periods.

  3. Extending On-Premises Datacenters:
    Create a virtual network in Azure to extend the capabilities of existing datacenters, making deployment easier and more cost-effective.
    Example: SharePoint servers are migrated to Azure VMs for scalability.

  4. Disaster Recovery:
    Use VMs for critical workloads during primary datacenter outages, then shut them down when the datacenter is restored.

  5. Lift and Shift:
    Migrate on-premises physical servers to Azure with minimal changes by creating VM images of the servers.


Scaling with Virtual Machine Scale Sets

Azure Virtual Machine Scale Sets enable centralized management of a group of identical load-balanced VMs, automatically adjusting the number of instances to match demand.

  • Use Case:
    Horizon Research Labs scales its astronomy image processing platform to handle peak uploads during global celestial events.

  • Key Features:

    • Automated scaling up or down based on demand or schedules.
    • Ideal for large-scale services like Big Compute or Big Data workloads.

High-Performance Computing with Azure Batch

Azure Batch simplifies running large-scale parallel and high-performance computing (HPC) jobs.

  • How it Works:

    • Starts a pool of compute VMs.
    • Installs required applications and stages data.
    • Runs tasks in parallel and retries failed jobs.
    • Scales down resources automatically after completion.
  • Use Case:
    Horizon leverages Azure Batch to process terabytes of image data, distributing tasks across hundreds of VMs for faster results.

Azure Containers, Kubernetes, and Microservices

Case Study: NovaTech

NovaTech, a leading IoT solutions provider, is scaling its cloud infrastructure to support a growing fleet of connected devices. They are exploring Azure's container-based solutions to improve scalability, reduce operational overhead, and embrace a microservices architecture.


Containers vs. Virtual Machines (VMs)

FeatureContainersVirtual Machines (VMs)
Resource ManagementShares the host OS kernel; lightweight.Requires a full OS instance, consuming more resources.
Start-Up SpeedStarts in seconds due to lightweight virtualization.Takes minutes to boot as it involves a full OS boot process.
PortabilityEasily portable across environments.Less portable due to dependency on specific OS configurations.
Use CaseIdeal for microservices and rapid scaling.Suitable for monolithic applications or when OS-level control is needed.
Management OverheadNo need to manage the OS; focuses only on app configuration and dependencies.Requires OS updates, patching, and configuration.

Example: NovaTech uses containers for lightweight, scalable workloads, such as device telemetry ingestion, while leveraging VMs for their legacy applications requiring OS-level control.


Azure Container Solutions

1. Azure Container Instances (ACI)

  • What it is: A platform-as-a-service (PaaS) offering for running containers without managing VMs.
  • Use Case: Best for simple containerized workloads needing quick deployment.
  • Example: NovaTech deploys ACI for testing small IoT data processing applications without infrastructure setup.

2. Azure Kubernetes Service (AKS)

  • What it is: A managed Kubernetes service for deploying and managing containers at scale.
  • Key Features:
    • Automates container orchestration tasks like scaling, updates, and load balancing.
    • Supports persistent volumes for data storage and advanced networking.
    • Integrates seamlessly with Azure storage solutions like Azure Cosmos DB.
  • Example: NovaTech uses AKS to orchestrate its fleet management system, ensuring high availability and load balancing during peak device usage.

What is Kubernetes?

Kubernetes is a container orchestration system that automates the deployment, scaling, and management of containerized applications. Its core capabilities include:

  1. Pod Management:

    • Pods are groups of containers sharing resources and scaling together.
    • Automatically restarts crashed pods or reschedules workloads if nodes fail.
  2. Scalability:

    • Supports horizontal pod auto-scaling to meet fluctuating demand.
  3. Rolling Updates:

    • Deploys updates incrementally, minimizing downtime.
  4. Networking:

    • Balances traffic across pods, isolates networks, and provides policy-driven security.
  5. Extensibility:

    • Allows custom API extensions and operators for advanced automation tasks.

Embracing Microservices Architecture

A microservices architecture breaks down applications into small, autonomous services, each focused on a specific business function.

Key Benefits

  1. Independence:

    • Each service can be deployed, scaled, and updated independently.
    • Teams work on isolated services without affecting the entire application.
  2. Technology Flexibility:

    • Services can use different frameworks, languages, or databases tailored to their specific needs.
  3. Fault Isolation:

    • Failures in one service don’t cascade to others.
  4. Continuous Delivery:

    • Faster release cycles with minimal risk.

Example:

NovaTech breaks its IoT application into:

  • A frontend container for device dashboards.
  • A backend container for processing telemetry data.
  • A storage service for persisting historical device logs.

If telemetry processing demand spikes, NovaTech scales the backend container independently to maintain performance without affecting the other services.


Azure and Microservices

Azure supports microservices architectures through several services, including:

  • AKS: Simplifies container orchestration and scales microservices efficiently.
  • Azure Functions: Handles event-driven workloads within a microservices ecosystem.
  • Azure Logic Apps: Integrates workflows between microservices.

What is Azure App Service?

Azure App Service is a Platform-as-a-Service (PaaS) offering that simplifies building and hosting web apps, RESTful APIs, mobile backends, and background jobs. It eliminates the need to manage underlying infrastructure, allowing developers to focus on application logic.

Key Features:

  1. Language and Platform Flexibility:

    • Supports ASP.NET, Java, Ruby, Node.js, PHP, Python, and more.
    • Offers Windows or Linux hosting options.
  2. Integrated DevOps:

    • Enables automated deployments from GitHub, Azure DevOps, or any git repository.
    • Supports continuous integration and deployment (CI/CD) workflows.
  3. Scaling and High Availability:

    • Automatic scaling to handle traffic spikes.
    • Built-in load balancing and traffic management for reliability.
  4. Cost Efficiency:

    • Pricing based on an App Service plan, with a free tier available for low-traffic apps.
  5. Versatile App Hosting:

    • Web apps: Host front-end websites.
    • API apps: Build and publish RESTful APIs with Swagger support.
    • WebJobs: Run background tasks in various languages like C#, PowerShell, Python, and Bash.
    • Mobile apps: Provide backend services for iOS and Android, including authentication and push notifications.

How Orion Ventures Benefits

  1. Web App Hosting:
    Orion hosts its e-commerce platform using Azure App Service, ensuring seamless scalability during sales events like Black Friday.

  2. API Management:
    Their API layer for customer orders and inventory updates is built and deployed as RESTful APIs, integrated with Azure Marketplace for easy client access.

  3. Background Processing with WebJobs:
    WebJobs handle real-time order processing and inventory syncing, ensuring smooth backend operations without manual intervention.

  4. Mobile Backend:
    Orion's mobile app for customers integrates with Azure App Service to authenticate users via social logins (Google and Facebook) and send push notifications about order updates.


Why Choose Azure App Service?

Azure App Service offers flexibility, scalability, and seamless integration with modern development workflows. From hosting small websites to scaling globally distributed applications, it provides the ideal platform for web and API-centric applications. For Orion Ventures, the ability to focus solely on application logic while Azure handles the underlying infrastructure translates to faster deployments, reduced costs, and better customer experiences.

Case Study: ByteWorks Solutions

ByteWorks Solutions, a logistics company, needs to optimize its application costs while maintaining responsive systems. Their application logic often involves waiting for specific events, such as processing incoming orders or updating delivery statuses. To reduce costs associated with idle time, ByteWorks explores Azure Functions, a serverless computing service.


What is Serverless Computing?

Serverless computing abstracts the underlying servers and infrastructure, enabling developers to focus solely on writing code. With Azure managing scaling, infrastructure, and resource allocation, serverless computing offers the following benefits:

  1. Abstraction of Servers:
    Developers don't manage servers explicitly; the platform runs the code as needed, with each execution potentially on a different compute instance.

  2. Event-Driven Scaling:
    Workloads automatically scale based on incoming events, such as HTTP requests or queue messages.

  3. Micro-Billing:
    Costs are incurred only when the code executes, unlike traditional models where you pay for uptime even when the system is idle.


Azure Functions: How It Works

Azure Functions is a serverless computing service designed for event-driven workloads. It enables developers to deploy individual pieces of logic, known as functions, that are executed in response to specific triggers.

  • Triggers: Define how the function is invoked (e.g., HTTP requests, timers, or queue messages).
    Example: ByteWorks uses an HTTP trigger to process incoming API requests from delivery drivers.

  • Bindings: Declaratively connect the function to other Azure services (e.g., Blob Storage, Cosmos DB).
    Example: ByteWorks uses an output binding to store processed order data in Azure Blob Storage.


Key Advantages

  1. Cost-Efficiency:
    Pay only for execution time. If a function runs for two minutes daily, you're billed for just those two minutes. ByteWorks minimizes idle costs by using Azure Functions for infrequent, event-driven processes.

  2. Automatic Scaling:
    The platform dynamically scales resources based on event rates, ensuring optimal performance during high traffic.

  3. Ease of Integration:
    Functions integrate seamlessly with Azure services and third-party APIs. ByteWorks connects functions to Azure Queue Storage for real-time order processing.

  4. High Availability:
    Azure Functions ensures fault tolerance and availability without additional configuration.


Real-World Example

Scenario:
ByteWorks processes orders through a web application. When a customer places an order:

  1. An HTTP-triggered Azure Function validates the order.
  2. The function pushes the order details to a queue for further processing.
  3. A queue-triggered function calculates delivery time and stores the result in Cosmos DB.

Outcome:

  • Costs are incurred only when orders are processed.
  • The system scales automatically during peak hours, such as Black Friday sales.

When to Use Azure Functions

Azure Functions is ideal for:

  • Workloads with infrequent or unpredictable events, such as API or webhook responses.
  • Background tasks, like sending notifications or processing queues.
  • Applications requiring scalability without the need for constant resource allocation.

Azure Functions: Code-Centric Serverless Computing

Azure Functions is designed for event-driven code execution, providing a flexible and cost-efficient way to run your application logic without managing infrastructure.

Key Features:

  • Event-Driven Execution: Functions run only in response to events such as HTTP requests, timers, or messages from Azure services.
  • Stateless or Stateful:
    • Stateless: Default behavior; restarts fresh with each execution.
    • Stateful (Durable Functions): Tracks prior activity and maintains context across executions.
  • Language Flexibility: Supports most modern programming languages.
  • Scalable and Flexible: Automatically scales based on demand and can run on isolated virtual networks when needed.
  • Cost-Efficient: Charges only for CPU time used during function execution, not for idle time.

Use Case Example:

Scenario: A retail company receives customer orders through its website.

  • An HTTP-triggered function processes each order in real time.
  • The function validates the order, stores it in a database, and triggers an email confirmation.

By using Azure Functions, the company avoids paying for idle resources when no orders are being placed.


Azure Logic Apps: Workflow-Centric Automation

Azure Logic Apps focuses on automating workflows, allowing users to visually design business logic using predefined connectors and logic blocks.

Key Features:

  • Visual Designer: Create workflows without writing code using a drag-and-drop interface in the Azure portal or Visual Studio.
  • Triggers and Actions:
    • Triggers: Initiate workflows when specific events occur (e.g., data availability, external service triggers).
    • Actions: Perform tasks such as sending emails, updating databases, or integrating with third-party services.
  • Rich Connectors: Provides over 200 connectors to integrate with services like Office 365, SharePoint, Salesforce, and Zendesk.
  • Custom Connectors: Build your own connectors if the service isn't already supported.
  • Conditional Logic: Incorporate loops, switches, and branching for complex workflows.

Use Case Example:

Scenario: A support team uses Zendesk for tickets and Dynamics 365 for customer data.

  • A new ticket in Zendesk triggers a Logic App workflow.
  • Actions:
    1. Analyze ticket intent using Azure Cognitive Services.
    2. Log the ticket in SharePoint for internal tracking.
    3. Check if the customer exists in Dynamics 365; if not, add them.
    4. Send an automated email acknowledgment.

This automation streamlines the workflow, reducing manual intervention and improving efficiency.


Comparison: Azure Functions vs. Logic Apps

FeatureAzure FunctionsAzure Logic Apps
FocusCode-centric executionWorkflow-centric automation
Trigger TypesHTTP, timer, queue, Azure servicesEvents from services, scheduling
ExecutionCustom codePredefined workflows
User BaseDevelopersBusiness analysts, developers
DevelopmentWrite code in supported languagesDesign visually in the portal or Visual Studio
Best Use CasesEvent-driven tasks, microservices, backend logicBusiness process automation, enterprise workflows

By leveraging Azure Functions and Logic Apps, organizations like Tailwind Traders can efficiently handle both code-driven tasks and business process automation, ensuring a streamlined, cost-effective, and scalable solution for diverse needs.

Overview of Windows Virtual Desktop (WVD)

Windows Virtual Desktop (WVD) is a cloud-based desktop and application virtualization service that simplifies deployment, management, and scalability for remote teams. It allows users to access a fully functional Windows environment from any device, anywhere, without needing to set up physical hardware.


Key Features and Benefits

1. Simplified Management

  • Centralized management using Azure Active Directory (Azure AD) and Role-Based Access Control (RBAC).
  • Seamless integration with Azure Monitor for monitoring, alerts, and diagnostics.
  • Automation tools for VM provisioning, updates, and disaster recovery.

2. Performance Management

  • Host Pools: Collections of Virtual Machines (VMs) shared across users for resource optimization.
  • Load Balancing:
    • Breadth Mode: Evenly distributes users across VMs for peak performance.
    • Depth Mode: Fully utilizes one VM before allocating users to the next for cost efficiency.
  • Autoscaling tools to dynamically adjust resources based on demand.

3. Multi-Session Windows 10 Deployment

  • Supports Windows 10 Enterprise Multi-Session, enabling multiple concurrent users on a single VM.
  • Delivers a full Windows 10 experience with better scalability and broader application compatibility than server-based OS.

4. Device and Location Flexibility

  • Accessible from Windows, Mac, iOS, Android, and Linux devices via a native app or modern browsers.
  • Provides remote access without compromising performance or security.

5. Enhanced Security

  • User sessions are isolated to ensure data protection.
  • Uses reverse connect technology for secure connections without opening inbound ports.
  • Multi-factor authentication (MFA) and RBAC ensure controlled access.

6. Cost Optimization

  • Eligible Microsoft 365 licenses include WVD at no additional cost—pay only for Azure resources used.
  • Save up to 72% with Azure reserved VM instances for 1-year or 3-year commitments.
  • Supports Windows Server desktops and apps at no extra cost for customers with Remote Desktop Services (RDS) licenses.

Use Case Example

Scenario: A software development company hires remote developers with diverse devices (Windows, Mac, Linux). The company needs to:

  • Quickly provision secure development environments.
  • Minimize setup and shipping costs for physical hardware.
  • Ensure consistent software configurations across devices.

Solution:

  • Deploy Windows Virtual Desktop to provide developers with personal persistent desktops.
  • Use Azure AD for secure and centralized access management.
  • Leverage host pools and multi-session Windows 10 for efficient resource utilization and scaling.

Outcome:

  • Reduced time and cost for deployment.
  • Improved developer productivity and secure access to resources.

Conclusion

Windows Virtual Desktop empowers businesses like Tailwind Traders to address remote workforce challenges effectively. It ensures scalability, cost-efficiency, and secure access, making it an essential tool for modern distributed teams.


Comments