1 / 43

Public Cloud Platforms for .NET Developers

.NET Clouds. Public Cloud Platforms for .NET Developers. Svetlin Nakov | Telerik. Sofia, 4-5 October 2012. 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

cira
Download Presentation

Public Cloud Platforms for .NET Developers

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. .NET Clouds Public Cloud Platformsfor .NET Developers Svetlin Nakov | Telerik 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 Cloud

  3. Overview, IaaS, SaaS, PaaS Public Cloud Platforms

  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 model

  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 + 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)

  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, …

  7. Typical Cloud Architecture • The typical cloud architecture is multi-tier, SOA, highly-scalable and highly-available • At each tier different managed services, technologies and languages can run Monitoring Load Balancer Administration Computing Node Computing Node Computing Node … Data-bases Storage Services Back-End Services Other Services

  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, …

  9. Develop and Run .NET Apps in the Cloud Public .NET Clouds

  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?

  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 balancing

  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, …

  13. Hosting .NET Projects in Azure Windows Azure

  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 required

  15. Windows Azure – Architecture Azure Load Balancer Visual Studio + Azure Tools Windows AzureManagement Portal Compute (Web role) Compute (Worker role) Compute (VM role) Windows VM VM running IIS7 Windows VM C# / .NET code / Java code Custom software ASP.NET / PHP / other Queues CDN SQL Azure Tables Blobs Other Azure / external services

  16. Windows Azure Services • Windows Azure Compute • Computing instances run Windows OSand applications (CPU + RAM + HDD) • Web / Worker / VM / Persistent VM role • Storage Services • AzureBlobs / Drives • Blob / file storage / NTFS volumes • Azure Table Storage – NoSQL cloud DB • Azure Queue Storage – message queue

  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 network

  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) Pricing

  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 database

  20. Hosting .NET Projects in AWS Beanstalk .NET Amazon Web Services (AWS)

  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!

  22. AWS Architecture AWS SDK for Java, C#, PHP,Python + VS / Eclipse Plugins Elastic Load Balancing (ELB) AWS Management Console EC2 Instances + Storage (EBS) Any OS and development platformC# / 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, …)

  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 databases

  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, ...

  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-scaling

  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) Pricing

  27. Hosting .NET Projects in AppHarbor AppHarbor

  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 services

  29. AppHarbor Architecture Load Balancer (Nginx) AppHarbor Applications Management Console Visual Studio + Git Web worker instances Background workers Managed Windows environment Managed IIS environment C# / ASP.NET MVC /Web Forms / WCF C# code IronMQ, RabitMQ Managed SQL Server / MySQL MongoDB, CouchDB Other AppHarbor Add-On Services

  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)

  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)

  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 / month Pricing

  33. ASP.NET MVC Project Deployment AppHarbor: Live Demo

  34. Hosting .NET Projects in Uhuru Uhuru AppCloud

  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 services

  36. Uhuru AppCloud Architecture UhuruCloud.com Web Interface Load Balancer (Nginx on Ubuntu Linux) Uhuru Cloud Manager Linux / WindowsApp Servers Linux / WindowsApp Servers Managed Apache /Tomcat environment Managed IISenvironment C# / ASP.NET MVC /Web Forms / WCF Apache + PHP / Ruby /Node.js / Tomcat + Java RabitMQ Managed SQL Server / MySQL MongoDB Other Uhuru Add-On Services

  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)

  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 available Pricing

  39. ASP.NET MVC Project Deployment Uhuru: Live Demo

  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  still not 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 project

  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 beta

  42. Thank you! @svetlinnakov nakov.com bg.linkedin.com/in/nakov • Public Cloud Platformsfor .NET Developers Svetlin Nakov | Telerik

  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.com

More Related