Java Software Development

Micro-services Kubernetes Others

Let's talk!

  

Micro-services – Service mesh

Posted at May 16th, 2018
Posted by yves
Tags: Tags: , ,
Categories: microservices

More and more articles and videos are popping up over the internet around micro-services. It’s almost like discovering a new hobby. It’s still fairly common to see monolith applications though. A monolith is not always a bad situation depending on the code quality/maintenance and the personnel (especially on the developers and operations side).

 

Tired of solving the same problems?

In micro-services projects, there are always general common problems (scalability, security, etc.) and there many options, from integrating existing components/libraries/platforms or doing it yourself.

A service mesh could help with those “general considerations” that you pretty much deal with constantly.

To put it in simple words, a service mesh allows leveraging a platform for things that you would either code or import into your applications/infrastructure (logging, discovery, authentication, metrics, etc.).

“new micro-service project -> similar general problems to solve, but variations around infrastructure, software and architecture decisions”

 

Enter Istio, a service mesh

Istio is “an open platform to connect, manage and secure micro-services”. I experimented with Istio early this year on Minikube. The documentation was more or less OK and I managed to try what I needed. In the future, accordingly to the project and the team, Istio could be a strong candidate on my list for a service mesh, within a Kubernetes environment. There are still several corporations using their own in-house solutions that will never be open-sourced, for big software companies it’s no big deal.

 

Towards simpler approaches

While there are alternatives to Istio, from easier to more complex (Linkerd, etc.), I think that service mesh implementations should aim to be “dead simple”. Flexibility and pluggability is often the key.

Often, I prefer flexibility over features, especially when I encounter “good” features that I cannot customize declaratively or via hooks over a simple protocol. As long as I can “register” my own “component” via some API (REST, grpc or whatever) without being forced to write some Go code, I’m a happy customer. Built-in features are sometimes limited to simplistic use-cases, “perceived as useful and fairly common”.

 

Presentation

Sometimes you may not need/want a full blown service mesh. In this Youtube video, I’m showing a possible evolution of a sidecar “authentication component”, acting as a security proxy for a micro-service.

 

Share this post
Facebook Twitter Digg Plusone Reddit Stumbleupon



© 2012-2024, Rimero Solutions Inc.

Slideshare presentations

Grails and build tools


Recent Blog posts

Micro-services – Service mesh


Latest tweets

Added maven plugin support to maven-wrapper.


Brand-new screen-casts

Introduction to ant-wrapper and maven-wrapper


Github activity

Apache Ant Git tasks