$30 off During Our Annual Pro Sale. View Details »

Service Mesh Interface

Service Mesh Interface

Service Mesh is the latest buzz word in the cloud native ecosystem and while everyone is talking about it, they are also asking the same questions like: what is it and do I need it, doesn’t it just add more complexity and which one should I use?

Recently a consortium of companies released a generic interface for service mesh technology. The goal of this abstraction layer is to provide an easy to consume API that can be implemented by many different service mesh implementations (e.g. Istio, Linkerd, Consul Connect, etc). In providing an abstraction between users and implementation, users are free to adopt service mesh concepts without being bound to any particular implementation. Likewise, tooling and ecosystem products for Service Mesh can evolve without having to bet on any specific mesh technology.

This talk will cover the SMI specification, it’s core components, implementations, and a look forward at this approach. Additionally, we will explore the possibilities to extend service mesh architecture with new capabilities for microservices environments.

Lachlan Evenson

August 22, 2019

More Decks by Lachlan Evenson

Other Decks in Technology


  1. Service Mesh Interface

  2. Lachlan Evenson @LachlanEvenson • Program Manager in Azure Container Compute

    • Our team is responsible for building and supporting upstream open source projects • Kubernetes 1.16 release lead • CNCF Ambassador • Loves learning new languages • We’re Hiring!
  3. Policy Routing Telemetry Smart endpoints, dumb pipes This has worked

    for the past 25 years But with so many endpoints today, how do you manage @LachlanEvenson
  4. Service Mesh technology Smarter pipes @LachlanEvenson

  5. …and more @LachlanEvenson

  6. Service Mesh Interface (SMI) for Kubernetes In partnership with @LachlanEvenson

  7. Service Mesh Interface (SMI) for Kubernetes A Kubernetes interface that

    provides traffic routing, traffic telemetry, and traffic policy Apps Tooling Ecosystem Standardized Standard interface for service mesh on Kubernetes Simplified Basic feature set to address most common scenarios Extensible Support for new features as they become widely available …and more Service Mesh Interface @LachlanEvenson
  8. What SMI Covers Service Mesh Interface is a specification that

    covers the most common service mesh capabilities Traffic policy apply policies like identity and transport encryption across services Traffic telemetry capture key metrics like error rate and latency between services Traffic management shift traffic between different services Kubernetes Native The SMI is specified as a collection of Kubernetes Custom Resource Definitions (CRD) and Extension API Servers. Provider Agnostic The goal of the SMI API is to provide a common, portable set of service mesh APIs which a Kubernetes user can use in a provider agnostic manner. @LachlanEvenson
  9. This isn’t a new concept If the SMI concept sounds

    familiar, that’s because it is Apps Tooling Ecosystem Ingress @LachlanEvenson
  10. How is SMI implemented? @LachlanEvenson Adapter Adapter Native

  11. Meet the APIs @LachlanEvenson Traffic management shift traffic between different

  12. Meet the APIs @LachlanEvenson Traffic telemetry capture key metrics like

    error rate and latency between services
  13. Meet the APIs @LachlanEvenson Traffic policy apply policies like identity

    and transport encryption across services
  14. Demo

  15. Traffic Access Traffic Metrics Traffic Split Service Mesh Hub

  16. SMI – Traffic Split

  17. None
  18. SMI – Traffic Metrics

  19. None
  20. SMI – Traffic Access

  21. None
  22. SMI – Service Mesh Hub

  23. ServiceMeshHub.io Dashboard • Supports the SMI Spec • Unified dashboard

    for service meshes • Run the Hub on any cluster • Simplifies mesh installation and auto- discovers existing meshes
  24. ServiceMeshHub.io Extensions • Browse and install from a catalog of

    3rd party software to extend your service mesh • Or build a custom extension for your environment (SDK coming soon) Or build your own!
  25. So, why SMI? Because it’s faster, simpler, and friendlier Get

    started quickly Simpler is better Ecosystem friendly
  26. Stabilize current APIs API integrations into Linkerd, Consul and Istio

    Provide Istio adapters for all SMI APIs Develop more APIs based on community feedback The future of SMI @LachlanEvenson
  27. smi-spec.io

  28. Links • https://github.com/deislabs/smi-spec • https://docs.flagger.app/usage/linkerd-progressive-delivery • https://docs.flagger.app/tutorials/flagger-smi-istio • https://github.com/deislabs/smi-adapter-istio •

    https://github.com/deislabs/smi-metrics • http://servicemeshhub.io/meshes/ @LachlanEvenson