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

Building Cloud Native Applications

James Thomas
November 05, 2015

Building Cloud Native Applications

Presentation from JAX Winter 2015.

James Thomas

November 05, 2015
Tweet

More Decks by James Thomas

Other Decks in Technology

Transcript

  1. 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
  2. “The Cloud” is not just a bigger server… … requires

    fundamental re-architecture of applications
  3. 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
  4. 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

  5. or?

  6. 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”
  7. PRAY TO THE DEMO GODS Creative Commons Licensed (BY-NC-ND 2.0)

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