Public Cloud Platforms for .NET Developers Svetlin Nakov | Telerikwww.devreach.com           Sofia, 4-5 October 2012
Agenda Public Cloud Platforms      Typical Cloud Architecture Public .NET Cloud Platforms      Cloud Types: IaaS vs. P...
Public Cloud Platforms Overview, IaaS, SaaS, PaaSwww.devreach.com
What is Cloud? Cloud ≈ multiple hardware machines  combine computing power and resources      Share them between multipl...
Cloud Models  Infrastructure as a Service (IaaS)      Virtual machines in the cloud on demand      Users install the OS...
Public Clouds Provide computing resources on demand      Publicly in Internet, for everyone      Paid or free of charge...
Typical Cloud Architecture  The typical cloud architecture is multi-tier,   SOA, highly-scalable and highly-available    ...
Typical Cloud Architecture (2)  Computing Nodes      Host and run your applications      Different languages and framew...
Public .NET Clouds             Develop and Run .NET Apps in the Cloudwww.devreach.com
Public .NET Clouds I am .NET developer      I want to use a .NET cloud for my apps      What I can do? IaaS vs. PaaS a...
IaaS for .NET Developers IaaS / VPS / cloud hosting      Could work well for .NET applications      Offered by hundreds...
PaaS for .NET Developers Two types of .NET PaaS clouds:      Microsoft Azure           Write your app against the Azure...
Windows Azure   Hosting .NET Projects in Azurewww.devreach.com
Windows Azure Microsoft Windows Azure      Fast-growing public cloud from MS      Provides rich PaaS platform          ...
Windows Azure – Architecture                                                    Azure Load Balancer    Visual Studio + Azu...
Windows Azure Services Windows Azure Compute      Computing instances run Windows OS       and applications (CPU + RAM +...
Windows Azure Services (2) SQL Database (SQL Azure)      SQL Server-like in the cloud      Highly-available and scalabl...
Azure Pricing (Rough)  Computing Instances      Shared CPU, 768 MB RAM           $0.02 / hour ($15 / month)      1 Cor...
Azure Free Web Site Instance Windows Azure Web Sites      Host ASP.NET / PHP / Node.js web sites Web Sites Free Shared ...
Amazon Web Services (AWS)   Hosting .NET Projects in AWS Beanstalk .NETwww.devreach.com
Amazon Web Services (AWS) Amazon Web Services (AWS)      The pioneer of the public clouds      Provides IaaS and PaaS o...
AWS Architecture                                            Elastic Load Balancing (ELB)  Python + VS / Eclipse Plugins   ...
AWS Services Amazon Elastic Block Store (Amazon EBS)      Virtual hard disk (HDD) volumes Amazon Simple Storage Service...
AWS Services (2) Other AWS services      Amazon SQS (message queue)      Amazon CloudFront (CDN)      Amazon ElastiCac...
AWS Elastic Beanstalk for .NET Amazon Beanstalk for .NET      Automatically allocates AWS services           Amazon EC2...
Amazon AWS Pricing (Rough)  On-Demand EC2 Instances      1 Core, 1.7 GB RAM,       160 GB HDD, Windows           $0.115...
AppHarbor   Hosting .NET Projects in AppHarborwww.devreach.com
AppHarbor  AppHarbor – cloud platform for .NET apps      Classical .NET development stack           C#, .NET Framework,...
AppHarbor Architecture                                        Load Balancer (Nginx)                                       ...
AppHarbor: Add-Ons Airbrake (error logging) Blitz (performance monitoring) CloudAMQP (RabbitMQ) Cloudant (CouchDB) Cl...
AppHarbor: Add-Ons (2) Memcacher (in-memory caching) MongoHQ (managed MongoDB) MongoLab (managed MongoDB) MySQL (share...
AppHarbor Pricing  AppHarbor free plan      1 Web worker instance per application      20 MB SQL Server + 20 MB MySQL  ...
AppHarbor: Live Demo   ASP.NET MVC Project Deploymentwww.devreach.com
Uhuru AppCloud   Hosting .NET Projects in Uhuruwww.devreach.com
Uhuru AppCloud Cloud platform based on CloudFoundry      Supports PHP, Node.js, Ruby, Java and .NET Has classical .NET ...
Uhuru AppCloud Architecture                                      Load Balancer (Nginx on Ubuntu Linux)    UhuruCloud.com W...
Uhuru AppCloud Services Uhuru supports limited set of services:      Managed SQL Server      Managed MySQL      Manage...
Uhuru Pricing Uhuru AppCloud Ready To Go      Currently in Beta      Entirely free           For apps, databases, stor...
Uhuru: Live Demo   ASP.NET MVC Project Deploymentwww.devreach.com
Other .NET Clouds Apprenda      Develop for .NET locally in a VM, deploy the VM       into any public IaaS cloud (e.g. i...
Choosing a .NET Cloud For large complex .NET applications      IaaS hosting (AWS / Rackspace / other)           Build t...
Public Cloud Platforms                                    for .NET Developers Thank you!       @svetlinnakov       nakov.c...
Free Trainings @ Telerik Academy “Cloud Development" course @  Telerik Software Academy      clouddevcourse.telerik.com...
Upcoming SlideShare
Loading in...5
×

Public Cloud Platforms for .NET Developers

18,610

Published on

Public clouds platforms are rapidly growing and many businesses move partially or fully their IT infrastructure to the cloud. The big players like Microsoft, Google, Oracle and Amazon operate their own public cloud platforms while the smaller players provide cloud services and PaaS platforms and on top of the larger. What about the .NET developers and the cloud?

In this talk the speaker Svetlin Nakov introduces the public .NET clouds and compares the leading .NET PaaS clouds: Windows Azure, AppHarbor, Uhuru and AWS Elastic Beanstalk for .NET. The .NET public clouds are compared in terms of architecture, programming model, pricing, development stack, available services, deployment model and tools for administration and monitoring. A live demo shows how to deploy and run a typical .NET application (based on ASP.NET MVC and MS SQL Server) in AppHarbor and Uhuru.

Table of contents:
- Public Cloud Platforms
- Typical Cloud Architecture
- Public .NET Cloud Platforms
- Cloud Types: IaaS vs. PaaS
- Windows Azure
- Amazon AWS (+ Beanstalk for .NET)
- AppHarbor
- Uhuru
- Choosing a .NET Cloud

The presentation was delivered at DevReach 2012 (www.devreach.com) by Svetlin Nakov (www.nakov.com) in Sofiа on 4 October 2012.

YouTube video for this presentation: http://youtu.be/H2Jjiu8VyCk

Published in: Education
1 Comment
2 Likes
Statistics
Notes
  • Here is simple article on nice implementation of cloud with .net

    [using cloud with .net -- geeksprogrammings][1]


    [1]: http://www.geeksprogrammings.blogspot.com/2014/07/deploy-asp.net-app-appharbor-cloud.html
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total Views
18,610
On Slideshare
0
From Embeds
0
Number of Embeds
9
Actions
Shares
0
Downloads
70
Comments
1
Likes
2
Embeds 0
No embeds

No notes for slide

Public Cloud Platforms for .NET Developers

  1. 1. Public Cloud Platforms for .NET Developers Svetlin Nakov | Telerikwww.devreach.com Sofia, 4-5 October 2012
  2. 2. Agenda Public Cloud Platforms  Typical Cloud Architecture Public .NET Cloud Platforms  Cloud Types: IaaS vs. PaaS  Windows Azure  Amazon AWS (+ Beanstalk for .NET)  AppHarbor  Uhuru Choosing a .NET Cloudwww.devreach.com
  3. 3. Public Cloud Platforms Overview, IaaS, SaaS, PaaSwww.devreach.com
  4. 4. What is Cloud? Cloud ≈ multiple hardware machines combine computing power and resources  Share them between multiple applications  To save costs and use resources efficiently Cloud for Developers?  New paradigms and APIs  E.g. NoSQL databases and MapReduce  New platforms and technologies  New deployment modelwww.devreach.com
  5. 5. Cloud Models  Infrastructure as a Service (IaaS)  Virtual machines in the cloud on demand  Users install the OS and software they need  Platform as a Service (PaaS)  Platform, services and APIs for developers  E.g. .NET + IIS + ASP.NET + WCF + SQL Azure  JavaScript + Node.js + MongoDB + RabbitMQ  Software as a Service (SaaS)  Hosted application on demand (e.g. Bugzilla, WordPress, Sitefinity or SugarCRM)www.devreach.com
  6. 6. Public Clouds Provide computing resources on demand  Publicly in Internet, for everyone  Paid or free of charge (to some limit)  Could be IaaS, PaaS, SaaS or mix of them Examples of public clouds  Amazon AWS, Google App Engine, Windows Azure, Rackspace, Heroku, Engineyard, AppForce, PHP Fog, AppHarbor, Uhuru, OpenShift, CloudBees, CloudSwing, Oracle Public Cloud, Salesforce, WordPress.com, …www.devreach.com
  7. 7. Typical Cloud Architecture  The typical cloud architecture is multi-tier, SOA, highly-scalable and highly-available Load Balancer Administration Monitoring Computing Computing … Computing Node Node Node Data- Storage Back-End Other bases Services Services Services  At each tier different managed services, technologies and languages can runwww.devreach.com
  8. 8. Typical Cloud Architecture (2)  Computing Nodes  Host and run your applications  Different languages and frameworks  E.g. C# + ASP.NET MVC or PHP + Symfony  Stateless by design  Databases and Storage  Relational and NoSQL databases  Blob storage, file storage, CDN  Other Services  Queues, notifications, logging, email, …www.devreach.com
  9. 9. Public .NET Clouds Develop and Run .NET Apps in the Cloudwww.devreach.com
  10. 10. Public .NET Clouds I am .NET developer  I want to use a .NET cloud for my apps  What I can do? IaaS vs. PaaS approach  IaaS: VPS or cloud hosting  Rackspace / Tier3 / any hosting provider  PaaS: write your app for certain platform  Azure, AWS, AppHarbor, Uhuru, other?www.devreach.com
  11. 11. IaaS for .NET Developers IaaS / VPS / cloud hosting  Could work well for .NET applications  Offered by hundreds of hosting providers  Full control over the production servers  Limited support:  E.g. DB server failure fix it yourself!  Difficulties to configure high-availability + load balancingwww.devreach.com
  12. 12. PaaS for .NET Developers Two types of .NET PaaS clouds:  Microsoft Azure  Write your app against the Azure APIs  E.g. use SQL Azure, not SQL Server  Vendor lock-in  AWS, AppHarbor, Uhuru  Write your app purely in .NET  Use IIS, SQL Server, ASP.NET, WCF, …www.devreach.com
  13. 13. Windows Azure Hosting .NET Projects in Azurewww.devreach.com
  14. 14. Windows Azure Microsoft Windows Azure  Fast-growing public cloud from MS  Provides rich PaaS platform  Supports all major .NET technologies  ASP.NET MVC, WCF, ADO.NET EF, …  .NET applications need adoption to run  Supports also Java, PHP and Node.js  3 months trial + free shared instance  Mobile phone + credit card requiredwww.devreach.com
  15. 15. Windows Azure – Architecture Azure Load Balancer Visual Studio + Azure Tools Management Portal Compute Compute Compute Windows Azure (Web role) (Worker role) (VM role) VM running IIS7 Windows VM Windows VM ASP.NET / PHP / C# / .NET code / Custom other Java code software SQL Tables Blobs Queues CDN Azure Other Azure / external serviceswww.devreach.com
  16. 16. Windows Azure Services Windows Azure Compute  Computing instances run Windows OS and applications (CPU + RAM + HDD)  Web / Worker / VM / Persistent VM role Storage Services  Azure Blobs / Drives  Blob / file storage / NTFS volumes  Azure Table Storage – NoSQL cloud DB  Azure Queue Storage – message queuewww.devreach.com
  17. 17. Windows Azure Services (2) SQL Database (SQL Azure)  SQL Server-like in the cloud  Highly-available and scalable relational DB Azure Business Analytics  Create reports with tables, charts, maps, etc. Azure Caching  Distributed, in-memory, application cache Azure CDN  Content delivery networkwww.devreach.com
  18. 18. Azure Pricing (Rough)  Computing Instances  Shared CPU, 768 MB RAM  $0.02 / hour ($15 / month)  1 Core, 1.75 GB RAM, 225 GB HDD  $0.12 / hour ($90 / month)  Storage:  $0.125 / GB + $0.01 / 100 000 operations  SQL Database (not real SQL Server!)  100 MB – $0.0067 / hour ($5 / month)  1 GB – $0.0133 / hour ($10 / month)www.devreach.com
  19. 19. Azure Free Web Site Instance Windows Azure Web Sites  Host ASP.NET / PHP / Node.js web sites Web Sites Free Shared Instance  10 sites on the azurewebsites.net domain  165 MB of outbound data per day, unlimited inbound data  1 GB storage (shared by all sites)  20 MB of a third-party MySQL databasewww.devreach.com
  20. 20. Amazon Web Services (AWS) Hosting .NET Projects in AWS Beanstalk .NETwww.devreach.com
  21. 21. Amazon Web Services (AWS) Amazon Web Services (AWS)  The pioneer of the public clouds  Provides IaaS and PaaS on demand from 2002 Amazon Elastic Compute Cloud (Amazon EC2)  Linux / Windows VMs on demand  US, EU, Japan, Brazil, Singapore, … No free version, only 1 year trial  Credit card required, but beware:  AWS charge for resources not being used!www.devreach.com
  22. 22. AWS Architecture Elastic Load Balancing (ELB) Python + VS / Eclipse Plugins AWS SDK for Java, C#, PHP, AWS Management Console EC2 Instances + Storage (EBS) Any OS and development platform C# / Java / PHP / Python / Ruby / … Any development framework (.NET / Java EE / Symfony / Zend / Django / Rails / Node.js) RDB DynamoDB S3 EBS SQS SWF Other AWS / external services (ElastiCache, CloudFront CDN, SES, …)www.devreach.com
  23. 23. AWS Services Amazon Elastic Block Store (Amazon EBS)  Virtual hard disk (HDD) volumes Amazon Simple Storage Service (Amazon S3)  Host binary data (files, images, videos, etc.) Amazon DynamoDB / SimpleDB  Managed NoSQL cloud database Amazon Relational Database Service (RDS)  Managed MySQL and Oracle databaseswww.devreach.com
  24. 24. AWS Services (2) Other AWS services  Amazon SQS (message queue)  Amazon CloudFront (CDN)  Amazon ElastiCache (caching)  Amazon Route 53 (cloud DNS)  Amazon SES (email)  Amazon FPS (payments) More services at the AWS Marketplace  MongoDB, Redis, LAMP, Business Objects, ...www.devreach.com
  25. 25. AWS Elastic Beanstalk for .NET Amazon Beanstalk for .NET  Automatically allocates AWS services  Amazon EC2 (computing instance)  Amazon S3 (storage)  Amazon SNS (notifications)  Elastic Load Balancing + Auto Scaling  Simplified deployment of .NET apps  Through Visual Studio / AWS Console  Automatic load balancing + auto-scalingwww.devreach.com
  26. 26. Amazon AWS Pricing (Rough)  On-Demand EC2 Instances  1 Core, 1.7 GB RAM, 160 GB HDD, Windows  $0.115 / hour ($86 / month)  Storage (EBS)  $0.10 / GB + $0.10 per 1 million I/O requests  SQL Server Database (Web Edition)  1 CPU, 630 MB RAM: $0.17 / hour ($126 / mo)  1 CPU, 1.7 GB RAM: $0.59 / hour ($439 / mo)www.devreach.com
  27. 27. AppHarbor Hosting .NET Projects in AppHarborwww.devreach.com
  28. 28. AppHarbor  AppHarbor – cloud platform for .NET apps  Classical .NET development stack  C#, .NET Framework, IIS, ASP.NET, WCF, SQL Server, ADO.NET Entity Framework, …  Deployment through Git / SVN / TFS  Automated build process (compilation + unit tests)  Build-in load balancing  Built on top of Amazon AWS  Rich set of add-on serviceswww.devreach.com
  29. 29. AppHarbor Architecture Load Balancer (Nginx) AppHarbor Applications Management Console Visual Studio + Git Web worker instances Background workers Managed Windows Managed IIS environment environment C# / ASP.NET MVC / C# code Web Forms / WCF Managed SQL MongoDB, IronMQ, Server / MySQL CouchDB RabitMQ Other AppHarbor Add-On Serviceswww.devreach.com
  30. 30. AppHarbor: Add-Ons Airbrake (error logging) Blitz (performance monitoring) CloudAMQP (RabbitMQ) Cloudant (CouchDB) CloudMailin (incoming email) Dedicated SQL Server JustOneDB (NoSQL database) Logentries (log management) Mailgun (email send / receive)www.devreach.com
  31. 31. AppHarbor: Add-Ons (2) Memcacher (in-memory caching) MongoHQ (managed MongoDB) MongoLab (managed MongoDB) MySQL (shared MySQL DB) RavenHQ (NoSQL database) Redis To Go (key-value store) SendGrid (email delivery) StillAlive (app monitoring) Shared SQL Server (managed instance)www.devreach.com
  32. 32. AppHarbor Pricing  AppHarbor free plan  1 Web worker instance per application  20 MB SQL Server + 20 MB MySQL  Unlimited # of apps (@ apphb.com subdomain)  Paid plans  $49 month per worker instance  10 GB Shared SQL Server DB – $10 / month  10 GB Shared MySQL DB – $10 / month  Custom domain – $10 / monthwww.devreach.com
  33. 33. AppHarbor: Live Demo ASP.NET MVC Project Deploymentwww.devreach.com
  34. 34. Uhuru AppCloud Hosting .NET Projects in Uhuruwww.devreach.com
  35. 35. Uhuru AppCloud Cloud platform based on CloudFoundry  Supports PHP, Node.js, Ruby, Java and .NET Has classical .NET development stack  C#, .NET Framework, IIS, ASP.NET, WCF, SQL Server, ADO.NET Entity Framework, … Proprietary deployment model Build-in load balancing Hosted at Inernap Network ISP Limited set of add-on serviceswww.devreach.com
  36. 36. Uhuru AppCloud Architecture Load Balancer (Nginx on Ubuntu Linux) UhuruCloud.com Web Interface Uhuru Cloud Manager Linux / Windows Linux / Windows App Servers App Servers Managed IIS Managed Apache / environment Tomcat environment C# / ASP.NET MVC / Apache + PHP / Ruby / Web Forms / WCF Node.js / Tomcat + Java Managed SQL MongoDB RabitMQ Server / MySQL Other Uhuru Add-On Serviceswww.devreach.com
  37. 37. Uhuru AppCloud Services Uhuru supports limited set of services:  Managed SQL Server  Managed MySQL  Managed RabbitMQ (message queue)  Managed Redis (key-value store)  Managed file system storage (UhuruFS)  Managed MongoDB (NoSQL database)www.devreach.com
  38. 38. Uhuru Pricing Uhuru AppCloud Ready To Go  Currently in Beta  Entirely free  For apps, databases, storage After the commercial launch  Based on allocated RAM for each app  Databases and Storage prices separately  A free limited version will still be availablewww.devreach.com
  39. 39. Uhuru: Live Demo ASP.NET MVC Project Deploymentwww.devreach.com
  40. 40. Other .NET Clouds Apprenda  Develop for .NET locally in a VM, deploy the VM into any public IaaS cloud (e.g. in AWS)  Hosted ApprendaCloud  just became available AppFog  .NET support still unavailable (as of 09/2012) Heroku  Claim to support Mono apps on a Linux cloud Moncai  .NET (Mono) cloud – not very active projectwww.devreach.com
  41. 41. Choosing a .NET Cloud For large complex .NET applications  IaaS hosting (AWS / Rackspace / other)  Build the infrastructure yourself  Azure – applications may need adoption For small applications / ASP.NET sites  AppHarbor – recommended  Azure Web Sites Free  Beware of hidden charges  Uhuru AppCloud – still in betawww.devreach.com
  42. 42. Public Cloud Platforms for .NET Developers Thank you! @svetlinnakov nakov.com bg.linkedin.com/in/nakov Svetlin Nakov | Telerikwww.devreach.com
  43. 43. Free Trainings @ Telerik Academy “Cloud Development" course @ Telerik Software Academy  clouddevcourse.telerik.com Telerik Software Academy  academy.telerik.com Telerik Academy @ Facebook  facebook.com/TelerikAcademy Telerik Software Academy Forums  forums.academy.telerik.comwww.devreach.com
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×