Micro Profile Meets Istio Emily Jiang Liberty Architect
Micro. Profile Meets Istio Emily Jiang – Liberty Architect for CDI and Micro. Profile 1 © 2017 IBM Corporation
What does Micro. Profile do? • Vendor-neutral programming model, designed in the open, for Java microservices • Provide core capabilities for building fault tolerant, scalable, microservices • Increasing the rate and pace of innovation beyond Java EE Standardizing microservices in enterprise Java via the Micro. Profile community Config Fault Tolerance Health Check externalize configuration to improve portability build robust behavior to cope with unexpected failures ensure services are running and meeting SLAs Metrics Security (JWT) Open Tracing understand provides role the based access Tracing the interactions control microservices between (RBAC) for invocation services microservice chain while running endpoints Open API Rest Client Easily document microservcie APIs Simplify the creation of rest clients Invite developers to join the Micro. Profile community and influence the future http: //microprofile. io/ © 2017 IBM Corporation Page 2 © 2017 IBM Corporation
What is Service Mesh? A dedicated infrastructure layer to make service to service communication fast, safe and reliable © 2017 IBM Corporation
What does ‘Service Mesh’ do? A network for services, not bytes ● Observability ● Resiliency ● Traffic Control ● Security ● Policy Enforcement © 2017 IBM Corporation
Istio A service mesh designed to connect, manage and secure your microservices © 2017 IBM Corporation
Istio - Putting it all together Control Plane API Mixer Pilot Control flow during request processing Security Discovery & Config data to proxies Out-of-band telemetry propagation TLS certs to proxy Telemetry Policy checks Pod Traffic is transparently intercepted and proxied. App is unaware of sidecar’s presence proxy svc. A svc. B Service A Service B © 2017 IBM Corporation
▪ Micro. Profile provides the following specifications – Config – Fault Tolerance – Health Check – Metrics – JWT – Open API – Open Tracing – Rest Client ▪ Istio provides ▪ Fault Tolerance ▪ Metrics ▪ Open Tracing ▪ Fault Injection © 2017 IBM Corporation
Workgroup – Work in Micro. Profile community – Define the specification in microprofile-service-mesh (https: //github. com/eclipse/microprofile-service-mesh) – The people: Emily, Vadim Eisenberg, John Alcorn, Scott Stark (Red Hat), Mike Croft (Payara) and the group is growing rapidly… Ray Tsang (Google) is also interested. © 2017 IBM Corporation
Istio and Micro. Profile – samples in progress Control Plane API Mixer Pilot Control flow during request processing Security Discovery & Config data to proxies Out-of-band telemetry propagation TLS certs to proxy Telemetry Policy checks Pod Traffic is transparently intercepted and proxied. App is unaware of sidecar’s presence proxy svc. A svc. B Service A Service B © 2017 IBM Corporation
Micro. Profile Config. Map io_openliberty_guides_port_number © 2017 IBM Corporation
Micro. Profile Health Check /health © 2017 IBM Corporation
Micro. Profile Metrics Add more metrics © 2017 IBM Corporation
Micro. Profile Open API /openapi © 2017 IBM Corporation
Micro. Profile JWT Propagate authentication info © 2017 IBM Corporation
Micro. Profile Open Tracing All JAX-RS requests traced 7 http headers required by Istio propagated © 2017 IBM Corporation
Micro. Profile Fault Tolerance Retry Timeout Circuit. Breaker Bulkhead Fallback Retry Timeout Circuit. Breaker © 2017 IBM Corporation
Fault Tolerance difference • • Apply to all communications Fine-grained to individual method • Http request only (Retry, Timeout, Circuit. Breaker), Connection pool (tcp and http) © 2017 IBM Corporation
Fault Tolerance Conflict scenario Multiple microservices use http for communication © 2017 IBM Corporation
Micro. Profile Fault Tolerance with Istio – current approach @Retry @Timeout @Circuit. Breaker @Bulkhead @Fallback Retry Timeout Circuit. Breaker Bulkhead © 2017 IBM Corporation
Ecosystem to be – more complementary MP Config source MP Config © 2017 IBM Corporation
- Slides: 20