Public Clouds Overview Amazon, Google App Engine, Azure, Rackspace, … Svetlin Nakov

Public Clouds Overview
Amazon, Google App Engine, Azure, Rackspace, …
Svetlin Nakov
Telerik Software Academy
academy.telerik.com
Table of Contents
 What is a Public Cloud?
 Public PaaS Clouds
 Amazon Web Services (AWS)
 Google App Engine (GAE)
 Microsoft Windows Azure
 Rackspace
 PHP Fog
 Heroku
 Engineyard
2
Table of Contents (2)
 Force.com AppForce
 AppHarbor
 Red Hat OpenShift
 CloudBees
 OpenLogic CloudSwing
 VMware Cloud Foundry
 Oracle Public Cloud
 Choosing a Public Cloud
3
What is a Public Cloud?
Hot It Works?
What is a Public Cloud?
 Public clouds
 Provide computing resources on demand
 Publicly in Internet, for everyone
 Paid or free of charge (to some limit)
 Could be IaaS, PaaS, SaaS or mix of them
 Examples of public clouds
 Amazon AWS, Google App Engine, Windows Azure,
Rackspace, PHP Fog, Heroku, Force.com
AppForce, Engineyard, AppHarbor, OpenShift,
CloudBees, CloudSwing, Cloud Foundry, Oracle
Public Cloud, Salesforce, WordPress.com, …
5
Amazon Web
Services (AWS)
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
 Multiple locations: US, EU, Japan, Brazil, …
 http://aws.amazon.com/ec2/
7
Amazon Web Services (2)
 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)
 Hosting binary data (files, images, videos, etc.)
 Accessible through the Web
 With or without authentication
 http://aws.amazon.com/s3/
8
Amazon Web Services (3)
 Amazon DynamoDB / SimpleDB

Managed NoSQL cloud database

Highly scalable, fault-tolerant

DynamoDB is newer and 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/
9
Amazon Web Services (4)
 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)
 Has 1-year free trial (credit card required)
10
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 with SMS confirmation
12
Google App Engine Services
 App Engine instances
 Computing units that host the applications
 Fully managed sandboxes (they are not VMs!)
 Provide CPU + RAM + storage + language runtime
 https://appengine.google.com
 App Engine backends
 Like the App Engine instances
 But provides higher computing resources
 Used for background processing
13
Google 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 but less-reliable)
 Cloud SQL
 Managed MySQL in the App Engine cloud
 Blobstore
/ Cloud Storage
 Store files / blobs, has with ACL and REST API
14
Google 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
15
App Engine for Java & Python
 Google App Engine for Java
 Java 6 in a sandbox environment
 Java Web apps ( WARs) / Servlets / JSPs + GWT
 Persistence with JPA and JDO in the datastore
 java.net, JavaMail and JCache + Eclipse plugin
 Google App Engine for Python
 Python 2.5 in a sandbox environment
 Supports rich frameworks like Django
 Persistence API for the datastore service
16
Microsoft
Windows Azure
Windows Azure
 Microsoft Windows Azure
 Fast-growing public cloud
 Operated by Microsoft
 Provides IaaS cloud (Windows VMs)
 Provides rich PaaS platform
 Mainly for .NET developers
 Provides also Java, PHP and Node.js APIs
 No free version, only 3 months trial
 Bulgarian citizens cannot register!
18
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 virtual machine (non-persistent)
19
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
20
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 CDN
 Content delivery network
 Azure Caching
 Distributed, in-memory, application cache
21
Rackspace
IaaS Platform for Cloud Hosting
Rackspace

Rackspace is mainly IaaS cloud hosting provider
 Provide Linux / Windows VMs on demand
 Scalable on demand, pricing by hour
 Data centers worldwide

Provides few other cloud services
 Cloud Files – cloud file storage, like Amazon S3
 Cloud Sites – SaaS hosting for WordPress,
Joomla, OSCommerce, ASP.NET apps, etc.
 Cloud Load Balancers, Cloud DNS
 Has
25-days free trial (credit card required)
23
PHP Fog
PHP Cloud Platform
PHP Fog
 PHP Fog (www.phpfog.com)
 Well-developed and stable cloud
platform for PHP applications
 Combines PaaS and SaaS models
 Supports standard LAMP stack for PHP
 PHP + MySQL + PHP frameworks like CakePHP,
Zend Framework, Yii Framework, Code Igniter
 One-click install for many PHP applications
 WordPress, Joomla, Drupal, MediaWiki,
SugarCRM, etc.
25
PHP Fog Add-Ons
 PHP Fog Add-Ons (phpfog.com/addons)
 MongoHQ database
 Mailgun mail server
 Blitz performance testing
 IronWorker task queue
 IronMQ message queue
 MongoLab MongoDB
 NewRelic performance monitoring
 http://phpfog.com/addons
26
The PHP Fog Platform
 PHP Fog uses Git source control system
 Developers work locally and commit in Git
 The committed code is automatically deployed
 The platform
 Nginx load balancer
 Varnish caching
 Apache web server + mod_php
 MySQL highly-available database
 PHP fog has completely free limited version
27
Heroku
Rich and Powerful Cloud Platform
Heroku
 Heroku is a leading
public PaaS platform
 Supports very broad stack of technologies
 Everything except .NET and PHP (officially)
 Development stacks
 Java + Spring + Hibernate + PostgreSQL / MySQL
/ MongoDB + Memcache + Tomcat / Jetty
 Ruby + Rails + MongoDB / MySQL + Memcache
 Python + Django + Memcache + PostgreSQL
 JavaScript + Node.js + MySQL / MongoDB
29
The Heroku Platform

Routing
 HTTP load balancers

Dynos – managed workers
 Web / Worker / Cron

Back-ends systems
 DB: MySQL / PostgreSQL
 Add-ons: MongoDB, Redis

Auto-scaling technology

Logging and monitoring (Logplex)

Git-based deployment
30
Heroku Add-Ons
 Large set of add-ons for developers
 Airbrake, Amazon RDS, Apigee for Facebook,
Apigee for Twitter, Appoxy SimpleWorker, Blitz,
Chargify, ClearDB MySQL, Cloudant (CouchDB
+ MapReduce), CloudMailin, Cron, Custom
Domains, DbInsights, Deploy Hooks,
DocRaptor, DynectSMB, Exceptional, Flying
Sphinx, Heroku PG Backups, Heroku
PostgreSQL, Heroku Scheduler, Heroku Shared
PostgreSQL, Hoptoad, IndexTank, IronMQ
31
Heroku Add-Ons (2)
 Large set of add-ons for developers
 IronWorker, JustOneDB, Loggly, Mailgun,
Memcache, MongoHQ, MongoLab, Moonshado
SMS, Neo4j, New Relic, Panda Stream, Progstr
Logger, PubNub, Pusher, RabbitMQ, Ranger,
Redis To Go, RESTful Metrics, RhoConnect,
Searchify IndexTank, Sendgrid, SimpleGeo,
SSL, Stackmob, StatsMix, StatsMix Heroku,
Integration Tutorial, StillAlive, Tddium, Treasure
Data Hadoop, Tronprint, Websolr, Xeround,
Zencoder, Zerigo DNS, …
32
More about Heroku
 Heroku
 Runs millions of applications
 Owned by Salesforce.com
 Founded in 2007, fast growing and mature
 Heroku has a completely free limited version
 750 computing hours
 100 MB storage + 5 MB database
 Credit card not required
33
Engineyard
Cloud Platform for Ruby on Rails and PHP
Engineyard
 Engineyard
 Cloud PaaS platform for Ruby and PHP
 Build on top of Amazon AWS
 Managed Ruby on Rails stack
 Orchestra PHP Cloud
 Free 500-hours trial (without credit card)
 Built-in load balancer (Nginx)
 Deploy with Git and Subversion
 Rich set of add-ons (platform services)
35
Engineyard Platform Services
 Engineyard Platform Services (Add-Ons)
 Airbrake, Appcelerator, Blitz, CloudFlare,
CloudKick, CloudMailin, DNSimple, DocRaptor,
Exceptional, Iron.io, Logentries, Loggly,
MailGun, MongoHQ, MongoLab, New Relic,
OneSky, ReportGrid API, Pusher, SendGrid,
StillAlive, SpacialDB, SimpleWorker, Twilio,
Xeround, Zencoder, …
 engineyard.com/partners/platform-services
36
Force.com AppForce
Application Development for Business Users
Force.com and AppForce
 What is
Force.com?
 Platform for creating and deploying
applications for the social enterprise
 Build social and mobile functionality, business
processes, reporting, and search
 What is
Force.com AppForce?
 Application development for business users
 Drag-and-drop tools, pre-built components,
pre-designed user interfaces
 Launch new apps in minutes
38
AppForce Development
 Applications
are developed in a Web-based
editor + the Force.com IDE (Eclipse based tool)
 Proprietary languages, APIs, frameworks, tools
39
AppForce Development Platform

Proprietary programming language (Apex)

Proprietary database + reporting + analytics

Proprietary UI technology (Visualforce MVC)

Proprietary Web site builder, Mobile app builder, …
40
AppForce Development
Platform (2)
41
AppHarbor
.NET Cloud Made Easy
AppHarbor

AppHarbor – public 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 (compile + unit tests)
 Build-in load balancing
 Built on top of Amazon AWS infrastructure
 Rich set of add-on services
43
AppHarbor: Add-On Services
 Airbrake
 Blitz
(error logging)
(performance monitoring)
 CloudAMQP
(RabbitMQ)
 Cloudant (CouchDB)
 CloudMailin
(incoming email)
 Dedicated SQL Server
 JustOneDB (NoSLQ database)
 Logentries (log management)
 Mailgun
(email send / receive)
44
AppHarbor: Add-On Services (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)
45
Red Hat OpenShift
Public Cloud for LAMP and Java Applications
OpenShift
 What is OpenShift?
 A free, auto-scaling platform-as-a-service for
Java, Ruby, PHP, Perl and Python applications
 Developed and supported by Red Hat
 Can be installed locally or in the cloud
 Deployment through Git push
 OpenShift Express
 Completely free version, hosted in a shared
cloud server infrastructure
47
OpenShift Development Stacks
 OpenShift runs hosted Red Hat Linux
 You have SSH console
 Java
+ JEE 6 + CDI/Weld + Spring + Seam
 PHP + Zend / CakePHP / Symfony / CodeIgniter
 Python + Pylons / Turbogears
 Ruby + Rails
/ Django
/ Sinatra
 Perl + PerlDancer
 Databases (relational
+ NoSQL)
 MySQL, PostgreSQL, SQLite, MongoDB
48
CloudBees
Public PaaS Cloud for Java Developers
CloudBees
 CloudBees is end-to-end Java cloud platform
for development and deployment
 Supports Java and Java EE
 Java Web applications, Servlets, JSP, JavaServer
faces (JSF), Spring, JPA, Liferay portal, …
 Databases: MySQL, MongoDB, CouchDB
 Jenkins Continuous Integration
 Built on top of Amazon AWS
 Provides limited free edition
50
The CloudBees Platform
51
CloudBees Add-Ons

Sauce Labs OnDemand (cross-browser testing)

New Relic (app monitoring)

Cloudant (managed Apache CouchDB)

SonarSource (source code inspection)

MongoHQ (managed MongoDB)

XWiki Cloud (cloud wiki)

Papertrail (log management)

Codesion (Subversion, Git and ALM)

SendGrid (email sender)

Websolr (search engine)
52
OpenLogic CloudSwing
Powerful Cloud for Almost any Technology
OpenLogic CloudSwing
 CloudSwing
– flexible PaaS cloud platform
 Very broad range of technologies
 Linux, Apache, MySQL, Perl, PHP, Python,
LAMP, Java, Tomcat, Ruby, Rails, JavaScript,
Node.js, Unicorn, NGinx
 Highly-customizable, deployable on Amazon
AWS and Rackspace
 Has highly-limited free edition
 30 free Amazon hours
54
VMware Cloud Foundry
PaaS cloud for Java, Ruby and Node.js
VMware Cloud Foundry
 VMware Cloud Foundry
 Open-source cloud computing platform as a
service (PaaS) software
 Developed by VMware
 Pricing model is still unclear
 How Cloud Foundry works?
 You develop and run cloud apps locally (in a VM)
 Later you can deploy apps to the public cloud
 E.g. in Amazon AWS, Rackspace,
CloudFoundry.com, etc.
56
Cloud Foundry Architecture
57
Oracle Public Cloud
Public Cloud for Java EE and Oracle
Oracle Public Cloud
 Oracle Public Cloud
 Run Java EE + Oracle database in
a managed cloud environment
 Combines PaaS and SaaS
 Oracle PaaS
offerings
 Java + Java EE (JSP, JSF, Servlet, EJB, JPA, JAXRS and JAX-WS) + WebLogic App Server +
clustering + ADF + ADF Faces + …
 Oracle Database + high-availability + data
analysis + data loading + RESTful API
59
Oracle Public Cloud (2)
 Oracle SaaS offerings
 Fusion CRM on demand
 Customer relationship management
 Fusion HCM on demand
 Human capital management
 Oracle Social Network on demand
 Oracle Public Cloud
 Pricing model is still unclear
60
Other Public Clouds
Other Public Clouds / Services
 SAP NetWeaver Cloud
 Should combine SaaS and PaaS
 Just like Oracle, but for the SAP platform
 Still under development
 Cloud9
IDE online (http://c9.io)
 Powerful cloud-based JavaScript IDE
 Supports also editing PHP / C# / Java / … / code
 Jelastic
(jelastic.com)
 Highly scalable Java cloud
62
Choosing a Public Cloud
Guidelines for Choosing a Public Cloud
Choosing a Public Cloud
 How to choose a public cloud for your app?
 PHP  PHP Fog / Engineyard
 .NET  Azure / AppHarbor
 Java  Google App Engine / Heroku / OpenShift
/ CloudBees / Oracle Public Cloud
 Ruby  Engineyard / Heroku / OpenShift
 Python  App Engine / Heroku / OpenShift
 Always
consider using IaaS clouds
 And build your own platform on top of them
64
Public Clouds Overview
Questions?
http://clouddevcourse.telerik.com