{"id":620166,"date":"2019-12-06T11:31:25","date_gmt":"2019-12-06T19:31:25","guid":{"rendered":"https:\/\/www.microsoft.com\/en-us\/research\/?post_type=msr-project&p=620166"},"modified":"2019-12-06T11:31:25","modified_gmt":"2019-12-06T19:31:25","slug":"hybridkube","status":"publish","type":"msr-project","link":"https:\/\/www.microsoft.com\/en-us\/research\/project\/hybridkube\/","title":{"rendered":"HybridKube: Kubernetes for Hybrid Edge-Cloud Clusters"},"content":{"rendered":"
Many computation pipelines these days span both the edge and the cloud, or across multiple locations. There are several examples of this.<\/p>\n
Containers and container-orchestration frameworks such as Kubernetes are currently widely used in the cloud or in on-premise clusters to provide an easy way to deploy computation workloads and pipelines and provide scalability and high-availability (redundancy). However, such frameworks currently have several limitations.<\/p>\n
They assume that the cluster is a well-provisioned fully connected mesh, i.e. the communication across any two nodes is equally fast and performant, and they also assume that the cost of running computation in any location is the same. Thus each micro-service in the pipeline is independently placed in the cluster, and each location is equally considered for placement so long as the resource requirements of the micro-service are being met.<\/p>\n
In this project, we realize that in the hybrid edge-cloud case, this is not true. Certain portions of the application would definitely prefer to run at the edge. Certain other portions may also want to be co-located with other micro-services in order to minimize latency\/cost.<\/p>\n
HybridKube provides Kubernetes extensions which allow for optimal placement utilizing cost functions for “pipelines”, which are a collection of micro-services that communicate with each other (multiple deployments in Kubernetes terminology). In addition to placement, we aim to provide optimal request forwarding from one micro-service to the next by optimally configuring the service mesh.<\/p>\n","protected":false},"excerpt":{"rendered":"
HybridKube provides Kubernetes extensions which allow for optimal placement utilizing cost functions for “pipelines”, which are a collection of micro-services that communicate with each other (multiple deployments in Kubernetes terminology). In addition to placement, we aim to provide optimal request forwarding from one micro-service to the next by optimally configuring the service mesh.<\/p>\n","protected":false},"featured_media":626094,"template":"","meta":{"msr-url-field":"","msr-podcast-episode":"","msrModifiedDate":"","msrModifiedDateEnabled":false,"ep_exclude_from_search":false,"_classifai_error":"","footnotes":""},"research-area":[13547],"msr-locale":[268875],"msr-impact-theme":[],"msr-pillar":[],"class_list":["post-620166","msr-project","type-msr-project","status-publish","has-post-thumbnail","hentry","msr-research-area-systems-and-networking","msr-locale-en_us","msr-archive-status-active"],"msr_project_start":"2019-05-01","related-publications":[],"related-downloads":[],"related-videos":[],"related-groups":[],"related-events":[],"related-opportunities":[],"related-posts":[],"related-articles":[],"tab-content":[],"slides":[],"related-researchers":[{"type":"user_nicename","display_name":"Victor Bahl","user_id":31167,"people_section":"Section name 0","alias":"bahl"},{"type":"user_nicename","display_name":"Landon Cox","user_id":37527,"people_section":"Section name 0","alias":"lacox"},{"type":"user_nicename","display_name":"Alex Crown","user_id":30817,"people_section":"Section name 0","alias":"acrown"},{"type":"user_nicename","display_name":"Sanjeev Mehrotra","user_id":33516,"people_section":"Section name 0","alias":"sanjeevm"}],"msr_research_lab":[],"msr_impact_theme":[],"_links":{"self":[{"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-project\/620166","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-project"}],"about":[{"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/types\/msr-project"}],"version-history":[{"count":5,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-project\/620166\/revisions"}],"predecessor-version":[{"id":626100,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-project\/620166\/revisions\/626100"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/media\/626094"}],"wp:attachment":[{"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/media?parent=620166"}],"wp:term":[{"taxonomy":"msr-research-area","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/research-area?post=620166"},{"taxonomy":"msr-locale","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-locale?post=620166"},{"taxonomy":"msr-impact-theme","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-impact-theme?post=620166"},{"taxonomy":"msr-pillar","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-pillar?post=620166"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}