- Highly scalable
- Cloud agnostic
- On-premise capable
- Uses modern languages and frameworks
- Doesn’t lock the client into proprietary languages, technologies or tools
- Has a low total cost of ownership, ensuring saving can be passed on to end users
- Has the ability to scale the system
- Maintains current size of maintenance and support teams
Overview of the solution
The initial engagement revealed that if the client wants to remain competitive they need a new generation, cloud-based solution designed from the ground up. This would ensure it would be scalable, highly modular and extensible, while keeping growth costs linear as the system expands.
BBD architected a microservices-based solution, using proven best-of-breed technologies. Kubernetes was chosen as the container orchestration platform. Inter-service communication was implemented using REST interfaces for HTTP(S) based interfaces and RabbitMQ for message queues. Java was chosen as the language of choice, with PostgreSQL utilised for relational database storage and Elasticsearch for search engine capabilities. Front-ends were developed using HTML5 and Angular 5. Importantly, all technology choices were open-source, to allow for a lower total cost of ownership, which translated into lower costs for the end-users.
BBD assisted the client in a top-to-bottom transformation of process and practices, as well as technology. Agile training facilitated by BBD introduced the Scrum framework to every employee, from C-level management to junior software engineers. Our DevOps specialists implemented a CI / CD pipeline, and instilled engineering processes, which dovetailed with the technology, to enable modern DevOps best practices.
As an initial accelerator, a BBD team spent six weeks configuring the development stack and implementing the framework on which the solution was to be developed. Following this, BBD embedded a team of excellent engineers at the client, forming a combined team in order to transfer the relevant patterns and technology skills through a process of assimilation.
This combined development team followed an Agile process of iterative and incremental development, working with the new system product owners to analyse a business need, followed by developing, testing and deployment of the feature. After each iteration, the lessons learnt were used to improve the team’s next deliverable, leading to a process of continuous self-analyses and improvement. During development, the client’s industry changed making the original requirement for the system to be on-premise capable redundant.
Thanks to the correct technologies being chosen at the outset, this change in direction was not only painless, but the change in direction was welcomed. In addition, the microservices architecture supports heterogenous environments, allowing the client to choose the correct technology for a particular problem space.
As a result, a number of the client’s C# based development teams can leverage their existing skillset to provide meaningful contributions, without having to reskill in Java. It also allows for various cloud-native services such as serverless technologies and As-A-Service offerings to be leveraged where required.
Impact of BBD’s partnership
This was an exciting project for BBD as it delivered one of our first fully cloud-native projects on the public cloud. Being cloud-native allows for constantly shifting software infrastructure that can keep a company orientated toward their customers and able to compete.Read more