Azure Umbraco workshop

102
www.orbitone.com Orbit One BVBA Raas van Gaverestraat 83 B-9000 GENT, BELGIUM Website www.orbitone.com E-mail [email protected] Tel. +32 9 330 15 00 VAT BE 456.457.353 Bank 442-7059001-50 (KBC) 24 June, 2011 Azure + Umbraco workshop

description

Second edition of this popular interactive workshop, this time we focussed on the new “Windows Azure Accelerator for Umbraco” CodePlex project.Topics Web & Worker Role Virtual Machine sizes & performance Storage Types: Blobs, Tables, Azure SQL, queues No local persistant storage Network Load Balancing (round robin) Scale out to multiple instances Multiples websites in one Azure account Azure Content Delivery Network Swap between development & production environments Typical monthly costs to host Umbraco site Q&A

Transcript of Azure Umbraco workshop

Page 1: Azure Umbraco workshop

www.orbitone.com

Orbit One BVBARaas van Gaverestraat 83B-9000 GENT, BELGIUM Website www.orbitone.com

E-mail [email protected] Tel. +32 9 330 15 00VAT BE 456.457.353Bank 442-7059001-50 (KBC)

24 June, 2011Azure + Umbraco workshop

Page 2: Azure Umbraco workshop

24 June, 2011Azure + Umbraco workshop

Who are we?

Kurt ClaeysMicrosoft EMEATechnology Solution Professional Windows [email protected] http://twitter.com/kurtclaeys

Wim De ConinckOrbit One, Development Team [email protected] http://twitter.com/wimdc

Olivier MangelschotsOrbit One, Managing [email protected]://twitter.com/omangels

2

Page 3: Azure Umbraco workshop

24 June, 2011Azure + Umbraco workshop

Free workshop

Sponsored by Microsoft Azure

In collaboration with Belgian Umbraco User Group (BUUG.be)

Hosted by Orbit One

3

Page 4: Azure Umbraco workshop

We are:Team of 18Microsoft Gold Partner

We build:Websites, Intranet, Portals, custom solutions

We love:.NET, SharePoint, Dynamics CRM, Umbraco, Lync, New World of Work

Orbit OneInternet Solutions

Azure + Umbraco workshop24 June, 2011

4

Page 5: Azure Umbraco workshop

24 June, 2011Azure + Umbraco workshop

Umbraco certification training + exams

Here in Ghent at OneOfficeLevel 1:

When: 7 – 8 November 2011Target audience: Designers / Webdevelopers

Level 2:When: 9 – 10 November 2011Target audience: .NET Developers

5

Page 6: Azure Umbraco workshop

6 Azure + Umbraco workshop24 June, 2011

We will make everything available:SlidesBinaries/source codeDocumentation

Check www.buug.be

Downloads

Page 7: Azure Umbraco workshop

24 June, 2011Azure + Umbraco workshop

Agenda

9:30 – 10:00 Introduction10:00 – 11:00 Technical dive into Azure (part 1)

Break11:15 – 12:00 Technical dive into Azure (part 1)12:00 – 12:45 Umbraco CMS and Azure

Lunch13:30 Azure Development Program

13:45 – 16:30 Hands-on workshop

We are a small group, let’s make it interactive!

7

Page 9: Azure Umbraco workshop

9

Technical dive into Azure

Azure + Umbraco workshop24 June, 2011

Page 10: Azure Umbraco workshop

10

Who is familiar with?

Load balancer (NLB)Round robinSticky sessions

24 June, 2011Azure + Umbraco workshop

Page 11: Azure Umbraco workshop

Azure + Umbraco workshop11

Concept: Network load balancing (NLB)

24 June, 2011

Page 12: Azure Umbraco workshop

Journey to the Cloud

SOFTWAREA S A S E R V I C E

PLATFORMA S A S E R V I C E

INFRASTRUCTUREA S A S E R V I C E

Page 13: Azure Umbraco workshop

Windows Azure

CLAEYS KurtTechnology Solution ProfessionalMicrosoft EMEA

Page 14: Azure Umbraco workshop

Cloud ?

What is cloud computing ?Offering infrastructure, platform and software as a service over the internet to a global market.Move on-premises management of non functional IT assets to a providor.

Difference from traditional hostingsSold on demand “pay as you grow”Elastic scalabilityService is fully managed by the providorEnd user centric (IW or developer)Strong focus on integration (cloud-cloud or cloud-on-premises)

Page 15: Azure Umbraco workshop

Todays challenges

Infrastructure Utilization

85

Infrastructure Complexity

70percent of datacenter capacity is idle on average

percent of IT budgets is spent maintaining datacenter operations

Page 16: Azure Umbraco workshop

infrastructure as a service (hardware)Servers available in the cloud

platform as a service (developer) Delivery of a OS for custom, cloud enabled appsSupport for service hosting and interoperability Relational data storage in the cloud

software as a service (end users) = BPOSExchange onlineSharepoint onlineDynamics CRM online

Positioning AZURE

PAAS

IAAS

SAAS

Page 17: Azure Umbraco workshop

infrastructure as a service (hardware)Servers available in the cloud

platform as a service (developer) Delivery of a OS for custom, cloud enabled appsSupport for service hosting and interoperability Relational data storage in the cloud

software as a service (end users) = BPOSExchange onlineSharepoint onlineDynamics CRM online

Positioning AZURE

PAAS

IAAS

SAAS

Page 18: Azure Umbraco workshop

Cloud Computing TaxonomyThe Windows Azure platform fits here

Traditional IT

Storage

Servers

Networking

O/S

Middleware

Virtualization

Data

Applications

Runtime

You m

anage

IaaS

Storage

Servers

Networking

O/S

Middleware

Virtualization

Data

Applications

Runtime

Managed b

y v

endor

You m

anage

You m

anage PaaS

Managed b

y v

endorStorage

Servers

Networking

O/S

Middleware

Virtualization

Applications

Runtime

Data

SaaS

Managed b

y v

endor

Storage

Servers

Networking

O/S

Middleware

Virtualization

Applications

Runtime

Data

Page 19: Azure Umbraco workshop

Classic IT Capacity problem.

TIME

IT C

APA

CIT

Y

Actual Load

Allocated IT-

capacities

“Waste“ of capacities

“Under-supply“ of capacities

Fixed cost of IT-capacities

Load Forecast

Barrier forinnovations

Page 20: Azure Umbraco workshop

Upfront investments

Page 21: Azure Umbraco workshop

Capacity in a cloud model

Actual Load

Allocated IT capacities

Reduction of initial

investments

Reduction of “over-

supply“

No “under-supply“

Possible reduction of IT-capacities

in case of reduced load

IT C

APA

CIT

Y

Load Forecast

TIME

Page 22: Azure Umbraco workshop

Rates

ComputePer service hour of 1 CPU = 0,12 U$

StoragePer GB/month =0,15 U$

TransactionsPer 10K = 0,01 U$

SQL Azure10 GB/month = 99,99 U$

Access Control Transactions10K = 0,01 U$

Service Bus Connections1 connection/month = 3,99 U$

Data Transfer egressPer GB = 0,15 U$

Data Transfer ingressPer GB = FREE

Page 23: Azure Umbraco workshop

Monthly Bill

Page 24: Azure Umbraco workshop

Usage

Com

pu

te

Time

Average

Inactivity

Period

“On and Off “

On & off workloads (e.g. batch job)Over provisioned capacity is wasted Time to market can be cumbersome

Com

pu

te

Time

“Unpredictable Bursting“

Average Usage

Unexpected/unplanned peak in demand Sudden spike impacts performance Can’t over provision for extreme cases

Average Usage

Com

pu

te

Time

“Growing Fast“

Successful services needs to grow/scale Keeping up w/ growth is big IT challenge Complex lead time for deployment

Com

pu

te

Time

Average Usage

“Predictable Bursting“

Services with micro seasonality trends Peaks due to periodic increased demandIT complexity and wasted capacity

Page 25: Azure Umbraco workshop

The Windows Azure platform is a flexible cloud–computing platform that lets you focus on solving business problems and addressing customer needs.

Page 26: Azure Umbraco workshop
Page 27: Azure Umbraco workshop

Virtual NetworkCompute Storage

Data Sync

Database Reporting

CachingService Bus

Access Control

Page 28: Azure Umbraco workshop

Datacenters

Quincy, WA Chicago, IL San Antonio, TX Dublin, Ireland Generation 4 DCs

Page 29: Azure Umbraco workshop

Azure Fabric Controller

The Fabric Controller communicates with every server within the Fabric. Interacts with a “Fabric Agent” on each machineMonitors every VM, application and instanceService Management is performed by the Fabric Controller Performs load balancing, check pointing and recovery

Fabric Controller

Fabric

X

X

X

Service Definition

Page 30: Azure Umbraco workshop

Traditional Architecture

Web UITierBrowser Business Logic

TierDB

Request

Request

Page 31: Azure Umbraco workshop

Browser

Browser

Browser

Browser

Browser

Business Logic Tier

DBWeb UITier

Page 32: Azure Umbraco workshop

Web UITier

Browser

Browser

Browser

Browser

Browser

“Server Busy”

Business Logic Tier

DB

Page 33: Azure Umbraco workshop

Web Role

Browser

Browser

Browser

Browser

Browser

Web Role

Web Role

N L B

Business Logic Tier

DB

Page 34: Azure Umbraco workshop

Web Role

Browser

Browser

Browser

Browser

Browser

Web Role

Web Role

N L B

WorkerRole

DBN L B

WorkerRole

WorkerRole

Page 35: Azure Umbraco workshop

Web Role

Browser

Browser

Browser

Browser

Browser

Web Role

Web Role

N L B

WorkerRole

DBN L B

WorkerRole

WorkerRole

Azure

Page 36: Azure Umbraco workshop

Internet

Windows Azure Service

Your Service

Web Site(ASPX, ASMX,

WCF)

Web Site(ASPX, ASMX,

WCF)Web Role

(ASPX, WCF)

Worker Service

Worker Role

Your StorageTables Blobs

Queues

NL B

NL B

Azure Architecture

SQL Data

SQL

SQL

SQL

Page 37: Azure Umbraco workshop

Azure Network Load Balancer

webrole

Instance 1

Instance 2

Instance 3

NLB

Page 38: Azure Umbraco workshop

Azure Network Load Balancer

webrole

Instance 1

Instance 2

Instance 3

NLB

Page 39: Azure Umbraco workshop

Azure Network Load Balancer

webrole

Instance 1

Instance 2

Instance 3

NLB

“round robin”no sticky sessions !

Page 40: Azure Umbraco workshop

Azure Roles

Running apps in a virtual machineA virtual machine can have 1,2,4 or 8 coresWe can have multiple instances of the VM runningTwo types

Web Role = internet facing, IIS, request/response, ASP.NET or WCFWorker Role = background processing, endless loop, internal endpoints, can host WCF services

Page 41: Azure Umbraco workshop

• WebRole– Hosting ASP.NET pages and/or WCF Services.– Handles incoming HTTP/HTTPS requests.– Public, Internet faced.– Has access to Storage Services.

• WorkerRole– Code running in background, processing jobs.– ‘Hidden’ processing power.– Similar to a batch job or Windows service.– Handles messages from a queue.– Has access to Storage Services.

Azure Roles

Page 42: Azure Umbraco workshop

Storage

blobs

tables

queues

SQL Azure DB

Service

X number of Webroles

webrole 1

Instance 1 Instance 2 Instance 3

X number of Workerroles

workerrole1

internal endpoint internal endpoint internal endpoint

Instance 1 Instance 2 Instance 3

certificate

Performance Metrics

Application Log Files

Event Logs

IIS Logs

Crashdumps

Service configuration, maintainable after deploy

Service definition, defined at deployment

webrole 2

Azure Service

Instance 1

external endpoint 1 (port80)external endpoint 2 (port X)

Page 43: Azure Umbraco workshop

Configuring Virtual Machines Size

VM Size CPU Cores Memory

Disk Space for Local Storage Resources

Small 1 1.7 GB 250 GB

Medium 2 3.5 GB 500 GB

Large 4 7 GB 1000 GB

ExtraLarge 8 14 GB 2000 GB

Page 44: Azure Umbraco workshop

Configuring the service

Service configuration, maintainable after deployNumber of instancesConnectionString to StorageThumbprints of certificatesCustom setting

Service definition, defined at deploymentSize of VMLocal storage capacityEndpoint

ExternalInternal

Page 45: Azure Umbraco workshop

Azure VMRole

Ability to upload your own customized WS2008R2 Enterprise imagesFull control over the OS image, install whatever you want on it.You can remote desktop into the OSTarget scenarios

Need to use apps/libraries with no unattended setup32 bits appsChange registry settings

Scale out !Instances are behind loadbalancer, one public IP per serviceNo durability of OS image on hardware failure

With VM Role, the customer creates & maintains the OSPaying model = Paying model of current web/workerroleUses differencing disks to upload deltas to image

Page 46: Azure Umbraco workshop

Web/WorkerRole vs VMRoleAll three are virtual images running in the datacenter under control of the Azure fabric controller behind the loadbalancer.

Web/Worker RoleThe virtual image is already there, ... you upload your app, ... Azure places this app on the image and runs the image.

VM RoleYou upload the complete virtual image with all apps installed, ... Azure runs the image

virtual image

appapp

virtual image

app

virtual image

app

development environment Azure

development environment Azure

Hyper-V

Visual Studio

Page 47: Azure Umbraco workshop

VMRole lifecycle

Create a .vhd in Hyper-V manager, install W2008 R2 as OSInstall whatever roles, features and apps you want on it.Turn of automatics updatesInstall Windows Azure VM Role Integration ComponentsRun sysprep.exe and bring it downUpload the .vhd to Azure (needs a certificate)Deploy a service configuration (Visual Studio, Managament Portal or Management API PS commandlets)

Page 48: Azure Umbraco workshop

Azure Virtual Network

Aka as “Azure Connect”Secure network connectivity between on-premises and cloud, supports standard IP protocolsAutomatic setup of secure IP-level networkExample use cases:

Enterprise app migrated to Windows Azure that requires access to on-premise SQL ServerWindows Azure app domain-joined to corporate Active Directory Remote administration and trouble-shooting of Windows Azure Roles

Enable local computers for connectivity by installing WA Connect agentDNS name resolution

Page 49: Azure Umbraco workshop

Azure Virtual Network

Web/Worker VM Role

On PremiseMachine

Azure Connect Gateway

Azure Connect Gateway Azure Connect Gateway

Network policy managed through

portal

SQL Server

IPV6 address IPV6 address

IPV6 address

Page 50: Azure Umbraco workshop

Azure Storage

Non SQL dataUnlimited storage4 types

Tables: no fixed schema, no relationsBlobs: large objects, have metadata attributes, MIME type awareQueues: assync communication to workerroleDrives: NTFS volume mounted to roles

Accessible through a HTTP/REST API

Page 51: Azure Umbraco workshop

Windows Azure Storage Account

User creates a globally unique storage account name.

Account

Blob Table Queue

Storage keeps being available, even when application is not running !

Page 52: Azure Umbraco workshop

Libraries

Microsoft.WindowsAzure.*

System.Data.ServicesSystem.Data.Services.Client

Found in Windows Azure SDK

.NET 3.5

using Microsoft.WindowsAzure;using Microsoft.WindowsAzure.StorageClient;using System.Data.Services.Common;

Page 53: Azure Umbraco workshop

Azure Tabless

Tables store entities.Entity schema can vary in the same table. Can Not :

Create foreign key relationships between tables.Perform server side joins between tables.Create custom indexes on the tables.No server side Count(), for example.

Page 54: Azure Umbraco workshop

Azure Storage Tables

table

partition key

row key

timestamp

field1

field2

field3

Tables are partitioned to support load balancing across storage nodes unique

Page 55: Azure Umbraco workshop

Table Partioning

A 123 foo bar etcA 124 foo bar etcB 123 foo bar etc

Partition key Row key Data

A 123 foo bar etcA 124 foo bar etc

Partition “A”

Storage node 1

B 123 foo bar etc

Partition “B”

Storage node 2

Page 56: Azure Umbraco workshop

Azure Storage Blobs

Large dataCan be made private or publicCan have metadata attributes and MIME typesCan be cached by a Azure Content Delivery Network (CDN)Time based access to blobs with shared access signaturesTwo Types

Block Blobs : max 200GB, Use for data which is streamed back to a worker or client Page Blobs : max 1TB, Use for data accessed frequently by random reads and writes.

Azure Drives are also blobs

Page 57: Azure Umbraco workshop

Blob addressing

BlobContainerAccounts

MyAccount

SomeContainer

AnotherContainer

Pic001.jpg

Pic002.jpg

Mov001.wmv

Mov002.wmv

http://<AccountName>.blob.core.windows.net/<ContainerName>/<BlobName>

Page 58: Azure Umbraco workshop

Azure Storage Blobs accessibility

blob

private(Azure service or on

premises)

need storage credentials

public(browser, REST)

no storage credentials

time based with shared access signature

GET http://myaccount.blob.core.windows.net/pictures/profile.jpg? st=2009-02-09&se=2009-02-10 &sr=c&sp=r&si=YWJjZGVmZw%3d%3d&sig= dD80ihBh5jfNpymO5Hg1IdiJIEvHcJpCMiCMnN%2fRnbI%3d

Page 59: Azure Umbraco workshop

Shared Access Signatures

• Limit blobs in public container to be readable only if url contains shared access signature.

• Share access signature can be made valid for a timerange only.

http://<accountname>.blob.core.windows.net/<containername>/<blobname>?se=2010-04-04T11%3A38%3A31Z&sr=b&sp=r&sig=D73BRVuRBV9nXp9rsw35b5rkLadi6YEZ4Ti1S8eeAQQ%3D

Page 60: Azure Umbraco workshop

Azure Storage Queues

Message in – Message outTo support the assync processing modelTopologies :

Cloud-Cloud (web – worker)Cloud-OnPremisesOnPremises-CloudOnPremises-OnPremises through the cloud

8K per messageHTTP/REST based

Page 61: Azure Umbraco workshop

MessageReader

Message Creator

Msg 2

Msg 3

Msg 4

Msg 1

Azure Storage Queues

Page 62: Azure Umbraco workshop

Msg 1

get message

process message

delete message

Azure Storage Queues

Msg 2

Msg 3

Msg 4

Msg 1

Page 63: Azure Umbraco workshop

Msg 1

get message

process message

delete message

Azure Storage Queues

When not deleted within a timeout, the message is added to the queue again !

Msg 3

Msg 4

Msg 1

Msg 2

Page 64: Azure Umbraco workshop

Drives

Azure Web or WorkerRole Azure Storage

blob

Mounted , results in driveletter

using (StreamReader sr = File.OpenText(@”F:\file.txt”))

F:

On-Premises

F:

blob

Attach VHD

uploaddownload

using (StreamReader sr = File.OpenText(@”F:\file.txt”))

Page 65: Azure Umbraco workshop

Azure Content Delivery Network

Azure Datacenter

Service (webrole, workerrole)

Blob storage

user

CDN Node

requests blob

Is blob cached here ?blob

Page 66: Azure Umbraco workshop

Azure Content Delivery Network

Azure Datacenter

Service (webrole, workerrole)

Blob storage

user

CDN Node

another request

blob

Page 67: Azure Umbraco workshop

SQL Azure

Relational DB in the CloudBased on SQL 2008 R2Accessible from every ADO.NET clientSQL 2008 R2 Management Studio High-availability and fault toleranceNo physical administration is required Use existing knowledge in T-SQL development Scale databases up or down based on business needs (between 1GB and 50GB)

Page 68: Azure Umbraco workshop

SQL Azure

SQL Azure Server

Master DB

My DB(1 GB)

My DB(50 GB)

admin

logins users and roles users and roles

firewall

Azure Services(webrole,workerrole)

Anybody

internal restricted IP ranges

code “near” code “far”

Page 69: Azure Umbraco workshop

SQL Azure

SQL Azure Server

Master DB

My DB(1 GB)

My DB(50 GB)

admin

firewall

Azure Services(webrole,workerrole)

Anybody

internal restricted IP ranges

code “near” code “far”

stored on 3 replicas stored on 3 replicas stored on 3 replicas

Page 70: Azure Umbraco workshop

SQL Azure quorum commit

Quorum based commit scheme where data is written to the primary and one secondary replica before we consider the transaction committed.

DB

transaction

write write

replicas

Page 71: Azure Umbraco workshop

SQL Azure quorum commit

Quorum based commit scheme where data is written to the primary and one secondary replica before we consider the transaction committed.

DB

transaction

replicas OK OK

commited

Page 72: Azure Umbraco workshop

AppFabric Caching

A distributed, in-memory cache, implemented as a cloud service.  The same capabilities available in Windows Server AppFabric Caching.You can programmatically interact with the cache.Out-of-the-box ASP.NET providers for both session state and page output caching.Scenarios :

Statefull, multi-instance Azuer rolesASP.NET page cachingSpeed up access to static data

Page 73: Azure Umbraco workshop

AppFabric Caching

Role Instance 1 Role Instance 2 On Premise app

Caching

Read/Write data Read/Write data Read/Write data

Page 74: Azure Umbraco workshop

AppFabric Access Control

Azure ACS

WebApp

Facebook ID

ADFS2

identity providers

Claims

Redirect loginauthorization

rules

Page 75: Azure Umbraco workshop

77

Short break

Azure + Umbraco workshop24 June, 2011

Feel at home – help yourself!Coffee, tea, Coca-Cola, Fanta, Juice, Ice tea, ...

Session continues at 11:30

Page 76: Azure Umbraco workshop

78

CMS systems on Azure

Azure + Umbraco workshop24 June, 2011

Page 77: Azure Umbraco workshop

Azure + Umbraco workshop79

CMS in Azure, why?

Paul Sterling [email protected] (Technical Lead)Azure solving the future issues of

•highly-scaled•widely distributed•very dynamic WCMS solutions

NOT a replacement for traditional hosting, but a new option

24 June, 2011

Page 78: Azure Umbraco workshop

Azure + Umbraco workshop80

How much does it cost?

Simulation (approximate cost)1GB Azure SQL 10GB Blob storage (1000000 read/write transactions/day)50GB download traffic, 10GB upload traffic

One webinstance: €77,01/month (promo offer €52,71) Two instances: €140,91/month (promo offer €94,78) Two instances + one staging: €204,81/month (promo offer €136,85)

ConclusionHosting websites on Azure = starting at €635/year

Use Azure Pricing calculator!http://www.microsoft.com/windowsazure/pricing-calculator /Differences between instances

•http://www.microsoft.com/windowsazure/compute /

24 June, 2011

Page 79: Azure Umbraco workshop

Azure + Umbraco workshop81

Website CMS in Azure

Azure is great forHigh traffic websitesSites where you need to quickly scale-up/downGlobal sites (visits many geo locations)Load balancing, stronger SLA’s

Azure is not ideal forVery low cost hosting projectsProjects with lots of legacy code/dependencies

24 June, 2011

Page 80: Azure Umbraco workshop

82

Umbraco in Azure

Azure + Umbraco workshop24 June, 2011

Page 81: Azure Umbraco workshop

Azure + Umbraco workshop83

Umbraco v4.5+ in Azure: Challenges

What did we learn this morning?What are the challenges to host a CMS in Azure?

Group talk

24 June, 2011

Page 82: Azure Umbraco workshop

84

Where does Umbraco store info?

SQL database: Page templates (no binaries, only references in DB)Page content (meta-data, texts, navigation nodes)Media/documents (no binaries, only reference in DB)Users & members, permissionsLogs (errors, actions in admin)

File storage: Page templates: .MasterScripts/styles: XSLT, CSS, JS, ... + design elements used in templatesUser controls: ASCX/DLLs + Umbraco binariesMedia: GIF, JPG, PDF, Videos, ...Config: web.config + /config/ xml files

24 June, 2011Azure + Umbraco workshop

Page 83: Azure Umbraco workshop

85

Umbraco XML cache

XML file (/app_data/umbraco.config)Stored on local file systemContains all published nodes

PurposeFast app warm-up time (<1 sec)Less SQL queries – SQL is not used public site

Automatically updatedEvery time you publish using Umbraco backendXML dump of in-memory cache

http://forum.umbraco.org/yaf_postst4161_Umbraco-caching-explained.aspx

24 June, 2011Azure + Umbraco workshop

Page 84: Azure Umbraco workshop

86

Challenges

Multiple instances of the web-roleRound-robin load-balancingSessions need to be stored centrally

StorageNo local storage (unsafe)No “shared drive” over multiple machines

CDN – Content Delivery NetworkOnly possible when files are stored on Azure Blobs

Custom codeNeeds to work within the boundries of Azure

24 June, 2011Azure + Umbraco workshop

Page 85: Azure Umbraco workshop

24 June, 2011Azure + Umbraco workshop

Solutions to host Umbraco v4.5+ on Windows Azure

1. Simple web-role (manual creation)

2. CodePlex accelerator (by Slalom Consulting)

3. Sync Scripts (by Kurt & O1)

4. CodePlex accelerator (by Microsoft)

87

Page 86: Azure Umbraco workshop

24 June, 2011Azure + Umbraco workshop

Compare solutions

Simple webrole

CodePlexAccelerator

By Slalom consulting

Sync Scripts CodePlex Accelerator

By Microsoft

Data persistenceyour data is safe

×no backups!

√ √ √

Storage used Local on webrole

Azure BlobNTFS Mounted

Local synced with Azure Blob(One-way sync)

Local synced with Azure Blob(Bi-directional)

Multiple instances you get Azure SLA

× ×challenging

×challenging

Initial setup Easy ComplexOld Azure APIs

Easy Easy

Updates 20 min (downtime)

New VS deploy

10 min (downtime)Upload VHD

<1 minFTP type access

< 1 minFTP type access

Multi-tenantHost multiple websites / webrole

√Using Visual

Studio

× √Using config

scripts

√Using windows

application

CDNMedia files direct from blog

× × × ×√(custom work)

88

Page 87: Azure Umbraco workshop

24 June, 2011Azure + Umbraco workshop

CodePlex Accelerator by Slalom Consulting

89

Page 88: Azure Umbraco workshop

24 June, 2011Azure + Umbraco workshop

CodePlex Accelerator by Slalom Consulting

CodePlex project http://azureaccelerators.codeplex.com By Slalom Consulting (Seattle)

Uses old Azure API implementationOnly 1 webrole is supportedLess control storage transactions (mounted drive)

90

Page 89: Azure Umbraco workshop

24 June, 2011Azure + Umbraco workshop

Synchronization scripts

91

Page 90: Azure Umbraco workshop

Azure + Umbraco workshop92

Synchronisation scripts

Current implementation (free Download)One-way sync, copies from Azure Blob to local storage (full sync)IIS configuration, app Pool, Website, binding of hostheadersTriggered at VM boot (startup.exe)

Thanks to Kurt Claeys!

24 June, 2011

Page 91: Azure Umbraco workshop

Azure + Umbraco workshop93

CodePlex Accelerator by Microsofthttp://waacceleratorumbraco.codeplex.com

24 June, 2011

Page 92: Azure Umbraco workshop

Azure + Umbraco workshop94

CodePlex Accelerator by Microsofthttp://waacceleratorumbraco.codeplex.com

How does the Accelerator work?Creates 1 or more web-role instances (VMs)

•deploys a sync IIS process on these machinesDeploy tool uploads complete Umbraco installation to Blob Storage

•Includes all the files: images, css, aspx, web.config, …Created SQL Azure database for session stage

•Auto configuration of web.configScripts keeps local file system in sync with the blob storage

•Every second•Bi-directional

Uuser adds file trough Umbraco cms, is stored on local filesystem of the current web-role

One second later, file is pushed to Azure Blob StorageOne second later, file is pulled to the other web-roles

24 June, 2011

Page 93: Azure Umbraco workshop

Azure + Umbraco workshop95

How to update files of your site?

CloudBerry Explorer for Azure Blob Storage (Free!)FTP like access to Azure Blobhttp://cloudberrylab.com

Alternative free tool:ClumsyLeaf CloudXplorerhttp://clumsyleaf.com/products/cloudxplorerWarning: Does not create empty folders

24 June, 2011

Page 94: Azure Umbraco workshop

Azure + Umbraco workshop96

CloudBerry Explorer

24 June, 2011

Page 95: Azure Umbraco workshop

Azure + Umbraco workshop97

Future: Umbraco v5

CTP Released last week (available on CodePlex)http://umbraco.codeplex.com

Beta expected Q4 2011RTM somewhere end 2011 - beginning 2012

Paul Sterling [email protected] (Technical Lead)With regard to Umbraco v5; the support for Azure will be native in the sense that the architecture takes into account the de-coupled scenarios possible in cloud-based computing - where your data store may be a database, a flat store, or a blob store - and the runtime may be in a single instance or in 1,000's of volatile instances.

If you are looking to leverage Azure for your solutions in the future, keep an eye on v5 as much of the architecture has been finalized and a usable code base is not too far off.

24 June, 2011

Page 96: Azure Umbraco workshop

Azure + Umbraco workshop98

Umbraco v4.7+ in Azure, too early?

No! No need to wait for v5Umbraco v4.7 + Microsoft accelerator is great!

24 June, 2011

Page 97: Azure Umbraco workshop

99

Lunch

Azure + Umbraco workshop24 June, 2011

There are sandwiches and fresh soup

Workshop starts at 13:15

Page 98: Azure Umbraco workshop

24 June, 2011Azure + Umbraco workshop

Azure Development Program

Pay €1.500 to Microsoft and get1 half day business workshop (Why Azure, pricing, ...)4 half days technical assistance

When your project goes live (before 15 May)Can also be Proof of ConceptFull refund of €1.500!Visibility on Microsoft sites

First 50 live Benelux projects get a priceWindows Phone 7, ...

Interested? Contact Tom [email protected]://yourbusinessyourfame.cloudapp.net

100

Page 99: Azure Umbraco workshop

24 June, 2011Azure + Umbraco workshop

Cloud Essentialshttp://www.microsoftcloudpartner.com

Windows Azure 750 hours of an extra small compute instance 25 hours of a small compute instance 3GB of storage 250,000 storage transactions

SQL Azure 1 Web Edition database (1 GB)

Windows Azure platform AppFabric 100,000 Access Control transactions 2 Service Bus connections

Data Transfers (worldwide) 3 GB in 6 GB out

101

Page 100: Azure Umbraco workshop

24 June, 2011Azure + Umbraco workshop

MSDN Premium Subscription Benefithttp://www.microsoft.com/windowsazure/offers/popup/popup.aspx?lang=en&locale=nl-BE&offer=MS-AZR-0005P

Windows Azure 750 hours of a small compute instance 10 GB of storage 1,000,000 storage transactions

SQL Azure 3 Web Edition databases (up to 1 GB relational database each)

Windows Azure platform AppFabric 1,000,000 Access Control transactions 1 pack of 5 Service Bus connections***

Data Transfers North America and Europe (per region)

•7 GBs in •14 GBs out

102

Page 101: Azure Umbraco workshop

103

Hands-on

Azure + Umbraco workshop24 June, 2011

Page 102: Azure Umbraco workshop

24 June, 2011Azure + Umbraco workshop

Now it’s your turn!

Prepare the storage accountRun the setup scriptPrepare the Accelerator for deploymentPrepare the hosted servicePrepare the SQL Azure serviceConfigure Umbraco with the scriptUpload the site

Follow the step-by-step guideWe are here to help!

104