Cloud for Developers: Azure vs. Google App Engine vs. Amazon vs. AppHarbor
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

Cloud for Developers: Azure vs. Google App Engine vs. Amazon vs. AppHarbor

  • 48,261 views
Uploaded on

Software Development for the Public Cloud Platforms: Windows Azure vs. Google App Engine vs. Amazon Web Services (AWS) vs AppHarbor. ...

Software Development for the Public Cloud Platforms: Windows Azure vs. Google App Engine vs. Amazon Web Services (AWS) vs AppHarbor.

In this talk the speaker will compare the most widely used public PaaS clouds (Azure, GAE and AWS) from the software developer’s perspective.

A parallel between Azure, GAE, AWS and few other clouds (like AppHarbor, Heroku, Cloudfoundry and AppForce) will be made based on several criteria: architecture, pricing, storage services (non-relational databases, relational databases in the cloud and blob/file storage), business-tier services (like queues, notifications, email, CDN, etc.), supported languages, platforms and frameworks and front-end technologies.

A live demo will be made to compare the way we build and deploy a multi-tiered application in Azure, Amazon and GAE and how to implement its back-end (using a cloud database), business tier (based on REST services) and front-end (based on HTML5).

The speaker Svetlin Nakov (http://www.nakov.com) is well-known software development expert and trainer, a head of the Telerik Software Academy and a main organizer of the Cloud Development course (http://clouddevcourse.telerik.com).

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
No Downloads

Views

Total Views
48,261
On Slideshare
35,777
From Embeds
12,484
Number of Embeds
11

Actions

Shares
Downloads
568
Comments
1
Likes
17

Embeds 12,484

http://www.nakov.com 12,025
https://pulse.neudesic.com 424
http://webcache.googleusercontent.com 14
http://translate.googleusercontent.com 9
http://localhost 3
http://www.newscientist.com 2
https://twitter.com 2
http://feeds.feedburner.com 2
http://74.6.238.252 1
http://127.0.0.1 1
http://www.linkedin.com 1

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. Software Developmentfor the Public CloudPlatforms: Azure vs.App Engine vs. AmazonSvetlin NakovTelerik Software Academy http://academy.telerik.com
  • 2. Agenda The Cloud from Developers‘ Perspective Windows Azure Google App Engine (GAE) Amazon Web Services (AWS) AppHarbor 2
  • 3. The Cloud from Developers Perspective
  • 4. 4 Cloud??? WTF?!? Computer Located OUtside of Data Center
  • 5. What is Cloud?Cloud ≈ multiple hardware machines combine computing power and resources  Share them between multiple applications  To save costs and use resources more efficientlyPublic clouds  Provide computing resources on demand  Publicly in Internet  Paid or free of charge (to some limit)  Azure, Amazon AWS, Google App Engine, AppHarbor, Rackspace, Heroku, … 5
  • 6. Why Cloud Matters?Microsoft Azure Cisco Cloud ApplicationsIBM Cloud and ServicesApple iCloud Intel Hybrid CloudOracle Public Cloud Dell Cloud Computing SolutionsSAP NetWeaver on Demand Adobe Creative CloudGoogle App Engine CA Cloud SolutionsAmazon Web Services Symantec.cloud servicesHP Cloud Services Salesforce Force.com Cloud Computing PlatformVMware Cloud Foundry EMC Atmos CloudThe Rackspace Cloud Delivery Platform 6
  • 7. Cloud Computing ModelsInfrastructure as a Service (IaaS)  Virtual machines in the cloud on demand  Users install the OS and software they needPlatform as a Service (PaaS)  Platform, services and APIs for developers  E.g. .NET + ASP.NET + WCF + SQL Azure  Java + JBoss + JSF + JPA + MongoDB  JavaScript + Node.js + MongoDB + RabbitMQSoftware as a Service (SaaS)  Hosted application on demand (e.g. WordPress or SugarCRM) 7
  • 8. Cloud for DevelopersMoving to the cloud will require new skills  New paradigms and APIs  E.g. NoSQL databases and MapReduce  New platforms and technologies  New deployment modelThe cloud still supports your existing skills  Known technologies, e.g. ASP.NET and WCF  Your favorite programming languages  Like C#, Java and PHP  Relational databases and SQL 8
  • 9. Cloud Architecturehe typical cloud architecture is multi-tier, SOA,highly-scalable and highly-available Load Balancer Computing Computing … Computing Node Node Node Data- Storage Back-End Other bases Services Services Services  At each tier different managed services, 9
  • 10. 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 designDatabases and Storage  Relational and NoSQL databases  Blob storage, file storage, CDNOther Services  Queues, notifications, logging, email, … 10
  • 11. Windows Azure
  • 12. Windows AzureMicrosoft Windows Azure  Fast-growing public cloud  Provides rich PaaS platform  Mainly for .NET developers  Supports all major .NET technologies  ASP.NET MVC, WCF, ADO.NET EF, WWF, …  Provides also Java, PHP and Node.js APIs  No free version, only 3 months trial  Bulgarian citizens cannot register! 12
  • 13. Azure Architecture Azure Load Balancer Compute Compute Compute (Web role) (Worker role) (VM role) VM running Windows Windows VM IIS7 VM C# / .NET ASP.NET / Custom code / Java PHP / other software code SQL Tables Blobs Queues CDN Azure Other Azure / external services 13
  • 14. Windows Azure ServicesWindows Azure Compute  Computing instances run Windows OS and applications (CPU + RAM + HDD)  Web role  Internet Information Services (IIS) machine for hosting Web applications and WCF services  Worker role  Long-running computations  VM role  Windows VM (non-persistent) 14
  • 15. Windows Azure Services (2)Azure data storage services  Azure Table Storage  Distributed highly-scalable cloud database (stores entities with properties)  Azure Queue Storage  Message queue service  Azure Blobs / Drives  Blob / file storage  NTFS volumes 15
  • 16. Windows Azure Services (3)SQL Azure  SQL Server in the cloud  Highly-available and scalable relational DBAzure Business Analytics  Create reports with tables, charts, maps, etc.Azure Caching  Distributed, in-memory, application cacheAzure CDN  Content delivery network 16
  • 17. Azure PricingComputing Nodes  Shared CPU, 768 MB RAM  $0.02 / hour ($15 / month)  1 Core, 1.75 GB RAM  $0.12 / hour ($90 / month)Storage  $0.125 / GB + $0.01 / 10000 operationsSQL Azure Database  100 MB – $0.0067 / hour ($5 / month)  1 GB – $0.0133 / hour ($10 / month) 17
  • 18. Windows Azure Live Demo
  • 19. Google AppEngine (GAE)
  • 20. Google App EngineGoogle App Engine (GAE)  Leading Java and Python PaaS public cloud  Infrastructure similar to the one driving GMail and Google Docs operated by Google  http://code.google.com/appengine/App Engine has a completely free version  Provides CPU / bandwidth / storage capable to serve 5 000 000 page views / month  Instant registration  Confirmation by SMS 20
  • 21. App Engine Architecture Load Balancer (Google Front-End Server) App Engine Instances Backends Sandbox running JVM / Sandbox running Python interpreter JVM / Python Java code / Java Web Java code application / Python app Data Cloud Blob Map Tasks store SQL store Reduce queue Other App Engine / external services (Channel API, Memcache, Email, …) 21
  • 22. App Engine ServicesApp Engine instances  Computing units that host the applications  Fully managed sandboxes (not VMs!)  Provide CPU + RAM + storage + language runtime  appengine.google.comApp Engine backends  Like the App Engine instances  But provides higher computing resources  Used for background processing 22
  • 23. App Engine Services (2)App Engine datastores  Provide NoSQL schemaless object database  Supports transacts and a query-engine (GQL)  High-replication datastore (HRD)  Master-slave datastore (faster, less-reliable)Cloud SQL  Managed MySQL in App EngineBlobstore / Cloud Storage  Store files / blobs  Has with ACL and REST API 23
  • 24. App Engine Services (3)MapReduce API  Highly-scalable parallel computing API for heavy computing tasks (based on Hadoop)Channel API  Push notifications for JavaScript applicationsTask Queues  Services for execution of background workMemcache  Distributed in-memory data cache 24
  • 25. App Engine PricingOn-demand Frontend instances  1 instance free  $0.08 / hour ($60 / month)High Replication Datastore (HRD)  1 GB free  $0.24 / GB / month ($0.00032 / GB / hour)Each API has free quota and price per usage  Blobstore API: 5 GB free; $0.13 / GB / month  Datastore API: 50K free; $0.10 / 100k write operations 25
  • 26. Google AppEngine (GAE) Live Demo
  • 27. AmazonWeb Services
  • 28. Amazon Web ServicesAmazon Web Services (AWS)  The pioneer of the public clouds  Provides cloud platform and services from 2002  Provides IaaS and PaaS on demandAmazon Elastic Compute Cloud (Amazon EC2)  Virtual machines on demand  Runs Windows / Linux / other OS  Several locations: US, EU, Japan, Brazil, …  http://aws.amazon.com/ec2/ 28
  • 29. AWS Architecture Elastic Load Balancing (ELB) 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) Dynamo RDB S3 EBS SQS SWF DB Other AWS / external services (ElastiCache, CloudFront CDN, SES, …) 29
  • 30. AWS ServicesAmazon Elastic Block Store (Amazon EBS)  Virtual hard disk (HDD) volumes  Used with the EC2 to keep the OS file system  http://aws.amazon.com/ebs/Amazon Simple Storage Service (Amazon S3)  Host binary data (files, images, videos, etc.)  Accessible through the Web  With or without authentication  http://aws.amazon.com/s3/ 30
  • 31. AWS Services (2)Amazon DynamoDB / SimpleDB  Managed NoSQL cloud database  Highly scalable, fault-tolerant  DynamoDB – newer & faster than SimpleDB  http://aws.amazon.com/dynamodb/ Amazon Relational Database Service (RDS)  Managed MySQL and Oracle databases  Scalability, automated backup, replication  http://aws.amazon.com/rds/ 31
  • 32. AWS Services (3)Other AWS services  Amazon SQS (message queue)  Amazon CloudFront (content delivery network)  Amazon ElastiCache (caching)  Amazon Route 53 (cloud DNS)  Amazon SES (email)Pricing  On-demand pricing (per hour / per GB)  1-year free trial (credit card required) 32
  • 33. Amazon AWS PricingOn-Demand EC2 Instances  1 Core, 1.7 GB RAM, Linux  $0.08 / hour ($60 / month)  1 Core, 1.7 GB RAM, Windows  $0.115 / hour ($86 / month)Storage (EBS)  $0.10 / GB + $0.10 per 1 million requestsOracle Database (1 Core, 1.7 GB RAM)  DB instance: $0.155 / hour ($116 / month)  DB storage: paid like EBS storage 33
  • 34. AppHarbor.NET Cloud Made Easy
  • 35. AppHarborAppHarbor – cloud platform for .NET apps  Supports a classical .NET development stack  C#, .NET Framework, ASP.NET (Web Forms and MVC), WCF, WWF, 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 35
  • 36. AppHarbor Architecture Load Balancer (Nginx) Web worker Background instances workers Managed IIS Managed Windows environment environment C# / ASP.NET MVC / C# code Web Forms / WCF Managed SQL MongoDB, IronMQ, Server / MySQL CouchDB RabitMQ Other AppHarbor Add-On Services 36
  • 37. AppHarbor: Add-OnsAirbrake (error logging)Blitz (performance monitoring)CloudAMQP (RabbitMQ)Cloudant (CouchDB)CloudMailin (incoming email)Dedicated SQL ServerJustOneDB (NoSLQ database)Logentries (log management)Mailgun (email send / receive) 37
  • 38. 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) 38
  • 39. AppHarbor PricingAppHarbor free plan  1 Web worker instance per application  Unlimited applications  20 MB SQL Server + 20 MB MySQLPaid plans  $49 month per instance (Web worker or Background worker)  10 GB Shared SQL Server DB – $10 / month  10 GB Shared MySQL DB – $10 / month  Custom domain – $10 / month 39
  • 40. AppHarbor Live Demo
  • 41. More ResourcesFree Cloud Development Course  Each Wednesday, Telerik Software Academy Python  clouddevcourse.telerik.com 41
  • 42. Software Development for the Public Cloud Platforms: Azure vs.App Engine vs. AmazonQuestions? http://academy.telerik.com