1 … 2 … cloud: welcome to the sharks with freaking lasers, a windows azure overview
DESCRIPTION
Windows Azure overview for E2 PartnersTRANSCRIPT
1 … 2 … Cloud: Welcome to the Sharks with freaking lasers.a developers perspective on windows azure
Mike MARTIN, ArchitectCrosspoint Solutions
Me.About();Member of:
Mike Martin Architect MEET Member Crew Member of Azug Windows Azure Insider Windows Azure MVP @Techmike2KX [email protected] http://techmike2kx.wordpress.com
What is the cloud?
An approach to computing that’s about internet scale and connecting to a variety of devices and endpoints
Cloud Computing Patterns
tCom
pute
Inactivity
Period
t
t
t
On and OffOn & off workloads (e.g. batch job)Over provisioned capacity is wasted Time to market can be cumbersome
Unpredictable BurstingUnexpected/unplanned peak in demand Sudden spike impacts performance Can’t over provision for extreme cases
Com
pute
Growing FastSuccessful services needs to grow/scale Keeping up w/ growth is big IT challenge Cannot provision hardware fast enough
Com
pute
Predictable BurstingServices with micro seasonality trends Peaks due to periodic increased demandIT complexity and wasted capacity
Com
pute
TIME
IT C
AP
AC
ITY
Actual Load
Allocated IT-capacities
Too Much Power
Not Enough Power
Load Forecast
Managing demand
Don’t forget you are also paying for unnecessary software licencing while you are over capacity*
Potential business
loss
Wasted capacity
Demand burst
Time
IT demand
Concert ticket web site
Ticket sales openTicket sales open
Compute capacity
CLMs
Cloud Computing
Software-as-a-Service
consume
SaaSPlatform-as-a-Service
build
PaaSInfrastructure-as-a-
Service
host
IaaS
SaaSPhysical Virtual
A Continuous Offering From Private To
Public Cloud
IaaS PaaS
Cloud ServicesPackaged Software
Storage
Servers
Networking
O/S
Middleware
Virtualization
Data
Applications
Runtime
You m
anag
e
Infrastructure(as a Service)
Storage
Servers
Networking
O/S
Middleware
Virtualization
Data
Applications
Runtime
Man
ag
ed b
y v
en
dor
You m
anag
e
Platform(as a Service)
Man
ag
ed b
y v
en
dor
You m
anag
e
Storage
Servers
Networking
O/S
Middleware
Virtualization
Applications
Runtime
Data
Software(as a Service)
Man
ag
ed b
y v
en
dor
Storage
Servers
Networking
O/S
Middleware
Virtualization
Applications
Runtime
Data
Cloud PlatformsPublic Cloud Platforms
Private Cloud Platforms
Infrastructure as a service (IaaS)
Platform as a Service (PaaS)
For Scalable Web Apps For Data-Driven Business Apps
For Collaboration Apps
Microsoft
Others
Dynamic infrastructure
Toolkit for System Center (Hyper-V Cloud,
AppFabric Server)
Dynamic DataCenter Toolkit for
Hosters (Hyper-V Cloud)
Hosters
Windows Azure Platform
VMWare vSphere (ESX,
vCenter)
Hosters
VMWare vCloud Initiative (ESX, vCenter)
Amazon Web Services
GoogleAppEngine
Saleforce.comForce.com
GoGrid Cloud Hosting, RackSPace, others
Dynamics CRM / xRM Online
Office 365
Windows Live
Google Docs
Amazon Web Services
Why consider the cloud?
EconomicsScaleSpeed
Welcome to Windows Azure
On-premises Cloud
Enterprise needs
Windows Azurefundamentals
On-premises AND Cloud
Integration
Identity
Virtualization
DataPlatform
Development DevOps and mgmt
data
servicestableHDInsight
blob storage
SQL database
app
services
media
hpcintegratio
n analytics
caching identityservice
bus
web sitesmobile
services
cloud services
infrastructure
servicescdn
virtual machines
virtual network vpn
traffic manager
Apps
virtual network
tablecloud services
caching identitydata
servicestableHDInsight
blob storage
SQL database
app
services
media
hpcintegratio
n analytics
caching identityservice
bus
web sitesmobile
services
cloud services
infrastructure
servicescdn
virtual machines
virtual network vpn
traffic manager
virtual network
data
servicestableHDInsight
blob storage
SQL database
app
services
media
hpcintegratio
n analytics
caching identityservice
bus
web sitesmobile
services
cloud services
infrastructure
servicescdn
virtual machines
virtual network vpn
traffic manager
Azure datacenters,your datacenters.
vpn
virtual network
virtual machine
s
vpn
Demo Azure Portal
Web sites Build with ASP.NET, Node.js or PHPDeploy in seconds with FTP, Git or TFSStart for free, scale up as your traffic grows
1shared reserved
SHARED INSTANCES
:-)
shared
Web sites
2SHARED INSTANCES
:-)
:-)
shared reserved
shared
Web sites
SHARED INSTANCES
:-)
1shared reserved
RESERVED INSTANCE
:-):-)
0reserved
Web sites
2shared reserved
RESERVED INSTANCE
:-)
RESERVED INSTANCE
:-)
reserved
Web sites
2shared reserved
RESERVED INSTANCE
:-)
RESERVED INSTANCE
:-):-)
:-) :-)
:-)
:-) :-)
reserved
Web sites
Vast Developer support ALM capabilities in CI/CD and version control
Visual Studio Online Visual Studio Integration
Much Much More
Demo Websites
Cloud servicesBuild infinitely scalable apps and servicesSupport rich multi-tier architecturesAutomated application management
What is a Cloud Service?
A collection of related service roles
Web Role Worker Role
What Can It Run?
General Rule
Choice of Language
Choice of Frameworks
If it runs in Windows it can run as a Cloud Service
C#, VB, C++, Java, PHP, Node.js, Phython, etc.
.NET, ExpressJS, Rails, Zend, etc.
Web Role
All features of a worker role + IIS 7, 7.5 or IIS 8.0*ASP.NET 3.5 SP1, 4.0 or 4.5* – 64bitHostsWebforms or MVCFastCGI applications (e.g. PHP)Multiple Websites
Http(s)Web/Worker HybridCan optionally implement RoleEntryPoint *for Windows Server
2012
Worker Role Patterns
Queue Polling WorkerPoll and Pop Messages within while(true) loopE.g. Map/Reduce pattern, background image processing
Listening Worker RoleCreate TcpListener or WCF Service HostE.g. Run a .NET SMTP server or WCF Service
External Process Worker RoleOnStart or Run method executes Process.Start()Startup Task installs or executes background/foreground processCustom Role Entry Point (executable or .Net assembly)E.g. Run a database server, web server, distributed cache
Role Lifecycle
All roles may extend RoleEntryPointRoles report status via RoleEnvironment
StatusCheck
StatusCheck
StatusCheck
Stopping
METHODS EVENTS STATUS
Roles and Instances
At runtime each Role will execute on one or more instances A role instance is a set of code, configuration, and local data, deployed in a dedicated VM
Roles are defined in a Hosted ServiceA role definition specifies:Virtual machine sizeCommunication endpointsLocal storage resourcesetc.
Worker Role 1
Windows Azure Cloud Services
instance #0
RequestDatabas
eResponseBrowser
Communications viaQueues and Tables
instance #1
instance #2
instance #3
instance #1
instance #3L
B
instance #0
Scale upand down
Web Role 1
Web & Worker roles
Applications are specifically developed for Windows Azure Web roles, Worker roles and storage
Windows Azure applications can be run in a development environment
Pay per role instance Two instances required for 99.95% SLA
Add and remove instances based on demand Load balancing is automatically configured
Choose your instance sizeCompute Instance Size CPU Memory
Extra Small Shared 768 MB
Small 1 1.75 GB
Medium 2 3.5 GB
Large 4 7 GB
Extra Large 8 14 GB
A6 4 28 GB
A7 8 56 GB
Each instance is deployed in its own VM You can use RDP to access the VM
Cost is based on deployed instance sizes Charged even if the instance is not running
Remember the SLA requires at least two instances per role
ServicePackage
ServicePackage
ServicePackage
Server Rack 1 Server Rack 2
Virtual machine
Virtual machine
Provision Role InstancesDeploy App CodeConfigure Network
Virtual machine
Virtual machine
Windows Azure Datacenter
ServicePackage
Provision Role InstancesDeploy App CodeConfigure Network
Windows Azure Datacenter
ServicePackage
Provision Role InstancesDeploy App CodeConfigure Network
Network Load Balancer
Windows Azure Datacenter
Network load-balancer configured for traffic
Provision Role InstancesDeploy App CodeConfigure Network
Network Load Balancer
Windows Azure Datacenter
Worker Role 1
Deploying Cloud Services
instance #0
RequestDatabas
eResponseBrowser
Communications viaQueues and Tables
instance #1
instance #2
instance #3
instance #1
instance #3L
B
instance #0
Scale upand down
Web Role 1
The developer builds the application
Configuration data values can be updated on the live system
The binaries and definition (csdef) file are zipped intoservice package file
Update & Fault Domains
Windows Azure distributes instances across multiple Update Domains to support in-place upgrades One domain is updated at a time
Supports application and Windows Azure OS updates Service remains running with reduced capacity
Similar concept used to support Windows Azure datacentre hardware failures Instances are distributed across multiple fault domains
A single failure will allow service to remain running
Worker Role Inst #0
Web Role Inst #0
Update Domain 0
Worker Role Inst #1
Web Role Inst #1
Update Domain 1
Worker Role Inst #2
Update Domain 2
Staging and production
A service can be deployed to staging, tested and “moved” to production by swapping the VIP
A service upgrade can be deployed to staging and then swapped to the production environment During the swap the current production environment is “moved” to staging
Production
Staging
Production URL
Staging URL
LB
LB
http://<guid>.cloudapp.net
http://<name>.cloudapp.net
Vast Developer support ALM capabilities in CI/CD and version control
SDK’s and NuGet Packages Visual Studio Integration
Much Much More
Demo
Deploying and running applications
Virtual machinesWindows Server and LinuxFlexible Workload SupportVirtual Private Networking
Windows Azure
Your Data Center
Windows Azure
Your Data Center
Your Data Center
Windows Azure Other Service Providers
Windows Azure Storage
VM with persistent drive
Windows Azure Storage
VM with persistent drive
Windows Azure Storage
VM with persistent drive
Reliable and always on
Windows Azure Storage
VM with persistent drive
Continuous storage
geo-replication
WEST
DC
EASTDC
> 500 miles
Windows Azure Storage
Demo Virtual Machines
StorageBlobsTablesQueues
Windows Azure Storage Abstractions
TablesStructured storage. A table is a set of entities; an entity is
a set of properties.
QueuesReliable storage and delivery of messages for an application.
BlobsSimple named files along with metadata for the file.
Blob Storage Concepts
BlobContainerAccount
http://<account>.blob.core.windows.net/<container>/<blobname>
Pages/ Blocks
contoso
PIC01.JPG
Block/Page
Block/Page
PIC02.JPG
images
VID1.AVIvideos
Table Storage Concepts
EntityTableAccount
contoso
Name =…Email = …
Name =…EMailAdd=
customers
Photo ID =…Date =…
photos
Photo ID =…Date =…
No Fixed Schema
FIRST LAST BIRTHDATE
Wade Wegner 2/2/1981
Nathan Totten 3/15/1965
Nick Harris May 1, 1976
FAV SPORT
Canoeing
Querying
FIRST LAST BIRTHDATE
Wade Wegner 2/2/1981
Nathan Totten 3/15/1965
Nick Harris May 1, 1976
?$filter=Last eq ‘Wegner’
Storage
Local storage can be allocated on an instance bases All Web and Worker roles are stateless so local storage should only be
used for caching
Persistent storage is managed through BLOBs
NTFS VHD drive can be stored in blobs and attached to instances Tables Queues SQL Azure
Storage access
Blobs, tables and queues are accessible via URLs Accessible via Representational State Transfer (REST) APIs
Uses HTTP methods : POST, GET, PUT and DELETE Requests are signed with the storage key
All Windows Azure storage can be accessed from anywhere
Demo Storage
DBSQL databaseRelational SQL Server Engine in the CloudClustered for high availabilityFully Managed ServiceSQL Reporting support
A Server Is Not A Machine
SQL Server
A Machine
SQL Database
Server
A TDS Endpoint
How It Works
ArchitectureClient Layer - Used by application to communicate directly with SQL Database.Services Layer – Gateway between Client layer and Platform layer.Platform Layer – Includes physical servicers and services that support the Services layer.Infrastructure Layer – IT administration of the physical HW and OS.
Infrastructure Layer
PHPWCF Data Services
SQL ServerApplications
and Tools
ODBC ADO.NET
Tabular Data Stream (TDS)
Client Layer
Services Layer
Provisioning
Billing and Metering
Connection Routing
Provisioning
Billing and Metering
Connection Routing
Provisioning
Billing and Metering
Connection Routing
…
…
…
TDS+SSL
Platform Layer
SQL Server
SQL Database
Fabric
Management Services
SQL Server
SQL Database
Fabric
Management Services
SQL Server
SQL Database
Fabric
Management Services
…
…
…
Database Replicas and Failover
Replica 1
Replica 2
Replica 3
DB
Single Database Three Replicas
Single Primary
Replica 4
!
DemoWASD – SQL DB
WAAD: Windows Azure Active Directory
74
Managing Identity in the Cloud
• Application On-premise Partner
organization Somewhere!!!
User
• User On-premise Partner
organization Somewhere!!! • User’s Identity
On-premise Partner
organization 3rd Party Identity
provider
Name: FredPassword: *****Age: 107Country: Japan
Federation joins it all together
Windows Azure Active Directory Windows Azure AD includes the Access Control Service
(ACS) Provides a method for applications and services to authenticate and authorize users
ACS brokers authentication with popular identity providers Live ID Google Yahoo Facebook http://socialsts.net/
Relying parties can be applications or AD FS
Demo
Monitoring and diagnostics
Windows Azure
Windows Azure Services
Windows Azure management
Portal APIs
Blobs, tables, queues
Building blocks for distributed services Access control Network connectivity
Connect on-premise and Cloud applications
Caching
Windows Admin Server Tools
On-premise managementOn-premise development
Visual Studio, Azure SDK etc
compute databasestorage
Cloud services
Web sites
Virtual machin
es
Applicationbuilding blocks
StorageBig data
Caching
CDN
Database
Identity
Media
Messaging
Networking
Traffic
80
Azure Cloud offers you the opportunity to be the expert at bringing scalability and agility to your company’s applications and services
81
Thank you