SlideShare a Scribd company logo
10 Things I’ve learnt in the cloud Stuart Lodge [email_address] http://slodge.blogspot.com
1. There’s more than one cloud “ Software As A Service” Scalable Storage – blobs, queues, tables – S3, Azure Data services Membership services – Live, Google, OpenId, Facebook Connect, … Virtual application hosts (GAE and Azure) Virtual servers and virtual shared hosting (EC2, GoGrid, Mosso, …) …
www.stacka.com
stacka’s structure Stacka Azure WebRole (like a ASP.NET web app) Azure WorkerRole (like a .NET command line  app) Azure Queue Storage Worker-Web Role Comms need to add more! Azure Table Storage Membership Stacks Azure Blob Storage - Image Storage
stacka’s twin – www.cloud dot net.com
www.runsaturday.com
runsaturday’s structure G RunSaturday Core C# application code SQL Server 2005 - All data storage Facebook Connect Membership Nike+, Nokia, … - Data Collection Web Service UI Uploads from script and SportTracks Main UI DotNetNuke 5.0 with custom modules IFrame UI Blog and other presentation Facebook UI FBML Presentation Amazon EC2 - GPS Data Storage GoGrid Virtual Server(s) Google maps - Map provision
Azure In ASP.Net terms: Medium trust No persistent local file storage – but you can use a temp file area. You cannot install anything into the GAC – assume all you have is 3.5 SP1 (4.0 “soon”) You can have “worker roles” – background tasks! In data terms: For “structured” storage, you have “tables” – very good at storing huge amounts of data and at retrieving data using primary key – do not think “SQL” though. For files you have Blob. For messaging you have Queues. - There are other services available…
All about scale
2. Azure - Simple things are not so simple For example counters… Potentially thousands of concurrent clients writing to a single resource is a blocking point – so Azure design discourages it. There will be patterns evolve – e.g. sharding counters can help. Example – keeping track of number of tagged entries in Stacka.
3. Azure - goodbye to SQL Group By Also goodbye to Min, Max, Count, Average… These methods just don’t scale… If you want stats you have to work them out and store them Google’s Map Reduce as an example – Google Analytics. What’s inefficient? Example – Stacka– how many stacks has a user uploaded?
4. Azure - goodbye to transactions. Hello to queues and optimistic updates. For speed of service, Azure tables only support optimistic locking. Your design needs to work out how to deal with conflicts. Again, new patterns are needed and will evolve. Example - stacka – deleting a stack… the cross-table steps involved… possible patterns to solve this…
5. Azure – get used to waiting The deployment environment, the development environment and the tools and libraries provided by Microsoft are all very advanced and do provide a really rich environment. But… it can take a long, long, long time to deploy and put live a deployment on Azure! When using the portal, take it *slow*
But this is not complaining… The CTP release is feature rich and it works! There are  plenty  of things you can do: Develop on your desktop using all your normal tools. Debug use either local SQL Server cloud emulation – or you can develop against real cloud storage Use your existing .Net code Use AJAX (Atlas) including the Ajax toolkit Use both Web and Worker Roles There’s first stage analytics – and logging - available Use simultaneous production and staging servers – to ease testing of new releases. Develop truly scalable solutions Develop new ideas, new technologies, new businesses.
Still all about scale
Using GoGrid, Amazon,… Very different to Azure and GAE. GoGrid and EC2 give you access to virtual servers – whole Win2k3 or Win2k8 (or Linux) servers running as virtual PCs on real servers. Very quick and easy to set up or tear down additional servers. I chose GoGrid based on cost.
6. GoGrid Server – what you get
7. Using AWS S3 Really scalable storage solution for files (blobs) – same as Azure Blobs – don’t know how pricing will compare? ThreeSharp on CodePlex – simple, straight-forward – superb. public string AddActivity(Activity_t activity) { Guid g = Guid.NewGuid(); string keyName = g.ToString("N"); // N is guid as hex with no punctuation :) string activityAsText = TCXParser.TCXParser.ActivityToString(activity);   ThreeSharpWrapper wrapper = new ThreeSharpWrapper(AwsAccessKey, AwsSecretKey); wrapper.AddStringObjectWithCompression(AwsActivityBucketName, keyName, activityAsText);   return keyName; } public Activity_t GetActivity(string activityKeyName) { ThreeSharpWrapper wrapper = new ThreeSharpWrapper(AwsAccessKey, AwsSecretKey); string activityAsText = wrapper.GetStringObjectWithDecompression(AwsActivityBucketName, activityKeyName); return TCXParser.TCXParser.StringToActivity(activityAsText); }
The clock is ticking…
8. Facebook Connect Easy way to get users to register on your site. Can be integrated with ASP.Net Membership (and with DotNetNuke membership) A way to get access to more publicity – to more potential users. But…  facebook is not a “’stable” platform…
9. DotNetNuke – Look Again Powerful .Net CMS. 5.0 is 10x faster than I remember 4.0 Commercial module availability good. Developing modules internally using Linq, 3.5, AJAX, etc are all easy – as easy as developing controls for normal ASP.Net 100% access to source code (almost) Instant tools in your application – like Log Viewer, User Manager, SQL editor, etc But…  Not suitable for Azure…
10. Microsoft Chart Control Based On Dundas. Included in 4.0 Simple add-on to 3.5 SP1. Powerful. Fast. Good.
www.clouddotnet.com www.stacka.com www.runsaturday.com slodge.blogspot.com …

More Related Content

PDF
C# - Azure, WP7, MonoTouch and Mono for Android (MonoDroid)
PPTX
Mern stack developement
PDF
Communication tool & Environment for Remote Worker
PDF
Aws opsworks for developers and designers
ODP
Scenejs
PDF
Node.js for beginner
PPTX
CON420 Infrastructure as code for containers
PPTX
Evolution of java script libraries
C# - Azure, WP7, MonoTouch and Mono for Android (MonoDroid)
Mern stack developement
Communication tool & Environment for Remote Worker
Aws opsworks for developers and designers
Scenejs
Node.js for beginner
CON420 Infrastructure as code for containers
Evolution of java script libraries

What's hot (20)

PDF
Kickstarting Node.js Projects with Yeoman
PDF
Functional Programming in Serverless World (Serveless UG Poland)
PDF
Functional Programming in Serverless World
PPTX
High Performance API Mashups with Node.js and ql.io
PDF
Chalice microframework 101 (eng)
PPTX
PPT
Sanwaad presentation
PPTX
Web Development with Node.js
PDF
Node, express & sails
PPTX
Angular js introduction
PPTX
Using Google App Engine Python
PPTX
Building your first MEAN application
PPT
Get MEAN! Node.js and the MEAN stack
PDF
Scalable Cloud Solutions with Node.js
PPTX
Amazon WebServices lection 1
PPTX
You know what iMEAN? Using MEAN stack for application dev on Informix
PDF
How to improve lambda cold starts
PPTX
Kick start your journey as mern stack developer
PPTX
AngularJS + NancyFx + MongoDB = The best trio for ultimate SPA by Bojan Velja...
PDF
Introduction to the MEAN stack
Kickstarting Node.js Projects with Yeoman
Functional Programming in Serverless World (Serveless UG Poland)
Functional Programming in Serverless World
High Performance API Mashups with Node.js and ql.io
Chalice microframework 101 (eng)
Sanwaad presentation
Web Development with Node.js
Node, express & sails
Angular js introduction
Using Google App Engine Python
Building your first MEAN application
Get MEAN! Node.js and the MEAN stack
Scalable Cloud Solutions with Node.js
Amazon WebServices lection 1
You know what iMEAN? Using MEAN stack for application dev on Informix
How to improve lambda cold starts
Kick start your journey as mern stack developer
AngularJS + NancyFx + MongoDB = The best trio for ultimate SPA by Bojan Velja...
Introduction to the MEAN stack
Ad

Similar to 10 things I’ve learnt In the clouds (20)

PPT
ArcReady - Architecting For The Cloud
PPT
Arc Ready Cloud Computing
PDF
Deploying asp.net and mvc applications to azure
PPT
Windows Azure Essentials V3
PPT
Cloud Providers Public 030909 V2
PPTX
DevDays 2011- Let’s get ready for the cloud: Building your applications so th...
PPT
Azure Services Platform_Partner_Briefing
PPTX
Inside Microsoft Azure
PPTX
ArchitectNow - Designing Cloud-Native apps in Microsoft Azure
PPT
WP7 & Azure
PDF
Building Real World Application with Azure
PPTX
Creation of cloud application using microsoft azure by vaishali sahare [katkar]
PDF
C# Client to Cloud
PPTX
AZUG.BE - Azure User Group Belgium - First public meeting
PPT
Azure Services Platform Oc Event Ned
PPTX
2014.10.22 Building Azure Solutions with Office 365
PPTX
Understanding The Azure Platform Jan
PPTX
San Diego Clound Computing Sep 9th
PPTX
Understanding the Windows Azure Platform - Dec 2010
PPTX
Session 1 IaaS, PaaS, SaaS Overview
ArcReady - Architecting For The Cloud
Arc Ready Cloud Computing
Deploying asp.net and mvc applications to azure
Windows Azure Essentials V3
Cloud Providers Public 030909 V2
DevDays 2011- Let’s get ready for the cloud: Building your applications so th...
Azure Services Platform_Partner_Briefing
Inside Microsoft Azure
ArchitectNow - Designing Cloud-Native apps in Microsoft Azure
WP7 & Azure
Building Real World Application with Azure
Creation of cloud application using microsoft azure by vaishali sahare [katkar]
C# Client to Cloud
AZUG.BE - Azure User Group Belgium - First public meeting
Azure Services Platform Oc Event Ned
2014.10.22 Building Azure Solutions with Office 365
Understanding The Azure Platform Jan
San Diego Clound Computing Sep 9th
Understanding the Windows Azure Platform - Dec 2010
Session 1 IaaS, PaaS, SaaS Overview
Ad

More from Stuart Lodge (16)

PPTX
Hot tuna - from Sean Cross
PDF
Helping the Lions Roar
PDF
MvvmCross Introduction
PDF
Wpug meeting - wp to win8 experiences
PDF
AlphaLabs - Node Garden with Speech
PDF
About Cirrious ltd
PPTX
How to make a pig udf
PPTX
Mvvm cross – going portable
PPTX
Dev evening - MonoTouch, MonoDroid, Mvvm MvvmCross and databinding
PPTX
Wpug mvvm and data binding
PPTX
Ui testing for Windows Phone
PPTX
Ui Testing on Windows Phone
PPT
How To use Map Blogs
DOC
Uk Nuke Rpx Authentication For Dot Net Nuke
DOC
Uk Nuke Facebook Connect Authentication For Dot Net Nuke
DOC
UkNuke Facebook Connect Authentication For DotNetNuke 5
Hot tuna - from Sean Cross
Helping the Lions Roar
MvvmCross Introduction
Wpug meeting - wp to win8 experiences
AlphaLabs - Node Garden with Speech
About Cirrious ltd
How to make a pig udf
Mvvm cross – going portable
Dev evening - MonoTouch, MonoDroid, Mvvm MvvmCross and databinding
Wpug mvvm and data binding
Ui testing for Windows Phone
Ui Testing on Windows Phone
How To use Map Blogs
Uk Nuke Rpx Authentication For Dot Net Nuke
Uk Nuke Facebook Connect Authentication For Dot Net Nuke
UkNuke Facebook Connect Authentication For DotNetNuke 5

Recently uploaded (20)

PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Machine learning based COVID-19 study performance prediction
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PPTX
Big Data Technologies - Introduction.pptx
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
KodekX | Application Modernization Development
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Encapsulation_ Review paper, used for researhc scholars
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PPTX
sap open course for s4hana steps from ECC to s4
PPTX
Spectroscopy.pptx food analysis technology
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PPTX
Programs and apps: productivity, graphics, security and other tools
Per capita expenditure prediction using model stacking based on satellite ima...
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Understanding_Digital_Forensics_Presentation.pptx
Machine learning based COVID-19 study performance prediction
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Big Data Technologies - Introduction.pptx
20250228 LYD VKU AI Blended-Learning.pptx
KodekX | Application Modernization Development
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Encapsulation_ Review paper, used for researhc scholars
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Chapter 3 Spatial Domain Image Processing.pdf
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
NewMind AI Weekly Chronicles - August'25 Week I
sap open course for s4hana steps from ECC to s4
Spectroscopy.pptx food analysis technology
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
“AI and Expert System Decision Support & Business Intelligence Systems”
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Programs and apps: productivity, graphics, security and other tools

10 things I’ve learnt In the clouds

  • 1. 10 Things I’ve learnt in the cloud Stuart Lodge [email_address] http://slodge.blogspot.com
  • 2. 1. There’s more than one cloud “ Software As A Service” Scalable Storage – blobs, queues, tables – S3, Azure Data services Membership services – Live, Google, OpenId, Facebook Connect, … Virtual application hosts (GAE and Azure) Virtual servers and virtual shared hosting (EC2, GoGrid, Mosso, …) …
  • 4. stacka’s structure Stacka Azure WebRole (like a ASP.NET web app) Azure WorkerRole (like a .NET command line app) Azure Queue Storage Worker-Web Role Comms need to add more! Azure Table Storage Membership Stacks Azure Blob Storage - Image Storage
  • 5. stacka’s twin – www.cloud dot net.com
  • 7. runsaturday’s structure G RunSaturday Core C# application code SQL Server 2005 - All data storage Facebook Connect Membership Nike+, Nokia, … - Data Collection Web Service UI Uploads from script and SportTracks Main UI DotNetNuke 5.0 with custom modules IFrame UI Blog and other presentation Facebook UI FBML Presentation Amazon EC2 - GPS Data Storage GoGrid Virtual Server(s) Google maps - Map provision
  • 8. Azure In ASP.Net terms: Medium trust No persistent local file storage – but you can use a temp file area. You cannot install anything into the GAC – assume all you have is 3.5 SP1 (4.0 “soon”) You can have “worker roles” – background tasks! In data terms: For “structured” storage, you have “tables” – very good at storing huge amounts of data and at retrieving data using primary key – do not think “SQL” though. For files you have Blob. For messaging you have Queues. - There are other services available…
  • 10. 2. Azure - Simple things are not so simple For example counters… Potentially thousands of concurrent clients writing to a single resource is a blocking point – so Azure design discourages it. There will be patterns evolve – e.g. sharding counters can help. Example – keeping track of number of tagged entries in Stacka.
  • 11. 3. Azure - goodbye to SQL Group By Also goodbye to Min, Max, Count, Average… These methods just don’t scale… If you want stats you have to work them out and store them Google’s Map Reduce as an example – Google Analytics. What’s inefficient? Example – Stacka– how many stacks has a user uploaded?
  • 12. 4. Azure - goodbye to transactions. Hello to queues and optimistic updates. For speed of service, Azure tables only support optimistic locking. Your design needs to work out how to deal with conflicts. Again, new patterns are needed and will evolve. Example - stacka – deleting a stack… the cross-table steps involved… possible patterns to solve this…
  • 13. 5. Azure – get used to waiting The deployment environment, the development environment and the tools and libraries provided by Microsoft are all very advanced and do provide a really rich environment. But… it can take a long, long, long time to deploy and put live a deployment on Azure! When using the portal, take it *slow*
  • 14. But this is not complaining… The CTP release is feature rich and it works! There are plenty of things you can do: Develop on your desktop using all your normal tools. Debug use either local SQL Server cloud emulation – or you can develop against real cloud storage Use your existing .Net code Use AJAX (Atlas) including the Ajax toolkit Use both Web and Worker Roles There’s first stage analytics – and logging - available Use simultaneous production and staging servers – to ease testing of new releases. Develop truly scalable solutions Develop new ideas, new technologies, new businesses.
  • 16. Using GoGrid, Amazon,… Very different to Azure and GAE. GoGrid and EC2 give you access to virtual servers – whole Win2k3 or Win2k8 (or Linux) servers running as virtual PCs on real servers. Very quick and easy to set up or tear down additional servers. I chose GoGrid based on cost.
  • 17. 6. GoGrid Server – what you get
  • 18. 7. Using AWS S3 Really scalable storage solution for files (blobs) – same as Azure Blobs – don’t know how pricing will compare? ThreeSharp on CodePlex – simple, straight-forward – superb. public string AddActivity(Activity_t activity) { Guid g = Guid.NewGuid(); string keyName = g.ToString("N"); // N is guid as hex with no punctuation :) string activityAsText = TCXParser.TCXParser.ActivityToString(activity);   ThreeSharpWrapper wrapper = new ThreeSharpWrapper(AwsAccessKey, AwsSecretKey); wrapper.AddStringObjectWithCompression(AwsActivityBucketName, keyName, activityAsText);   return keyName; } public Activity_t GetActivity(string activityKeyName) { ThreeSharpWrapper wrapper = new ThreeSharpWrapper(AwsAccessKey, AwsSecretKey); string activityAsText = wrapper.GetStringObjectWithDecompression(AwsActivityBucketName, activityKeyName); return TCXParser.TCXParser.StringToActivity(activityAsText); }
  • 19. The clock is ticking…
  • 20. 8. Facebook Connect Easy way to get users to register on your site. Can be integrated with ASP.Net Membership (and with DotNetNuke membership) A way to get access to more publicity – to more potential users. But… facebook is not a “’stable” platform…
  • 21. 9. DotNetNuke – Look Again Powerful .Net CMS. 5.0 is 10x faster than I remember 4.0 Commercial module availability good. Developing modules internally using Linq, 3.5, AJAX, etc are all easy – as easy as developing controls for normal ASP.Net 100% access to source code (almost) Instant tools in your application – like Log Viewer, User Manager, SQL editor, etc But… Not suitable for Azure…
  • 22. 10. Microsoft Chart Control Based On Dundas. Included in 4.0 Simple add-on to 3.5 SP1. Powerful. Fast. Good.