Service Mesh With Istio
Abstract
With the development of technologies and architectures, high availability is now
concerned as one of the most crucial characteristics of infrastructure and application. Thus,
there’re many tools that deliver the high availability to our system/application. Docker,
Kubernetes are the very first tools that deliver high availability to the infrastructure. Those
above tools follow the microservice architecture to deliver not only the availability but also
standardization to our infrastructure. While Docker delivers the isolation for infrastructure,
Kubernetes performs the scalability to maintain system reliability. Kubernetes also delivers
the auto restart function for pods (Kubernetes component) to deliver the availability layer:
auto fixing.
However, microservice didn’t bring enough availability tactics to our infrastructure.
There’re challenges or methods that microservice cannot deliver to infrastructure. Thus,
Service Mesh is invented in order to meet the availability tactics. With the traffic
management and control via infrastructure in layer 4, Service Mesh allows us to perform
the control traffic for moving parts of microservice application. Thus, availability tactics
interact with the layer 4 of infrastructure and can be performed with standardization.
In this thesis, I will apply methods in availability tactics researched to the real
infrastructure. I will apply Kubernetes and Istio in order to adopt the tactics of availability.
Istio allows us to perform testing new versions of applications in a real production
environment, create canaries for parallel deployment, which helps to ensure the availability
of infrastructure. Moreover, Istio can work as ingress controller and api gateway, which
also helps developers in their routing service call.