Bluemix: The Open Platform as a Service -...
Transcript of Bluemix: The Open Platform as a Service -...
Bluemix: The Open Platform as a Service
Jia Tan ([email protected])
Senior Software Architect
IBM China Software Development Lab
Apr 2014
© 2013 IBM Corporation
New Modes of EngagementSystems of Record
• Data & Transactions
• App Infrastructure
• Virtualized Resources
• Expanding Interface Modalities
• Big Data and Analytics
• Social Networking
Next Generation
Architectures
New models of product & service innovation are emerging
© 2011 IBM Corporation2
Data & Transaction Integrity Smarter Devices & Assets
Design Philosophy:� Simplicity� Optimize for operational burden� Continuous updates with continuous availability� Instrument everything
Development Philosophy:� Extensive code reviews, unit and functional tests� Keep it DRY (Don’t Repeat Yourself)� Loose coupling using notification/signals� Do most work in Python; C when necessary� Extensive monitoring
Business Impact� Solution evolved & changed with the business� Architecture re-evaluated constantly in relation to business goals
Instagram – Design Philosophy and Evolution
© 2011 IBM Corporation3
2 years, 13 staff (development + ops)
25 K Users
+1M Users (single day)
50M+ Users
• Python• Django• CouchDB• Git
• Traditional ServiceProvider
• Scale issues
• Nginx• Postgres/Redis• Repmgr• Pgbouncer
• Munin, statsd• Amazon EC2, CDN, ELB, S3
• Workload optimized monitoring, tuning, database
• Apache Solr
• PGFouine, Dogslow
• Gearman, Node2dm
14M+ Users
� Architecture re-evaluated constantly in relation to business goals� Progressive composition of services� Majority of development focus on creating business value
IBM Confidential
© 2011 IBM Corporation4
• CF is positioned as being “open” with respect to• Support of any programming language & runtime• Allows integration of any technology as a service• Can run everywhere (e.g. single VM on a laptop, on any hosted IaaS cloud, on-prem
in a data center)
Cloud Foundry PaaS
Cloud Foundry services registry
and runtime management layer.
Components are dynamically
discoverable and loosely
coupled, exposing health through
HTTP endpoints so agents can
Cloud Foundry Components
User Authentication and Authorization
Router
Service Gateway Apps
Health ManagerCloud Controller
© 2011 IBM Corporation5
HTTP endpoints so agents can
collect state and act on it.
DEA Pool
Service Connector
Messaging
Build Packs
Cloud Foundry BOSH
Micro
Clouds
Private
Clouds
Public
Clouds
Service Nodes
User Authentication and Authorization
Router
Service Gateway Apps
Health ManagerCloud Controller
Service Nodes
Cloud Controller
Cloud Controller
The Cloud Controller interfaces
with clients (cf, STS, Eclipse) for
account and provisioning control.
It provides a RESTful interface to
CLI
© 2011 IBM Corporation6
DEA Pool
Service Connector
Messaging
Build Packs
Cloud Foundry BOSH
Micro
Clouds
Private
Clouds
Public
Clouds
Service Nodes It provides a RESTful interface to
domain objects (apps, services,
organizations, spaces, service
instances, user roles, and more).
NATS
User Authentication and Authorization
Router
Service Gateway Apps
Health ManagerCloud Controller
Service Nodes
Messaging
A fast internal messaging bus
(NATS) manages all system
communication.
© 2011 IBM Corporation7
DEA Pool
Service Connector
Messaging
Build Packs
Cloud Foundry BOSH
Micro
Clouds
Private
Clouds
Public
Clouds
Service Nodes
DEA
User Authentication and Authorization
Router
Service Gateway Apps
Health ManagerCloud Controller
Service Nodes
DEA
A DEA (Droplet Execution Agent)
is a secure and fully isolated
container – a VM that can run
one or multiple apps. DEAs are
responsible for an app’s lifecycle:
building, starting and stopping
apps as instructed. It keeps track
© 2011 IBM Corporation8
DEA Pool
Service Connector
Messaging
Build Packs
Cloud Foundry BOSH
Micro
Clouds
Private
Clouds
Public
Clouds
Service Nodesapps as instructed. It keeps track
of all instances, and periodically
broadcasts messages about their
state. Buildpacks create app
droplets which execute on a DEA.
User Authentication and Authorization
Dynamic Router
Service Gateway Apps
Health ManagerCloud Controller
Service Nodes
RouterDynamic Router
The Router shapes and routes all
external system traffic (HTTP/API)
and application traffic from the
internet/intranet. It maintains a
dynamic routing table for each
load-balanced app instance with
IP addresses and ports for access
© 2011 IBM Corporation9
DEA Pool
Service Connector
Messaging
Build Packs
Cloud Foundry BOSH
Micro
Clouds
Private
Clouds
Public
Clouds
Service NodesIP addresses and ports for access
via the internet.
User Authentication and Authorization
Router
Service Gateway Apps
Health ManagerCloud Controller
Service Nodes
Health ManagerHealth Manager
The Health Manager monitors
application uptime/health by
looking for mismatched
application states
(expected/actual). The Cloud
Controller provides the expected
state and the DEAs provide the
© 2011 IBM Corporation10
DEA Pool
Service Connector
Messaging
Build Packs
Cloud Foundry BOSH
Micro
Clouds
Private
Clouds
Public
Clouds
Service Nodesstate and the DEAs provide the
current state. If the Health
Manager sees an incorrect
current state, it notifies the
Cloud Controller.
Service GatewayService Gateway
A Service Gateway provides an
interface for both native and
external 3rd party services.
Service processes run on Service
Nodes or with external 3rd party
SaaS services (e.g., email,
messaging, database, storage,
User Authentication and Authorization
Router
Service Gateway Apps
Health ManagerCloud Controller
Service Nodes
© 2011 IBM Corporation11
messaging, database, storage,
etc.).
DEA Pool
Service Connector
Messaging
Build Packs
Cloud Foundry BOSH
Micro
Clouds
Private
Clouds
Public
Clouds
Service Nodes
Cloud Foundry BOSH
Deploys and manages large scale
distributed systems. Continuous
and predictive updates with
minimal downtime.
It includes interfaces for vSphere,
vCloud, AWS and OpenStack.
Running Cloud Foundry
UAA
Router
Service Gateway Apps
Service Connector
Health ManagerCloud Controller
Build Packs
Service Nodes
© 2011 IBM Corporation12
vCloud, AWS and OpenStack.
Additional CPI can be written for
alternative IaaS providers.
Cloud Foundry BOSH
Micro
Clouds
Private
Clouds
Public
Clouds
DEA Pool Messaging
Cloud Provider Interface
Cloud Provider Interface
Stemcellcreate_stemcell(image, cloud_properties)delete_stemcell(stemcell_id)
VMcreate_vm(agent_id, stemcell_id, resource_pool,
networks, disk_locality, env)delete_vm(vm_id)
IaaS Neutral
© 2011 IBM Corporation13
delete_vm(vm_id)reboot_vm(vm_id)configure_networks(vm_id, networks)
Diskcreate_disk(size, vm_locality)delete_disk(disk_id)attach_disk(vm_id, disk_id)detach_disk(vm_id, disk_id)
...ETC
IBM BlueMix
What is IBM BlueMix?IBM BlueMix leverages Cloud Foundry to enable developers to rapidly build, deploy, and manage their cloud applications, while tapping a growing ecosystem of available services and runtime frameworks
How Does it Work?IBM will provide services and runtimes into the ecosystem based on their extensive software portfolio
Can I Join In?The jStart team is already executing IBM BlueMix proof-of-concepts with clients
© 2011 IBM Corporation14
DevelopmentDevelopment
Service SimulationFunctional TestingDelivery PipelinePerformance TestingRich client IDEWeb-based IDE
OperationalOperational MobileMobile
LoggingMonitoringBackupScheduling
Mobile RuntimeSMSPassesLocation IntelligencegetLocationPush Notifications
Data & AnalyticsData & Analytics
NoSQLPredictive AnalyticsSocial AnalyticsRelational DBMapReduce
Infrastructure & SecurityInfrastructure & Security Application ServicesApplication Services
IdentityApplication SecurityObject StorageSmarter Infrastructure
CachingBusiness RulesWorkflowJava
PHPRubyPythonMessaging
Rich ecosystem of current and planned services
Enable applications to be rapidly and incrementally composed and operated IBM-hosted & 3rd party services
proof-of-concepts with clients
Join the Community:
IBM.com/smartcloud/community
© 2011 IBM Corporation15