NOVEMBER 2019CIOAPPLICATIONS.COM9dependencies. It is a lightweight, standalone, and executable package of software that includes everything needed to run an application.A new architectural pattern is born out of the need to modernize the technological and infrastructural management, and maintenance of microservices. This technology is called Service Mesh. It removes resilient capabilities that are being manually coded by the developers within microservices as it now can be handled within Service Mesh. Service mesh improves the infrastructure processes by simplifying the management of different networking capabilities such as weighted routing, traffic splitting, etc. What is a Service Mesh?It is a configurable low latency infrastructure layer designed to handle a high volume of network-based interprocess communication among application infrastructure services using application programming interfaces (APIs). It ensures that communication among containerized and often ephemeral application infrastructure services is fast, reliable, and secure. It also provides critical capabilities including service discovery, load balancing, encryption, observability, traceability, authentication and authorization, and support for the circuit breaker pattern.Service mesh works by using a proxy instance called sidecar. Sidecars handle interservice communications, monitoring, and security related concerns. The sidecar proxy manages the security which include encryption, data integrity, and authentication. The fault tolerance capabilities implemented in sidecar proxy include circuit breaking, rate limiting, bulk heading, automatic retrying, response caching, etc.Converting microservice to use Service MeshService Mesh divides its architecture into two categories: control planes, and data planes. The control plane manages the configuration of the data plane. Its features include control plane UI/CLI, workload scheduler, service discovery, and sidecar proxy configuration APIs. Some of the data plane capabilities include application health-checks, routing, load balancing, authentication and authorization, and observability. Most of the implementation of Service Mesh uses Kubernetes as its platform. Service mesh has improved the load balancing, and autoscaling capabilities that Kubernetes provides to microservices.There are multiple service mesh implementation of control planes and data planes. Control plane implementations include Istio, Nelson, Hashicorp Consul Connect, Nginx Controller, AWS App-mesh, etc. The data plane implementations include HAProxy, Linkerd, traefik, Envoy, Hashicorp Consul, and Nginx sidecar proxies. On top of data and control planes, service mesh orchestrations are also available whichinclude Aspen Mesh, Flagger, SuperGloo, solo.io, etc. Converting to service mesh would again change the technology and infrastructure landscape of the microservices; but its sole purpose is to improve and simplify it. At this time, it could be treated as a modern way of implementing the microservices because of its inherent features that include weighted routing, circuit breaking, traffic shifting and limiting, etc. The developers would continue to focus on software development, and not worry about the complexity of re-implementing resilient microservice features that service mesh already provides. The diagram below shows a service mesh implementation using Istio. The observability and traceability are represented by the Tracing and Monitoring capabilities. The weighted routing, circuit breaking, and traffic shifting functionalities are represented on the sidecar proxies. The Developers community do not have to configure technology to support load balancing, autoscaling, weighted routing, traffic splitting, and circuit breaking in their Microservices. These capabilities are provided by the Service Mesh technology. With Service Mesh, companies can focus on solving business requirements, software development, and finally, product delivery. A new architectural pattern is born out of the need to modernize the technological and infrastructural management, and maintenance of microservices. This technology is called Service MeshPolerio T. Babao III
< Page 8 | Page 10 >