Upload
kubeacademy
View
316
Download
1
Embed Size (px)
Citation preview
Hoverboards, Jetpacks, Clusters and Flux CapacitorsConnor Doyle and Niklas Nielsen, Intel CorporationSoftware Defined Infrastructure
Legacy infrastructure is starting to cause pain
Expensive at scale
Encouraged snowflakes
Less automation
Change and iteration is hard
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.
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
Meanwhile…The container revolution!
Google TrendsDocker (Software)Interest Over TimeJanuary 2013 - November 2015
Let 1000 clouds bloom
Amazon EC2
GoogleComputePlatform
TwitterPrivateCloud
YelpPrivateCloud
eBayPrivateCloud
PublicCloudFooPublic
CloudBar
PublicCloudBaz
Private Cloud Baz
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
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?
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: {}
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
Multiply commodity infrastructure
Application
Application
Application
Application
Application
Application
Application
Application
Application
Application