Skip to content

Optimizing and analyzing business with Azets Cozone

Azets Cozone brand needs no introduction for Nordic business world. We address tasks such as payroll, accounting, document management and time reporting along with other business processes, through our software solutions.

twoday-blog-onko-low-code-kehittaminen-varjo-itta-featured-1

Overcoming challenges

The codebase was suited for it's original goals, but business growth demanded a next-level enterprise tech solution. It didn't help that the entire system was built on a dynamic typed programming language. The test coverage was insufficient, and every next complex feature required thorough manual testing. Additionally, the software release processes lacked automation. Every new release necessitated an extensive list of preparation steps, along with planning months in advance, leading to downtime and bug-fixing sessions during post-release days.

Furthermore, the user base was rapidly expanding, and the large clients demanded additional, user-specific features. As a result our development velocity was slowing down due to significant technical debt. It became evident that changes were necessary.

Modernization process

To address the goals, we launched new strategies to secure smooth business continuity and fast pace of new features.

We carefully analyzed the entire codebase and elaborated a detailed plan to (incrementally) reorganize entire solution reflecting both the business domain and the organization. The new modular architecture reduced complexity and hence improved maintainability, while addressing other qualities such as code reuse between different services/applications. 

The CI/CD track delivered automation pipelines, and seriously focused on unit and integration test coverage. Naturally we incorporated static analysis tools, code quality gateways, feature toggles and other robust top-of-the-class devops tools.  

The release process was fully automated and simplified, with multiple daily deployments. 

Next steps

Now we were in a good position from a development perspective, and secured high code quality for any newly written code. The refactoring  process ran in parallel, improving the legacy codebase bit by bit, constantly improving metrics and reducing risks. Legacy codebase modernization velocity was good. Now we could start addressing quality attributes of infrastructure reliability, availability, and scalability - a rapid business growth meant increasingly high loads.  

The infrastructure modernization project end goal was to migrate to AWS cloud infrastructure, containerize all our applications, and build deployment to Kubernetes with automatic scaling solution. We chose lift-and-shift migration path with minimal refactoring of our infrastructure services. That allowed us to relocate to cloud quite fast. We relied on our integration tests, smoke tests and performance tests to double check that the applications will perform on the cloud environment as expected to make the migration as smooth as possible.  

Consequently, the migration process was seamless, and as a result, we were able to scale much better. The scalable infrastructure adapted to the application load, ensuring efficient performance and improved user experience. 

 

 

Why wait for tomorrow? Let's have a conversation today

If you would like to hear more how we could help you, please fill in the form and we will contact you soon.

 

Transactions 101: when and how to use them in the Spring Framework

If you’ve worked with Java software that uses the Spring Framework, you probably have come across the transactional annotation in the code base. If you’re like me, you probably didn’t fully understand how they work and why we would use them.

Q&A with Sam Newman: the future of microservices and key insights for success

In recent years, microservices architecture has gained a lot of traction as an approach to designing and scaling complex systems. However, with every architectural trend comes challenges, and those who have lived through various implementations often have valuable perspectives on where things are he...

twoday strengthens its position in Data & AI through the acquisition of Kaito Insight

In response to the growing demand for advanced data analytics and AI solutions, the IT company twoday, which operates in Lithuania and Northern Europe, has acquired Kaito Insight, the only Snowflake Elite partner in Northern Europe. This strategic acquisition significantly strengthens twoday's posit...