dhananjay sathe, lead rapyuta - schd.ws€¦ · docker registry api pods allow coupling related...

36
Building a Cloud Platform for Robots Dhananjay Sathe, Lead rapyuta.io

Upload: vuongthuan

Post on 27-Apr-2018

223 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Dhananjay Sathe, Lead rapyuta - schd.ws€¦ · Docker registry API Pods allow coupling related software at runtime Host isolation Pluggable runtime User Workload Nodes kubelet kubelet

Building a Cloud Platform for RobotsDhananjay Sathe, Lead rapyuta.io

Page 2: Dhananjay Sathe, Lead rapyuta - schd.ws€¦ · Docker registry API Pods allow coupling related software at runtime Host isolation Pluggable runtime User Workload Nodes kubelet kubelet
Page 3: Dhananjay Sathe, Lead rapyuta - schd.ws€¦ · Docker registry API Pods allow coupling related software at runtime Host isolation Pluggable runtime User Workload Nodes kubelet kubelet

Task Offloading

Page 4: Dhananjay Sathe, Lead rapyuta - schd.ws€¦ · Docker registry API Pods allow coupling related software at runtime Host isolation Pluggable runtime User Workload Nodes kubelet kubelet

The Genesis

Page 5: Dhananjay Sathe, Lead rapyuta - schd.ws€¦ · Docker registry API Pods allow coupling related software at runtime Host isolation Pluggable runtime User Workload Nodes kubelet kubelet

It worked!

Collaborative 3D Mapping Dynamic Mobile Manipulation

Page 6: Dhananjay Sathe, Lead rapyuta - schd.ws€¦ · Docker registry API Pods allow coupling related software at runtime Host isolation Pluggable runtime User Workload Nodes kubelet kubelet

"containerTag" : "roombaClone"

RoboEarth Compute Environment

Page 7: Dhananjay Sathe, Lead rapyuta - schd.ws€¦ · Docker registry API Pods allow coupling related software at runtime Host isolation Pluggable runtime User Workload Nodes kubelet kubelet

"addNodes" : [{ "containerTag" : "roombaClone", "nodeTag" : "positionRecorder", "pkg" : "testPkg", "exe" : "posRecorder.py" }],

RoboEarth Compute Environment

Page 8: Dhananjay Sathe, Lead rapyuta - schd.ws€¦ · Docker registry API Pods allow coupling related software at runtime Host isolation Pluggable runtime User Workload Nodes kubelet kubelet

"addInterfaces" : [{ "endpointTag" : "roombaClone", "interfaceTag" : "pos", "interfaceType" : "PublisherInterface", "className" : "geometry_msgs/Pose2D", "addr" : "/posPub"}]

RoboEarth Compute Environment

Page 9: Dhananjay Sathe, Lead rapyuta - schd.ws€¦ · Docker registry API Pods allow coupling related software at runtime Host isolation Pluggable runtime User Workload Nodes kubelet kubelet

* NAT + proprietary protocol or raw sockets over GRE-tunnels and Openvswitch* Websockets* Proprietary RCE Protocol

Networking in RoboEarth

Page 10: Dhananjay Sathe, Lead rapyuta - schd.ws€¦ · Docker registry API Pods allow coupling related software at runtime Host isolation Pluggable runtime User Workload Nodes kubelet kubelet

Re-imagining the Platform

Page 11: Dhananjay Sathe, Lead rapyuta - schd.ws€¦ · Docker registry API Pods allow coupling related software at runtime Host isolation Pluggable runtime User Workload Nodes kubelet kubelet

LXC - Container

Master Process(built-in scheduling)

Container ProcessContainer Process Robot Endpoint

Robot Endpoint

Env EP

JSON Protocol Websocket / CLIIaaS Hooks

User Workload Nodes

RoboEarth Architecture Overview

Page 12: Dhananjay Sathe, Lead rapyuta - schd.ws€¦ · Docker registry API Pods allow coupling related software at runtime Host isolation Pluggable runtime User Workload Nodes kubelet kubelet

Master Process(built-in scheduling)

Robot EndpointRobot Endpoint

JSON Protocol Websocket / CLI

IaaS Hooks

Containerization

LXC - Container

Container ProcessContainer Process

Env EP

User Workload Nodes

● No standard for describing a container

● Distribution of tarballs

● Changing dependency trees

● Exposing the right interfaces

Page 13: Dhananjay Sathe, Lead rapyuta - schd.ws€¦ · Docker registry API Pods allow coupling related software at runtime Host isolation Pluggable runtime User Workload Nodes kubelet kubelet

Master Process(built-in scheduling)

Robot EndpointRobot Endpoint

JSON Protocol Websocket / CLI

IaaS Hooks

Containerization

LXC - Container

Container ProcessContainer Process

Env EP

User Workload Nodes

● Dockerfile format

● Docker registry API

● Pods allow coupling related software at runtime

● Host isolation

● Pluggable runtime

User Workload Nodes

kubelet

kubelet

Page 14: Dhananjay Sathe, Lead rapyuta - schd.ws€¦ · Docker registry API Pods allow coupling related software at runtime Host isolation Pluggable runtime User Workload Nodes kubelet kubelet

LXC - Container

Container ProcessContainer Process Robot Endpoint

Robot Endpoint

Env EP

User Workload Nodes

Control PlaneMaster Process

(built-in scheduling)JSON Protocol

Websocket / CLIIaaS Hooks

● Scalability

● Day-2 operations nightmare

● Code modularity and maintainability

● Vendor support

Page 15: Dhananjay Sathe, Lead rapyuta - schd.ws€¦ · Docker registry API Pods allow coupling related software at runtime Host isolation Pluggable runtime User Workload Nodes kubelet kubelet

LXC - Container

Container ProcessContainer Process Robot Endpoint

Robot Endpoint

Env EP

User Workload Nodes

Control PlaneMaster Process

(built-in scheduling)JSON Protocol

Websocket / CLIIaaS Hooks

● Battle tested at sufficient scale

● Rich ecosystem and tooling

● Modular extendable codebase

● cloud-controller-manager

API Server

Kube API

cloud-controller-manager

Scheduler

rapyutaAPI

Page 16: Dhananjay Sathe, Lead rapyuta - schd.ws€¦ · Docker registry API Pods allow coupling related software at runtime Host isolation Pluggable runtime User Workload Nodes kubelet kubelet

LXC - Container

Master Process(built-in scheduling)

Container ProcessContainer Process

Env EP

JSON Protocol Websocket / CLI

IaaS Hooks

User Workload Nodes

Networking

Robot EndpointRobot Endpoint

● Complex multi-host port mapping

● Flakey SDN implementation

● Reconfiguration on node failure

● Limited protocol extensibility

● Centralized Robot endpoint messaging

Page 17: Dhananjay Sathe, Lead rapyuta - schd.ws€¦ · Docker registry API Pods allow coupling related software at runtime Host isolation Pluggable runtime User Workload Nodes kubelet kubelet

LXC - Container

Master Process(built-in scheduling)

Container ProcessContainer Process

Env EP

JSON Protocol Websocket / CLI

IaaS Hooks

User Workload Nodes

ROS Routing MeshRobot Protocol Routing Layer

Ingress / LoadBalancers

Multi Protocol DataChannel

● CNI - high performance L3 networking

● Full support for a variety of L4-L7 protocols

● Ingress + load-balancer for edge routing

● DNS based service discovery

● NetworkPolicy per robot bulkheading and

isolation

Networking

Page 18: Dhananjay Sathe, Lead rapyuta - schd.ws€¦ · Docker registry API Pods allow coupling related software at runtime Host isolation Pluggable runtime User Workload Nodes kubelet kubelet

LXC - Container

Master Process(built-in scheduling)

Container ProcessContainer Process Robot Endpoint

Robot Endpoint

Env EP

JSON Protocol Websocket / CLI

IaaS Hooks

User Workload Nodes

The Onset

Page 19: Dhananjay Sathe, Lead rapyuta - schd.ws€¦ · Docker registry API Pods allow coupling related software at runtime Host isolation Pluggable runtime User Workload Nodes kubelet kubelet

API Server

Kube API

Cloud Controller Manager

Scheduler

platformAPI

ROS Routing MeshRobot Protocol Routing Layer

User Workload Nodes

kubelet

kubelet Ingress / LoadBalancers

Env EPEnv EP

Multi Protocol DataChannel

KubeAPI

The Culmination

Page 20: Dhananjay Sathe, Lead rapyuta - schd.ws€¦ · Docker registry API Pods allow coupling related software at runtime Host isolation Pluggable runtime User Workload Nodes kubelet kubelet

Breaking out of the Datacenter

Page 21: Dhananjay Sathe, Lead rapyuta - schd.ws€¦ · Docker registry API Pods allow coupling related software at runtime Host isolation Pluggable runtime User Workload Nodes kubelet kubelet

The Anatomy of a Robotics Application

Page 22: Dhananjay Sathe, Lead rapyuta - schd.ws€¦ · Docker registry API Pods allow coupling related software at runtime Host isolation Pluggable runtime User Workload Nodes kubelet kubelet

Heterogeneous Infrastructure

● Multiple architectures

● Weak network links

● Spatial and temporal variations

● Reproducibility and configuration

Page 23: Dhananjay Sathe, Lead rapyuta - schd.ws€¦ · Docker registry API Pods allow coupling related software at runtime Host isolation Pluggable runtime User Workload Nodes kubelet kubelet

Binary Artifacts

rapyuta.ioPackage

Strategies + Architecture

Registry

Build Configs

Parse

Workflow CRD

MultiArch-Build Engine

Page 24: Dhananjay Sathe, Lead rapyuta - schd.ws€¦ · Docker registry API Pods allow coupling related software at runtime Host isolation Pluggable runtime User Workload Nodes kubelet kubelet

● Unified declarative application description

● Uniform lifecycle management across the datacenter and devices

● Permit coupling of components and inter-dependencies

● Allow cross pollination of ideas, services and code

Unified Application Description and Runtime

Page 25: Dhananjay Sathe, Lead rapyuta - schd.ws€¦ · Docker registry API Pods allow coupling related software at runtime Host isolation Pluggable runtime User Workload Nodes kubelet kubelet

ServiceClass Composition

Page 26: Dhananjay Sathe, Lead rapyuta - schd.ws€¦ · Docker registry API Pods allow coupling related software at runtime Host isolation Pluggable runtime User Workload Nodes kubelet kubelet

ServiceClass Composition

Page 27: Dhananjay Sathe, Lead rapyuta - schd.ws€¦ · Docker registry API Pods allow coupling related software at runtime Host isolation Pluggable runtime User Workload Nodes kubelet kubelet

The Platform Broker

Service Catalog

Platform Broker

Device Broker

Cloud Broker

IaaS Broker

Service Catalog

Page 28: Dhananjay Sathe, Lead rapyuta - schd.ws€¦ · Docker registry API Pods allow coupling related software at runtime Host isolation Pluggable runtime User Workload Nodes kubelet kubelet

Cloud Controller

Render to Cluster (eg. Helm/Templates)

Service Catalog

Platform Broker

Device Broker

Cloud Broker

IaaS Broker

Service Catalog

The Platform Broker

Page 29: Dhananjay Sathe, Lead rapyuta - schd.ws€¦ · Docker registry API Pods allow coupling related software at runtime Host isolation Pluggable runtime User Workload Nodes kubelet kubelet

Service Catalog

Platform Broker

Device Broker

Cloud Broker

IaaS Broker

Service Catalog

Control Channel

Device Controller

The Platform Broker

Page 30: Dhananjay Sathe, Lead rapyuta - schd.ws€¦ · Docker registry API Pods allow coupling related software at runtime Host isolation Pluggable runtime User Workload Nodes kubelet kubelet

Training the Broker{ "apiVersion":"v1.0.0", "name":"cloud_pub_sub", "plans":[ { "name":"default", "components":[ { "name":"listener", "cloudInfra":{ "replicas":1}, "requiredRuntime":"cloud", "executables":[ { "docker":"rapyutians/listener “, cmd":["roslaunch listener listener.launch"]}], }, { "name":"talker", "ros":{ "topics":[ { "name":"/telemetry"}], "isROS":true }, "requiredRuntime":"device", "executables":[ { "git":"https://github.com/rapyuta/talker", " cmd":["roslaunch talker talker.launch"]}], }] } ]}

Page 31: Dhananjay Sathe, Lead rapyuta - schd.ws€¦ · Docker registry API Pods allow coupling related software at runtime Host isolation Pluggable runtime User Workload Nodes kubelet kubelet

ManifestPlatform BrokerAdd Service Class

DataStore

Persist Service Class Objects

Training the Broker

Page 32: Dhananjay Sathe, Lead rapyuta - schd.ws€¦ · Docker registry API Pods allow coupling related software at runtime Host isolation Pluggable runtime User Workload Nodes kubelet kubelet

Unlocking rapyuta.io Platform value

Page 33: Dhananjay Sathe, Lead rapyuta - schd.ws€¦ · Docker registry API Pods allow coupling related software at runtime Host isolation Pluggable runtime User Workload Nodes kubelet kubelet

Dynamic multi-robot orchestration

Page 34: Dhananjay Sathe, Lead rapyuta - schd.ws€¦ · Docker registry API Pods allow coupling related software at runtime Host isolation Pluggable runtime User Workload Nodes kubelet kubelet

● Federation

● Custom Resource Definitions

● KubeProxy

● VirtualKube

● TUF Conformance

● Opentracing Extended

Foreglimpse

Page 35: Dhananjay Sathe, Lead rapyuta - schd.ws€¦ · Docker registry API Pods allow coupling related software at runtime Host isolation Pluggable runtime User Workload Nodes kubelet kubelet

Acknowledgements

Page 36: Dhananjay Sathe, Lead rapyuta - schd.ws€¦ · Docker registry API Pods allow coupling related software at runtime Host isolation Pluggable runtime User Workload Nodes kubelet kubelet

Questions?