xneelo

How we scaled the development team of South Africa’s biggest hosting company.

Background.

Established in 1999, Xneelo is a web hosting and ISP company with services all around the globe. It is well known for using smart processes to solve customer problems.

They started working with a monolithic code architecture which was quickly becoming insufficient. Their user base was growing exponentially and they were worried that their development pipeline was not efficient enough to scale the solutions completely. They needed to expand their team quickly to meet the demands.

  • 7+ Developers
  • 19+ Months Engagement
  • Web solution
Challenge

Challenge.

When Xneelo approached Deqode, they were working with Monolith written in PHP. Their team knew that it was not a scalable architecture, but the practice of updating it was very complex. They reviewed the code looking for units that served a specific purpose and found baffling cases, for instance, their konsoleH function.

Different teams were responsible for these isolated functions which required them to come together periodically leading to extra builds and redundant tests. In addition, 10 million lines of code, hundreds of thousands of classes, and thousands of packages meant a high level of complexity.

Other challenges included:
  • Integration of new features that are scalable and reliable
  • The difference in data formats, the latency on big datasets, and low service consumer productivity
  • Implementation of a large number of microservices to eliminate the performance issues
  • Security planning and improvements to prevent stealing of sensitive information
  • Improving the maintainability of the software by adding future-ready solutions

Solution.

The solution came with Microservices, in a modular system with re-utilizable building blocks. Our team had a concrete goal - optimization of Xneelo’s performance by migrating from the purely monolithic system to a new microservices infrastructure. We made a plan which involved transitioning in steps to ensure users would notice only little changes.

We started with decoupling backend services to ensure that AWS integration was working. After that went well, we moved to services that impacted the user interface such as configurations, payments, sign-up, and so on. It was a challenge to ensure that the on-premise structure had the capacity to handle all the requests.

We slowly moved data sources, backups, and systems of records to the cloud. The solution helped virtualize the infrastructure to create a global resource pool. This benefited Xneelo to a large extent in terms of cost, size, and reduced downtime.

Solution
Deliverables

Deliverables.

  • Developed microservices to allocate, manage and decommission hosting services like self-managed servers, colocation, and VPS
  • We moved their entire code to microservices. This not only helped Xneelo to cope with the overall complexity of the code but also different components had different levels of intricacy. This allowed separate teams to adjust themselves to each component
  • Upgraded legacy-based low-level code to Ruby, Typescript, and React frameworks Brainstormed, defined, and built full-stack features to provide customer Server and Cloud-based services
  • Wrote extensive documentation for each service including flow charts, UML diagrams, code documents, and API references
  • Our UI/UX experts coordinated with developers to create eye-catching and intuitive interfaces that defined the brand’s purpose
  • We used module federations to combine separate builds and form a single application independently
  • We helped Xneelo move from konsoleH to Xneelo Control Panel with the Ruby code

Tech Stack.