Your SlideShare is downloading. ×
Cloud Foundry
Overview
Compiled by Rajdeep Dua
VMware India

twitter : @rajdeepdua

Friday, November 15, 13

1
Cloud Computing Pyramid

Friday, November 15, 13

2
Paas Players

Friday, November 15, 13

3
What is Cloud Foundry
•
•
•
•

Friday, November 15, 13

OpenSource Paas Platform
Supports Multiple Frameworks
Supports Mul...
Cloud Foundry
Frameworks Supported

•
•
•
•
•

Friday, November 15, 13

Java : Java Web Apps, Spring, Play
Ruby : Rails, S...
Cloud Foundry
Services Supported

•
•
•
•
•

Friday, November 15, 13

SQL : PostgreSQL , MySQL
NoSQL : MongoDB, Redis
Mess...
Cloud Foundry Marketplace
$ cf services --marketplace
Getting services... OK
service
blazemeter
cleardb
cloudamqp
elephant...
Application Lifecycle with
Cloud Foundry

Friday, November 15, 13

8
Organization and Spaces

•

Friday, November 15, 13

Organizations and Spaces are the main organizational units in which
a...
Organization
Organization : Top Level Meta
Object

Friday, November 15, 13

10
Spaces
•

Spaces : Organization is
mapped to Multiple - Spaces.

•

Default : development, staging
and production

•

1
*
...
Domains
•

Each space is associated with
one or more Domains
1

•
•
•

Default Domain is cfapps.io
Each Space has one or m...
Routes
•

A route, based on a domain with
an optional host as a prefix, may
be associated with one or more
applications

•
...
Cloud Foundry Architecture

Friday, November 15, 13

14
Architectural Elements
•
•
•
•

Friday, November 15, 13

No Single Point of Failure
Self Healing
Distributed Architecture
...
Cloud Foundry Layers

Friday, November 15, 13

16
Cloud Foundry Runtime

Friday, November 15, 13

17
Cloud Foundry Runtime

Friday, November 15, 13

18
Cloud Controller
•
•

Interfaces with development tool
requests

•

Maintains the Orgs, Spaces, Services
using CC_DB Postg...
DEA - Execution Agent

• Manages the Warden
Containers
• Stages the App as a
Droplet
• Run Droplets as App
Instances

Frid...
Components of DEA
•

Directory Server : Maps
Application Ids to the actual
Application Instances running
inside Warden Con...
DEA - Application Isolation

Friday, November 15, 13

22
App Staging Process

Friday, November 15, 13

23
Router
• Routers requests coming
from External entities to
DEA, Cloud Controller,
Services or UAA
• Written in Go language...
Components of the Router
•

Registry : Maintains a Map of URI to the Route
Endpoint
•

Register an App

•

Unregister an A...
Services
• Manages the Service
Lifecycle and connects the
Services and the Apps
• Requests come in from
Cloud controller f...
Service Components
•

All the incoming requests are handled by
AsynchronousServiceGateway

•

Requests Handled by ServiceG...
Build Packs
•

Friday, November 15, 13

Used to prepare a deployable Image of an
Application

28
Build Packs
•

•

Friday, November 15, 13

Three Standard Build Packs shipped with Cloud
Foundry

•
•
•

Java Build Pack
N...
Java Build Pack
Choice of
•
•

Groovy

•

Spring Boot CLI

•

Tomcat

•

Play JPA Pluggin

•

Friday, November 15, 13

Ope...
Ruby Build Pack
• Multiple Ruby and Bundler versions
• Default is 1.9.3
• Supported Ruby Versions 1.8.7, 1.9.2, 1.9.3, 2.0...
Java Build Pack
Containers

Frameworks

Java
Tomcat
Groovy
Play
Spring Boot CLI

Spring
Play
Play JPA
New Relic

JRE

Open...
Java Build Pack - Java and Play
Frameworks

Containers

Java
Play
Tomcat
Groovy
Spring Boot CLI
JRE
OpenJDK

Spring
Play
P...
Java Build Pack - Tomcat
Frameworks

Containers

Java
Play
Tomcat
Groovy
Spring Boot CLI
JRE
OpenJDK

Spring
Play
Play JPA...
Java Build Pack - Groovy
Frameworks

Containers

Java
Play
Tomcat
Groovy
Spring Boot CLI
JRE
OpenJDK

Spring
Play
Play JPA...
Java Build Pack - Groovy
Frameworks

Containers

Java
Play
Tomcat
Groovy
Spring Boot CLI
JRE
OpenJDK

Spring
Play
Play JPA...
Java Build Pack - Spring Auto
Reconfig
Containers

Java
Play
Tomcat
Groovy
Spring Boot CLI

Framework

JRE
OpenJDK

Spring ...
Java Build Pack -OpenJDK
Containers

Java
Play
Tomcat
Groovy
Spring Boot CLI

Framework
Spring Config
Play
Play JPA
New Rel...
Java Build Pack -OpenJDK Config
File
Containers

Java
Play
Tomcat
Groovy
Spring Boot CLI

Framework
Spring Config
Play
Play ...
Summary
•
•
•

Cloud Foundry is a Polyglot Open Source Paas

•

Avoids vendor lock-in

Friday, November 15, 13

Can be run...
Upcoming SlideShare
Loading in...5
×

Cloudfoundry Overview

1,037

Published on

This is a vendor neutral perspective of Cloud Foundry OpenSource Project

Published in: Technology
0 Comments
12 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,037
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
0
Comments
0
Likes
12
Embeds 0
No embeds

No notes for slide

Transcript of "Cloudfoundry Overview"

  1. 1. Cloud Foundry Overview Compiled by Rajdeep Dua VMware India twitter : @rajdeepdua Friday, November 15, 13 1
  2. 2. Cloud Computing Pyramid Friday, November 15, 13 2
  3. 3. Paas Players Friday, November 15, 13 3
  4. 4. What is Cloud Foundry • • • • Friday, November 15, 13 OpenSource Paas Platform Supports Multiple Frameworks Supports Multiple Services Can be run on Public or Private Infrastructure 4
  5. 5. Cloud Foundry Frameworks Supported • • • • • Friday, November 15, 13 Java : Java Web Apps, Spring, Play Ruby : Rails, Sinatra Scala : Play Node.js Custom Runtime : Using BuildPacks 5
  6. 6. Cloud Foundry Services Supported • • • • • Friday, November 15, 13 SQL : PostgreSQL , MySQL NoSQL : MongoDB, Redis Messaging : RabbitMQ Hadoop from TreasureData Email Service from SendGrid 6
  7. 7. Cloud Foundry Marketplace $ cf services --marketplace Getting services... OK service blazemeter cleardb cloudamqp elephantsql loadimpact mongolab newrelic rediscloud sendgrid treasuredata Friday, November 15, 13 version n/a n/a n/a n/a n/a n/a n/a n/a n/a n/a provider blazemeter cleardb cloudamqp elephantsql loadimpact mongolab newrelic garantiadata sendgrid treasuredata plans free-tier spark lemur turtle lifree sandbox standard 20mb free nano description The JMeter Load Testing Cloud Highly available MySQL for your Apps. Managed HA RabbitMQ servers in the cloud PostgreSQL as a Service Cloud-based, on-demand website load testing Fully-managed MongoDB-as-a-Service Manage and monitor your apps Enterprise-Class Redis for Developers Email Delivery. Simplified. Hadoop-based Cloud Data Warehouse 7
  8. 8. Application Lifecycle with Cloud Foundry Friday, November 15, 13 8
  9. 9. Organization and Spaces • Friday, November 15, 13 Organizations and Spaces are the main organizational units in which applications, services, domains, routes, and users are contained 9
  10. 10. Organization Organization : Top Level Meta Object Friday, November 15, 13 10
  11. 11. Spaces • Spaces : Organization is mapped to Multiple - Spaces. • Default : development, staging and production • 1 * Each Organization can have one or more spaces Friday, November 15, 13 11
  12. 12. Domains • Each space is associated with one or more Domains 1 • • • Default Domain is cfapps.io Each Space has one or more Domains * * 1 1 * 1 * Space has one or more Applications and Services Friday, November 15, 13 12
  13. 13. Routes • A route, based on a domain with an optional host as a prefix, may be associated with one or more applications • A Route can be associated with one or more Applications Friday, November 15, 13 13
  14. 14. Cloud Foundry Architecture Friday, November 15, 13 14
  15. 15. Architectural Elements • • • • Friday, November 15, 13 No Single Point of Failure Self Healing Distributed Architecture Horizontal Scaling 15
  16. 16. Cloud Foundry Layers Friday, November 15, 13 16
  17. 17. Cloud Foundry Runtime Friday, November 15, 13 17
  18. 18. Cloud Foundry Runtime Friday, November 15, 13 18
  19. 19. Cloud Controller • • Interfaces with development tool requests • Maintains the Orgs, Spaces, Services using CC_DB PostgreSQL database • Uses NATS Messaging for interacting with DEA, UAA, Services and Health Manager • Friday, November 15, 13 Heart of Cloud Foundry Orchestration Written using Sinatra Framework 19
  20. 20. DEA - Execution Agent • Manages the Warden Containers • Stages the App as a Droplet • Run Droplets as App Instances Friday, November 15, 13 20
  21. 21. Components of DEA • Directory Server : Maps Application Ids to the actual Application Instances running inside Warden Containers • Stagers • • Take request from Cloud Controller and create a Droplet from the Build Pack Manage the Warden Containers which run the App Instances Friday, November 15, 13 21
  22. 22. DEA - Application Isolation Friday, November 15, 13 22
  23. 23. App Staging Process Friday, November 15, 13 23
  24. 24. Router • Routers requests coming from External entities to DEA, Cloud Controller, Services or UAA • Written in Go language to be able to serve HTTP and TCP Requests Friday, November 15, 13 24
  25. 25. Components of the Router • Registry : Maintains a Map of URI to the Route Endpoint • Register an App • Unregister an App • Proxy : Where all the Requests are routed and passed on to Request Handler • Request Handler : Handles the following requests • Friday, November 15, 13 Http, TCP and Web socket requests 25
  26. 26. Services • Manages the Service Lifecycle and connects the Services and the Apps • Requests come in from Cloud controller for provisioning, un provisioning of a service Friday, November 15, 13 26
  27. 27. Service Components • All the incoming requests are handled by AsynchronousServiceGateway • Requests Handled by ServiceGateway ★ ★ Bind/Unbind a provisioned Service Instance to an Application ★ Create/Get/Update a Service Snapshot ★ Enumerate a Snapshot ★ Friday, November 15, 13 Provision / Un provision an Instance of a Service Service Migration 27
  28. 28. Build Packs • Friday, November 15, 13 Used to prepare a deployable Image of an Application 28
  29. 29. Build Packs • • Friday, November 15, 13 Three Standard Build Packs shipped with Cloud Foundry • • • Java Build Pack Node.js Build Pack Ruby Build Pack Cloud Foundry Build Packs are compatible with Heroku Build Packs 29
  30. 30. Java Build Pack Choice of • • Groovy • Spring Boot CLI • Tomcat • Play JPA Pluggin • Friday, November 15, 13 OpenJDK Version New Relic 30
  31. 31. Ruby Build Pack • Multiple Ruby and Bundler versions • Default is 1.9.3 • Supported Ruby Versions 1.8.7, 1.9.2, 1.9.3, 2.0.0 Node.js Build Pack • Multiple Node.js and npm versions Friday, November 15, 13 31
  32. 32. Java Build Pack Containers Frameworks Java Tomcat Groovy Play Spring Boot CLI Spring Play Play JPA New Relic JRE OpenJDK Friday, November 15, 13 32
  33. 33. Java Build Pack - Java and Play Frameworks Containers Java Play Tomcat Groovy Spring Boot CLI JRE OpenJDK Spring Play Play JPA New Relic Java Detection : Supports Java Application with main() method : Main-Class attribute set in META-INF/ MANIFEST.MF for the JAR OR java_main_class set in Build packs’ config/main.yml Tags : java-main Play Detection : The Play start script and the Play runtime JAR exist in the appropriate subdirectories Tags : play-framework=<version> Friday, November 15, 13 33
  34. 34. Java Build Pack - Tomcat Frameworks Containers Java Play Tomcat Groovy Spring Boot CLI JRE OpenJDK Spring Play Play JPA New Relic Tomcat Detection : Existence of a WEB-INF/ folder in the application directory and Java Main Class not detected Tags : tomcat=〈version〉, tomcat-buildpacksupport=〈version〉 Configuration : repository_root : The URL of the tomcat repository version : The version of tomcat to use. #  Configuration  for  the  Tomcat  container -­‐-­‐-­‐ version:  7.0.+ repository_root:  "http://download.pivotal.io.s3.amazonaws.com/tomcat" support:    version:  1.1.+    repository_root:  "http://download.pivotal.io.s3.amazonaws.com/tomcat-­‐buildpack-­‐support" Friday, November 15, 13 34
  35. 35. Java Build Pack - Groovy Frameworks Containers Java Play Tomcat Groovy Spring Boot CLI JRE OpenJDK Spring Play Play JPA New Relic Groovy Detection : • • • A .groovy file exists which has a main() method, or A .groovy file exists which is not a POGO (a POGO contains one or more classes), or A .groovy file exists which has a shebang (#!) declaration Tags : groovy=〈version〉 Configuration repository_root : The URL of the Groovy repository version : The version of Groovy to use. #  Configuration  for  the  Groovy  container -­‐-­‐-­‐ version:  2.1.+ repository_root:  "http://download.pivotal.io.s3.amazonaws.com/groovy" Friday, November 15, 13 35
  36. 36. Java Build Pack - Groovy Frameworks Containers Java Play Tomcat Groovy Spring Boot CLI JRE OpenJDK Spring Play Play JPA New Relic Spring Boot ClI : Allows creation of Spring and Java Apps Detection : • • • • A .groovy file exists which has a main() method, or A .groovy file exists which is not a POGO (a POGO contains one or more classes), or A .groovy file exists which has a shebang (#!) declaration The application does not have a WEB-­‐INF subdirectory of its root directory. Tags : spring-boot-cli=〈version〉 Configuration repository_root : The URL of the Spring Boot Cli repository version : The version of Spring Boot Cli to use. #  Configuration  for  the  Groovy  container -­‐-­‐-­‐ version:  0.5.0_+ repository_root:  "http://download.pivotal.io.s3.amazonaws.com/spring-­‐boot-­‐cli" Friday, November 15, 13 36
  37. 37. Java Build Pack - Spring Auto Reconfig Containers Java Play Tomcat Groovy Spring Boot CLI Framework JRE OpenJDK Spring Config Play Play JPA New Relic Spring Auto Reconfiguration Framework : Reconfigures the Application to be bound to Cloud Services Detection : • Existence of a spring-­‐core*.jar file in the application directory Tags : spring-­‐auto-­‐reconfiguration=<version> Configuration repository_root : Auto Reconfiguration repository version : The version of Auto Reconfiguration repository to use. -­‐-­‐-­‐ version:  0.+ repository_root:  "http://download.pivotal.io.s3.amazonaws.com/auto-­‐reconfiguration" Friday, November 15, 13 37
  38. 38. Java Build Pack -OpenJDK Containers Java Play Tomcat Groovy Spring Boot CLI Framework Spring Config Play Play JPA New Relic JRE OpenJDK -­‐-­‐-­‐ repository_root:  "http:...” version:  1.7.0_+ memory_sizes:    permgen:  64m.. memory_heuristics:    heap:  75    permgen:  10    stack:  5    native:  10 Friday, November 15, 13 OpenJDK Framework : Reconfigures the Application to be bound to Cloud Services Detection : Unconditional Tags : openjdk=〈version〉 Configuration repository_root : version : memory_sizes  : memory_heuristics  :             38
  39. 39. Java Build Pack -OpenJDK Config File Containers Java Play Tomcat Groovy Spring Boot CLI Framework Spring Config Play Play JPA New Relic JRE OpenJDK Friday, November 15, 13 OpenJDK Framework : -­‐-­‐-­‐ repository_root:  "http:...” version:  1.7.0_+ memory_sizes:    permgen:  64m.. memory_heuristics:    heap:  75    permgen:  10    stack:  5    native:  10 39
  40. 40. Summary • • • Cloud Foundry is a Polyglot Open Source Paas • Avoids vendor lock-in Friday, November 15, 13 Can be run on Public or Private Cloud It is Iaas agnostic : Supports vSphere, AWS, OpenStack 40

×