20120620 moving to windows azure
DESCRIPTION
From the ATRANSCRIPT
Migrating to Azure Luis Alves Martins Solution Architect | Microsoft Services WE HQ
how to go to the cloud?
Packaged
Software
Storage
Servers
Networking
O/S
Middleware
Virtualization
Data
Applications
Runtime
Yo
u m
an
ag
e
Infrastructure (as a Service)
Storage
Servers
Networking
O/S
Middleware
Virtualization
Data
Applications
Runtime
Man
ag
ed
by v
en
do
r
Yo
u m
an
ag
e
Platform (as a Service)
Man
ag
ed
by v
en
do
r
Yo
u m
an
ag
e
Storage
Servers
Networking
O/S
Middleware
Virtualization
Applications
Runtime
Data
Software (as a Service)
Man
ag
ed
by v
en
do
r
Storage
Servers
Networking
O/S
Middleware
Virtualization
Applications
Runtime
Data
efficiency
control maturity
Clie
nt
Laye
r
(on-p
rem
ise)
PC Games Console Phone Tablet Browser
On-premise Service
On-premise Database
Office Add-in
Ap
plic
atio
n
Laye
r
Inte
gra
tio
n
Laye
r
Connect CDN Traffic Manager
Access Control Service Bus
Cloud Services
Data Sync
Data
Laye
r
Caching Drive Queues Tables Blobs SQL Azure Reporting Database Storage
Virtual Machines Web Sites Hadoop
Virtual Network
Media Services
EAI / EDI
Cloud Services
Cloud Services
Compute
what changes?
compliance
“my app
is 18!”
?
compliance
scalability
“scalability =
scaling out”
elasticity “Scalability is an
architecture feature,
elasticity is a
platform feature” – Luis Calado
compliance
scalability
performance
compliance
scalability
performance
security
Infrastructure (as a Service)
Storage
Servers
Networking
O/S
Middleware
Virtualization
Data
Applications
Runtime M
an
ag
ed
by v
en
do
r
Yo
u m
an
ag
e
Platform (as a Service)
Man
ag
ed
by v
en
do
r
Yo
u m
an
ag
e
Storage
Servers
Networking
O/S
Middleware
Virtualization
Applications
Runtime
Data
compliance
scalability
performance
security
operations
Infrastructure (as a Service)
Storage
Servers
Networking
O/S
Middleware
Virtualization
Data
Applications
Runtime M
an
ag
ed
by v
en
do
r
Yo
u m
an
ag
e
Platform (as a Service)
Man
ag
ed
by v
en
do
r
Yo
u m
an
ag
e
Storage
Servers
Networking
O/S
Middleware
Virtualization
Applications
Runtime
Data
The 5 R’s
http://www.gartner.com/id=1485116
IaaS
Batch at Scale
Using the CDN
Using Table Storage
Storing PCI data in a Partner cloud
moved to partner cloud
with new development to extend it
in public cloud
Java to C#
new SaaS solution
REHOST
REFACTOR
REVISE
REBUILD
REPLACE
Change the host
Change it
Take advantage
of the cloud
Do it again
Buy new solution
Time Internal Cost Integration Your Choice?
Fill
according
to your
company,
culture,
priorities
and money
Low
H
igh
no application
is an island
John Donne
(1572-1631)
“No man is an island” No man is an island, Entire of itself. Each is a piece of the continent, A part of the main. If a clod be washed away by the sea, Europe is the less. As well as if a promontory were. As well as if a manor of thine own Or of thine friend's were. Each man's death diminishes me, For I am involved in mankind. Therefore, send not to know For whom the bell tolls, It tolls for thee.
Bring entire application and all dependencies
Bring portion of application to the cloud while some resources stay on-premises
Latency? Security? “Chattiness”?
scenario to avoid(most of the times)
Two-way sync
One-way sync to cloud One-way sync from cloud
safer solution
Disaster Recovery Consolidation scenarios
Using the cloud for internet and mobile availability
Windows Azure Virtual Network
Hybrid Public/Private Cloud Enterprise app in Windows Azure requiring connectivity to on-premise resources
Manage identity and access control with on-premise resources (on-premises Active Directory)
Remote monitoring and trouble-shooting of resources running in Windows Azure
Cloud deployments requiring persistent IP addresses and direct connectivity across services
common scenarios
Branch A Branch B Multiple office/branch locations Share data between locations Aggregate data in the cloud
Branch A Geographic located applications - Use with Azure Traffic Manager Disaster Recovery
Scaling out the application Separating workloads, Reporting, Analytics
migrating...
Connect Cloud Apps via VIPs • Easily compose services by connecting public endpoints
• For advanced connectivity scenarios such as Active Directory or DCOM
• Simple, secure and highly efficient method of using IaaS and PaaS side-by-side
• Do not use write caching
• Avoid using OS drive for large databases
• Consider putting database and transaction log files on separate drives
• Consider putting tempdb on the non-persistent cache disk (D:\)
• Consider using database page compression to reduce I/O
• Consider latency between primary and replica when choosing sync mode
http://blogs.msdn.com/b/sqlazure/archive/2010/08/04/10046103.aspx
http://code.msdn.microsoft.com/Windows-Azure-ASPNET-03d5dc14
• See “Windows Azure Accelerator for Web Roles”
http://sqlazuremw.codeplex.com/
• Size (actual max:150Gb) – SQL Azure Federations
• All tables require clustered indexes – solution: refactor
• No Full-Text Search – Use FAST or Lucene.net or do-it yourself
• No Cross Database Joins available (or Linked Servers) – Use schemas, refactor
• No SQL-CLR – Refactor, please
• Performance SQL Azure info: http://msdn.microsoft.com/en-us/library/ee336279.aspx
Tables, indexes and views
Stored Procedures
Functions
Cursors
Triggers
Constraints
Table variables, session temp tables (#t)
Spatial types
HierarchyId
Sparse Columns
Throw statement
Change Data Capture
Cross Database Joins
Data Auditing
Data Compression
Database file placement
Database mirroring
External Key Management / Extensible Key Management
FILESTREAM Data
Full-text Search / Indexes
Global temporary tables
Performance Data Collection (Data Collector)
Policy-Based Management
Resource Governor
SQL-CLR
SQL Server Replication
Transparent Data Encryption
Table Partitions
• Logs
• Static Data
• Cached tables
• Performance counters
• Azure storage analytics
Cloud Ready
(Paas)
Configuration
Storage
Session
Database
Azure On premises Both
Check if running in Azure
and use accordingly
Blob: File handling class Table: Interface to SQL Server
Queues: Abstraction layer
(always with a configuration
switch)
Configure at web.config
level
web.config
app.config
Blob: File Storage
Table: SQL Server
Queues: MSMQ
Memory, SQL Server,
Cache
SQL Server
ServiceConfiguration
.csdef and .cscfg
Azure Storage
Memory, SQL Azure,
Azure Storage, Cache
SQL Azure
Use the common
subset of functionality.
Isolate other features
SAL?
wrap up
Many Applications could benefit from migrating to a mixed deployment. Migrating to web/worker roles or taking advantage of other Windows Azure services (storage, cache etc..)
Simplified Deployment and Configuration Health Model Easy High Availability Instance Scalability OS Patching Automatic Firewall Configuration Simple Certificate Deployment Many others
Use Virtual Machines and VNET for Forklift Migration
(more)Q&A
Luis Alves Martins [email protected]
thank