Migreer je applicatie naar de cloud Eelco Koster IT Architect Ordina
Agenda
Waarom cloud Migratie voorbereiden Migratie uitvoeren Tips en Tricks
Waarom cloud Wat bedoel je met cloud?
Definitie van cloud Self service Overal toegang
Locatie onafhankelijke resource pooling
• Klant verzorgt zijn eigen provisioning • Direct beschikbaar (niet meer 2 werk dagen wachten) • Via het internet • Op allerlei type clients / devices • Multi tenant • Virtualisatie
Snelle elasticiteit
• Snel kunnen schalen • Oneindige capaciteit
Betaal voor gebruik
• Bedrag per dienst • Bedrag per transactie
Robuust
• Geen verlies van data • Actieve monitoring van diensten
IT CAPACITEIT
Te weinig capaciteit
Hindernis voor innovatie
“Verspilling“ van capaciteit
Toegewezen IT-capaciteit
Voorspelling van belasting
Vaste kosten van IT-capaciteit
Werkelijke belasting
TIJD
Toegewezen IT capaciteit
Voorspelling van belasting
IT CAPACITEIT
Voldoende capaciteit
Reductie van initiële investeringen
Reductie van over capaciteit
Mogelijke reductie van IT capaciteit in geval van verminderde belasting
Werkelijke belasting
TIJD
Cloud Computing Scenarios
Robuust
Windows Azure Datacenter
Inventarisatie
Wet en regelgeving Identificeer applicaties Onderzoek haalbaarheid Bepaal de ROI
Windows Azure Compliance Programma
Beschrijving
Status
EU-US Safe Harbor Framework
Legal transfer of data to Microsoft from within EU
Afgerond
ISO27001
Broad international information security standard
Afgerond (voor core services)
SSAE 16 (SOC 1 Type 2)
Vervanger voor SAS 70 Type 2
Afgerond (voor core services)
FISMA / FedRAMP
Required by law for US Federal agencies and looked on favorably by other government agencies
In progress
EU Model Clauses
Robust commitment for handling EU personal data and transfer to US
Afgerond (voor core services)
Protected health information in the US
Afgerond (voor core services)
HIPAA BAA
Core Services: Compute, Storage, Virtual Network, Virtual Machine
FISMAISO
HIPAA
Wetgeving/Compliance Payment Card Industry Data Security Standard (PCI DSS)
Het opslaan van credit card gegevens in Windows Azure is (nog) niet toegestaan.
Patriot Act
Amerikaanse overheid mag zonder kennisgeving in je data kijken. Bekijk het Windows Azure Trust Center voor meer informatie: http://www.windowsazure.com/en-us/support/trust-center/
Identificeer applicaties Start hier
Langetermijn Hoog
Bedrijfswaarde
Laag Niet migreren Quick wins Eenvoudig
Complex
Technische complexiteit
Onderzoek haalbaarheid Detail onderzoek Bepaal zakelijke voordelen en technische uitdagingen
High-level architecture/mapping all-in vs. hybrid Minimaliseer wijzigen vs. herzien architectuur voor cloud
Verschillende soorten public cloud Bepaal de ROI
Welke public cloud?
IaaS, Paas, Saas?
Bepaal je ROI Overweeg: Huidige hosting kosten Huidige personeelskosten Migratie kosten Licensies
TCO Calculator: http://bit.ly/14uzPRl
Migratie uitvoeren Applicaties mappen op de cloud Praktijk .NET WordPress Hybrid
Cloud mapping compute equivalenten On On premise premise
Windows Windows Azure Azure
voorbeeld voorbeeld
Web site/services werkend web site/services werkend op IIS (ASP.NET, ASP.NET op IIS (ASP.NET, ASP.NET MVC, PHP) MVC, PHP) Web site niet werkend op IIS (Tomcat) Web site niet werkend op IIS Services/Batch verwerking (Tomcat)
Web role of Azure Web role of Azure website website
• • • •
afdelings web site afdelings web site marketing site marketing site
Worker role
•
JSP-based site
Worker role Worker role
Services/Batch verwerking
Worker role
Server met geïnstalleerd pakket
Virtual Machine
• • • • •• ••
JSP-based site Archivering/opruimen Notificaties Langdurige processen Archivering/opruimen Notificaties Oracle database Langdurige Sharepoint processen
Applicatie bouw blokken
Overzetten naar cloud component equivalenten
On premise
Windows Azure
voorbeeld
Relationele database
• • •
SQL Azure Windows Azure table Windows Azure blob
• • •
applicatie database reporting store archief database
Lokaal bestandssysteem
• •
Windows Azure cloud drive • Windows Azure blob’s
network share/drive
Out of process session state / Caching
• • •
AppFabric caching SQL Azure Windows Azure tables
Session["variable"] caching lookup data
• •
Overzetten naar cloud component equivalenten
On premise
Windows Azure
Interfaces / Systeem communicatie
• • •
Active Directory
• • •
voorbeeld
Service Bus Windows Azure queue Windows Azure Connect (CTP)
• • • • • •
web services network share/file drops BizTalk WCF TCP/UDP FTP
ADFS Access Control Service Windows Azure Connect (CTP)
• • •
Active Directory SSO custom auth
Praktijk .NET
Praktijk Internet Web services Cloud services
Data Blob Storage
Load balancer SQL Server Azure database
Praktijk WordPress
Praktijk
Blob Storage
Internet WordPress Azure Websites
ClearDB MySQL MySQL database database
Load balancer
WordPress W3 Total Cache plugin
Praktijk Hybrid
Private datacenter
Server Rack 1
Server Rack 2
Praktijk web app
web role
Reporting service
Reporting service
SQL Server
on-premise
SQL Azure DataSync
SQL Azure
Windows Azure
Tips en Tricks
Migratie SQL Server naar SQL Azure Verschil Cloud service / Azure Websites Retry logic Server date/time Optimalisatie Extra kosten
SQL Server != Azure SQL Database • Niet ondersteund in Windows Azure SQL Database SQL Server Agent
Integrated Full-Text Search
SQL Profiler
Common Language Runtime (CLR)
Service Broker
Filestream Data
Global Temporary Tables
Database Mirroring (T-SQL)
• Elke tabel verplicht een clustered index • Backup en restore alleen via aparte API
SQL Azure Migration Wizard
http://sqlazuremw.codeplex.com/
SQL Azure vs. Table storage SQL Azure • • • • •
Eenvoudige migratie Data integriteit 150GB = €170,Geen transactie kosten Eenvoudig zoeken
Table storage • Lastige migratie • Goed schaalbaar • Goedkoop (150GB = €8,-) + transacties • Max 100TB • Lastig zoeken
Cloud service vs. Azure websites Cloud services • Staging en production slot • SSL support • Startup tasks
Azure Websites • Shared storage • Eenvoudige deployment • Nog in preview
Retry logic Zorg dat je code ook robuust is! Verbindingen naar SQL Azure, Service Bus en Storage Account kunnen mislukken Gebruik het Transient Fault Handling Application Block
Code sample (1/2) using Microsoft.Practices.TransientFaultHandling; using Microsoft.Practices.EnterpriseLibrary.WindowsAzure.TransientFaultHandling; ... // Define your retry strategy: retry 5 times, starting 1 second apart // and adding 2 seconds to the interval each retry. var retryStrategy = new Incremental(5, TimeSpan.FromSeconds(1), TimeSpan.FromSeconds(2)); // Define your retry policy using the retry strategy and the Windows // Azure storage transient fault detection strategy. var retryPolicy = new RetryPolicy<StorageTransientErrorDetectionStrategy>(retryStrategy);
Code sample (2/2) try { // Do some work that may result in a transient fault. retryPolicy.ExecuteAction( () => { // Call a method that uses Windows Azure storage and which may // throw a transient exception. this.queue.CreateIfNotExist(); }); } catch (Exception) { // All the retries failed. }
Extra kosten
Gegevens verkeer Storage (betalen per transactie) Service Bus connections Meer informatie: http://bit.ly/pYlLX2
Optimaliseer app/site
Vragen Twitter: @eelco_zelf Blog: http://eelco.azurewebsites.net Meer info: http://azurescan.ordina.nl
DOE DE AZURE SCAN VAN ORDINA azurescan.ordina.nl