SlideShare a Scribd company logo
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

More Related Content

PPT
Azure vs. Google App Engine
PPTX
Case study of amazon EC2 by Akash Badone
KEY
2009.11.20 BPstudy#27 Amazon Web Service
PPS
Amazon web service
PDF
Amazon Ec2 Application Design
PPTX
Programming Amazon Web Services for Beginners (1)
PPT
A Step By Step Guide To Put DB2 On Amazon Cloud
PPTX
A Lap Around Azure
Azure vs. Google App Engine
Case study of amazon EC2 by Akash Badone
2009.11.20 BPstudy#27 Amazon Web Service
Amazon web service
Amazon Ec2 Application Design
Programming Amazon Web Services for Beginners (1)
A Step By Step Guide To Put DB2 On Amazon Cloud
A Lap Around Azure

What's hot (12)

PDF
Overview of Amazon Web Services
PDF
Aws cli
PPTX
GPU Renderfarm with Integrated Asset Management & Production System (AMPS)
PPTX
Understanding The Azure Platform March 2010
PPTX
Aws compute options
PDF
IBM Software Available In The Cloud With Amazon Web Services
PPT
Cloud Computing With AWS
PPTX
Understanding The Azure Platform Jan
PPTX
AWS CloudFormation template with single & redundant system
PPTX
CloudStack-Development-Story
PPTX
Nuts and bolts of running a popular site in the aws cloud
PPTX
Windows Azure & How to Deploy Wordress
Overview of Amazon Web Services
Aws cli
GPU Renderfarm with Integrated Asset Management & Production System (AMPS)
Understanding The Azure Platform March 2010
Aws compute options
IBM Software Available In The Cloud With Amazon Web Services
Cloud Computing With AWS
Understanding The Azure Platform Jan
AWS CloudFormation template with single & redundant system
CloudStack-Development-Story
Nuts and bolts of running a popular site in the aws cloud
Windows Azure & How to Deploy Wordress
Ad

Viewers also liked (20)

PPT
J2EE - Practical Overview
PPTX
Wso2 con 2014 event driven architecture Publish/Subscribe Pubsub
PDF
database slide 1
PDF
Database slide
PPT
database slide
PPT
Evolving the Web into a Global Database - Advances and Applications.
PPTX
Writing High Quality Code in C#
PPT
Nakov - .NET Framework Overview - English
PDF
RMAN best practices for RAC
PPT
14. Defining Classes
PDF
REST vs. Messaging For Microservices
PDF
Payroll system
PPT
0. Course Introduction
PPTX
Oracle database 12c new features
DOCX
Thesis about Computerized Payroll System for Barangay Hall, Dita
PPTX
HBase Vs Cassandra Vs MongoDB - Choosing the right NoSQL database
PPTX
Computerized payroll system
PPTX
Payroll Management System
PPS
Database Design Slide 1
DOCX
Computer science project work
J2EE - Practical Overview
Wso2 con 2014 event driven architecture Publish/Subscribe Pubsub
database slide 1
Database slide
database slide
Evolving the Web into a Global Database - Advances and Applications.
Writing High Quality Code in C#
Nakov - .NET Framework Overview - English
RMAN best practices for RAC
14. Defining Classes
REST vs. Messaging For Microservices
Payroll system
0. Course Introduction
Oracle database 12c new features
Thesis about Computerized Payroll System for Barangay Hall, Dita
HBase Vs Cassandra Vs MongoDB - Choosing the right NoSQL database
Computerized payroll system
Payroll Management System
Database Design Slide 1
Computer science project work
Ad

Similar to Public Cloud Platforms for .NET Developers (20)

PPT
Cloud for Developers: Azure vs. Google App Engine vs. Amazon vs. AppHarbor
PDF
Azure Cloud Dev Camp - App Platform
PPTX
Windows Azure
KEY
Developing Social Games in the Cloud
PPTX
Microsoft Azure
PPTX
So There’s This Amazon Thing
PPTX
AZ900_Core_Solutions_Security_Labs_LondonIT (1).pptx
PPTX
Azure Web Jobs
PDF
Using Azure cloud and Firebird to develop applications easily
PPTX
Developing Java Applications in AWS
PDF
Comparison and mapping between various cloud services 2019
PPTX
Microsoft Azure: Opção de Nuvem para Todo o Desenvolvedor
PPTX
Introduction to Windows Azure Platform
PDF
Cloud PaaS with Java
PPTX
Modernizing existing .NET applications with Windows Containers and Azure cloud
PDF
OpenCms Days 2012 - OpenCms on open clouds
PPTX
Just another Wordpress weblog, but more cloudy
PDF
AWS Cloud Experience CA: ¿Porqué Correr WorkLoads Microsoft & Oracle en AWS?
PPTX
Sky High With Azure
PPTX
Drupal DevOps on Microsoft Azure Websites
Cloud for Developers: Azure vs. Google App Engine vs. Amazon vs. AppHarbor
Azure Cloud Dev Camp - App Platform
Windows Azure
Developing Social Games in the Cloud
Microsoft Azure
So There’s This Amazon Thing
AZ900_Core_Solutions_Security_Labs_LondonIT (1).pptx
Azure Web Jobs
Using Azure cloud and Firebird to develop applications easily
Developing Java Applications in AWS
Comparison and mapping between various cloud services 2019
Microsoft Azure: Opção de Nuvem para Todo o Desenvolvedor
Introduction to Windows Azure Platform
Cloud PaaS with Java
Modernizing existing .NET applications with Windows Containers and Azure cloud
OpenCms Days 2012 - OpenCms on open clouds
Just another Wordpress weblog, but more cloudy
AWS Cloud Experience CA: ¿Porqué Correr WorkLoads Microsoft & Oracle en AWS?
Sky High With Azure
Drupal DevOps on Microsoft Azure Websites

More from Svetlin Nakov (20)

PPTX
AI and the Future of Devs: Nakov @ Techniverse (Nov 2024)
PPTX
AI за ежедневието - Наков @ Techniverse (Nov 2024)
PPTX
AI инструменти за бизнеса - Наков - Nov 2024
PPTX
AI Adoption in Business - Nakov at Forbes HR Forum - Sept 2024
PPTX
Software Engineers in the AI Era - Sept 2024
PPTX
Най-търсените направления в ИТ сферата за 2024
PPTX
BG-IT-Edu: отворено учебно съдържание за ИТ учители
PPTX
Programming World in 2024
PDF
AI Tools for Business and Startups
PPTX
AI Tools for Scientists - Nakov (Oct 2023)
PPTX
AI Tools for Entrepreneurs
PPTX
Bulgarian Tech Industry - Nakov at Dev.BG All in One Conference 2023
PPTX
AI Tools for Business and Personal Life
PDF
Дипломна работа: учебно съдържание по ООП - Светлин Наков
PPTX
Дипломна работа: учебно съдържание по ООП
PPTX
Свободно ИТ учебно съдържание за учители по програмиране и ИТ
PPTX
AI and the Professions of the Future
PPTX
Programming Languages Trends for 2023
PPTX
IT Professions and How to Become a Developer
PPTX
GitHub Actions (Nakov at RuseConf, Sept 2022)
AI and the Future of Devs: Nakov @ Techniverse (Nov 2024)
AI за ежедневието - Наков @ Techniverse (Nov 2024)
AI инструменти за бизнеса - Наков - Nov 2024
AI Adoption in Business - Nakov at Forbes HR Forum - Sept 2024
Software Engineers in the AI Era - Sept 2024
Най-търсените направления в ИТ сферата за 2024
BG-IT-Edu: отворено учебно съдържание за ИТ учители
Programming World in 2024
AI Tools for Business and Startups
AI Tools for Scientists - Nakov (Oct 2023)
AI Tools for Entrepreneurs
Bulgarian Tech Industry - Nakov at Dev.BG All in One Conference 2023
AI Tools for Business and Personal Life
Дипломна работа: учебно съдържание по ООП - Светлин Наков
Дипломна работа: учебно съдържание по ООП
Свободно ИТ учебно съдържание за учители по програмиране и ИТ
AI and the Professions of the Future
Programming Languages Trends for 2023
IT Professions and How to Become a Developer
GitHub Actions (Nakov at RuseConf, Sept 2022)

Recently uploaded (20)

PDF
Module 4: Burden of Disease Tutorial Slides S2 2025
PPTX
Pharmacology of Heart Failure /Pharmacotherapy of CHF
PPTX
GDM (1) (1).pptx small presentation for students
PDF
STATICS OF THE RIGID BODIES Hibbelers.pdf
PDF
GENETICS IN BIOLOGY IN SECONDARY LEVEL FORM 3
PDF
O7-L3 Supply Chain Operations - ICLT Program
PDF
Supply Chain Operations Speaking Notes -ICLT Program
PPTX
Introduction-to-Literarature-and-Literary-Studies-week-Prelim-coverage.pptx
PDF
Saundersa Comprehensive Review for the NCLEX-RN Examination.pdf
PPTX
human mycosis Human fungal infections are called human mycosis..pptx
PPTX
Institutional Correction lecture only . . .
PDF
Complications of Minimal Access Surgery at WLH
PDF
VCE English Exam - Section C Student Revision Booklet
PPTX
Pharma ospi slides which help in ospi learning
PPTX
PPT- ENG7_QUARTER1_LESSON1_WEEK1. IMAGERY -DESCRIPTIONS pptx.pptx
PPTX
202450812 BayCHI UCSC-SV 20250812 v17.pptx
PDF
A GUIDE TO GENETICS FOR UNDERGRADUATE MEDICAL STUDENTS
PDF
FourierSeries-QuestionsWithAnswers(Part-A).pdf
PDF
Anesthesia in Laparoscopic Surgery in India
PDF
Chinmaya Tiranga quiz Grand Finale.pdf
Module 4: Burden of Disease Tutorial Slides S2 2025
Pharmacology of Heart Failure /Pharmacotherapy of CHF
GDM (1) (1).pptx small presentation for students
STATICS OF THE RIGID BODIES Hibbelers.pdf
GENETICS IN BIOLOGY IN SECONDARY LEVEL FORM 3
O7-L3 Supply Chain Operations - ICLT Program
Supply Chain Operations Speaking Notes -ICLT Program
Introduction-to-Literarature-and-Literary-Studies-week-Prelim-coverage.pptx
Saundersa Comprehensive Review for the NCLEX-RN Examination.pdf
human mycosis Human fungal infections are called human mycosis..pptx
Institutional Correction lecture only . . .
Complications of Minimal Access Surgery at WLH
VCE English Exam - Section C Student Revision Booklet
Pharma ospi slides which help in ospi learning
PPT- ENG7_QUARTER1_LESSON1_WEEK1. IMAGERY -DESCRIPTIONS pptx.pptx
202450812 BayCHI UCSC-SV 20250812 v17.pptx
A GUIDE TO GENETICS FOR UNDERGRADUATE MEDICAL STUDENTS
FourierSeries-QuestionsWithAnswers(Part-A).pdf
Anesthesia in Laparoscopic Surgery in India
Chinmaya Tiranga quiz Grand Finale.pdf

Public Cloud Platforms for .NET Developers

  • 1. Public Cloud Platforms for .NET Developers Svetlin Nakov | Telerik www.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 Cloud www.devreach.com
  • 3. Public Cloud Platforms Overview, IaaS, SaaS, PaaS www.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 model www.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 run www.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 Cloud www.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 balancing www.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 Azure www.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 required www.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 services www.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 queue www.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 network www.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 database www.devreach.com
  • 20. Amazon Web Services (AWS) Hosting .NET Projects in AWS Beanstalk .NET www.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 databases www.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-scaling www.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 AppHarbor www.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 services www.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 Services www.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 / month www.devreach.com
  • 33. AppHarbor: Live Demo ASP.NET MVC Project Deployment www.devreach.com
  • 34. Uhuru AppCloud Hosting .NET Projects in Uhuru www.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 services www.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 Services www.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 available www.devreach.com
  • 39. Uhuru: Live Demo ASP.NET MVC Project Deployment www.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 project www.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 beta www.devreach.com
  • 42. Public Cloud Platforms for .NET Developers Thank you! @svetlinnakov nakov.com bg.linkedin.com/in/nakov Svetlin Nakov | Telerik www.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.com www.devreach.com