cloud for developers: azure vs. google app engine vs. amazon vs. appharbor

42
Software Software Development for the Development for the Public Cloud Public Cloud Platforms: Azure Platforms: Azure vs. App Engine vs. vs. App Engine vs. Amazon Amazon Svetlin Nakov Svetlin Nakov Telerik Software Academy Telerik Software Academy http://academy.telerik.co

Upload: svetlin-nakov

Post on 11-May-2015

49.951 views

Category:

Education


3 download

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

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

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

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

AgendaAgenda

The Cloud from Developers‘ Perspective

Windows Azure

Google App Engine (GAE)

Amazon Web Services (AWS)

AppHarbor

2

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

The Cloud from The Cloud from Developers'Developers'PerspectivePerspective

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

Cloud??? WTF?!?Cloud??? WTF?!?4

Computer Located OUtside of Data Center

Computer Located OUtside of Data Center

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

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

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

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

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

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

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

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

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

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

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

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

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

WindowsWindowsAzureAzure

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

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

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

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

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

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

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

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

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

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

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

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

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

Windows AzureWindows AzureLive DemoLive Demo

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

Google AppGoogle AppEngine (GAE)Engine (GAE)

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

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

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

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

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

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

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

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

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

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

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

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

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

Google AppGoogle AppEngine (GAE)Engine (GAE)

Live DemoLive Demo

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

AmazonAmazonWeb ServicesWeb Services

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

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

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

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)

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

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

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

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

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

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

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

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

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

AppHarborAppHarbor

.NET Cloud Made Easy.NET Cloud Made Easy

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

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

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

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

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

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

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

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

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

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

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

AppHarborAppHarborLive DemoLive Demo

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

More ResourcesMore Resources

Free Cloud Development Course Each Wednesday, Telerik Software

Academy

clouddevcourse.telerik.com

PythonPython

41

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

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