In a changing business environment, battered by the pandemic, and where online business consumption has surged, many companies, faced with the underlying systemic problems in their core business applications, have placed their hopes in new forms of architecture and current Cloud platforms.
Among all of them, micro services architecture stands out above the rest. Many IT leaders are considering migrating their massive on-premise monolithic applications to micro services in the Cloud. Although many leaders embark on this adventure following trends and currents, the truth is that in many cases this migration does bring positive outcomes and is not just a passing fad. It is unlikely that a monolithic application will be a better option in large, complex IT systems with constant development and/or high workloads that impact performance.
At Kiteris, aware of this fact, we have committed to having the most prepared individuals in the new technologies and architectures that our clients urgently require. To prepare our developers for this type of project, we have decided to migrate our internal management applications, starting with Pandora, which is our internal tracking and management tool.
What does Pandora have?
Pandora is our application that encompasses all the knowledge of our employees beyond the typical application for logging hours. It collects knowledge, courses, levels, teams, experience, CVs, and yes, it also tracks schedules, vacations, and the usual hour allocations.
What technologies, designs, and architecture does it present?
We have been migrating Pandora to micro services using the Strangler Pattern. As Pandora is an old ASP.NET MVC application, we developed the proxy for this pattern by creating an API Gateway. This allowed us to make changes to the back end of Pandora without affecting the front end and, at the same time, migrate the front end to a Single Page Application (SPA) without being impacted by the coupling with the back end that it previously had.
What motivated us to migrate?
At Kiteris, we don’t want to be a blacksmith with a wooden knife. When we, after a detailed study of a client’s solution, recommend migrating to micro services, we do so honestly. Migrating to micro services involves an initial effort. It is true that the initial cost is quickly amortised when making iterative improvements on the new architecture, and performance is maximised with horizontal scaling of micro services in the Cloud.
However, we are also aware that it requires an initial effort, and we could not ask our clients for that effort if we were not willing to make it ourselves.
We decided to migrate the old on-premise monolithic application for two reasons: first, because we realised that the technical debt, as in the case of our clients’ applications, was growing. It was becoming increasingly costly to fix issues or develop new features on our old monolithic application. On the other hand, we decided that it would be the ideal platform to train and reliably assign any of our developers to migration or maintenance projects for this type of development.
By the way, we have carried out the entire migration following agile methodologies based on Scrum, including a voluntary daily meeting every morning, for example. This way, we also practice agile working methods.
And what happens when everything is migrated?
Pandora, like all core applications, has strategic importance for the company. As a company with a commitment to innovation, we cannot be satisfied with the established architectures of today. We must also explore new trends, analyse them, and discover whether they will add value to our clients and, if so, in which scenarios they are appropriate. It is on our future roadmap to study, among other things, the inclusion of microfrontends as a new architecture on the client Front side.
Guarantee of Success
Any developer we assign to a project with advanced architectures has developed and maintained Pandora, supervised by experts with the most experience in the relevant technologies. Even our most junior developer is prepared to successfully tackle development in applications with micro services and Cloud with much greater competence than others with more years of experience. Concepts such as API Gateway, Serverless, SPA, CQRS, or Cache Aside are internalised by our developers so that working with these types of technologies and patterns feels as natural to them as working with simple MVC monolithic or client-server applications.
Because it is in our DNA: a commitment to service.