SpringOne Europe 2009: Time to Live

Embed Size (px)

Citation preview

  • 8/14/2019 SpringOne Europe 2009: Time to Live

    1/47

    Time-to-liveAdrian ColyerCTO

    SpringSource

  • 8/14/2019 SpringOne Europe 2009: Time to Live

    2/47

    Slide 2SpringSource Confidential. Do not distribute without express permission

    Time-to-live

    Time to (going) livethe time from initial project / feature /service conception to live software

  • 8/14/2019 SpringOne Europe 2009: Time to Live

    3/47

    Slide 3SpringSource Confidential. Do not distribute without express permission

    Time-to-live

    Time to valuethe time from initial project / feature /service conception to delivering valueto the business

  • 8/14/2019 SpringOne Europe 2009: Time to Live

    4/47

    Slide 4SpringSource Confidential. Do not distribute without express permission

    The Weakest Link

    Tour of Qatar 2009, Photo by Graham Watson

  • 8/14/2019 SpringOne Europe 2009: Time to Live

    5/47

    Slide 5SpringSource Confidential. Do not distribute without express permission

    Time to live

    Live!

    Typical focus of our community

  • 8/14/2019 SpringOne Europe 2009: Time to Live

    6/47

    Slide 6SpringSource Confidential. Do not distribute without express permission

    Lean software development

    Mike Ogorek, http://www.mikeogorek.com/

  • 8/14/2019 SpringOne Europe 2009: Time to Live

    7/47

  • 8/14/2019 SpringOne Europe 2009: Time to Live

    8/47Slide 8SpringSource Confidential. Do not distribute without express permission

    Lean software development principles

    Eliminate waste Create knowledge Build quality in Defer commitment Deliver fast Respect people Improve the system

    www.poppendieck.com

  • 8/14/2019 SpringOne Europe 2009: Time to Live

    9/47Slide 9SpringSource Confidential. Do not distribute without express permission

    Time to live

    Live!

    biggest remaining opportunityto reduce fat

  • 8/14/2019 SpringOne Europe 2009: Time to Live

    10/47Slide 10SpringSource Confidential. Do not distribute without express permission

    Time to live

    Live!

    Prepare productionenv.

    Prepare staging env.

  • 8/14/2019 SpringOne Europe 2009: Time to Live

    11/47Slide 11SpringSource Confidential. Do not distribute without express permission

    Time to live

    Live!

    Developer

    Ops teamTest team

  • 8/14/2019 SpringOne Europe 2009: Time to Live

    12/47Slide 12SpringSource Confidential. Do not distribute without express permission

    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 increasecost by over 25%

    Churn Avoid specifying too early, testing too late

  • 8/14/2019 SpringOne Europe 2009: Time to Live

    13/47

    Slide 13SpringSource Confidential. Do not distribute without express permission

    The simple case...

    How lean can the simplecase be?

  • 8/14/2019 SpringOne Europe 2009: Time to Live

    14/47

    Slide 14SpringSource Confidential. Do not distribute without express permission

    Status check...

  • 8/14/2019 SpringOne Europe 2009: Time to Live

    15/47

    Slide 15SpringSource Confidential. Do not distribute without express permission

    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

  • 8/14/2019 SpringOne Europe 2009: Time to Live

    16/47

    DemoUsing STS and Groovy to build and

    deploy an application to GAE

  • 8/14/2019 SpringOne Europe 2009: Time to Live

    17/47

    Slide 17SpringSource Confidential. Do not distribute without express permission

    Google App Engine

  • 8/14/2019 SpringOne Europe 2009: Time to Live

    18/47

    DemoUsing Grails to build and

    deploy an application to GAE

  • 8/14/2019 SpringOne Europe 2009: Time to Live

    19/47

    Slide 19SpringSource Confidential. Do not distribute without express permission

    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, ...

  • 8/14/2019 SpringOne Europe 2009: Time to Live

    20/47

    Demo

    Using STS to launch a cluster of dm Server instances in EC2 and deploy an

    app.

  • 8/14/2019 SpringOne Europe 2009: Time to Live

    21/47

  • 8/14/2019 SpringOne Europe 2009: Time to Live

    22/47

    Slide 22SpringSource Confidential. Do not distribute without express permission

    STS and EC2

  • 8/14/2019 SpringOne Europe 2009: Time to Live

    23/47

    Slide 23SpringSource Confidential. Do not distribute without express permission

    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

  • 8/14/2019 SpringOne Europe 2009: Time to Live

    24/47

    Slide 24SpringSource Confidential. Do not distribute without express permission

    VMware vSphere and vCloud

  • 8/14/2019 SpringOne Europe 2009: Time to Live

    25/47

    Slide 25SpringSource Confidential. Do not distribute without express permission

    VMware Lab Manager

  • 8/14/2019 SpringOne Europe 2009: Time to Live

    26/47

    DemoVirtual QA Environment with tc Server ,

    AMS , and Lab Manager

  • 8/14/2019 SpringOne Europe 2009: Time to Live

    27/47

    Slide 27SpringSource Confidential. Do not distribute without express permission

    VMware Lab Manager

  • 8/14/2019 SpringOne Europe 2009: Time to Live

    28/47

    Slide 28SpringSource Confidential. Do not distribute without express permission

    VMware Lab Manager

  • 8/14/2019 SpringOne Europe 2009: Time to Live

    29/47

    Slide 29SpringSource Confidential. Do not distribute without express permission

    Lean software development principles

    Eliminate waste Create knowledge Build quality in Defer commitment Deliver fast Respect people Improve the system

    www.poppendieck.com

  • 8/14/2019 SpringOne Europe 2009: Time to Live

    30/47

    Slide 30SpringSource Confidential. Do not distribute without express permission

    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 aplan. Develop the capacity to react as thefuture unfolds

    Use the scientific method

  • 8/14/2019 SpringOne Europe 2009: Time to Live

    31/47

    Slide 31SpringSource Confidential. Do not distribute without express permission

    Deployment blueprints

    Firing up a single image, or set of identicalimages 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

  • 8/14/2019 SpringOne Europe 2009: Time to Live

    32/47

    Slide 32SpringSource Confidential. Do not distribute without express permission

    Spring recap!

    Application blueprint Application context

    ClassPath... FileSystem... Web...

    Dependency injection Configuration Abstraction from

    environment ...

  • 8/14/2019 SpringOne Europe 2009: Time to Live

    33/47

    Slide 33SpringSource Confidential. Do not distribute without express permission

    Deployment blueprint

    httpdA

    AMSdm Svrdm Svr

    dm Svr

    dm Rep

    MySQL

    MySQL

    Reference injection

    Configurationinjection

    Cross-cuttingconcerns security (anti-) affinity

    A

    AA

    A

  • 8/14/2019 SpringOne Europe 2009: Time to Live

    34/47

  • 8/14/2019 SpringOne Europe 2009: Time to Live

    35/47

    Slide 35SpringSource Confidential. Do not distribute without express permission

    Long-needle Injection

    dm Svr

    A

    user data / environment document

    xMI

  • 8/14/2019 SpringOne Europe 2009: Time to Live

    36/47

    DemoUsing Cloud Foundry to create a clusterspecification and deploy a Spring app

  • 8/14/2019 SpringOne Europe 2009: Time to Live

    37/47

    Slide 37SpringSource Confidential. Do not distribute without express permission

    Cloud Foundry

  • 8/14/2019 SpringOne Europe 2009: Time to Live

    38/47

    DemoUsing Grails to deploy an application using

    CloudTools

  • 8/14/2019 SpringOne Europe 2009: Time to Live

    39/47

    Slide 39SpringSource Confidential. Do not distribute without express permission

    Fluent API for creating blueprint

  • 8/14/2019 SpringOne Europe 2009: Time to Live

    40/47

    Slide 40SpringSource Confidential. Do not distribute without express permission

    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 aplan. Develop the capacity to react as thefuture unfolds

    Use the scientific method

  • 8/14/2019 SpringOne Europe 2009: Time to Live

    41/47

  • 8/14/2019 SpringOne Europe 2009: Time to Live

    42/47

  • 8/14/2019 SpringOne Europe 2009: Time to Live

    43/47

    Slide 43SpringSource Confidential. Do not distribute without express permission

    SLA

    Third key ingredient

    Application Blueprint

    Deployment Blueprint

    SLA

  • 8/14/2019 SpringOne Europe 2009: Time to Live

    44/47

  • 8/14/2019 SpringOne Europe 2009: Time to Live

    45/47

    Slide 45SpringSource Confidential. Do not distribute without express permission

    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 totheir customers' needs.

  • 8/14/2019 SpringOne Europe 2009: Time to Live

    46/47

    Slide 46SpringSource Confidential. Do not distribute without express permission

    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

  • 8/14/2019 SpringOne Europe 2009: Time to Live

    47/47