Jia Tan (tanjia@cn.ibm.com) Senior Software Architect IBM China Software Development Lab Apr 2014 Bluemix: The Open Platform as a Service 2013 IBM Corporation
New models of product & service innovation are emerging Systems of Record New Modes of Engagement Data & Transactions App Infrastructure Virtualized Resources Next Generation Architectures Expanding Interface Modalities Big Data and Analytics Social Networking Data & Transaction Integrity Smarter Devices & Assets 2
Instagram Design Philosophy and Evolution 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 Progressive composition of services Majority of development focus on creating business value 25 K Users 2 years, 13 staff (development + ops) 14M+ Users +1M Users (single day) 50M+ Users 3 Python Django CouchDB Git Traditional Service Provider 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
IBM Confidential CF is positioned as being open with respect to 4 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 Components Router User Authentication and Authorization Service Gateway Apps 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 collect state and act on it. Service Connector Build Packs 5
CLI Router User Authentication and Authorization Service Gateway Service Connector Apps Build Packs The interfaces with clients (cf, STS, Eclipse) for account and provisioning control. It provides a RESTful interface to domain objects (apps, services, organizations, spaces, service instances, user roles, and more). 6
NATS Router User Authentication and Authorization A fast internal messaging bus (NATS) manages all system communication. Service Gateway Apps Service Connector Build Packs 7
DEA Router User Authentication and Authorization Service Gateway Apps Service Connector Build Packs 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 of all instances, and periodically broadcasts messages about their state. Buildpacks create app droplets which execute on a DEA. 8
Router Dynamic Router User Authentication and Authorization Service Gateway Apps Service Connector Build Packs Dynamic 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 via the internet. 9
Router User Authentication and Authorization Service Gateway Apps Service Connector Build Packs The monitors application uptime/health by looking for mismatched application states (expected/actual). The Cloud Controller provides the expected state and the DEAs provide the current state. If the Health Manager sees an incorrect current state, it notifies the. 10
Service Gateway Router User Authentication and Authorization Service Gateway Apps Service Connector Build Packs Service Gateway A Service Gateway provides an interface for both native and external 3 rd party services. Service processes run on Service Nodes or with external 3 rd party SaaS services (e.g., email, messaging, database, storage, etc.). 11
Running Cloud Foundry Service Gateway Router UAA Apps Deploys and manages large scale distributed systems. Continuous and predictive updates with minimal downtime. Service Connector Build Packs It includes interfaces for vsphere, vcloud, AWS and OpenStack. Additional CPI can be written for alternative IaaS providers. Cloud Provider Interface 12
Cloud Provider Interface Stemcell create_stemcell(image, cloud_properties) delete_stemcell(stemcell_id) IaaS Neutral VM create_vm(agent_id, stemcell_id, resource_pool, networks, disk_locality, env) delete_vm(vm_id) reboot_vm(vm_id) configure_networks(vm_id, networks) Disk create_disk(size, vm_locality) delete_disk(disk_id) attach_disk(vm_id, disk_id) detach_disk(vm_id, disk_id)...etc 13
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 Rich ecosystem of current and planned services Development Service Simulation Functional Testing Delivery Pipeline Performance Testing Rich client IDE Web-based IDE Data & Analytics Logging Monitoring Backup Scheduling Operational Infrastructure & Security Mobile Mobile Runtime SMS Passes Location Intelligence getlocation Push Notifications Application Services NoSQL Predictive Analytics Social Analytics Relational DB MapReduce Identity Application Security Object Storage Smarter Infrastructure Caching Business Rules Workflow Java PHP Ruby Python 14 Enable applications to be rapidly and incrementally composed and operated IBM-hosted & 3rd party services
Join the Community: IBM.com/smartcloud/community 15