Our customer is leading German manufacturer of luxury cars that sets global trends in automotive industry development. Their broad portfolio of vehicles includes all categories of personal vehicles and trucks. With customers and sales offices in all parts of the world they have global presence.
Our customer provides best products in his business area (automotive industry) and with that also best software is needed to be ahead of competition and define new trends. Previously they had developed very large portal for customers with many advanced features. Features were very attractive to users but due to size of code and large development team it was difficult to manage such a huge system where all different features are connected. It was difficult to separate features by teams and to work on same codebase. Also, there was a lot of information retrieved from different systems many times which caused some difficulties in performance. Due to all these issues it was decided to redefine architecture and create new customer portal.
Microservices architecture approach was chosen and biggest challenge for customer was lack of expertise and engineering capacity to design and implement microservices based application.
Serengeti provided development and maintenance service for new features for existing customer portal. Existing customer portal was monolith application developed by another company. After we analyzed existing portal and got familiar with business logic we designed microservices architecture for new customer portal. After that the team started to work on development of new portal that is based on microservice architecture. All existing features were split into small applications and developed from scratch for new platform.
To support the customer, a new team was formed. For the first two months, two Serengeti ambassadors were at the client's offices, studying the current situation of projects, work mode and business issues. During the first two weeks ambassadors were reading documentation and getting familiar with the project. Afterwards, they joined the scrum team and started to work on first tasks: fixing bugs and developing new features for existing portal.
After onsite period, most of the work was done from Serengeti office in Zagreb, with arrivals of Serengeti team lead every 3 weeks to scrum meetings at the client’s office. It was important that Serengeti team lead hears new stories directly from product owner so that he can transfer all needed information to the rest of the team. Returning to Zagreb was the most challenging part for ambassadors since they were not in the room next to their colleagues. It was important to keep successful communication and they managed to do it by having regular meetings and very intense communication together with strict and transparent processes on Jira board.
One year later project for portal migration to new microservices architecture started. Serengeti engineers used their knowledge of system they were working on and knowledge of microservice architecture to design and prepare architecture for large number of small applications. Idea was to split existing large monolith into many small applications but to keep the same features in new system. All applications were packed into Docker images. Images were uploaded to cloud provider registry and container cluster was created. Docker containers are than deployed to cloud. Containers communicated and worked together. To organize the team and managing the project, industry-recommended standards and tools are used - Scrum & Kanban, Jira, Confluence, GitLab, unit testing, CI / CD etc.
Within few months from start of cooperation Serengeti developers were completely into the project and worked equally to other team members. Use of modern microservices technologies made application scalable and flexible. With help from Serengeti customer implemented proven and reliable microservices based application on time. Team tracked applications usage and depending on that scaled needed memory for every app and feature. During development different cloud providers were used depending on client contracts and decisions. Usage of Docker also made those changes easy. For developers it was easy to deploy and configure applications for different cloud providers.
After the successful first phase of co-operation, the Serengeti team has expanded. Serengeti team was in charge of complete development of different applications. Backend developers worked on backend part of application in charge for requests and data retrieval while frontend developers worked on user interface. All application developed by our team followed similar architecture and it was not difficult for developers to switch between different applications. Successful cooperation and team cohesion were proven in this cooperation and long term partnership with customer was established.