Time-to-live Adrian Colyer CTO SpringSource
Time-to-live Time to (going) live the time from initial project / feature / service conception to live software Slide 2
Time-to-live Time to value the time from initial project / feature / service conception to delivering value to the business Slide 3
The Weakest Link Tour of Qatar 2009, Photo by Graham Watson Slide 4
Time to live Typical focus of our community Live! Slide 5
Lean software development Mike Ogorek, http://www.mikeogorek.com/ Slide 6
Lean software development Burn the fat, feed the muscle... Slide 7
Lean software development principles Eliminate waste Create knowledge Build quality in Defer commitment Deliver fast Respect people Improve the system www.poppendieck.com Slide 8
Time to live biggest remaining opportunity to reduce fat Live! Slide 9
Time to live Prepare staging env. Prepare production env. Live! Slide 10
Time to live Developer Test team Ops team Live! Slide 11
Eliminate waste 3 biggest sources of waste Extra features Develop just those 20% of the features that give 80% of the value Crossing boundaries Organizational boundaries typically increase cost by over 25% Churn Avoid specifying too early, testing too late Slide 12
The simple case... How lean can the simple case be? Slide 13
Status check... Slide 14
Platform-as-a-Service Google's App Engine we provide the web container, you provide the app supports Java and Groovy Platform services Datastore memcache URLFetch with Secure Data Connector Mail Google accounts based authentication Simple cron-based scheduling Slide 15
Demo Using STS and Groovy to build and deploy an application to GAE
Google App Engine Slide 17
Demo Using Grails to build and deploy an application to GAE
Data Center as a Service Amazon EC2 you provide the machine images, we provide the data center more to do than PaaS model but more control can exploit pre-built machine images Data center services S3, EBS, SQS, DevPay, CloudFront, SimpleDB,... Slide 19
Demo Using STS to launch a cluster of dm Server instances in EC2 and deploy an app.
STS and EC2 Slide 21
STS and EC2 Slide 22
I want to use my own data centre! Use-your-own-data-center-as-a-service Forrester: Ultra-modular computing Bring the same benefits of lean deployment to applications that run on-premise VMware Slide 23
VMware vsphere and vcloud Slide 24
VMware Lab Manager Slide 25
Demo Virtual QA Environment with tc Server, AMS, and Lab Manager
VMware Lab Manager Slide 27
VMware Lab Manager Slide 28
Lean software development principles Eliminate waste Create knowledge Build quality in Defer commitment Deliver fast Respect people Improve the system www.poppendieck.com Slide 29
Create knowledge Planning is useful, learning is essential Standards exist to be challenged and improved Embody the current best-known practice in standards, encourage challenging of them Predictable performance is driven by feedback Do not guess about the future and call it a plan. Develop the capacity to react as the future unfolds Use the scientific method Slide 30
Deployment blueprints Firing up a single image, or set of identical images is useful in the simple case SpringSource value: simple and powerful... Most production use cases require a set of co-operating machines, playing differing roles Slide 31
Spring recap! Application blueprint Application context ClassPath... FileSystem... Web... Dependency injection Configuration Abstraction from environment... Slide 32
Deployment blueprint Cross-cutting concerns security (anti-) affinity httpd A Configuration injection dm Svr dm Svr A dm Svr AMS A AA Reference injection <<master>> dm Rep A A MySQL A <<slave>> MySQL AA Slide 33
Deployment context An application context instantiates an application blueprint and manages components A deployment context instantiates a deployment blueprint and manages instances EC2DeploymentContext User data, AMIs VMwareDeploymentContext Environment document, OVF Slide 34
Long-needle Injection user data / environment document xmi dm Svr A Slide 35
Demo Using Cloud Foundry to create a cluster specification and deploy a Spring app
Cloud Foundry Slide 37
Demo Using Grails to deploy an application using CloudTools
Fluent API for creating blueprint Slide 39
Create knowledge Planning is useful, learning is essential Standards exist to be challenged and improved Embody the current best-known practice in standards, encourage challenging of them Predictable performance is driven by feedback Do not guess about the future and call it a plan. Develop the capacity to react as the future unfolds Use the scientific method Slide 40
Build, Run, Manage... Knowledge of the blueprint enables you to set up effective management... httpd A dm Svr dm Svr A dm Svr A dm Rep AMS A <<master>> A MySQL <<slave>> A MySQL A Slide 41
Elastic scaling Scale points are part of the blueprint httpd A [1..n] dm Svr dm Svr A dm Svr A dm Rep AMS A <<master>> A MySQL <<slave>> A MySQL A Slide 42
SLA Third key ingredient Application Blueprint Deployment Blueprint SLA Slide 43
Lean software development principles Eliminate waste Create knowledge Build quality in Defer commitment Deliver fast Respect people Improve the system www.poppendieck.com Slide 44
Lean software principles Defer commitment Abolish the idea that it is a good idea to start development with a complete specification Break dependencies Maintain options Schedule irreversible decisions at the last responsible moment Deliver fast Rapid Delivery, High Quality, and Low Cost are Fully Compatible Companies that compete on the basis of speed have a big cost advantage, deliver superior quality, and are more attuned to their customers' needs. Slide 45
Lean software principles Improve the system Brilliant products emerge from a unique combination of opportunity and technology. Focus on the Entire Value Stream from concept to cash from customer request to deployed software Deliver a Complete Product Develop a complete product, not just software. Complete products are built by complete teams. Measure UP Slide 46
Summary Time-to-live Lean principles applied all throughout build, run, manage cycle Models Platform-as-a-service Data-Center-as-a-service Your-own-data-centre-as-a-service Hybrids Spring and SpringSource technologies support all of these models today! Lots more innovation coming down the pipeline... Slide 47