Homeinsightsmigration of a monolithic application to a microservices architecture
digital solutions
migration of a monolithic application to a microservices architecture
Itecor Paris · April 03, 2024
table of contents
mission
Client legal sector, european leader in professional publishing and the provision of legal and economic information services
Itecor client for 8 years
Average team size: 6 full time consultants
Average annual workload in days - Men: 1300
challenges
To capitalise on the achievements of an application developed over 8 years ago, while modernising the technologies and delivery methods
To support, train and raise awareness of the teams to the structural evolutions
success catalysts
1 full-time Itecor architect
Strong DevOps culture already present at the client
Mixed team of developers and automation specialists on site
Team of Itecor performance experts in charge of analysing the quality and the progress achieved delivery after delivery
context
Over the last 10 years, the DevOps movement has become a major force in information systems.
The DevOps/architecture pairing has become a key parameter in the success of projects. The design of a high-performance and resilient architecture is an essential element to take into account in this context.
It is also possible to re-architect an existing application to meet these new DevOps challenges and improve the quality of an application.
To illustrate this approach, we offer you feedback from one of our customers, a major player in the field of legal document publishing.
solution
The team of Itecor consultants dedicated to this project has the task of regularly delivering a complex and reliable business application.
For three years, our client has already set up its own DevOps team and has largely begun the process of automating the deployment of its application.
The Itecor team works alongside the client in the following roles:
Design of a complete monolithic application architecture via a progressive strangler pattern methodology:
Redesign of the API in microservices architecture, a standard massively adopted by the market,
Review of the front end in a micro-frontend architecture in a multi-technology context: ASP.NET MVC, React, …
A database restructuring is envisaged in the longer term.
A progressive migration to Azure Cloud hosting.
Assistance with the DevOps function: administration of build and deployment pipelines.
Assistance with the migration of Azure DevOps pipelines to the new, more modular and reusable YAML writing model.
Migration of source control from TFSVC to Git, including training and awareness of the new practices among the teams.
Code quality awareness via SonarQube and the implementation of Quality Gates with Git Pull Requests.
The development of asynchronous inter-departmental communication using RabbitMQ.
Information sharing between micro-frontends using the Redis cache server.
Code reviews and inter-team sessions for the dissemination of best practices: naming conventions, code optimisation, caching, etc.
benefits & results
This migration has a large number of advantages:
A new architecture in line with the DevOps process offering a more regular and less risky delivery
Migration to the Azure Cloud significantly reducing the initial hosting costs
Improved DevOps processes based on the latest technologies
Improved source control tooling to optimise the productivity of development teams
Improved resilience and flexibility in infrastructure scalability
Improved code quality and maintainability
Overall optimisation of the quality of the product and positive feedback consolidating user loyalty.
.Net frameworks
0
programming languages and over 1 million lines of code
0
developers and testers spread over 4 teams
0
plus daily deployments in all environments
0
On the strength of these results, Itecor continues to reinforce its role as a "Trusted Advisor" and proposes new innovative service offers that meet the strategic expectations of this client.
We use cookies on our website to give you the most relevant experience by remembering your preferences and repeat visits. By clicking “Accept All”, you consent to the use of ALL the cookies. However, you may visit "Cookie Settings" to provide a controlled consent.
This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.
Necessary cookies are absolutely essential for the website to function properly. These cookies ensure basic functionalities and security features of the website, anonymously.
Cookie
Duration
Description
__hssrc
Session
This cookie is set by Hubspot whenever it changes the session cookie. The __hssrc cookie set to 1 indicates that the user has restarted the browser, and if the cookie does not exist, it is assumed to be a new session.
_GRECAPTCHA
5 months 27 days
This cookie is set by the Google recaptcha service to identify bots to protect the website against malicious spam attacks.
cookielawinfo-checkbox-advertisement
1 year
Set by the GDPR Cookie Consent plugin, this cookie is used to record the user consent for the cookies in the "Advertisement" category .
cookielawinfo-checkbox-analytics
11 months
This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Analytics".
cookielawinfo-checkbox-functional
11 months
The cookie is set by GDPR cookie consent to record the user consent for the cookies in the category "Functional".
cookielawinfo-checkbox-necessary
11 months
This cookie is set by GDPR Cookie Consent plugin. The cookies is used to store the user consent for the cookies in the category "Necessary".
cookielawinfo-checkbox-others
11 months
This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Other.
cookielawinfo-checkbox-performance
11 months
This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Performance".
CookieLawInfoConsent
1 year
CookieYes sets this cookie to record the default button state of the corresponding category and the status of CCPA. It works only in coordination with the primary cookie.
JSESSIONID
session
New Relic uses this cookie to store a session identifier so that New Relic can monitor session counts for an application.
viewed_cookie_policy
11 months
The cookie is set by the GDPR Cookie Consent plugin and is used to store whether or not user has consented to the use of cookies. It does not store any personal data.
Functional cookies help to perform certain functionalities like sharing the content of the website on social media platforms, collect feedbacks, and other third-party features.
Cookie
Duration
Description
__cf_bm
30 minutes
This cookie, set by Cloudflare, is used to support Cloudflare Bot Management.
__hssc
30 minutes
HubSpot sets this cookie to keep track of sessions and to determine if HubSpot should increment the session number and timestamps in the __hstc cookie.
Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.
Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics the number of visitors, bounce rate, traffic source, etc.
Cookie
Duration
Description
__hstc
1 year 24 days
This is the main cookie set by Hubspot, for tracking visitors. It contains the domain, initial timestamp (first visit), last timestamp (last visit), current timestamp (this visit), and session number (increments for each subsequent session).
_ga
2 years
The _ga cookie, installed by Google Analytics, calculates visitor, session and campaign data and also keeps track of site usage for the site's analytics report. The cookie stores information anonymously and assigns a randomly generated number to recognize unique visitors.
_ga_*
1 year 1 month 4 days
Google Analytics sets this cookie to store and count page views.
_ga_JYCPSB48B8
2 years
This cookie is installed by Google Analytics.
_gat_gtag_UA_*
1 minute
Google Analytics sets this cookie to store a unique user ID.
_gid
1 day
Google Analytics sets this cookie to store information on how visitors use a website while also creating an analytics report of the website's performance. Some of the collected data includes the number of visitors, their source, and the pages they visit anonymously.
CONSENT
16 years 2 months 25 days 10 hours
YouTube sets this cookie via embedded youtube-videos and registers anonymous statistical data.
hubspotutk
1 year 24 days
This cookie is used by HubSpot to keep track of the visitors to the website. This cookie is passed to Hubspot on form submission and used when deduplicating contacts.
Advertisement cookies are used to provide visitors with relevant ads and marketing campaigns. These cookies track visitors across websites and collect information to provide customized ads.
Cookie
Duration
Description
IDE
1 year 24 days
Google DoubleClick IDE cookies are used to store information about how the user uses the website to present them with relevant ads and according to the user profile.
test_cookie
15 minutes
The test_cookie is set by doubleclick.net and is used to determine if the user's browser supports cookies.
VISITOR_INFO1_LIVE
5 months 27 days
A cookie set by YouTube to measure bandwidth that determines whether the user gets the new or old player interface.
YSC
Session
YSC cookie is set by Youtube and is used to track the views of embedded videos on Youtube pages.
yt-remote-connected-devices
never
YouTube sets this cookie to store the user's video preferences using embedded YouTube videos.
yt-remote-device-id
never
YouTube sets this cookie to store the user's video preferences using embedded YouTube videos.