Microservices have been trending for years and are considered essential for most projects. Despite their desirability, they can also be a good way to waste money if they're applied unnecessarily.
[ Read 5 things enterprise architects should know about microservices ]
I regularly observe situations where organizations decide to divide their monolithic application into microservices. Sometimes this is done without a valid reason and isn't the best option. How can you know when it's worth the effort to make the switch?
Dividing your monolith into microservices can solve lots of problems. Before migrating, your first task is assessing if your project has issues that microservices can fix.
Things microservices can fix
The following issues are things that can justify a transition to microservices.
- Performance deterioration and development difficulties: When it's increasingly difficult to develop new features, migrating to microservices is justified. Microservices offer better system management and a clearer development process.
- Low fault tolerance: One of the main advantages of microservices is that even if one element is down, the system generally continues to work for end users. Be careful, because although it is popular with users, it's sometimes not the best solution. For instance, when something goes wrong in one part of the system and users can continue working in another, the wrong data might be displayed to them. Therefore, it is sometimes necessary for the entire system to be shut down.
- Towering infrastructure costs: Microservices provide more infrastructure scalability than monoliths. Infrastructure costs are optimized in the microservice model because you pay only for the capacity that you use.
- Individual components require partial scalability: Sometimes a couple of system components become overloaded and require more resources while the rest of the system works below capacity. In a monolith, partial scaling is not possible.
- Working in teams that rarely overlap: In a complex solution, separate subteams form within the engineering team. Usually, each subteam is responsible for a single part of the solution. The teams rarely interact with each other. When this occurs, it makes sense to divide the monolith into separate microservices so that each team maintains its own function.
[ Build a flexible foundation for your organization. Download An architect's guide to multicloud infrastructure. ]
Five steps to a successful microservice architecture
If any of those difficulties impact your project, it probably makes sense to switch to microservices. Once you have decided to go ahead, you need to do it right. Poorly implemented microservices are a waste of time and energy. You will be frustrated because you won't see improvements in your solution's development or performance.
Here's a pipeline to avoid the common mistakes in microservices migration projects.
1. Clearly define your goal and ensure that the whole team is on the same page
Start with the following questions:
- What are the biggest obstacles to your project's success?
- Will the basic benefits of microservices eliminate these obstacles?
- What benefits do you expect from microservices?
- Are all stakeholders on board?
All of these questions are critical. Refer back to practical improvements you can expect from moving to microservices. You should ensure they are what your project needs.
2. Research, research, research
Get your software architect to conduct a detailed study of your solution's architecture and identify dependencies between elements. Get an understanding of how realistic it is to separate these elements and what resources are needed. Once you have basic estimates of what you need, double or triple them for a realistic figure.
It may take an architect several weeks to analyze the call chains for each endpoint. There may be too many cross-dependencies that would be difficult, if not impossible, to separate.
[ Read 3 tips for enterprise architects to solve dependencies ]
If the legacy project was written according to the principle "the more reused code, the better," then the risk of cross-dependency problems is bigger. When you get into this situation, you can either spend more time on the transition or simply ignore the dynamic code analyzer. But this creates a potential future problem. A comprehensive analysis from an architect will help you optimize the work and avoid unpleasant surprises.
3. Map out the work
Pro tip: When approving the future pipeline of work, don't forget to revise your backlog. It may turn out that migration to microservices can be combined with the development plan.
4. Allocate time and resources correctly
Allocate time for this work. Don't leave it as a second priority after the core development. Involve the whole team if possible, not just a few engineers. You will get better results if the developers responsible for a particular section of code are in charge of that respective microservice.
[ Learn best practices for implementing automation across your organization. Download The automation architect's handbook. ]
5. Plan your team's future workflow and the workload of each engineer
This step is worth paying special attention to. It's a misconception to assume that microservices will optimize workflow in a way that lets you shrink your team.
A big value play here is to reorganize your team. I strongly recommend that you develop a system of principal engineers, each responsible for up to five microservices (making changes, code reviews, and so on). It will contribute towards a sense of personal responsibility, reduce confusion, and make the process more streamlined. At the same time, it's unlikely that one principal engineer can oversee more than five microservices, so keep that in mind when optimizing your team.
Wrapping up
Moving to microservices is not a cure-all; it's also not an easy process. The five steps outlined above will save you from underestimating the time and resources required to successfully transition to microservices. Most importantly, this five-step plan will ensure that the transition brings long-term benefits.
[ Become a Red Hat Certified Architect and boost your career. ]
À propos de l'auteur
Technical Project Manager at Glorium Technologies with vast experience in implementing complex projects for enterprise companies as well as startups
Parcourir par canal
Automatisation
Les dernières nouveautés en matière d'automatisation informatique pour les technologies, les équipes et les environnements
Intelligence artificielle
Actualité sur les plateformes qui permettent aux clients d'exécuter des charges de travail d'IA sur tout type d'environnement
Cloud hybride ouvert
Découvrez comment créer un avenir flexible grâce au cloud hybride
Sécurité
Les dernières actualités sur la façon dont nous réduisons les risques dans tous les environnements et technologies
Edge computing
Actualité sur les plateformes qui simplifient les opérations en périphérie
Infrastructure
Les dernières nouveautés sur la plateforme Linux d'entreprise leader au monde
Applications
À l’intérieur de nos solutions aux défis d’application les plus difficiles
Programmes originaux
Histoires passionnantes de créateurs et de leaders de technologies d'entreprise
Produits
- Red Hat Enterprise Linux
- Red Hat OpenShift
- Red Hat Ansible Automation Platform
- Services cloud
- Voir tous les produits
Outils
- Formation et certification
- Mon compte
- Assistance client
- Ressources développeurs
- Rechercher un partenaire
- Red Hat Ecosystem Catalog
- Calculateur de valeur Red Hat
- Documentation
Essayer, acheter et vendre
Communication
- Contacter le service commercial
- Contactez notre service clientèle
- Contacter le service de formation
- Réseaux sociaux
À propos de Red Hat
Premier éditeur mondial de solutions Open Source pour les entreprises, nous fournissons des technologies Linux, cloud, de conteneurs et Kubernetes. Nous proposons des solutions stables qui aident les entreprises à jongler avec les divers environnements et plateformes, du cœur du datacenter à la périphérie du réseau.
Sélectionner une langue
Red Hat legal and privacy links
- À propos de Red Hat
- Carrières
- Événements
- Bureaux
- Contacter Red Hat
- Lire le blog Red Hat
- Diversité, équité et inclusion
- Cool Stuff Store
- Red Hat Summit