Public .NET Clouds_.pptx_ - DevReach by zhouwenjuan

VIEWS: 5 PAGES: 43

									 Public Cloud Platforms
 for .NET Developers




 Svetlin Nakov | Telerik
www.devreach.com           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
 Choosing a .NET Cloud
www.devreach.com
 Public Cloud Platforms
 Overview, IaaS, SaaS, PaaS




www.devreach.com
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
www.devreach.com
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
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
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 run
www.devreach.com
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
                    Public .NET Clouds
             Develop and Run .NET Apps in the Cloud




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

www.devreach.com
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
   Windows Azure
   Hosting .NET Projects in Azure




www.devreach.com
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
www.devreach.com
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 services

www.devreach.com
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 queue
www.devreach.com
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
www.devreach.com
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
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

www.devreach.com
   Amazon Web Services (AWS)
   Hosting .NET Projects in AWS Beanstalk .NET




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

www.devreach.com
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
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
www.devreach.com
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
   AppHarbor
   Hosting .NET Projects in AppHarbor




www.devreach.com
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
www.devreach.com
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 Services

www.devreach.com
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
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
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
www.devreach.com
   AppHarbor: Live Demo
   ASP.NET MVC Project Deployment




www.devreach.com
   Uhuru AppCloud
   Hosting .NET Projects in Uhuru




www.devreach.com
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
www.devreach.com
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 Services

www.devreach.com
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
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
www.devreach.com
   Uhuru: Live Demo
   ASP.NET MVC Project Deployment




www.devreach.com
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 project
www.devreach.com
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
www.devreach.com
                                  Public Cloud Platforms
                                    for .NET Developers


 Thank you!
       @svetlinnakov
       nakov.com
       bg.linkedin.com/in/nakov




 Svetlin Nakov | Telerik
www.devreach.com
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
www.devreach.com

								
To top