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).
1 of 42
More Related Content
Cloud for Developers: Azure vs. Google App Engine vs. Amazon vs. AppHarbor
1. Software Development
for the Public Cloud
Platforms: Azure vs.
App Engine vs. Amazon
Svetlin Nakov
Telerik 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
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
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
6. Why Cloud Matters?
Microsoft Azure Cisco Cloud Applications
IBM Cloud and Services
Apple iCloud Intel Hybrid Cloud
Oracle Public Cloud Dell Cloud Computing
Solutions
SAP NetWeaver on
Demand Adobe Creative Cloud
Google App Engine CA Cloud Solutions
Amazon Web Services Symantec.cloud services
HP Cloud Services Salesforce Force.com
Cloud Computing Platform
VMware Cloud Foundry
EMC Atmos Cloud
The Rackspace Cloud Delivery Platform
6
7. Cloud Computing 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
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
8. Cloud for Developers
Moving 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
9. Cloud Architecture
he 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 design
Databases and Storage
Relational and NoSQL databases
Blob storage, file storage, CDN
Other Services
Queues, notifications, logging, email, … 10
12. Windows 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
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 Services
Windows 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
16. Windows Azure 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
20. Google 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
22. App 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
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 Engine
Blobstore / 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 applications
Task Queues
Services for execution of background work
Memcache
Distributed in-memory data cache
24
28. Amazon Web Services
Amazon 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
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 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
35. AppHarbor
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
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