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

Software Development for the Public Cloud Platforms: Azure vs. App Engine vs. Amazon Svetlin Nakov Telerik Software Academy

Embed Size (px)

Citation preview

Page 1: Software Development for the Public Cloud Platforms: Azure vs. App Engine vs. Amazon Svetlin Nakov Telerik Software Academy

Software Development for the Public Cloud Platforms: Azure vs. App Engine vs. AmazonSvetlin NakovTelerik Software Academy

http://academy.telerik.com

PublicClouds

Page 2: Software Development for the Public Cloud Platforms: Azure vs. App Engine vs. Amazon Svetlin Nakov Telerik Software Academy

Agenda

The Cloud from Developers‘ Perspective

Windows Azure

Google App Engine (GAE)

Amazon Web Services (AWS)

AppHarbor

2

PublicClouds

Page 3: Software Development for the Public Cloud Platforms: Azure vs. App Engine vs. Amazon Svetlin Nakov Telerik Software Academy

The Cloud from Developers'Perspective

Page 4: Software Development for the Public Cloud Platforms: Azure vs. App Engine vs. Amazon Svetlin Nakov Telerik Software Academy

Cloud??? WTF?!?

4

Computer Located OUtside of Data Center

WTF?

Cloud forDevelopers?

Page 5: Software Development for the Public Cloud Platforms: Azure vs. App Engine vs. Amazon Svetlin Nakov Telerik Software Academy

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: Software Development for the Public Cloud Platforms: Azure vs. App Engine vs. Amazon Svetlin Nakov Telerik Software Academy

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: Software Development for the Public Cloud Platforms: Azure vs. App Engine vs. Amazon Svetlin Nakov Telerik Software Academy

Cloud Computing ModelsInfrastructure 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

Page 8: Software Development for the Public Cloud Platforms: Azure vs. App Engine vs. Amazon Svetlin Nakov Telerik Software Academy

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 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: Software Development for the Public Cloud Platforms: Azure vs. App Engine vs. Amazon Svetlin Nakov Telerik Software Academy

Cloud 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

Mon

itori

ng

Ad

min

istr

ati

on

Data-bases

Storage Services

Back-End Services

Other Services

Load Balancer

Computing Node

Computing Node

Computing Node

Page 10: Software Development for the Public Cloud Platforms: Azure vs. App Engine vs. Amazon Svetlin Nakov Telerik Software Academy

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

Page 11: Software Development for the Public Cloud Platforms: Azure vs. App Engine vs. Amazon Svetlin Nakov Telerik Software Academy

WindowsAzure

Page 12: Software Development for the Public Cloud Platforms: Azure vs. App Engine vs. Amazon Svetlin Nakov Telerik Software Academy

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

Page 13: Software Development for the Public Cloud Platforms: Azure vs. App Engine vs. Amazon Svetlin Nakov Telerik Software Academy

SQL Azure

Tables Blobs

Azure Architecture

13

Vis

ual S

tud

io +

Azu

re T

ools

Win

dow

s A

zure

Man

ag

em

en

t P

ort

al

Azure Load Balancer

Compute (Worker role)

Compute (VM role)

Compute (Web role)

VM running IIS7

Windows VMWindows

VM

Queues CDN

Other Azure / external services

C# / .NET code / Java code

Custom software

ASP.NET / PHP / other

Page 14: Software Development for the Public Cloud Platforms: Azure vs. App Engine vs. Amazon Svetlin Nakov Telerik Software Academy

Windows Azure ServicesWindows 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: Software Development for the Public Cloud Platforms: Azure vs. App Engine vs. Amazon Svetlin Nakov Telerik Software Academy

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

Page 16: Software Development for the Public Cloud Platforms: Azure vs. App Engine vs. Amazon Svetlin Nakov Telerik Software Academy

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

Page 17: Software Development for the Public Cloud Platforms: Azure vs. App Engine vs. Amazon Svetlin Nakov Telerik Software Academy

Azure 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

Pricing

Page 18: Software Development for the Public Cloud Platforms: Azure vs. App Engine vs. Amazon Svetlin Nakov Telerik Software Academy

Windows AzureLive Demo

Page 19: Software Development for the Public Cloud Platforms: Azure vs. App Engine vs. Amazon Svetlin Nakov Telerik Software Academy

Google AppEngine (GAE)

Page 20: Software Development for the Public Cloud Platforms: Azure vs. App Engine vs. Amazon Svetlin Nakov Telerik Software Academy

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

Page 21: Software Development for the Public Cloud Platforms: Azure vs. App Engine vs. Amazon Svetlin Nakov Telerik Software Academy

Datastore

Blob store

App Engine Architecture

21

Eclip

se +

Goog

le P

lug

in f

or

Eclip

se

Goog

le A

pp

En

gin

e

Man

ag

em

en

t D

ash

board

Load Balancer (Google Front-End Server)

BackendsApp Engine Instances

Sandbox running JVM / Python interpreter

Sandbox running JVM / Python

Other App Engine / external services(Channel API, Memcache, Email, …)

Cloud SQL

MapReduce

Tasks queue

Java code / Java Web application / Python app

Java code

Page 22: Software Development for the Public Cloud Platforms: Azure vs. App Engine vs. Amazon Svetlin Nakov Telerik Software Academy

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 processing22

Page 23: Software Development for the Public Cloud Platforms: Azure vs. App Engine vs. Amazon Svetlin Nakov Telerik Software Academy

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

Page 24: Software Development for the Public Cloud Platforms: Azure vs. App Engine vs. Amazon Svetlin Nakov Telerik Software Academy

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

Page 25: Software Development for the Public Cloud Platforms: Azure vs. App Engine vs. Amazon Svetlin Nakov Telerik Software Academy

App 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 /

100kwrite operations

Pricing

25

Page 26: Software Development for the Public Cloud Platforms: Azure vs. App Engine vs. Amazon Svetlin Nakov Telerik Software Academy

Google AppEngine (GAE)

Live Demo

Page 27: Software Development for the Public Cloud Platforms: Azure vs. App Engine vs. Amazon Svetlin Nakov Telerik Software Academy

AmazonWeb Services

Page 28: Software Development for the Public Cloud Platforms: Azure vs. App Engine vs. Amazon Svetlin Nakov Telerik Software Academy

Amazon Web ServicesAmazon 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: Software Development for the Public Cloud Platforms: Azure vs. App Engine vs. Amazon Svetlin Nakov Telerik Software Academy

AWS Architecture

29

RDB S3

AW

S S

DK

for

Java,

C#

, P

HP,

P

yth

on

, …

, +

VS

/ Eclip

se P

lug

ins

AW

S M

an

ag

em

en

t C

on

sole

Elastic Load Balancing (ELB)

EC2 Instances + Storage (EBS)

Any OS and development platformC# / Java / PHP / Python / Ruby / …

Other AWS / external services(ElastiCache, CloudFront CDN, SES, …)

DynamoDB

SQSEBS SWF

Any development framework (.NET / Java EE / Symfony / Zend / Django / Rails / Node.js)

Page 30: Software Development for the Public Cloud Platforms: Azure vs. App Engine vs. Amazon Svetlin Nakov Telerik Software Academy

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

Page 31: Software Development for the Public Cloud Platforms: Azure vs. App Engine vs. Amazon Svetlin Nakov Telerik Software Academy

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: Software Development for the Public Cloud Platforms: Azure vs. App Engine vs. Amazon Svetlin Nakov Telerik Software Academy

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: Software Development for the Public Cloud Platforms: Azure vs. App Engine vs. Amazon Svetlin Nakov Telerik Software Academy

Amazon 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

Pricing

33

Page 34: Software Development for the Public Cloud Platforms: Azure vs. App Engine vs. Amazon Svetlin Nakov Telerik Software Academy

AppHarbor

.NET Cloud Made Easy

Page 35: Software Development for the Public Cloud Platforms: Azure vs. App Engine vs. Amazon Svetlin Nakov Telerik Software Academy

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

Page 36: Software Development for the Public Cloud Platforms: Azure vs. App Engine vs. Amazon Svetlin Nakov Telerik Software Academy

AppHarbor Architecture

36

Managed SQL Server / MySQL

MongoDB, CouchDB

Vis

ual S

tud

io +

Git

Ap

pH

arb

or

Ap

plicati

on

s

Man

ag

em

en

t C

on

sole

Load Balancer (Nginx)

Background workers

Web worker instances

Managed IIS environment

C# / ASP.NET MVC / Web Forms / WCF

Managed Windows environment

C# code

IronMQ, RabitMQ

Other AppHarbor Add-On Services

Page 37: Software Development for the Public Cloud Platforms: Azure vs. App Engine vs. Amazon Svetlin Nakov Telerik Software Academy

AppHarbor: 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: Software Development for the Public Cloud Platforms: Azure vs. App Engine vs. Amazon Svetlin Nakov Telerik Software Academy

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

Page 39: Software Development for the Public Cloud Platforms: Azure vs. App Engine vs. Amazon Svetlin Nakov Telerik Software Academy

AppHarbor 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: Software Development for the Public Cloud Platforms: Azure vs. App Engine vs. Amazon Svetlin Nakov Telerik Software Academy

AppHarborLive Demo

Page 41: Software Development for the Public Cloud Platforms: Azure vs. App Engine vs. Amazon Svetlin Nakov Telerik Software Academy

More Resources

Free Cloud Development Course Each Wednesday, Telerik Software

Academy

clouddevcourse.telerik.com

Cloud DevelopmentFree Training Course

C#Java

HTML 5

PHP Python

coding

41

Page 42: Software Development for the Public Cloud Platforms: Azure vs. App Engine vs. Amazon Svetlin Nakov Telerik Software Academy

Questions?

Software Development for the Public Cloud Platforms: Azure vs.

App Engine vs. Amazon

http://academy.telerik.com

PublicClouds