moving applications to the cloud
DESCRIPTION
101 on moving application to the Windows Azure Cloud using new features like Remote Desktop, Windows Azure Connect, Admin Mode and Startup Tasks, VM Role.TRANSCRIPT
Powered by MVPIndependent Experts. Real World Answers.
2011 vasario 18, Vilnius
Moving Applications to the Cloud…
Sergejus BarinovasArchitect, Windows Azure MVP
Q: Why this topic?
A: This is the most uncovered topic so far…
Back to BasicsQ: What is Cloud?
A: Elastic compute resource on demand
A: This is not a technology, this is a THINKING
Cloud as a way of THINKING
Existing technologies adopted in a new way
Utility model is welcomed by small companies and enterprises
Symbiosis of IT Professionals and Developers called DevOps
Windows Azure is a PaaS Offering
Software-as-a-Service
consume
SaaSPlatform-as-a-Service
build
PaaSInfrastructure-as-a-
Service
host
IaaS
Windows Azure Compute
...in less than 5 minutes
Windows Azure Compute Primer
Web Role
Load
Bala
nce
r Web RoleWeb Role (IIS)Port 80
Web RoleWorker Role 1
Worker Role 2Port 1234
Port
80
Port
12
34
Internet Services
SQL Azure
Azure Storage
Fabric Controller
MonitoringProvisioningRecovering from failure
Windows Azure Compute
Windows Server x64 2008 / 2008 R2
.NET Framework 3.5 SP1 / 4.0
Native Code, PHP, Java, <your runtime here>
Full Trust and Admin Mode
Web RoleWorker Role
Windows Azure Compute
Role is an executable
HTTP(S) and TCP
<your process here>
Web RoleWorker Role
Role is hosted on IIS
HTTP(S)
ASP.NET
Fast CGI + PHP
Windows Azure Portal
demo
Oops!
We need some way to diagnose the issue…
Windows Azure Monitoring
Windows Azure Diagnostics API
System Center Operation Manager (SCOM) Windows Azure Management Pack
Remote Desktop Connectionto Role Instance
RDP to Role Instance
demo
Remote Desktop Configuration
<?xml version="1.0" encoding="utf-8"?><ServiceDefinition name="RemoteAccess" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition"> <WorkerRole name="GatewayRole"> <ConfigurationSettings> <Setting name="DiagnosticsConnectionString" /> </ConfigurationSettings> <Imports> <Import moduleName="RemoteAccess" /> <Import moduleName="RemoteForwarder" /> </Imports> </WorkerRole> <WorkerRole name="TargetRole"> <ConfigurationSettings> <Setting name="DiagnosticsConnectionString" /> </ConfigurationSettings> <Imports> <Import moduleName="RemoteAccess" /> </Imports> </WorkerRole></ServiceDefinition>
Remote Desktop Configuration
<Role name="WorkerRole1"> <Instances count="1" />
<ConfigurationSettings> <Setting name="Microsoft.WindowsAzure.Plugins.RemoteAccess.Enabled“ value="true" /> <Setting name="Microsoft.WindowsAzure.Plugins.RemoteAccess.AccountUsername" value="myuser" /> <Setting name="Microsoft.WindowsAzure.Plugins.RemoteAccess.AccountEncryptedPassword" value="[base64]" /> <Setting name="Microsoft.WindowsAzure.Plugins.RemoteAccess.AccountExpiration" value="2010-06-16T13:04:02.9666425-07:00" /> </ConfigurationSettings> <Certificates> <Certificate name="Microsoft.WindowsAzure.Plugins.RemoteAccess.PasswordCertificate" thumbprint="c0c23e1cdd7bfb20c14dce97b37ea67bd9f24918" thumbprintAlgorithm="sha1" /> </Certificates>
</Role>
But I Can’t Use SQL Azure!
Let’s say for security reasons…
Hybrid Windows Azure Model
Your applications can be
Entirely On-Premises
Entirely in the Cloud
Both in the Cloud and On-Premises
Hybrid Windows Azure Model
Cloud On-premises
Windows Azure Connect
Windows Azure Connect
demo
Windows Azure Connect
Secure connectivity
Super simple setup
Active Directory support
But I Need Customizations!
Configure Windows, Install Applications, etc…
Admin Mode & Startup Tasks
Execute BAT and PowerShell scripts
Configure Windows Server and IIS
Install additional software
Update registry keys
“PING in the Cloud”
demo
Admin Mode & Startup Tasks
<WebRole name="WorkerRole1"> <Startup> <Task commandline="relative\path\ToSetupExecutable" executionContext="limited|elevated" taskType="simple|foreground|background"/> </Startup></WebRole>
Let’s Have Some FUN!
And give away some prizes for…
Yell “I LOVE Windows Azure”
I told you my talks are a little bit crazy…
OK, Let’s Continue…
But <your excuse here>
… and Startup Tasks can’t help you
VM Role
Worker Role – role is an executable
Web Role – role is hosted on IIS
VM Role – role is the virtual machine
Admin Web / Worker
RoleVM Role
Web / Worker Role
Abstraction Control
VM Role In a Nutshell
CloudOn-Premises
Blob StorageBoot
VHD
Customize VHD
Save Diff.VHD
Base.VHD
VM Role
demo
VM Role
<ServiceDefinition name="MyVMRoleService" xmlns="…"> <VirtualMachineRole name="MachineRole" vmsize="Medium"> <Imports> </Imports> </VirtualMachineRole></ServiceDefinition>
VM Role
<ServiceConfiguration serviceName="MyVMRoleService" xmlns="…"> <Role name="MachineRole"> <OsImage href="20101020BaseVM.vhd" /> <Instances count="2" /> <ConfigurationSettings> </ConfigurationSettings> <Certificates> <Certificatename="Microsoft.WindowsAzure.Plugins.RemoteAccess.PasswordEncryption" thumbprint="195FD938F86D8785FF53C660BCBD283819E0271A" thumbprintAlgorithm="sha1" /> </Certificates> </Role></ServiceConfiguration>
VM Role
Ability to upload customized Windows Server x64 2008 R2 Enterprise image
You are now responsible for patching and maintenance
OS image is not durable (yet)
VM Role
It’s NOT an Infrastructure as a Service!
Windows Azure does automate many management tasks
Recap: Moving Apps to the Cloud
It’s really easier than you thought, isn’t it?
Moving Applications to the Cloud Use Remote Desktop for easier
diagnostics
Use Azure Connect to interconnect cloud and on-premise applications
Use Admin Mode and Startup Tasks to customize Windows and install software
Use VM Role to migrate legacy and native applications
Thank You!
Sergejus Barinovashttp://sergejus.blogas.lt@sergejusb