hoverboards, jetpacks, clusters and flux capacitors

50
Hoverboards, Jetpacks, Clusters and Flux Capacitors Connor Doyle and Niklas Nielsen, Intel Corporation Software Defined Infrastructure

Upload: kubeacademy

Post on 15-Apr-2017

316 views

Category:

Technology


1 download

TRANSCRIPT

Hoverboards, Jetpacks, Clusters and Flux CapacitorsConnor Doyle and Niklas Nielsen, Intel CorporationSoftware Defined Infrastructure

Your speakers today

Connor Doyle

@nor0101

Niklas Nielsen

@quarfot

An evaluation of Kubernetes, Mesos, Omega …?

Not exactly

Just thoughts from engineers in the scheduling space

Let’s take a look at Yesterday’sInfrastructure

You buy a box

Application

Application

Change and upgrade it to meet demand

Application

Application

Is this bad?

It’s another trade off that was the obvious one at the time

Legacy infrastructure is starting to cause pain

Expensive at scale

Encouraged snowflakes

Less automation

Change and iteration is hard

The Amazons, Azures and Googles

Public Cloud Providers shared their secret sauce

“Legacy infrastructure”

Deployment and image formats

Services (Blob and block Storage, Load balancing, Databases)

Cost is correlated to fine grained allocation

“Infinite” capacity

Explicit fault domains in form of availability zones

Public Cloud Providers shared their secret sauce

“Legacy infrastructure”

Interference

Limited exposure to hardware features

Subsidizing other users

Vendor lock-in?

“Infinite capacity”? This is a business.

The Facebooks, Twitters, and Apples

Latency is king

Legacy infrastructure

Private Cloud

● Requires high expertise● Reinvention● Resource silos● Workload portability?

Can we get the best of both worlds?

● Exclusive access to best hardware

● Predicable cost and performance

● Deploy custom hardware● Meet security and compliance

requirements

Hybrid: best of both worlds

Legacy infrastructure

“Hybrid”

Meanwhile…The container revolution!

Google TrendsDocker (Software)Interest Over TimeJanuary 2013 - November 2015

To many people, it felt like this

Now for jetpacks and flux capacitors

Prediction 1Cloud computing will be a

commodity.

Let 1000 clouds bloom

Amazon EC2

GoogleComputePlatform

TwitterPrivateCloud

YelpPrivateCloud

eBayPrivateCloud

PublicCloudFooPublic

CloudBar

PublicCloudBaz

Private Cloud Baz

Prediction 2Grid computing returns.*

Computing can float between providers

Amazon EC2

GoogleComputePlatform

TwitterPrivateCloud

YelpPrivateCloud

eBayPrivateCloud

PublicCloudFooPublic

CloudBar

PublicCloudBaz

Private Cloud Baz

Form factor is different this time

GoogleComputePlatform

Amazon EC2

Public Cloud BarCluster X

Cluster Z

Cluster Y

Cluster Y

Über cluster Y

Milky way clusterScalable global insights

Local control

Boundaries of ‘form factors’ blur

1000 cores

1 million x 0.001 shares

Think about how you describe your intent across these layers?

Manage complexity with abstractions.

How do you delegate decision making?

How do we avoid creating a mega-language for the future form factor?

How do we provide portable, composable interfaces?

Prediction 3Declarative configuration won’t

be enough by itself

Visualizing the curse of dimensionality in configuration spaces

cpus: 1 cpus: 1mem: 512

cpus: 1mem: 512disk: 8192

cpus: 1mem: 512disk: 8192iops: 100kps

...

Exhibit A: Mesos TaskInfo

/*** Describes a task. Passed from the scheduler all the way to an* executor (see SchedulerDriver::launchTasks and* Executor::launchTask). Either ExecutorInfo or CommandInfo should be set.* A different executor can be used to launch this task, and subsequent tasks* meant for the same executor can reuse the same ExecutorInfo struct.*/message TaskInfo { ...}

Exhibit B: Kubernetes Pod Manifest

apiVersion: v1 <- API Serverkind: ReplicationControllermetadata: name: redisspec: replicas: 1 <- Replication controller selector: name: redis <- Scheduler template: metadata: labels: name: redis spec: containers: - name: redis image: kubernetes/redis:v1 ports: - containerPort: 6379 resources: limits: cpu: "0.1" volumeMounts: - mountPath: /redis-master-data <- Kubelet / runtime name: data volumes: - name: data emptyDir: {}

Don’t ask users for too much

We need communication between layers.

Don’t ask users for too much

Think about interacting with a managed runtime.

Don’t ask users for too much

Learn more about your users’ needs by observation.

How will our interfaces evolve?

● Usability paradox○ We understand the problem better○ Systems get more advanced○ Conceptual surface area increases

● Alternatives…○ Turing-complete, imperative control

● A principled mix?○ Rules to determine where knobs belong?○ Patterns to “drop down” and specify lower-

level logic?

Upcalls and delegation across layers of abstraction

HardwareOS

Cluster Runtime

Cluster managerCluster federation

Thanks for tuning in!@nor0101 @quarfot

Intel is hiring!

Backup slides

An age-old problem

Inheritance Plugins, Extensions, Modules

Composition Shims, Collectors, Adaptors

Let’s take a look at Yesterday’sInfrastructure

Snowflakes caused growing pains

The Amazons, Azures and Googles

Remember this?

Application

Application

Multiply commodity infrastructure

Application

Application

Application

Application

Application

Application

Application

Application

Application

Application

The Facebooks, Twitters, and Yelps

Internet companies followed the path of Google (minus 10 years)

The inbetweeners

Can hybrid cloud deliver?