Moving applications to the cloud

Post on 15-Jan-2015

3.824 views 5 download

Tags:

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 of Moving applications to the cloud

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