Download Software Development for the Public Cloud Platforms: Azure vs. App

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
Software Development
for the Public Cloud
Platforms: Azure vs.
App Engine vs. Amazon
Svetlin Nakov
Telerik Software Academy
http://academy.telerik.com
Agenda
 The Cloud from Developers‘ Perspective
 Windows Azure
 Google App Engine (GAE)
 Amazon Web Services (AWS)
 AppHarbor
2
The Cloud from
Developers'
Perspective
4
Cloud??? WTF?!?
Computer
Located
OUtside of
Data Center
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 Applications
and Services
Intel Hybrid Cloud
Dell Cloud Computing
Solutions
Adobe Creative Cloud
CA Cloud Solutions
Symantec.cloud services
Salesforce Force.com
Cloud Computing Platform
EMC Atmos Cloud
Delivery Platform
6
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
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
Cloud Architecture
The typical cloud architecture is multi-tier,
SOA, highly-scalable and highly-available
Computing
Node
Databases
Computing
Node
Storage
Services
…
Back-End
Services
Computing
Node
Other
Services
 At each tier different managed services,
technologies and languages can run
Administration
Monitoring
Load Balancer
9
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
Windows
Azure
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
Azure Load Balancer
Compute
(Web role)
Compute
(Worker role)
Compute
(VM role)
VM running
IIS7
Windows VM
Windows
VM
ASP.NET /
PHP / other
C# / .NET code
/ Java code
Custom
software
SQL
Azure
Tables
Blobs
Queues
Windows Azure
Management Portal
Visual Studio + Azure Tools
Azure Architecture
CDN
Other Azure / external services
13
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
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
Windows Azure
Live Demo
Google App
Engine (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
Load Balancer (Google Front-End Server)
App Engine Instances
Backends
Sandbox running JVM /
Python interpreter
Sandbox running
JVM / Python
Java code / Java Web
application / Python app
Java code
Data
store
Cloud
SQL
Blob
store
Map
Reduce
Tasks
queue
Google App Engine
Management Dashboard
Eclipse +
Google Plugin for Eclipse
App Engine Architecture
Other App Engine / external services
(Channel API, Memcache, Email, …)
21
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
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 / 100k
write operations
25
Google App
Engine (GAE)
Live Demo
Amazon
Web Services
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
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)
RDB
Dynamo
DB
S3
EBS
SQS
SWF
AWS Management Console
AWS SDK for Java, C#, PHP,
Python, …, + VS/ Eclipse Plugins
AWS Architecture
Other AWS / external services
(ElastiCache, CloudFront CDN, SES, …)
29
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
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
Web worker
instances
Background
workers
Managed IIS
environment
Managed Windows
environment
C# / ASP.NET MVC /
Web Forms / WCF
C# code
Managed SQL
Server / MySQL
MongoDB,
CouchDB
IronMQ,
RabitMQ
AppHarbor Applications
Management Console
Visual Studio + Git
Load Balancer (Nginx)
Other AppHarbor Add-On Services
36
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
AppHarbor
Live Demo
More Resources
Free Cloud Development Course
 Each Wednesday, Telerik Software Academy
 clouddevcourse.telerik.com
41
Software Development
for the Public Cloud
Platforms: Azure vs.
App Engine vs. Amazon
Questions?
http://academy.telerik.com
Related documents