SlideShare ist ein Scribd-Unternehmen logo
1 von 67
Running in the CloudChronoRace Maarten Balliauw – RealDolmenE-mail: maarten.balliauw@realdolmen.comBlog: http://blog.maartenballiauw.beTwitter: @maartenballiauw
Who am I? Maarten Balliauw Antwerp, Belgium www.realdolmen.com Focus on web ASP.NET, ASP.NET MVC, PHP, Azure, VSTS, 
 MVP ASP.NET http://blog.maartenballiauw.be http://twitter.com/maartenballiauw
Agenda Cloud computing? Windows Azure? The ChronoRace case ChronoRace? Infrastructure The project Resources Q&A
What’s in the cloud? Cloud Computing
Cloud computing On-demand self service Standardized access Location independant resource pooling Rapid elasticity Pay per use
IT as a Service Private (On-Premise) Infrastructure (as a Service) Platform (as a Service) You manage Applications Applications Applications You manage Runtimes Runtimes Runtimes Security & Integration Security & Integration Security & Integration Managed by vendor You manage Databases Databases Databases Servers Servers Servers Managed by vendor Virtualization Virtualization Virtualization Server HW Server HW Server HW Storage Storage Storage Networking Networking Networking
What’s in the cloud? Windows Azure
The Windows Azure Platform Windows Azure SQL Azure Windows Azure platform AppFabric Microsoft Codename “Dallas” Microsoft Codename “Sydney”
Windows Azure Flexible application hosting Lights-out service management Provide code & service model, hit ENTER Storage at massive scale Blobs, tables, queues Compute Storage Management
Windows Azure
Storage options Blobs, tables, queues Windows Azure Drive (a.k.a. XDrive) Virtual NTFS volume that can be mounted .vhd format Use existing NTFS API’s Easier migration Stored on blob storage provides quick mount/unmount in other VM
SQL Azure Relational database as a service Highly available, automatically maintained Extension of the SQL Server Data Platform Reporting Data Sync Business Analytics Database
Windows Azure AppFabric Secure connections between services Across organizational boundaries Claims-based access control ServiceBus AccessControl
Service Bus Overview
Microsoft Codename “Dallas” Content brokerage and discovery platform  Available as a CTP Microsoft Codename “Dallas”Information Services
Microsoft Codename “Sydney” - Connectivity WINDOWS AZURE PLATFORM ENTERPRISE Data Service Service Bus Access Control Service Code Name “Project Sydney”
North America Region   Asia Pacific Region Europe Region N. Europe  Sub-region   N. Central – US   Sub-region   E. Asia Sub-region  W. Europe  Sub-region  S. Central - US  Sub-region S.E. Asia Sub-region
What’s in the cloud? Running in the Cloud The ChronoRace case
ChronoRace
ChronoRace Delivering infrastructure for timing sports events Running, biking, triathlon, mountainbike, 
 Founded 10 years ago, Malmédy, 4 persons Timing of every participant Video footage of every participant PDF certificates for every participant Around 340 events per year! Belgium, Luxemburg, France, Germany, Netherlands, 
 Small events Large events Dwars door Brugge	  8.000 participants Antwerp 10 Miles	17.000 participants 20km of Brussels	30.000 participants
What’s in the cloud? Infrastructure The ChronoRace case
Current infrastructure
Google Analytics from Antwerp 10 Miles 2010
Big event
 20km of Brussels upcoming! (30/05/2010) Expected 30.000 participants Downloading their certificate	30.000 hits processing a PDF Watching results online		30.000 hits* Having a video online		30.000 x +/- 10MB (= 292 GB) Watching their video		30.000 video views And showing off to family and friends
			30.000 x 10MB x 10 views (avg.) =			2,92 TB bandwidth in 1 day About 35 Mbps Over a 10 Mbps line
 But there’s an option to a 100 Mbps line!
How to overcome these predictable peaks? Make videos only available after a day or 2 Many hits to the results page can be handled Videos online during week: traffic spread Invest in streaming? Costly, big capacity only needed for +/- 7 events per year The videos are not the only problem
How to overcome these predictable peaks? A better WAN connection? Costly Currently the server can handle all traffic because of the 10 Mbps cap Buy additional hardware? Costly Estimated use of additional hardware is +/- 7 events per year 14 days of required uptime 342 days of money burning
“Growing Fast“   “On and Off “   Inactivity Period  Compute  Compute  Average Usage Usage Average Time  Time  ,[object Object]
Over provisioned capacity is wasted
Time to market can be cumbersome
Successful services needs to grow/scale
Keeping up w/ growth is big IT challenge
Complex lead time for deployment“Unpredictable Bursting“   “Predictable Bursting“   Compute  Compute  Average Usage  Average Usage  Time  Time  ,[object Object]
Sudden spike impacts performance
Can’t over provision for extreme cases
Services with micro seasonality trends
Peaks due to periodic increased demand
IT complexity and wasted capacity   Workloadpatternsoptimalforcloud
What’s in the cloud? The Project The ChronoRace case
Where did it start
 Microsoft salesguy is a runner Annoyed by the slow / failing website Decided to give a call ChronoRace interested in the cloud story RealDolmen chosen as partner Already investing heavily in Windows Azure for 1,5 year Mostly building PoC’s to see what fits / what not Experience
Step 1: Identify the possible use case for cloud Obviously: peaks, mostly predicted
Step 2: Identify possible pitfalls Current website VS2003 Web Site Database 1 GB or 10 GB? PDF generation 32 bit component (Azure is 64 bit) License key requires registry access Streaming Possible from Azure? Directly from storage? Scaling Not automatic on Azure Deployment Site is +/- 300 MB, deploy this every time? Pricing Is this all worth the migration?
Current web site VS2003 Web Site Should be easy! File -> New -> Cloud Add a web application Copy the VS2003 web site in Right click -> Convert to web application Done!
Current web site VS2003 Web Site in a VS2010 Web Application Would not compile (no namespaces) Migration took some time Add namespace Restructure classes Throw out stuff that was no longer used Actually migration allowed us to get a cleaner application
Database Current database size: around 2,5 GB Squeeze stuff into 1 GB? Data retention Restructure database?
Database Decided to go for 10 GB version Migration Using open-source: SQL Azure Migration Wizardhttp://sqlazuremw.codeplex.com Worked surprisingly good! 2 stored procedures could not be migrated Test migration took 7 hours initially! Don’t migrate on your home connection 
Database Current website at www.chronorace.be runs on SQL Azure As easy as changing the connection string! After installing SQL Server 2008 R2 client After installing SQL Server 2008 R2 management objects
Database Backups? Do you NEED backups on Azure anyway??? Not supported in current version, backups manually via SQL Azure Migration Wizard to local SQL Server One of the upcoming SQL Azure versions will support database backups
PDF generation Using “WebSuperGoo ABCpdf” Requires registry access for the license key Not allowed on Azure We built a small PoC in Development Fabric which worked! Deployment to production learned that this was false optimism  Current version: 32 bits Azure: 64 bits We tried to run the non-licensed version on Azure Did not work: author has disabled 64 bits support
PDF generation 64 bits version
 Decided to keep this on the current web server for now Migrate to an open-source PDF component in the future
Streaming Currently a Flash player Downloads chunks of +/- 1 MB Should work on blob storage! Cheap storage Cheap traffic CDN support API supports downloading chunks
Streaming Getting a chunck took a few seconds for each video
 What if a participant watches the video 10 times? Decided to cache the video to compute During the advert that is shown Next view of the video is instant! Demo: http://bit.ly/d8koz6
Scaling Done by doing this: Would be awesome to have this: Not possible! “When” should it scale? “How” should it scale? “Who” / “What” is responsible for scaling? <Instancescount="2" /> <InstancesminInstances="3" maxInstances="10" />
Auto-Scaling Auto scaling would be a big benefit During events all 4 people are busy It is the cloud after all? The scale-up/down thing? We decided to build something for that Application should be able to monitor itself Only one instance should be responsible for that
Auto-Scaling – Scaling logic Scaling logic provider uses sensor data to suggest an action (up/fast-up/down/stable) To implement per application Just a suggestion! Scaling logic provider uses sensor data to suggest an action (up/fast-up/down/stable) To implement per application Just a suggestion!
Auto-Scaling Uses all the standard API’s of Windows Azure Master election 				 Role Environment Performance counters 			 Diagnostics API Queue length 				 Storage API Scaling (changing # instances in config) 	 Management API
Auto-Scaling in ChronoRace Sensor based on concurrent video streams Scales between 2 and 20 instances automatically Hard to verify! The Windows Azure portal is not willing to disclose the number of instances during scale. MMC Snap-In does give useful info!http://code.msdn.microsoft.com/windowsazuremmc
Deployment Site is +/- 300 MB, deploy this every time? Deployment through portal seems to take forever Uploading 300 MB for a very small change is crazy We decided to move images and static content to blob storage and serve it from there Code and dynamic content are on Windows Azure. Making it a 3,5 MB application.
Deployment Deployment can be done in 2 ways “Upgrade” “VIP swap” Website will mostly run on 1 or 2 instances Case 1  upgrade will bring the site down! Process: use VIP swap
Pricing – Current pricing Server lease for 2 servers Including 10 Mbps bandwidth +/- 450 EUR / month

Weitere Àhnliche Inhalte

Was ist angesagt?

Was ist angesagt? (20)

Writing less code with Serverless on AWS at AWS Community Day DACH 2021
Writing less code with Serverless on AWS at AWS Community Day DACH 2021Writing less code with Serverless on AWS at AWS Community Day DACH 2021
Writing less code with Serverless on AWS at AWS Community Day DACH 2021
 
Microservices Workshop All Topics Deck 2016
Microservices Workshop All Topics Deck 2016Microservices Workshop All Topics Deck 2016
Microservices Workshop All Topics Deck 2016
 
Build to Hack, Hack to Build
Build to Hack, Hack to BuildBuild to Hack, Hack to Build
Build to Hack, Hack to Build
 
Writing less code with Serverless on AWS at OOP 2022
Writing less code with Serverless on AWS at OOP 2022Writing less code with Serverless on AWS at OOP 2022
Writing less code with Serverless on AWS at OOP 2022
 
Revolutionize DevOps with ML capabilities. Introduction to Amazon CodeGuru an...
Revolutionize DevOps with ML capabilities. Introduction to Amazon CodeGuru an...Revolutionize DevOps with ML capabilities. Introduction to Amazon CodeGuru an...
Revolutionize DevOps with ML capabilities. Introduction to Amazon CodeGuru an...
 
Getting Started with Amazon WorkSpaces
Getting Started with Amazon WorkSpacesGetting Started with Amazon WorkSpaces
Getting Started with Amazon WorkSpaces
 
Patterns and Practices for Building Resilient Serverless Applications
Patterns and Practices for Building Resilient Serverless ApplicationsPatterns and Practices for Building Resilient Serverless Applications
Patterns and Practices for Building Resilient Serverless Applications
 
Measure and Increase Developer Productivity with Help of Serverless at AWS Co...
Measure and Increase Developer Productivity with Help of Serverless at AWS Co...Measure and Increase Developer Productivity with Help of Serverless at AWS Co...
Measure and Increase Developer Productivity with Help of Serverless at AWS Co...
 
Disrupting the Storage Industry talk at SNIA Data Storage Innovation Conference
Disrupting the Storage Industry talk at SNIA Data Storage Innovation ConferenceDisrupting the Storage Industry talk at SNIA Data Storage Innovation Conference
Disrupting the Storage Industry talk at SNIA Data Storage Innovation Conference
 
Getting started with microsoft azure in 30 mins
Getting started with microsoft azure in 30 minsGetting started with microsoft azure in 30 mins
Getting started with microsoft azure in 30 mins
 
API310 - How to refactor a monolith to serverless in 8 steps
API310 - How to refactor a monolith to serverless in 8 stepsAPI310 - How to refactor a monolith to serverless in 8 steps
API310 - How to refactor a monolith to serverless in 8 steps
 
Linuxtag 2012 - OpenNebula
Linuxtag 2012 - OpenNebula  Linuxtag 2012 - OpenNebula
Linuxtag 2012 - OpenNebula
 
Designing for scale and resilience in the cloud 101
Designing for scale and resilience in the cloud 101Designing for scale and resilience in the cloud 101
Designing for scale and resilience in the cloud 101
 
Cloud-powered Continuous Integration and Deployment architectures - Jinesh Varia
Cloud-powered Continuous Integration and Deployment architectures - Jinesh VariaCloud-powered Continuous Integration and Deployment architectures - Jinesh Varia
Cloud-powered Continuous Integration and Deployment architectures - Jinesh Varia
 
What makes me to migrate entire VPC JAWS PANKRATION 2021
What makes me to migrate entire VPC JAWS PANKRATION 2021What makes me to migrate entire VPC JAWS PANKRATION 2021
What makes me to migrate entire VPC JAWS PANKRATION 2021
 
Revolutionize DevOps with ML capabilities. Introduction to Amazon CodeGuru an...
Revolutionize DevOps with ML capabilities. Introduction to Amazon CodeGuru an...Revolutionize DevOps with ML capabilities. Introduction to Amazon CodeGuru an...
Revolutionize DevOps with ML capabilities. Introduction to Amazon CodeGuru an...
 
FaaS or not to FaaS. Visible and invisible benefits of the Serverless paradig...
FaaS or not to FaaS. Visible and invisible benefits of the Serverless paradig...FaaS or not to FaaS. Visible and invisible benefits of the Serverless paradig...
FaaS or not to FaaS. Visible and invisible benefits of the Serverless paradig...
 
AWS Security Essentials
AWS Security EssentialsAWS Security Essentials
AWS Security Essentials
 
Just Another Word Press Weblog But More Cloudy
Just Another Word Press Weblog   But More CloudyJust Another Word Press Weblog   But More Cloudy
Just Another Word Press Weblog But More Cloudy
 
CuriousMinds and Siemens in Brasov 2015 - Building and Developing for the Clo...
CuriousMinds and Siemens in Brasov 2015 - Building and Developing for the Clo...CuriousMinds and Siemens in Brasov 2015 - Building and Developing for the Clo...
CuriousMinds and Siemens in Brasov 2015 - Building and Developing for the Clo...
 

Andere mochten auch

An overview of the NuGet ecosystem - Mobel.io
An overview of the NuGet ecosystem - Mobel.ioAn overview of the NuGet ecosystem - Mobel.io
An overview of the NuGet ecosystem - Mobel.io
Maarten Balliauw
 
Fun with ASP.NET MVC 3, MEF and NuGet (#comdaybe)
Fun with ASP.NET MVC 3, MEF and NuGet (#comdaybe)Fun with ASP.NET MVC 3, MEF and NuGet (#comdaybe)
Fun with ASP.NET MVC 3, MEF and NuGet (#comdaybe)
Maarten Balliauw
 

Andere mochten auch (9)

An overview of the NuGet ecosystem - Mobel.io
An overview of the NuGet ecosystem - Mobel.ioAn overview of the NuGet ecosystem - Mobel.io
An overview of the NuGet ecosystem - Mobel.io
 
Fun with ASP.NET MVC 3, MEF and NuGet (#comdaybe)
Fun with ASP.NET MVC 3, MEF and NuGet (#comdaybe)Fun with ASP.NET MVC 3, MEF and NuGet (#comdaybe)
Fun with ASP.NET MVC 3, MEF and NuGet (#comdaybe)
 
Understanding NuGet implementation for Enterprises
Understanding NuGet implementation for EnterprisesUnderstanding NuGet implementation for Enterprises
Understanding NuGet implementation for Enterprises
 
NuGet vs Maven
NuGet vs MavenNuGet vs Maven
NuGet vs Maven
 
Using NuGet the way you should - TechDays NL 2014
Using NuGet the way you should - TechDays NL 2014Using NuGet the way you should - TechDays NL 2014
Using NuGet the way you should - TechDays NL 2014
 
Using nu get the way you should svcc
Using nu get the way you should   svccUsing nu get the way you should   svcc
Using nu get the way you should svcc
 
Developing NuGet
Developing NuGetDeveloping NuGet
Developing NuGet
 
NuGet 3.0 - Transitioning from OData to JSON-LD
NuGet 3.0 - Transitioning from OData to JSON-LDNuGet 3.0 - Transitioning from OData to JSON-LD
NuGet 3.0 - Transitioning from OData to JSON-LD
 
Gestion paquetes NuGet con Visual Studio Team Services y MyGet
Gestion paquetes NuGet con Visual Studio Team Services y MyGetGestion paquetes NuGet con Visual Studio Team Services y MyGet
Gestion paquetes NuGet con Visual Studio Team Services y MyGet
 

Ähnlich wie Running in the Cloud - First Belgian Azure project

NWCloud Cloud Track - Overview of Cloud Computing and Windows Azure 101
NWCloud Cloud Track - Overview of Cloud Computing and Windows Azure 101NWCloud Cloud Track - Overview of Cloud Computing and Windows Azure 101
NWCloud Cloud Track - Overview of Cloud Computing and Windows Azure 101
nwcloud
 
Lightning talks
Lightning talksLightning talks
Lightning talks
Skills Matter
 
AWS Summit Benelux 2013 - Media and Online Advertising on AWS
AWS Summit Benelux 2013 - Media and Online Advertising on AWSAWS Summit Benelux 2013 - Media and Online Advertising on AWS
AWS Summit Benelux 2013 - Media and Online Advertising on AWS
Amazon Web Services
 

Ähnlich wie Running in the Cloud - First Belgian Azure project (20)

Jumpstart Azure
Jumpstart AzureJumpstart Azure
Jumpstart Azure
 
Azure Umbraco workshop
Azure Umbraco workshopAzure Umbraco workshop
Azure Umbraco workshop
 
AZUG.BE - Azure User Group Belgium - First public meeting
AZUG.BE - Azure User Group Belgium - First public meetingAZUG.BE - Azure User Group Belgium - First public meeting
AZUG.BE - Azure User Group Belgium - First public meeting
 
Put Your Existing Application On Windows Azure
Put Your Existing Application On Windows AzurePut Your Existing Application On Windows Azure
Put Your Existing Application On Windows Azure
 
Just another Wordpress weblog, but more cloudy
Just another Wordpress weblog, but more cloudyJust another Wordpress weblog, but more cloudy
Just another Wordpress weblog, but more cloudy
 
Azure Microsoft
Azure MicrosoftAzure Microsoft
Azure Microsoft
 
Cloud & Windows Azure - Lessius
Cloud & Windows Azure - LessiusCloud & Windows Azure - Lessius
Cloud & Windows Azure - Lessius
 
Blewis Session 1 Fy10 Q3 Azure
Blewis  Session 1 Fy10 Q3 AzureBlewis  Session 1 Fy10 Q3 Azure
Blewis Session 1 Fy10 Q3 Azure
 
Microsoft Partner Roadshow - To the Cloud
Microsoft Partner Roadshow  - To the CloudMicrosoft Partner Roadshow  - To the Cloud
Microsoft Partner Roadshow - To the Cloud
 
NWCloud Cloud Track - Overview of Cloud Computing and Windows Azure 101
NWCloud Cloud Track - Overview of Cloud Computing and Windows Azure 101NWCloud Cloud Track - Overview of Cloud Computing and Windows Azure 101
NWCloud Cloud Track - Overview of Cloud Computing and Windows Azure 101
 
Introduction To Cloud Computing Winsows Azure101
Introduction To Cloud Computing Winsows Azure101Introduction To Cloud Computing Winsows Azure101
Introduction To Cloud Computing Winsows Azure101
 
Lightning talks
Lightning talksLightning talks
Lightning talks
 
Windows Azure Platform + PHP - Jonathan Wong
Windows Azure Platform + PHP - Jonathan WongWindows Azure Platform + PHP - Jonathan Wong
Windows Azure Platform + PHP - Jonathan Wong
 
Azure and Umbraco CMS
Azure and Umbraco CMSAzure and Umbraco CMS
Azure and Umbraco CMS
 
Internet of Things (IoT) - in the cloud or rather on-premises?
Internet of Things (IoT) - in the cloud or rather on-premises?Internet of Things (IoT) - in the cloud or rather on-premises?
Internet of Things (IoT) - in the cloud or rather on-premises?
 
Big Data - in the cloud or rather on-premises?
Big Data - in the cloud or rather on-premises?Big Data - in the cloud or rather on-premises?
Big Data - in the cloud or rather on-premises?
 
Putting the DOT in .NET - Dev/Ops/Test
Putting the DOT in .NET - Dev/Ops/TestPutting the DOT in .NET - Dev/Ops/Test
Putting the DOT in .NET - Dev/Ops/Test
 
AWS Summit Benelux 2013 - Media and Online Advertising on AWS
AWS Summit Benelux 2013 - Media and Online Advertising on AWSAWS Summit Benelux 2013 - Media and Online Advertising on AWS
AWS Summit Benelux 2013 - Media and Online Advertising on AWS
 
Simpler, faster, cheaper Enterprise Apps using only Spring Boot on GCP
Simpler, faster, cheaper Enterprise Apps using only Spring Boot on GCPSimpler, faster, cheaper Enterprise Apps using only Spring Boot on GCP
Simpler, faster, cheaper Enterprise Apps using only Spring Boot on GCP
 
Spring Boot & Spring Cloud on PAS- Nate Schutta (1/2)
Spring Boot & Spring Cloud on PAS- Nate Schutta (1/2)Spring Boot & Spring Cloud on PAS- Nate Schutta (1/2)
Spring Boot & Spring Cloud on PAS- Nate Schutta (1/2)
 

Mehr von Maarten Balliauw

Mehr von Maarten Balliauw (20)

Bringing nullability into existing code - dammit is not the answer.pptx
Bringing nullability into existing code - dammit is not the answer.pptxBringing nullability into existing code - dammit is not the answer.pptx
Bringing nullability into existing code - dammit is not the answer.pptx
 
Nerd sniping myself into a rabbit hole... Streaming online audio to a Sonos s...
Nerd sniping myself into a rabbit hole... Streaming online audio to a Sonos s...Nerd sniping myself into a rabbit hole... Streaming online audio to a Sonos s...
Nerd sniping myself into a rabbit hole... Streaming online audio to a Sonos s...
 
Building a friendly .NET SDK to connect to Space
Building a friendly .NET SDK to connect to SpaceBuilding a friendly .NET SDK to connect to Space
Building a friendly .NET SDK to connect to Space
 
Microservices for building an IDE - The innards of JetBrains Rider - NDC Oslo...
Microservices for building an IDE - The innards of JetBrains Rider - NDC Oslo...Microservices for building an IDE - The innards of JetBrains Rider - NDC Oslo...
Microservices for building an IDE - The innards of JetBrains Rider - NDC Oslo...
 
Indexing and searching NuGet.org with Azure Functions and Search - .NET fwday...
Indexing and searching NuGet.org with Azure Functions and Search - .NET fwday...Indexing and searching NuGet.org with Azure Functions and Search - .NET fwday...
Indexing and searching NuGet.org with Azure Functions and Search - .NET fwday...
 
NDC Sydney 2019 - Microservices for building an IDE – The innards of JetBrain...
NDC Sydney 2019 - Microservices for building an IDE – The innards of JetBrain...NDC Sydney 2019 - Microservices for building an IDE – The innards of JetBrain...
NDC Sydney 2019 - Microservices for building an IDE – The innards of JetBrain...
 
JetBrains Australia 2019 - Exploring .NET’s memory management – a trip down m...
JetBrains Australia 2019 - Exploring .NET’s memory management – a trip down m...JetBrains Australia 2019 - Exploring .NET’s memory management – a trip down m...
JetBrains Australia 2019 - Exploring .NET’s memory management – a trip down m...
 
.NET Conf 2019 - Indexing and searching NuGet.org with Azure Functions and Se...
.NET Conf 2019 - Indexing and searching NuGet.org with Azure Functions and Se....NET Conf 2019 - Indexing and searching NuGet.org with Azure Functions and Se...
.NET Conf 2019 - Indexing and searching NuGet.org with Azure Functions and Se...
 
CloudBurst 2019 - Indexing and searching NuGet.org with Azure Functions and S...
CloudBurst 2019 - Indexing and searching NuGet.org with Azure Functions and S...CloudBurst 2019 - Indexing and searching NuGet.org with Azure Functions and S...
CloudBurst 2019 - Indexing and searching NuGet.org with Azure Functions and S...
 
NDC Oslo 2019 - Indexing and searching NuGet.org with Azure Functions and Search
NDC Oslo 2019 - Indexing and searching NuGet.org with Azure Functions and SearchNDC Oslo 2019 - Indexing and searching NuGet.org with Azure Functions and Search
NDC Oslo 2019 - Indexing and searching NuGet.org with Azure Functions and Search
 
Approaches for application request throttling - Cloud Developer Days Poland
Approaches for application request throttling - Cloud Developer Days PolandApproaches for application request throttling - Cloud Developer Days Poland
Approaches for application request throttling - Cloud Developer Days Poland
 
Indexing and searching NuGet.org with Azure Functions and Search - Cloud Deve...
Indexing and searching NuGet.org with Azure Functions and Search - Cloud Deve...Indexing and searching NuGet.org with Azure Functions and Search - Cloud Deve...
Indexing and searching NuGet.org with Azure Functions and Search - Cloud Deve...
 
Approaches for application request throttling - dotNetCologne
Approaches for application request throttling - dotNetCologneApproaches for application request throttling - dotNetCologne
Approaches for application request throttling - dotNetCologne
 
CodeStock - Exploring .NET memory management - a trip down memory lane
CodeStock - Exploring .NET memory management - a trip down memory laneCodeStock - Exploring .NET memory management - a trip down memory lane
CodeStock - Exploring .NET memory management - a trip down memory lane
 
ConFoo Montreal - Microservices for building an IDE - The innards of JetBrain...
ConFoo Montreal - Microservices for building an IDE - The innards of JetBrain...ConFoo Montreal - Microservices for building an IDE - The innards of JetBrain...
ConFoo Montreal - Microservices for building an IDE - The innards of JetBrain...
 
ConFoo Montreal - Approaches for application request throttling
ConFoo Montreal - Approaches for application request throttlingConFoo Montreal - Approaches for application request throttling
ConFoo Montreal - Approaches for application request throttling
 
Microservices for building an IDE – The innards of JetBrains Rider - TechDays...
Microservices for building an IDE – The innards of JetBrains Rider - TechDays...Microservices for building an IDE – The innards of JetBrains Rider - TechDays...
Microservices for building an IDE – The innards of JetBrains Rider - TechDays...
 
JetBrains Day Seoul - Exploring .NET’s memory management – a trip down memory...
JetBrains Day Seoul - Exploring .NET’s memory management – a trip down memory...JetBrains Day Seoul - Exploring .NET’s memory management – a trip down memory...
JetBrains Day Seoul - Exploring .NET’s memory management – a trip down memory...
 
DotNetFest - Let’s refresh our memory! Memory management in .NET
DotNetFest - Let’s refresh our memory! Memory management in .NETDotNetFest - Let’s refresh our memory! Memory management in .NET
DotNetFest - Let’s refresh our memory! Memory management in .NET
 
VISUG - Approaches for application request throttling
VISUG - Approaches for application request throttlingVISUG - Approaches for application request throttling
VISUG - Approaches for application request throttling
 

KĂŒrzlich hochgeladen

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

KĂŒrzlich hochgeladen (20)

DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 

Running in the Cloud - First Belgian Azure project

  • 1.
  • 2. Running in the CloudChronoRace Maarten Balliauw – RealDolmenE-mail: maarten.balliauw@realdolmen.comBlog: http://blog.maartenballiauw.beTwitter: @maartenballiauw
  • 3. Who am I? Maarten Balliauw Antwerp, Belgium www.realdolmen.com Focus on web ASP.NET, ASP.NET MVC, PHP, Azure, VSTS, 
 MVP ASP.NET http://blog.maartenballiauw.be http://twitter.com/maartenballiauw
  • 4.
  • 5. Agenda Cloud computing? Windows Azure? The ChronoRace case ChronoRace? Infrastructure The project Resources Q&A
  • 6. What’s in the cloud? Cloud Computing
  • 7. Cloud computing On-demand self service Standardized access Location independant resource pooling Rapid elasticity Pay per use
  • 8. IT as a Service Private (On-Premise) Infrastructure (as a Service) Platform (as a Service) You manage Applications Applications Applications You manage Runtimes Runtimes Runtimes Security & Integration Security & Integration Security & Integration Managed by vendor You manage Databases Databases Databases Servers Servers Servers Managed by vendor Virtualization Virtualization Virtualization Server HW Server HW Server HW Storage Storage Storage Networking Networking Networking
  • 9. What’s in the cloud? Windows Azure
  • 10. The Windows Azure Platform Windows Azure SQL Azure Windows Azure platform AppFabric Microsoft Codename “Dallas” Microsoft Codename “Sydney”
  • 11. Windows Azure Flexible application hosting Lights-out service management Provide code & service model, hit ENTER Storage at massive scale Blobs, tables, queues Compute Storage Management
  • 13. Storage options Blobs, tables, queues Windows Azure Drive (a.k.a. XDrive) Virtual NTFS volume that can be mounted .vhd format Use existing NTFS API’s Easier migration Stored on blob storage provides quick mount/unmount in other VM
  • 14. SQL Azure Relational database as a service Highly available, automatically maintained Extension of the SQL Server Data Platform Reporting Data Sync Business Analytics Database
  • 15. Windows Azure AppFabric Secure connections between services Across organizational boundaries Claims-based access control ServiceBus AccessControl
  • 17. Microsoft Codename “Dallas” Content brokerage and discovery platform Available as a CTP Microsoft Codename “Dallas”Information Services
  • 18. Microsoft Codename “Sydney” - Connectivity WINDOWS AZURE PLATFORM ENTERPRISE Data Service Service Bus Access Control Service Code Name “Project Sydney”
  • 19. North America Region Asia Pacific Region Europe Region N. Europe Sub-region N. Central – US Sub-region E. Asia Sub-region W. Europe Sub-region S. Central - US Sub-region S.E. Asia Sub-region
  • 20.
  • 21.
  • 22.
  • 23.
  • 24. What’s in the cloud? Running in the Cloud The ChronoRace case
  • 26. ChronoRace Delivering infrastructure for timing sports events Running, biking, triathlon, mountainbike, 
 Founded 10 years ago, MalmĂ©dy, 4 persons Timing of every participant Video footage of every participant PDF certificates for every participant Around 340 events per year! Belgium, Luxemburg, France, Germany, Netherlands, 
 Small events Large events Dwars door Brugge 8.000 participants Antwerp 10 Miles 17.000 participants 20km of Brussels 30.000 participants
  • 27. What’s in the cloud? Infrastructure The ChronoRace case
  • 29. Google Analytics from Antwerp 10 Miles 2010
  • 30. Big event
 20km of Brussels upcoming! (30/05/2010) Expected 30.000 participants Downloading their certificate 30.000 hits processing a PDF Watching results online 30.000 hits* Having a video online 30.000 x +/- 10MB (= 292 GB) Watching their video 30.000 video views And showing off to family and friends
 30.000 x 10MB x 10 views (avg.) = 2,92 TB bandwidth in 1 day About 35 Mbps Over a 10 Mbps line
 But there’s an option to a 100 Mbps line!
  • 31.
  • 32. How to overcome these predictable peaks? Make videos only available after a day or 2 Many hits to the results page can be handled Videos online during week: traffic spread Invest in streaming? Costly, big capacity only needed for +/- 7 events per year The videos are not the only problem
  • 33. How to overcome these predictable peaks? A better WAN connection? Costly Currently the server can handle all traffic because of the 10 Mbps cap Buy additional hardware? Costly Estimated use of additional hardware is +/- 7 events per year 14 days of required uptime 342 days of money burning
  • 34.
  • 36. Time to market can be cumbersome
  • 37. Successful services needs to grow/scale
  • 38. Keeping up w/ growth is big IT challenge
  • 39.
  • 40. Sudden spike impacts performance
  • 41. Can’t over provision for extreme cases
  • 42. Services with micro seasonality trends
  • 43. Peaks due to periodic increased demand
  • 44. IT complexity and wasted capacity Workloadpatternsoptimalforcloud
  • 45. What’s in the cloud? The Project The ChronoRace case
  • 46. Where did it start
 Microsoft salesguy is a runner Annoyed by the slow / failing website Decided to give a call ChronoRace interested in the cloud story RealDolmen chosen as partner Already investing heavily in Windows Azure for 1,5 year Mostly building PoC’s to see what fits / what not Experience
  • 47. Step 1: Identify the possible use case for cloud Obviously: peaks, mostly predicted
  • 48. Step 2: Identify possible pitfalls Current website VS2003 Web Site Database 1 GB or 10 GB? PDF generation 32 bit component (Azure is 64 bit) License key requires registry access Streaming Possible from Azure? Directly from storage? Scaling Not automatic on Azure Deployment Site is +/- 300 MB, deploy this every time? Pricing Is this all worth the migration?
  • 49. Current web site VS2003 Web Site Should be easy! File -> New -> Cloud Add a web application Copy the VS2003 web site in Right click -> Convert to web application Done!
  • 50.
  • 51. Current web site VS2003 Web Site in a VS2010 Web Application Would not compile (no namespaces) Migration took some time Add namespace Restructure classes Throw out stuff that was no longer used Actually migration allowed us to get a cleaner application
  • 52. Database Current database size: around 2,5 GB Squeeze stuff into 1 GB? Data retention Restructure database?
  • 53. Database Decided to go for 10 GB version Migration Using open-source: SQL Azure Migration Wizardhttp://sqlazuremw.codeplex.com Worked surprisingly good! 2 stored procedures could not be migrated Test migration took 7 hours initially! Don’t migrate on your home connection 
  • 54. Database Current website at www.chronorace.be runs on SQL Azure As easy as changing the connection string! After installing SQL Server 2008 R2 client After installing SQL Server 2008 R2 management objects
  • 55. Database Backups? Do you NEED backups on Azure anyway??? Not supported in current version, backups manually via SQL Azure Migration Wizard to local SQL Server One of the upcoming SQL Azure versions will support database backups
  • 56. PDF generation Using “WebSuperGoo ABCpdf” Requires registry access for the license key Not allowed on Azure We built a small PoC in Development Fabric which worked! Deployment to production learned that this was false optimism  Current version: 32 bits Azure: 64 bits We tried to run the non-licensed version on Azure Did not work: author has disabled 64 bits support
  • 57. PDF generation 64 bits version
 Decided to keep this on the current web server for now Migrate to an open-source PDF component in the future
  • 58. Streaming Currently a Flash player Downloads chunks of +/- 1 MB Should work on blob storage! Cheap storage Cheap traffic CDN support API supports downloading chunks
  • 59. Streaming Getting a chunck took a few seconds for each video
 What if a participant watches the video 10 times? Decided to cache the video to compute During the advert that is shown Next view of the video is instant! Demo: http://bit.ly/d8koz6
  • 60. Scaling Done by doing this: Would be awesome to have this: Not possible! “When” should it scale? “How” should it scale? “Who” / “What” is responsible for scaling? <Instancescount="2" /> <InstancesminInstances="3" maxInstances="10" />
  • 61. Auto-Scaling Auto scaling would be a big benefit During events all 4 people are busy It is the cloud after all? The scale-up/down thing? We decided to build something for that Application should be able to monitor itself Only one instance should be responsible for that
  • 62. Auto-Scaling – Scaling logic Scaling logic provider uses sensor data to suggest an action (up/fast-up/down/stable) To implement per application Just a suggestion! Scaling logic provider uses sensor data to suggest an action (up/fast-up/down/stable) To implement per application Just a suggestion!
  • 63. Auto-Scaling Uses all the standard API’s of Windows Azure Master election  Role Environment Performance counters  Diagnostics API Queue length  Storage API Scaling (changing # instances in config)  Management API
  • 64. Auto-Scaling in ChronoRace Sensor based on concurrent video streams Scales between 2 and 20 instances automatically Hard to verify! The Windows Azure portal is not willing to disclose the number of instances during scale. MMC Snap-In does give useful info!http://code.msdn.microsoft.com/windowsazuremmc
  • 65. Deployment Site is +/- 300 MB, deploy this every time? Deployment through portal seems to take forever Uploading 300 MB for a very small change is crazy We decided to move images and static content to blob storage and serve it from there Code and dynamic content are on Windows Azure. Making it a 3,5 MB application.
  • 66. Deployment Deployment can be done in 2 ways “Upgrade” “VIP swap” Website will mostly run on 1 or 2 instances Case 1  upgrade will bring the site down! Process: use VIP swap
  • 67. Pricing – Current pricing Server lease for 2 servers Including 10 Mbps bandwidth +/- 450 EUR / month
  • 68. Pricing – Windows Azure Storage 30 GB required x $ 0,15 = $ 4,50 / month SQL Azure 10 GB database x $ 99,99 = $ 99,99 / month
  • 69. Pricing – Windows Azure Compute On average 1 instance = $ 43,20 / month Worst case 15 days 3 instances = $ 129,60 / month Traffic 3 TB x $ 0,15 / GB = $ 450,00 / month* *will probably be less
  • 70. Pricing – Windows Azure Estimated worst-case scenario would cost: Current setup: 450 EUR / month Windows Azure worst-case: 590 EUR / month
  • 71. What’s in the cloud? Summary The ChronoRace case
  • 72. ChronoRace summary Pitfalls were identified and mostly tackled Except for the PDF generation Most hours spent with VS2003 web site to VS2010 web app Database migration One test run of 7 hours (unattended) Final migration took 1 hour Development using Windows Azure Storage API Max. 1 day spent Website on Azure will be put to test next weekend: 20 km of Brussels is D-Day Confident that it will not explode this time
  • 73. Resources Where do I find more info?
  • 74. Resources Windows Azurehttp://www.azure.com Steve Marxhttp://blog.smarx.com/ PDChttp://microsoftpdc.com My bloghttp://blog.maartenballiauw.be/category/Azure.aspx RealDolmen blogs is running on Azure!http://www.realdolmenblogs.com RealDolmen will be happy to work with you in identifying if cloud computing is beneficial to your applications. Stop by our booth for a chat!
  • 75. AZUG.BE – Azure User Group Belgium Focus on the Azure Services Platform Community-driven Focus on architecture And development And the business value of Azure www.azug.be
  • 76. Questions Possibly Answers Q&A Session also later today,check your session schedule or stop by our booth.

Hinweis der Redaktion

  1. Datacenter pairing!