Towards FutureOps: Stable, Repeatable environments from Dev to Prod

142
LOOKING FORWARD The Future of Tools and Techniques in Operations

Transcript of Towards FutureOps: Stable, Repeatable environments from Dev to Prod

Page 1: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

LOOKING FORWARDThe Future of Tools and Techniques in Operations

Page 2: Towards FutureOps: Stable, Repeatable environments from Dev to Prod
Page 3: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

LOOKING FORWARDThe Future of Tools and Techniques in Operations

Page 4: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

Effectively deliver and maintain applications.

Page 5: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

EMERGING BEST PRACTICES

Page 6: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

Heterogeneity

Page 7: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

Idea: More technologiesin use, not less.

Page 8: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

HOMOGENEITY

• A single paradigm: VMs, containers, etc.

• A single tech stack: Java, LAMP, etc.

• A single cloud provider: Amazon

Page 9: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

Reality!

Page 10: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

Things change forthe better.*

* Sometimes it takes a few changes

Page 11: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

Page 12: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

Homogeneity means one of:

Page 13: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

Homogeneity means one of:

1.) Change won’t happen [for us]

Page 14: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

Homogeneity means one of:

1.) Change won’t happen [for us]

2.) Change is atomic (A → B)

Page 15: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

Homogeneity means one of:

1.) Change won’t happen [for us]

2.) Change is atomic (A → F)

3.) Change is gradual (A → A’ → … → F)

Page 16: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

A → A’ → … → F

Page 17: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

A → A’ → … → F

Page 18: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

A → A’ → … → F1

Page 19: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

A → A’ → … → F1

B → … → F2

Page 20: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

A → A’ → … → F1

B → … → F2

C → … → F3

Page 21: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

A → A’ → … → F1

B → … → F2

C → … → F3

D

Page 22: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

→ = Heterogeneity

Page 23: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

Heterogeneity

Page 24: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

Embrace things will be different.

Page 25: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

Heterogeneity

• Embrace things will be different

• Choose tooling that aligns with that reality

• Hire people who align with that reality

• Be mindful of change

Page 26: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

Multi-cloud

Page 27: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

Multi-Cloud Motivation

• Regions

Page 28: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

Multi-Cloud Motivation

• Regions

• Features

Page 29: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

Multi-Cloud Motivation

• Regions

• Features

• Pricing

Page 30: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

Multi-Cloud Motivation

• Regions

• Features

• Pricing

• Lock-in avoidance

Page 31: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

Multi-tech

Page 32: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

Multi-Tech Motivation

• Right tool for the job

• Job Market

• Forced requirements (SDK, walled garden, etc.)

Page 33: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

Multi-compute

Page 34: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

Multi-Compute Motivation

• Requirements(performance, legacy, security, etc.)

• Existing knowledge, experience

Page 35: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

Challenges

• Management of resources and cost

• Speed of light

Page 36: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

Solutions Heterogeneity

Page 37: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

Solutions

• Terraform, Kubernetes, etc…

• Unrelated workloads on different tech

Page 38: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

Datacenter as Computer

Page 39: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

Idea: DC as single shared resource rather than a collection of devices.

Page 40: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

Today

Page 41: Towards FutureOps: Stable, Repeatable environments from Dev to Prod
Page 42: Towards FutureOps: Stable, Repeatable environments from Dev to Prod
Page 43: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

Timmy Janet

Rebecca Charles

Page 44: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

App App

Page 45: Towards FutureOps: Stable, Repeatable environments from Dev to Prod
Page 46: Towards FutureOps: Stable, Repeatable environments from Dev to Prod
Page 47: Towards FutureOps: Stable, Repeatable environments from Dev to Prod
Page 48: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

TEST: Can I unplug your servers? Is that okay?

Page 49: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

Reality!

Page 50: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

Number of servers, apps growing at a breakneck pace.

Page 51: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

Page 52: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

Choices:

Page 53: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

Choices:

1.) Growth will slow down

Page 54: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

Choices:

1.) Growth will slow down

2.) Train and hire

Page 55: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

Choices:

1.) Growth will slow down

2.) Train and hire

3.) Lower cost/complexity

Page 56: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

Lower cost/complexity

Page 57: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

Lower cost/complexity =

DC as Computer

Page 58: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

Datacenter as Computer

Page 59: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

Separate application from the resources it runs on.

Page 60: Towards FutureOps: Stable, Repeatable environments from Dev to Prod
Page 61: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

RAM: 500 MB CPU: 200 MHz DISK: 50 IOPS, SSD{

Page 62: Towards FutureOps: Stable, Repeatable environments from Dev to Prod
Page 63: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

AppApp

App

Page 64: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

AppApp

App

Page 65: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

AppApp

App

Page 66: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

AppApp

App

Page 67: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

App App App

Page 68: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

Allows for choice in lower level components.

Page 69: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

Challenges

• Management is complex

• Not all apps fit this model easily

• Trust

Page 70: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

Solutions Datacenter as Computer

Page 71: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

Solutions

• Schedulers

• Complex, years to mature

• State: Ephemeral vs. Sticky vs. Persistent

• Heterogeneity!

Page 72: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

Declarative

Page 73: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

Idea: Goal-driven tooling where we describe what, not how.

Page 74: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

Today

Page 75: Towards FutureOps: Stable, Repeatable environments from Dev to Prod
Page 76: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

I need the web server AMI updated to ami-abcd1234. I need to spin up 3 more servers. And I need to change the maintenance window for the database.

Page 77: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

WHOA. Let’s break that down. Let’s start with the updated AMIs, write down a plan, test it out for a few weeks, then schedule a full day to roll it out.

Page 78: Towards FutureOps: Stable, Repeatable environments from Dev to Prod
Page 79: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

Reality!

Page 80: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

Change requires a burden of knowledge too large.

Page 81: Towards FutureOps: Stable, Repeatable environments from Dev to Prod
Page 82: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

Page 83: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

Choices:

Page 84: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

Choices:

1.) Hire or train more experts

Page 85: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

Choices:

1.) Hire or train more experts

2.) Enable non-experts through higher level abstractions.

Page 86: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

Higher Abstraction =

Declarative

Page 87: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

Declarative

Page 88: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

Describe your goal,not the steps to get there.

Page 89: Towards FutureOps: Stable, Repeatable environments from Dev to Prod
Page 90: Towards FutureOps: Stable, Repeatable environments from Dev to Prod
Page 91: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

Benefits

• Flexible choices for how

• Easier to educate, knowing what you want is usually easier than how.

• Complex tasks are easily modeled

Page 92: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

Challenges

• Trust, trust, TRUST!

• Lack of control (trust)

• Difficult problem, large scope

Page 93: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

Solutions Declarative

Page 94: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

Solutions

• Schedulers, Terraform, EC2

• “Plan” as a fundamental primitive

Page 95: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

App-Level Security

Page 96: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

Idea: App-level security in addition to network and server level.

Page 97: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

Today

Page 98: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

Today Historically

Page 99: Towards FutureOps: Stable, Repeatable environments from Dev to Prod
Page 100: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

“Us” vs. “Them”

Page 101: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

Historically

• External vs. Internal

• Server to Server (iptables, route tables, etc.)

• Hand-curated set of rules

• Unencrypted internal communication

Page 102: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

Reality!

Page 103: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

Clouds blur the line.

Page 104: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

Clouds blur the line. Threats come from within.

Page 105: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

Clouds blur the line. Threats come from within.Orders of magnitude more apps.

Page 106: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

Page 107: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

Choices:

Page 108: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

Choices:

1.) Manually curate all rules all the time

Page 109: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

Choices:

1.) Hire or train more experts

2.) Enforce security at the app-level

Page 110: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

App-Level Security

Page 111: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

End-to-end encryption, identity for all connections, permission-checked APIs.

Page 112: Towards FutureOps: Stable, Repeatable environments from Dev to Prod
Page 113: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

“Hi, I’m Alice!”

Page 114: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

“Hey there, I’m Bob!”

Page 115: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

“Hey there, I’m Bob!”

Page 116: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

“I need to bill Charles $34.”

Page 117: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

“Okay! Charles has been billed $34”

Page 118: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

“Hi, I’m Alice!”

Page 119: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

“No, I don’t think you are.”

Page 120: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

“I need to bill Charles $34.”

Page 121: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

“Sorry, Alice, you can’t do that.”

Page 122: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

App-Level Security

• All connections have identity

• All connections are encrypted

• All requests are checked for permission

Page 123: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

Enables efficient growth.

Page 124: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

Done in addition to perimeter security.

Page 125: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

Challenges

• TLS is hard

• Identity is hard

• Modifying apps is hard

Page 126: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

Solutions App-Level Security

Page 127: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

Solutions

• “Security Server” (Vault)

• Scheduler can orchestrate setup

• Secure introduction

Page 128: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

DevOps

Page 129: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

Idea: Dev, Ops, Sec must be able to work together to streamline deployment.

Page 130: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

“DevOps”

Page 131: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

Dev Ops Sec

Page 132: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

Dev Ops Sec

Page 133: Towards FutureOps: Stable, Repeatable environments from Dev to Prod
Page 134: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

DevOps

• Increased efficiency through parallelization of work.

• Requires both tooling and cultural change.

Page 135: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

Our Glorious Future

Page 136: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

Globally distributed set of available resources, available on demand.

(Cloud, Heterogeneity)

Page 137: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

Utilizing this in most cases is as simple as “double click to run.”

(Schedulers, DC as Computer)

Page 138: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

Build and deploy by describing what you want, not how to do it.

(Declarative)

Page 139: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

App-to-app secured communications with a known identity.

(App-Level Security)

Page 140: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

Deploying 10s, 100s, 1000s of apps quickly and efficiently.

(DevOps)

Page 141: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

NOTICE: Workflows, not technologies.

Page 142: Towards FutureOps: Stable, Repeatable environments from Dev to Prod

THANK YOU!@mitchellh