Microservices are small and independent features and services. Due to the way they communicate with each other they are now replacing complex and inflexible monolith software structures. How we approach building system architectures is changing. Damien Plard, system engineer at Neofonie, is one of today’s game changing developers and talks about some of the challenges.
What you are working on currently?
I’m working closely with my colleagues for one of our clients who is suffering from “monolith-syndrome”, as I call it. Last year we started building a proof of concept in order to switch to a full-stack microservices architecture. Within three weeks we created our first API and published it on the internet. Step-by-step we remove pieces from our monoliths and instead implement new features as microservices.
Why are you using microservices?
We wanted to use new technologies. With the old infrastructure it was not possible. So the goal was not to create a new solution again but to build our last one. This is not easy. Well, this is impossible. So we decided to build a platform capable of continuously change.
That means we need to have simple and decoupled components. Furthermore we wanted to minimize the constraints from the platform and be able to choose the best tools depending on the use-cases. So we implemented full-stack microservices.
How did you implement Continuous Deployment?
It was quite simple since we implemented it in the beginning: our minimum viable product is built around continuous deployment (CD). Now it’s a constraint of the platform: if we have to add a new component, it has to be compatible with CD. During our daily business we have an average of 15 minutes between a “git push” (a change in the code) and the final deployment.
Continuous deployment has really helped us to focus on creating software without switching between tasks or waiting for the next release.
What was the biggest challenge?
We learnt a lot. Our motto is to choose the best tools for what we want to produce. The choice of which technology to use is in the hands of the teams responsible for the services. We started with services written in Java and now we have others written in golang and Node.js. We also started with MongoDB but a new service is planned which will implement Cassandra.
So the challenge is how to manage the knowledge.We made it a priority to have code reviews on all pull-requests and in cases where a brand new tool or technology is to be implemented we employ pair programming. The good thing with the microservice approach is that we keep the complexity low. Even if we make a mistake, it’s local and easy to fix.
On a non-technical level, we had to structure a team in a devops/agile way as the microservices architecture requires a cross-functional and transparent environment. In addition, since we apply the motto “You build it, you run it”, we have also changed our support resources.
How do other developers react to microservices?
We presented how we rely on Consul and Docker for development and production at the DevOpsDays 2015 in Berlin and at the DevOps meetup group of Berlin in 2016.We also presented our platform to Docker, Inc. The reactions have been great. For other software engineers, the two biggest changes are the continuous deployment and our full-stack microservices architecture. Everything which is not pure development is automated and they can choose the best languages or tools for the situation (Java, golang, Node.js, MongoDB, Cassandra,…). We also demonstrated the advantages of microservices to other clients and received positive feedbacks.
What kind of technologies and topics are you interested in?
Until now I have been very focused on the simplification of infrastructures and the automation. Now I’m focused on improving our tools in order to further reduce the workload for my colleagues. I’m confident we will soon be able to implement a new microservice in less than 20 minutes.
For beginners, we offer Docker Workshops in Berlin, Cologne, Frankfurt and Munich
More about Docker Workshop
In unserer Serie „Digitalmacher“ stellen wir Entwickler, Projektmanager, Softwarearchitekten und Designer vor und sprechen über Methoden, Tools und Vorlieben. Sie geben uns Einblick in ihre Erfahrungen bei der Entstehung digitaler Anwendungen.
WIR SUCHEN DICH!
Neofonie sucht CMS Spezialisten, Software Developer, Projekt Manager und System Architekten.
Bewirb Dich jetzt.
Bildquelle: Shutterstock #163440992 Pikoso.kz