dhananjay sathe, lead rapyuta - schd.ws€¦ · docker registry api pods allow coupling related...
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](https://reader030.vdocuments.site/reader030/viewer/2022020120/5ae356887f8b9a7b218cf516/html5/thumbnails/1.jpg)
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](https://reader030.vdocuments.site/reader030/viewer/2022020120/5ae356887f8b9a7b218cf516/html5/thumbnails/2.jpg)
![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](https://reader030.vdocuments.site/reader030/viewer/2022020120/5ae356887f8b9a7b218cf516/html5/thumbnails/3.jpg)
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](https://reader030.vdocuments.site/reader030/viewer/2022020120/5ae356887f8b9a7b218cf516/html5/thumbnails/4.jpg)
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](https://reader030.vdocuments.site/reader030/viewer/2022020120/5ae356887f8b9a7b218cf516/html5/thumbnails/5.jpg)
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](https://reader030.vdocuments.site/reader030/viewer/2022020120/5ae356887f8b9a7b218cf516/html5/thumbnails/6.jpg)
"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](https://reader030.vdocuments.site/reader030/viewer/2022020120/5ae356887f8b9a7b218cf516/html5/thumbnails/7.jpg)
"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](https://reader030.vdocuments.site/reader030/viewer/2022020120/5ae356887f8b9a7b218cf516/html5/thumbnails/8.jpg)
"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](https://reader030.vdocuments.site/reader030/viewer/2022020120/5ae356887f8b9a7b218cf516/html5/thumbnails/9.jpg)
* 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](https://reader030.vdocuments.site/reader030/viewer/2022020120/5ae356887f8b9a7b218cf516/html5/thumbnails/10.jpg)
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](https://reader030.vdocuments.site/reader030/viewer/2022020120/5ae356887f8b9a7b218cf516/html5/thumbnails/11.jpg)
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](https://reader030.vdocuments.site/reader030/viewer/2022020120/5ae356887f8b9a7b218cf516/html5/thumbnails/12.jpg)
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](https://reader030.vdocuments.site/reader030/viewer/2022020120/5ae356887f8b9a7b218cf516/html5/thumbnails/13.jpg)
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](https://reader030.vdocuments.site/reader030/viewer/2022020120/5ae356887f8b9a7b218cf516/html5/thumbnails/14.jpg)
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](https://reader030.vdocuments.site/reader030/viewer/2022020120/5ae356887f8b9a7b218cf516/html5/thumbnails/15.jpg)
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](https://reader030.vdocuments.site/reader030/viewer/2022020120/5ae356887f8b9a7b218cf516/html5/thumbnails/16.jpg)
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](https://reader030.vdocuments.site/reader030/viewer/2022020120/5ae356887f8b9a7b218cf516/html5/thumbnails/17.jpg)
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](https://reader030.vdocuments.site/reader030/viewer/2022020120/5ae356887f8b9a7b218cf516/html5/thumbnails/18.jpg)
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](https://reader030.vdocuments.site/reader030/viewer/2022020120/5ae356887f8b9a7b218cf516/html5/thumbnails/19.jpg)
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](https://reader030.vdocuments.site/reader030/viewer/2022020120/5ae356887f8b9a7b218cf516/html5/thumbnails/20.jpg)
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](https://reader030.vdocuments.site/reader030/viewer/2022020120/5ae356887f8b9a7b218cf516/html5/thumbnails/21.jpg)
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](https://reader030.vdocuments.site/reader030/viewer/2022020120/5ae356887f8b9a7b218cf516/html5/thumbnails/22.jpg)
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](https://reader030.vdocuments.site/reader030/viewer/2022020120/5ae356887f8b9a7b218cf516/html5/thumbnails/23.jpg)
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](https://reader030.vdocuments.site/reader030/viewer/2022020120/5ae356887f8b9a7b218cf516/html5/thumbnails/24.jpg)
● 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](https://reader030.vdocuments.site/reader030/viewer/2022020120/5ae356887f8b9a7b218cf516/html5/thumbnails/25.jpg)
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](https://reader030.vdocuments.site/reader030/viewer/2022020120/5ae356887f8b9a7b218cf516/html5/thumbnails/26.jpg)
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](https://reader030.vdocuments.site/reader030/viewer/2022020120/5ae356887f8b9a7b218cf516/html5/thumbnails/27.jpg)
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](https://reader030.vdocuments.site/reader030/viewer/2022020120/5ae356887f8b9a7b218cf516/html5/thumbnails/28.jpg)
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](https://reader030.vdocuments.site/reader030/viewer/2022020120/5ae356887f8b9a7b218cf516/html5/thumbnails/29.jpg)
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](https://reader030.vdocuments.site/reader030/viewer/2022020120/5ae356887f8b9a7b218cf516/html5/thumbnails/30.jpg)
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](https://reader030.vdocuments.site/reader030/viewer/2022020120/5ae356887f8b9a7b218cf516/html5/thumbnails/31.jpg)
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](https://reader030.vdocuments.site/reader030/viewer/2022020120/5ae356887f8b9a7b218cf516/html5/thumbnails/32.jpg)
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](https://reader030.vdocuments.site/reader030/viewer/2022020120/5ae356887f8b9a7b218cf516/html5/thumbnails/33.jpg)
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](https://reader030.vdocuments.site/reader030/viewer/2022020120/5ae356887f8b9a7b218cf516/html5/thumbnails/34.jpg)
● 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](https://reader030.vdocuments.site/reader030/viewer/2022020120/5ae356887f8b9a7b218cf516/html5/thumbnails/35.jpg)
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](https://reader030.vdocuments.site/reader030/viewer/2022020120/5ae356887f8b9a7b218cf516/html5/thumbnails/36.jpg)
Questions?