Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Building Cloud Native Applications

Dad87927739931f134c5b1242e3d04bc?s=47 James Thomas
November 05, 2015

Building Cloud Native Applications

Presentation from JAX Winter 2015.

Dad87927739931f134c5b1242e3d04bc?s=128

James Thomas

November 05, 2015
Tweet

Transcript

  1. James Thomas, IBM Building Cloud Native Applications

  2. Software is eating the world http://blog.softwareinsider.org/2014/02/18/research-summary-sneak-peaks-from-constellations-futurist-framework-and-2014-outlook-on-digital-disruption/

  3. None
  4. What do they have in common? “Speed of innovation”

  5. Cloud Computing

  6. None
  7. How can we do the same?

  8. “The Cloud” is not just a bigger server…

  9. Creative Commons Licensed (BY-NC-ND 2.0) Photo by Rubén Marcos https://flic.kr/p/Gm9ot

  10. Creative Commons Licensed (BY-NC-ND 2.0) Photo by Rubén Marcos https://flic.kr/p/Gm9ot

    Creative Commons Licensed (BY-SA 2.0) Photo by Matt Kieffer https://flic.kr/p/5WwhEQ
  11. Creative Commons Licensed (BY-NC-ND 2.0) Photo by Ars Electronica https://flic.kr/p/ac3oaX

  12. None
  13. “The Cloud” is not just a bigger server… … requires

    fundamental re-architecture of applications
  14. 1. Twelve-Factor App 2. Microservices 3. API-Based Collaboration 4. Self-service

    Agile Infrastructure 5. Anti-Fragility
  15. The Twelve Factors - http://12factor.net/ I. Codebase One codebase tracked

    in revision control, many deploys
 II. Dependencies Explicitly declare and isolate dependencies
 III. Config Store config in the environment IV. Backing Services Treat backing services as attached resources
 V. Build, release, run Strictly separate build and run stages
 VI. Processes Execute the app as one or more stateless processes VII. Port binding Export services via port binding VIII. Concurrency Scale out via the process model IX. Disposability Maximize robustness with fast startup and graceful shutdown X. Dev/prod parity Keep development, staging, and production as similar as possible XI. Logs Treat logs as event streams XII. Admin processes Run admin/management tasks as one-off processes
  16. …with API-based collaboration


  17. Self-Service Agile Infrastructure

  18. None
  19. Sounds like an enormous amount of work?

  20. There’s a shortcut…

  21. None
  22. 22 ~ Minutes Platform as a Service Customer Managed Service

    Provider Managed Benefits Setup environments and deploy apps very quickly. Infrastructure and platform managed by SP. Time Commitment Minutes to setup and deploy. Focus on your apps and their data. ~ Weeks Code Data Runtime Middleware OS Virtualization Servers Storage Networking Core IT ~ Days Code Data Runtime Middleware OS Virtualization Servers Storage Networking Code Data Runtime Middleware OS Virtualization Servers Storage Networking Time to initial deployment Infrastructure as a Service Core IT

  23. or?

  24. …open-source

  25. …incredible eco-system

  26. The Twelve Factors - http://12factor.net/ I. Codebase One codebase tracked

    in revision control, many deploys
 II. Dependencies Explicitly declare and isolate dependencies
 III. Config Store config in the environment IV. Backing Services Treat backing services as attached resources
 V. Build, release, run Strictly separate build and run stages
 VI. Processes Execute the app as one or more stateless processes VII. Port binding Export services via port binding VIII. Concurrency Scale out via the process model IX. Disposability Maximize robustness with fast startup and graceful shutdown X. Dev/prod parity Keep development, staging, and production as similar as possible XI. Logs Treat logs as event streams XII. Admin processes Run admin/management tasks as one-off processes …designed for “cloud native apps”
  27. How do we start?

  28. PRAY TO THE DEMO GODS Creative Commons Licensed (BY-NC-ND 2.0)

    Photo by Adi ALGhanem https://flic.kr/p/7Ret5Y
  29. Tomcat

  30. Apache Tomcat

  31. Install CF CLI tools

  32. Define your manifest

  33. Choose a buildpack

  34. Supported build packs

  35. None
  36. Bind services

  37. VCAP_SERVICES

  38. Apache Tomcat

  39. None
  40. 1. Twelve-Factor App 2. Microservices 3. API-Based Collaboration 4. Self-service

    Agile Infrastructure 5. Anti-Fragility
  41. None