The Cloud Native Fallacy: You are not Google, or How to Stop Worrying and Learn to Love your Servers

Monty Taylor

http://inaugust.com/talks/fallacy.html

twitter: @e_monty

Who am I?

Office of Technology

Zuul

Ansible

Who am I?

Technical Committee

Foundation Board of Directors

Developer Infrastructure Core Team

Is Cloud Native good?

yes

Is not-Cloud Native bad?

no

Do you need to write Cloud Native apps to use cloud?

no

Are you a bad person if you don't write Cloud Native apps?

no

Slim Pickens Rides Bomb

What is Cloud Native?

Cloud-native applications are meant to function "in a world of cloud computing that is ubiquitous and flexible." Applications can be developed on a cloud platform, then deployed to different clouds where supporting software stacks will help them run at scale.

Information Week - Jul 30, 2015

The Cloud Native Computing Foundation will harmonize emerging technologies and foster innovation in container packaged, dynamically scheduled, and microservices based application development and operations.

Cloud Native Is ...

  • Architectural and operational approach
  • Assume cloud
  • Assume failures
  • Microservices
  • Containerized?
Pivotal Cloud Native Architecture

12 Factor Application

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 and production as similar as possible

XI. Logs - Treat logs as event streams

XII. Admin processes - Run admin/management tasks as one-off processes

This is awesome

Except for III

I use config files

Ooops

VI. Stateless

If /dev/null is fast in web scale I will use it. Is it web scale?

Use a service to store your data - like a database

Is that database service web scale?

Go google and watch "MongoDB is Web Scale"

A Foolish Consistency is the Hobgoblin of Little Minds

https://www.python.org/dev/peps/pep-0008/#a-foolish-consistency-is-the-hobgoblin-of-little-minds

A foolish consistency is the hobgoblin of little minds, adored by little statesmen and philosophers and divines. With consistency a great soul has simply nothing to do. He may as well concern himself with his shadow on the wall. Speak what you think now in hard words, and to-morrow speak what to-morrow thinks in hard words again, though it contradict every thing you said to-day. — 'Ah, so you shall be sure to be misunderstood.' — Is it so bad, then, to be misunderstood? Pythagoras was misunderstood, and Socrates, and Jesus, and Luther, and Copernicus, and Galileo, and Newton, and every pure and wise spirit that ever took flesh. To be great is to be misunderstood.

Ralph Waldo Emerson

Cloud Native / 12 Factor is **A** great approach

You still have to think.

The tragedy of modern man is not that he knows less and less about the meaning of his own life, but that it bothers him less and less.

Václav Havel

The tragedy of the modern technologist is not that he knows less and less about how computers work, but that it bothers him less and less.

As an application developer,
I want to deploy and run an application on the internet so that my customers all over the world can consume it.

As an operator,
I want to deploy the application across multiple clouds so that my service survives issues in any one of them.

THIS WORKS

I'm doing it myself as we speak

10-20k VMs per-day

10 Cloud Regions in 7 clouds

Only using OpenStack APIs

OpenStack Infra

Tooling, Automation and CI for OpenStack Project

Our VMs are everywhere

Public Clouds

  • Rackspace: Dallas, Chicago, DC
  • Internap: New York
  • OVH: Strassbourg, Gravelines
  • Vexxhost: Montreal
  • OpenStack Innovation Center: San Antonio

Managed Private Clouds

  • Blue Box: San Jose
  • Red Hat: Phoenix

We also have servers

Infra Cloud - Hardware donated by Hewlett-Packard Enterprise

Architecture

image

Gerrit

  • Traditional 'Enterprise' Java Application
  • Nova VM, Cinder Volume, Trove DB
  • Scale out farm of git replicas
  • Project rename takes several hours of downtime

nodepool

  • Cloud Native
  • with config files
  • Purpose built in Python
  • Keeps a pool of ready to go nodes
  • Multi-cloud
  • Fully elastic - responds to demand

Run what you want

12-factor application on Kubernetes with Kuryr

Traditional Java web application behind NAT with a Floating IP

Kerberos Server on the Internet with Fixed IP and Reverse DNS

Baremetal for hardware enabled transcoding via Ironic

Pivotal Cloud Native Architecture

DevOps recognizes the need for Dev and Ops to collaborate

Rigid devotion to any guidelines without judgement is deadly

Thank you!

http://inaugust.com/talks/fallacy.html

twitter: @e_monty