Cloud Development Course - Telerik

burnwholeInternet και Εφαρμογές Web

5 Φεβ 2013 (πριν από 5 χρόνια και 10 μήνες)

449 εμφανίσεις

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 EC
2
)


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 EC
2

to keep the OS file system


http://aws.amazon.com/ebs/


Amazon
Simple Storage Service (
Amazon S
3
)


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 S
3


Cloud Sites



SaaS hosting for WordPress,
Joomla,
OSCommerce
, ASP.NET apps, etc.


Cloud Load
B
alancers
,
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


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

The Heroku Platform

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

40


Proprietary programming language (Apex)


Proprietary database + reporting + analytics


Proprietary UI technology (Visualforce MVC)


Proprietary Web site builder, Mobile app builder, …

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 (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)

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

/ Django


Ruby + Rails / 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, JAX
-
RS 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


Cloud
9

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


偈倠P潧 ⁅湧楮i祡牤


.NET


䅺畲攠⼠䅰灈慲扯r


Java


䝯G杬g 䅰瀠䕮杩湥E⼠䡥牯歵 ⼠佰敮卨楦琠
⼠䍬潵摂敥猠⼠佲慣汥⁐畢汩挠䍬潵d


Ruby


䕮杩湥祡牤 ⁈敲潫o ⼠佰敮卨楦O


Python


䅰瀠䕮杩湥E⼠䡥牯歵 ⼠佰敮卨楦O


Always consider using IaaS clouds


And build your own platform on top of them

64

Public Clouds Overview

Questions?

http://clouddevcourse.telerik.com