Cloud Computing
Service delivery model over the internet (cloud). This includes but is not limited to
compute power meaning servers such as windows, linux, hosting environments, etc.
storage like files and/or databases
networking in azure but also outside when connecting to your company network
analytics services for visualization and telemetry data
Key concepts
scalability is the ability to scale, so allocate and deallocate resources at any time
elasticity is the ability to scale dynamically
agility is the ability to react fast (scale quickly)
fault tolerance is the ability to maintain system uptime while physical and service
component failures happen
disaster recovery is the process and design principle which allows a system to recovers
from natural or human induced disasters
high availability is the agreed level of operational uptime for the system. It is a simple
calculation of system uptime versus whole lifetime of the system.
o availability = uptime/(uptime + downtime)
CapEx vs OpEx
Differences between Capital Expenditure and Operational Expenditure
Capital Expenditure Operational Expenditure
Up front cost Significant None
Ongoing cost Low Based on usage
Tax Deduction Over time Same year
Capital Expenditure Operational Expenditure
Early Termination No Anytime
Maintenance Significant Low
Value over time Lowers No change
What is a consumption-based model?
The consumption-based model is a pricing model used in the cloud so that customers are only
charged based on their resource usage .
This model is characterized by
No associated upfront cost
No wasted resources as such no charges are incurred for unused resources*. Unused
in this case is different per service. For instance, blob storage that stores any data is
considered to be used, as it consumes the storage space. Virtual Machin es that are
running consume CPU, memory and other resources even if there isn’t any traffic. Hence
they are considered to be used and will incur charges.
Pay for what you need
Stop paying when you don’t
Consumption is the virtual metric used to calculate how much each resource (service) in Azure
was used. Each service has many smaller metrics that track its consumption to offer best
possible pricing model. Those metrics are tracked on very granular level.
Service Models responsibilities
As a service means which party will manage the particular layer and all the layers below.
Software layer consists the application (application code and set) & the application data
Platform layer means all the supporting software and the operating system required to
host the application
Infrastructure layer consists hardware the infrastructure and virtualization required to
host the platform
Layer Layer
Application Software
Data Software
Runtime Platform
Middleware Platform
Operating System Platform
Virtualization Infrastructure
Servers Infrastructure
Networking Infrastructure
Storage Infrastructure
Responsibility Matrix
Layer On-Premises IaaS PaaS SaaS
Application You You You Cloud provider
Data You You You Cloud provider
Runtime You You Cloud provider Cloud provider
Middleware You You Cloud provider Cloud provider
Operating System You You Cloud provider Cloud provider
Virtualization You Cloud provider Cloud provider Cloud provider
Servers You Cloud provider Cloud provider Cloud provider
Networking You Cloud provider Cloud provider Cloud provider
Storage You Cloud provider Cloud provider Cloud provider
As such following table represents responsibilities
Cloud Deployment Model
Cloud Deployment Model is simple a separation which describes where are the
company resources deployed. Whenever this is in public cloud provider environment or private
datacenter.
Below table presents high level deployment model separation
Layer Cloud Provider Own Datacenter
Layer Cloud Provider Own Datacenter
Public ✅ ✖
Hybrid ✅ ✅
Private ✖ ✅
Public Cloud
Cloud Provider Own Datacenter
✅ ✖
Key Characteristics
Everything runs on cloud provider hardware
No local hardware
Some services share hardware with other customers
Advantages
No CapEx (No initial investment)
High Availability
Agility
Pay as you Go (PAYG) pricing
No hardware maintenance
No deep technical skills required
Disadvantages
Not all security and compliance policies can be met
No ownership over the physical infrastructure
Rare specific scenarios can’t be done
Private Cloud
Cloud Provider Own Datacenter
✖ ✅
Key Characteristics
Everything runs on your own datacenter
Self-service should be provided
You maintain the hardware
Advantages
Can support any scenario
Total control over security and infrastructure
Can meet any security and compliance policy
Disadvantages
Initial investment is required (CapEx)
Limited agility constrained by server capacity and team skills
Very dependent on IT skills & expertise
Hybrid Cloud
Cloud Provider Own Datacenter
✅ ✅
Key Characteristics
Combines both Public & Private cloud
Advantages
Great flexibility
You can run any legacy apps in private cloud
Can utilize existing infrastructure
Meet any security& compliance requirements
Can take advantage of all public cloud benefits
Disadvantages
Can be more expensive
Complicated to manage due to larger landscape
Most dependent on IT skills & expertise from all three models
Data Center
Physical facility
Hosting for group of networked servers
Own power, cooling & networking infrastructure
Region
Geographical area on the planet
One but usually more datacenters connected with low-latency network (<2
milliseconds)
Location for your services
Some services are available only in certain regions
Some services are global services, as such are not assigned/deployed in specific region
Globally available with 50+ regions
Special government regions (US DoD Central, US Gov Virginia, etc.)
Special partnered regions (China East, China North)
Availability Zone
Regional feature
Grouping of physically separate facilities
Designed to protect from data center failures
If zone goes down others continue working
Two service categories
o Zonal services (Virtual Machines, Disks, etc.)
o Zone-redundant services (SQL, Storage, etc.)
Not all regions are supported
Supported region has three or more zones
A zone is one or more data centers
Region Pair
Each region is paired with another region making it a region pair
Region pairs are static and cannot be chosen
Each pair resides within the same geography*
o Exception is Brazil South
Physical isolation with at least 300 miles distance (when possible)
Some services have platform-provided replication
Planned updates across the pairs
Data residency maintained for disaster recovery
Region Pair A Region Pair B
East US West US
UK West UK South
North Europe (Ireland) West Europe (Netherlands)
East Asia (Hong Kong) Southeast Asia (Singapore)
Geographies
Discrete market
Typically contains two or more regions
Ensures data residency, sovereignty, resiliency, and compliance requirements are
met
Fault tolerant to protect from region wide failures
Broken up into areas
o Americas,
o Europe,
o Asia Pacific,
o Middle East and Africa
Each region belongs only to one Geography
Azure Resource
Object used to manage services in Azure
Represents service lifecycle
Saved as JSON definition
Resource Groups
Grouping of resources
Holds logically related resources
Typically organizing by
o Type
o Lifecycle (app, environment)
o Department
o Billing,
o Location or
o combination of those
Resource Manager
Management Layer for all resources and resource groups
Unified language
Controls access and resources
Additional Info
Each resource must be in one, and only one resource group
Resource groups have their own location assigned
Resources in the resource groups can reside in a different locations
Resources can be moved between the resource groups
Resource groups can’t be nested
Organize based on your organization needs but consider
o Billing
o Security and access management
o Application Lifecycle
Virtualization
Emulation of physical machines
Different virtual hardware configuration per machine/app
Different operating systems per machine/app
Total separation of environments
o file systems,
o services,
o ports,
o middleware,
o configuration
Virtual Machines
Infrastructure as a Service (IaaS)
Total control over the operating system and the software
Supports marketplace and custom images
Best suited for
o Custom software requiring custom system configuration
o Lift-and-shift scenarios
Can run any application/scenario
o web apps & web services,
o databases,
o desktop applications,
o jumpboxes,
o gateways, etc.
Virtual Machine Scale Sets
Infrastructure as a Service (IaaS)
Set of identical virtual machines
Built-in auto scaling features
Designed for manual and auto-scaled workloads like web services,* batch processing,
etc.
Containers
Use host’s operating system
Emulate operating system (VMs emulate hardware)
Lightweight (no O/S)
o Development Effort
o Maintenance
o Compute & storage requirements
Respond quicker to demand changes
Designed for almost any scenario
Azure Container Instances
Simplest and fastest way to run a container in Azure
Platform as a Service
Serverless Containers
Designed for
o Small and simple web apps/services
o Background jobs
o Scheduled scripts
Azure Kubernetes Service (AKS)
Open-source container orchestration platform
Platform as a Service
Highly scalable and customizable
Designed for high scale container deployments (anything really!)
App Service
Designed as enterprise grade web application service
Platform as a Service
Supports multiple programming languages and containers
Azure Functions (Function Apps)
Platform as a Service
Serverless
Two hosting/pricing models
o Consumption-based plan
o Dedicated plan
Designed for micro/nano-services
Summary
Virtual Machines (IaaS) - Custom software, custom requirements, very specialized, high
degree of control
VM Scale Sets (IaaS) - Auto-scaled workloads for VMs
Container Instances (PaaS) - Simple container hosting, easy to start
Kubernetes Service (PaaS) - Highly scalable and customizable * container hosting
platform
App Services (PaaS) - Web applications, a lot of enterprise web * hosting features, easy
to start
Functions (PaaS) (Function as a Service) (Serverless) - micro/nano-services, excellent
consumption-based pricing, easy to start
Skills Learned
Skills Learned
o Describe products available for Networking such as
Virtual Network,
Load Balancer,
VPN Gateway,
Application Gateway and
Content Delivery Network
Azure Networking
Connect cloud and on-premises
On-premise networking functionality
Azure Virtual Network
Logically isolated networking components
Segmented into one or more subnets
Subnets are discrete sections
Enable communication of resources with each-other, internet and on-premises
Scoped to a single region
VNet peering allow cross region communication
Isolation, Segmentation, Communication, Filtering, Routing
Azure Load Balancer
Even traffic distribution
Supports both inbound and outbound scenarios
High-availability scenarios
Both TCP (transmission control protocol) and UDP (user datagram protocol) applications
Internal and External traffic
Port Forwarding
High scale with up to millions of flows
VPN Gateway
Specific type of virtual network gateway for on-premises to azure traffic over the public
internet
Application Gateway
Web traffic load balancer
Web application firewall
Redirection
Session affinity
URL Routing
SSL termination
Content Delivery Network
Define content
Minimize latency
POP (points of presence) with many locations
Data Types
Structured - Data that can be represented using tables with very strict schema. Each row
must follow defined schema. Some tables have defined relationships between them.
Typically used in relational databases.
Semi-structured - Data that can be represented using tables but without strict defined
schema. Rows must only have unique key identifier.
Unstructured - Any files in any format. Like binary files, application files, images, movies,
etc.
Storage Account
Group of services which include
o blob storage,
o queue storage,
o table storage, and
o file storage
Used to store
o files,
o messages, and
o semi-structured data
Highly scalable (up to petabytes of data)
Highly durable (99.999999999% - 11 nines, up to 16 nines)
Cheapest per GB storage
Blob Storage
BLOB – binary large object – file
Designed for storage of files of any kind
Three storage tiers
o Hot – frequently accessed data
o Cool – infrequently accessed data (lower availability, high durability)
o Archive – rarely (if-ever) accessed data
Queue Storage
Storage for small pieces of data (messages)
Designed for scalable asynchronous processing
Table Storage
Storage for semi-structured data (NoSQL)
o No need for foreign joins, foreign keys, relationships or strict schema
o Designed for fast access
Many programming interfaces and SDKs
File Storage
Storage for files accessed via shared drive protocols
Designed to extend on-premise file shares or implement lift-and-shift scenarios
Disk Storage
Disk emulation in the cloud
Persistent storage for Virtual Machines
Different
o sizes,
o types (SSD, HDD)
o performance tiers
Disk can be unmanaged or managed
Data Types
Structured - Data that can be represented using tables with very strict schema. Each
row must follow defined schema. Some tables have defined relationships between them.
Typically used in relational databases.
Semi-structured - Data that can be represented using tables but without strict defined
schema. Rows must only have unique key identifier.
Unstructured - Any files in any format. Like binary files, application files, images,
movies, etc.
Cosmos DB
Globally distributed NoSQL (semi-structured data) Database service
Schema-less
Multiple APIs (SQL, MongoDB, Cassandra, Gremlin, Table Storage)
Designed for
o Highly responsive (real time) applications with super low latency responses
<10ms
o Multi-regional applications
SQL Database
Relational database service in the cloud (PaaS) (DBaaS - Database as a Service)
Structured data service defined using schema and relationships
Rich Query Capabilities (SQL)
High-performance, reliable, fully managed and secure database for building -
applications
What is Serverless?
Serverless computing is cloud-hosted execution environment that allows customers to run
their applications in the cloud while completely abstracting underlying infrastructure .
Azure Functions
Serverless coding platform (Functions as a Service, FaaS)
Designed for nano-service architectures and event-based applications
Scales up and down very quickly
Highly scalable
Supports popular languages and frameworks (.NET & .NET Core, Java, Node .js, Python,
PowerShell, etc.)
Azure Logic Apps
Serverless enterprise integration service (PaaS)
200+ connectors for popular services
Designed for orchestration of
o business processes,
o integration workflows for applications, data, systems and services
No-code solution
Azure Event Grid
Fully managed serverless event routing service
Uses publish-subscribe model
Designed for event-based and near-real time applications
Supports dozen of built-in events from most common Azure services