software development for the public cloud platforms: azure vs. app engine vs. amazon svetlin nakov...
TRANSCRIPT
Software Development for the Public Cloud Platforms: Azure vs. App Engine vs. AmazonSvetlin NakovTelerik Software Academy
http://academy.telerik.com
PublicClouds
Agenda
The Cloud from Developers‘ Perspective
Windows Azure
Google App Engine (GAE)
Amazon Web Services (AWS)
AppHarbor
2
PublicClouds
The Cloud from Developers'Perspective
Cloud??? WTF?!?
4
Computer Located OUtside of Data Center
WTF?
Cloud forDevelopers?
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?
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 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
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
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
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
WindowsAzure
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
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
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
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
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
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
Windows AzureLive Demo
Google AppEngine (GAE)
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
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
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
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
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
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
AmazonWeb Services
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
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)
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
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)
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 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
AppHarbor
.NET Cloud Made Easy
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
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
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
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
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
AppHarborLive Demo
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
Questions?
Software Development for the Public Cloud Platforms: Azure vs.
App Engine vs. Amazon
http://academy.telerik.com
PublicClouds