cloud for developers: azure vs. google app engine vs. amazon vs. appharbor
DESCRIPTION
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).TRANSCRIPT
Software Software Development for Development for the Public Cloud the Public Cloud Platforms: Azure Platforms: Azure vs. App Engine vs. vs. App Engine vs. AmazonAmazonSvetlin NakovSvetlin Nakov
Telerik Software AcademyTelerik Software Academy
http://academy.telerik.com
AgendaAgenda
The Cloud from Developers‘ Perspective
Windows Azure
Google App Engine (GAE)
Amazon Web Services (AWS)
AppHarbor
2
The Cloud from The Cloud from Developers'Developers'PerspectivePerspective
Cloud??? WTF?!?Cloud??? WTF?!?4
Computer Located OUtside of Data Center
Computer Located OUtside of Data Center
What is Cloud?What is Cloud?
Cloud ≈ multiple hardware machines combine computing power and resources Share them between multiple applications To save costs and use resources more
efficiently
Public 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
Why Cloud Matters?Why Cloud Matters?
Microsoft Azure
IBM Cloud
Apple iCloud
Oracle Public Cloud
SAP NetWeaver on Demand
Google App Engine
Amazon Web Services
HP Cloud Services
VMware Cloud Foundry
The Rackspace Cloud
Cisco Cloud Applicationsand Services
Intel Hybrid Cloud
Dell Cloud ComputingSolutions
Adobe Creative Cloud
CA Cloud Solutions
Symantec.cloud services
Salesforce Force.comCloud Computing Platform
EMC Atmos CloudDelivery Platform 6
Cloud Computing Cloud Computing ModelsModelsInfrastructure 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 +
RabbitMQ
Software as a Service (SaaS) Hosted application on demand (e.g.
WordPress or SugarCRM) 7
Cloud for Cloud for DevelopersDevelopersMoving to the cloud will require new skills
New paradigms and APIs E.g. NoSQL databases and MapReduce
New platforms and technologies New deployment model
The 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
Cloud ArchitectureCloud 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
9
…
Data-Data-basesbases
Storage Storage ServicesServices
Back-End Back-End ServicesServices
Other Other ServicesServices
Load BalancerLoad Balancer
Computing Computing NodeNode
Computing Computing NodeNode
Computing Computing NodeNode
Cloud ArchitectureCloud Architecture (2)(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, …
10
WindowsWindowsAzureAzure
Windows AzureWindows Azure
Microsoft 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
SQL SQL AzureAzure TablesTables BlobsBlobs
Azure ArchitectureAzure Architecture
13
Azure Load BalancerAzure Load Balancer
Compute Compute (Worker role)(Worker role)
Compute Compute (VM role)(VM role)
Compute Compute (Web role)(Web role)
VM running VM running IIS7IIS7 Windows VMWindows VM Windows Windows
VMVM
QueuesQueues CDNCDN
Other Azure / external servicesOther Azure / external services
C# / .NET code / C# / .NET code / Java codeJava code
Custom Custom softwaresoftware
ASP.NET / ASP.NET / PHP / otherPHP / other
Windows Azure Windows Azure ServicesServicesWindows Azure Compute
Computing instances run Windows OSand applications (CPU + RAM + HDD)
Web role Internet Information Services (IIS)
machine for hosting Web applicationsand WCF services
Worker role Long-running computations
VM role Windows VM (non-persistent)
14
Windows Azure Windows Azure Services (2)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
Windows Azure Windows Azure Services (3)Services (3)
SQL Azure SQL Server 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
16
Azure PricingAzure Pricing
Computing 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 operations
SQL Azure Database 100 MB – $0.0067 / hour ($5 / month) 1 GB – $0.0133 / hour ($10 / month)
17
Windows AzureWindows AzureLive DemoLive Demo
Google AppGoogle AppEngine (GAE)Engine (GAE)
Google App EngineGoogle App Engine
Google 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
DataDatastorestore
Blob Blob storestore
App Engine App Engine ArchitectureArchitecture
21
Load Balancer (Google Front-End Server)Load Balancer (Google Front-End Server)
BackendsBackendsApp Engine InstancesApp Engine Instances
Sandbox running JVM / Sandbox running JVM / Python interpreterPython interpreter
Sandbox running Sandbox running JVM / PythonJVM / Python
Other App Engine / external servicesOther App Engine / external services(Channel API, Memcache, Email, …)(Channel API, Memcache, Email, …)
Cloud Cloud SQLSQL
MapMapReduceReduce
Tasks Tasks queuequeue
Java code / Java Web Java code / Java Web application / Python appapplication / Python app Java codeJava code
App Engine ServicesApp Engine Services
App Engine instances Computing units that host the
applications Fully managed sandboxes (not VMs!)
Provide CPU + RAM + storage +language runtime
appengine.google.com
App Engine backends Like the App Engine instances
But provides higher computing resources Used for background processing
22
App Engine Services App Engine Services (2)(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 Engine
Blobstore / Cloud Storage Store files / blobs Has with ACL and REST API
23
App Engine Services App Engine Services (3)(3)MapReduce API
Highly-scalable parallel computing API for heavy computing tasks (based on Hadoop)
Channel API Push notifications for JavaScript
applications
Task Queues Services for execution of background work
Memcache Distributed in-memory data cache
24
App Engine PricingApp Engine Pricing
On-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
AmazonAmazonWeb ServicesWeb Services
Amazon Web Amazon Web ServicesServicesAmazon Web Services (AWS)
The pioneer of the public clouds Provides cloud platform and services
from 2002 Provides IaaS and PaaS on demand
Amazon 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
AWS ArchitectureAWS Architecture
29
RDBRDB S3S3
Elastic Load Balancing (ELB)Elastic Load Balancing (ELB)
EC2 Instances + Storage (EBS)EC2 Instances + Storage (EBS)
Any OS and development platformAny OS and development platformC# / Java / PHP / Python / Ruby / …C# / Java / PHP / Python / Ruby / …
Other AWS / external servicesOther AWS / external services(ElastiCache, CloudFront CDN, SES, …)(ElastiCache, CloudFront CDN, SES, …)
DynamoDynamoDBDB SQSSQSEBSEBS SWFSWF
Any development framework (.NET / Java EE / Any development framework (.NET / Java EE / Symfony / Zend / Django / Rails / Node.js)Symfony / Zend / Django / Rails / Node.js)
AWS ServicesAWS Services
Amazon 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
AWS Services (2)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
AWS Services (3)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
Amazon AWS PricingAmazon AWS Pricing
On-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 requests
Oracle Database (1 Core, 1.7 GB RAM) DB instance: $0.155 / hour ($116 /
month) DB storage: paid like EBS storage
33
AppHarborAppHarbor
.NET Cloud Made Easy.NET Cloud Made Easy
AppHarborAppHarbor
AppHarbor – 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
AppHarbor AppHarbor ArchitectureArchitecture
36
Managed SQL Managed SQL Server / MySQLServer / MySQL
MongoDB, MongoDB, CouchDBCouchDB
Load Balancer (Nginx)Load Balancer (Nginx)
Background Background workersworkers
Web worker Web worker instancesinstances
Managed IIS Managed IIS environmentenvironment
C# / ASP.NET MVC / C# / ASP.NET MVC / Web Forms / WCFWeb Forms / WCF
Managed Windows Managed Windows environmentenvironment
C# codeC# code
IronMQ, IronMQ, RabitMQRabitMQ
Other AppHarbor Add-On ServicesOther AppHarbor Add-On Services
AppHarbor: Add-OnsAppHarbor: Add-Ons
Airbrake (error logging)
Blitz (performance monitoring)
CloudAMQP (RabbitMQ)
Cloudant (CouchDB)
CloudMailin (incoming email)
Dedicated SQL Server
JustOneDB (NoSLQ database)
Logentries (log management)
Mailgun (email send / receive)37
AppHarbor: Add-Ons AppHarbor: Add-Ons (2)(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
AppHarbor PricingAppHarbor Pricing
AppHarbor free plan 1 Web worker instance per application Unlimited applications 20 MB SQL Server + 20 MB MySQL
Paid 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
AppHarborAppHarborLive DemoLive Demo
More ResourcesMore Resources
Free Cloud Development Course Each Wednesday, Telerik Software
Academy
clouddevcourse.telerik.com
PythonPython
41
QuestionQuestions?s?
Software Development Software Development for the Public Cloud for the Public Cloud Platforms: Azure vs. Platforms: Azure vs.
App Engine vs. AmazonApp Engine vs. Amazon
http://academy.telerik.com