Windows Azure
Windows Azure Services - At Different Levels SaaS eg : MS Office 365 Paas eg : Azure SQL Database, Azure websites, Azure Content Delivery Network (CDN), Azure BizTalk Services, and Azure Mobile Services. IaaS eg : Azure virtual machines and virtual networks, Azure storage solutions, and Azure recovery services.
What is Windows Azure Windows Azure is the OS for the data center Handles resource management, provisioning, and monitoring Manages application lifecycle Allows developers to concentrate on business logic Windows Azure Provides common building blocks for distributed applications Compute Resources, like Virtual Machines and Cloud Services Reliable queuing, simple structured storage, SQL storage Application services like access control, caching, and connectivity Fabric Controller (FC) manages compute insfrastructure Deploys and manages the health of the compute services Manages datacenter infrastructure (H/W and S/W), recovers from failures Drives infrastructure updates
Data Center Architecture
Data Center Architecture
Data Center Architecture
Data Center Cluster Datacenters are divided into clusters Map to original DLA agg. Switch 20 racks : approximately 1000 rack-mounted servers ('nodes' or 'blades') provides a unit of fault isolation Also called "stamps Each cluster is managed by a Fabric Controller (FC)
Fabric Controller The 'kernel' of the cloud OS manages datacenter hardware manages windows azure services Four main responsibilities: datacenter resource allocation datacenter resource provisioning service lifecycle management service health management Inputs From hardware : description of the hardware and network resources it will control From users : service model and bianaries for cloud applications Word Server SQL Server Exchange Online Datacenter SQL Azure
Fabric Controller in Clusters FC is a distributed, stateful application running on nodes (servers) spread across fault domains Top blades are reserved for FC One FC instance is the primary and all others keep view of world in sync Supports rolling upgrade, and services continue to run even if FC fails entirely Can tolerate one instance failure during update
Hyper V
Provisioning a Node Power on node PXE-boot Maintenance OS Agent formats disk and downloads Host OS via Windows Deployment Services (WDS) Host OS boots, runs Sysprep /specialize, reboots FC connects with the Host Agent Image Repository Maintenance OS FC Host Agent Fabric Controller Windows Parent Azure Role Role Role Role OS Images Images Windows Azure Node OS Windows Deployment Server PXE Server Windows Azure Hypervisor
Software Load Balancer Going through the load balancer adds about 0.5ms latency When possible, connect to systems via their DIP (dynamic IP address) One FC instance is the primary and all others keep view of world in sync Instances in the same Cloud Service can access each other by DIP You can use Virtual Network to make the DIPs of different cloud services visible to each other
Deploying Service in Azure Package upload to portal System Center App Controller provides IT Pro upload experience Powershell provides scripting interface Windows Azure portal provides developer upload experience Service package passed to RDFE RDFE sends service to a Fabric Controller (FC) based on target region and affinity group FC stores image in repository and deploys service Windows Azure Portal Fabric Controller System Center App Controller US-North Central Datacenter
RDFE : Red Dog Front End RDFE serves as the front end for all Windows Azure services Subscription management Billing Authentication Service management RDFE is responsible for picking clusters to deploy services and storage accounts First datacenter region Then affinity group or cluster load Normalized VIP and core utilization
FC Service Deployment Steps Goal: allocate service components to available resources while satisfying all hard constraints HW requirements: CPU, Memory, Storage, Network Fault domains Secondary goal: Satisfy soft constraints Prefer allocations which will simplify servicing the host OS/hypervisor Optimize network proximity: pack nodes Service allocation produces the goal state for the resources assigned to the service components Node and VM configuration (OS, hosting environment) Images and configuration files to deploy Processes to start Assign and configure network resources such as LB and VIPs
Service Resource Allocation Process service model files Determine resource requirements Create role images Allocate compute and network resources Prepare nodes Place role images on nodes Create virtual machines Start virtual machines and roles Configure networking Dynamic IP addresses (DIPs) assigned to blades Virtual IP addresses (VIPs) + ports allocated and mapped to sets of DIPs Configure packet filter for VM to VM traffic Programs load balancers to allow traffic
Multi-Tier Cloud Application A cloud application is typically made up of different components Front end: e.g. load-balanced stateless web servers Middle worker tier: e.g. order processing, encoding Backend storage: e.g. SQL tables or files Multiple instances of each for scalability and availability
The Windows Azure Cloud Service Model A Windows Azure application is called a service Definition information Configuration information At least one role Roles are like DLLs in the service process Collection of code with an entry point that runs in its own virtual machine Windows Azure compute SLA requires two instances of each role 99.95% for connectivity to two instances Achieved with update and fault domains
Role Contents Definition: Code: Role name Role type VM size (e.g. small, medium, etc.) Network endpoints Web/Worker Role: Hosted DLL and other executables VM Role: VHD Configuration: Number of instances Number of update and fault domains Role: Front-End Definition Type: Web VM Size: Small Endpoints: External-1 Configuration Instances: 2 Update Domains: 2 Fault Domains: 2 Cloud Service Role: Middle-Tier Definition Type: Worker VM Size: Large Endpoints: Internal-1 Configuration Instances: 3 Update Domains: 2 Fault Domains: 2
Role Types There are two types of Cloud Service roles. The only difference between the two is how your role is hosted on the virtual machine. Web role Automatically deploys and hosts your app through IIS. Worker role Does not use IIS and runs your app standalone. All the VMs in a single application run in the same cloud service
Service Deployment www.mycloudapp.net Role B Worker Role Count: 2 Update Domains: 2 Size: Medium Load Balancer www.mycloudapp.net
Scaling and management Even though applications run in virtual machines, Cloud Services provides PaaS, not IaaS. With Cloud Services, client doesn't create virtual machines. Instead, client provides a configuration file that tells Azure how many of each he d like, such as three web role instances and two worker role instances, and the platform creates them. Client chooses what size those backing VMs should be, but doesn't explicitly create them. If application needs to handle a greater load, client can ask for more VMs, and Azure creates those instances. If the load decreases, client can shut down those instances. Cloud Services also provides monitoring. It detects a failed physical server and restarts the VMs that were running on that server on a new machine. Cloud Services also detects failed VMs and applications, not just hardware failures. It has an agent inside each web and worker role, and so it's able to start new VMs and application instances when failures occur.
Azure Storage Service
Azure Storage Service - Blobs Blobs Massively scalable object store in the cloud Simple REST interface (Put, Get, Delete) Data sharing share documents, pictures, video, music, etc. Big Data store raw data/logs and compute/map reduce over data Backups data and device backups Blob storage accounts expose the Access Tier attribute which can be specified during account creation and modified later as needed. There are two types of access tiers that can be specified based on your data access pattern: A Hot access tier which indicates that the objects in the storage account will be more frequently accessed. This allows you to store data at a lower access cost. A Cool access tier which indicates that the objects in the storage account will be less frequently accessed. This allows you to store data at a lower data storage cost Blob storage offers three types of blobs : block blobs, append blobs, and page blobs (disks)
Azure Storage Service - Disks Persistent disks for VMs in Azure Disks are VHDs stored in Azure Page Blobs Page blobs are optimized for random I/O VM see the VHD/Blob as a disk Reads translated to GETs, writes to PUTs Blob protected by write-lease Reads from the blob (and snapshots) still allowed
Azure Storage Service - Tables Tables Massively scalable NoSQL cloud store Key/Attribute(s) store at scale Store user, device or any type of metadata for your service Auto load balances partitions to meet traffic needs OData protocol (AtomPub or JSON)
Azure Storage Service - Queues Queues Reliable messaging system Reliable, low latency, high throughput messaging system Decouple components/roles Web role to worker role communication Allows roles to scale independently Implement scheduling of asynchronous tasks Building process/work flows
Azure Container Service Can deploy an Azure Container Service cluster using an Azure Resource Manager template (Docker Swarm, DC/OS, or Kubernetes), or with the Azure CLI 2.0 MS is now providing container support in windows server itself Two container runtimes are available with Windows Containers: Windows Server Containers - provide application isolation through process and namespace isolation technology. A Windows Server container shares a kernel with the container host and all containers running on the host. Hyper-V Containers - expand on the isolation provided by Windows Server Containers by running each container in a highly optimized virtual machine. In this configuration the kernel of the container host is not shared with the Hyper-V Containers.
Other Azure Services
Thank You