Public Cloud Platforms for .NET Developers

  • 16,659 views
Uploaded 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 …

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

More in: Education
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
  • 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
    Are you sure you want to
    Your message goes here
No Downloads

Views

Total Views
16,659
On Slideshare
0
From Embeds
0
Number of Embeds
8

Actions

Shares
Downloads
63
Comments
1
Likes
2

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Public Cloud Platforms for .NET Developers Svetlin Nakov | Telerikwww.devreach.com Sofia, 4-5 October 2012
  • 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. Public Cloud Platforms Overview, IaaS, SaaS, PaaSwww.devreach.com
  • 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. 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. 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. 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. 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. Public .NET Clouds Develop and Run .NET Apps in the Cloudwww.devreach.com
  • 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. 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. 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. Windows Azure Hosting .NET Projects in Azurewww.devreach.com
  • 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. 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. 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. 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. 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. 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. Amazon Web Services (AWS) Hosting .NET Projects in AWS Beanstalk .NETwww.devreach.com
  • 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. 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. 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. 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. 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. 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. AppHarbor Hosting .NET Projects in AppHarborwww.devreach.com
  • 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. 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. 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. 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. 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. AppHarbor: Live Demo ASP.NET MVC Project Deploymentwww.devreach.com
  • 34. Uhuru AppCloud Hosting .NET Projects in Uhuruwww.devreach.com
  • 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. 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. 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. 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. Uhuru: Live Demo ASP.NET MVC Project Deploymentwww.devreach.com
  • 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. 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. Public Cloud Platforms for .NET Developers Thank you! @svetlinnakov nakov.com bg.linkedin.com/in/nakov Svetlin Nakov | Telerikwww.devreach.com
  • 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