Replatformed a Decade-old Supplier Management Monolith, and Reduced Software Release Time from Months to Minutes

Client Challenge

A Fortune 1000 e-procurement company sought to replatform a decade old SaaS-based supplier management solution. The company built a massive application to support the growth of their customers, and optimized the solution to the point that simple changes were no longer possible. Special one-off features, and an overly-complex permissions and configuration module, further locked the client in to their growing monolith. The application had a very high degree of coupling resulting in the inability to remove data and an increasingly bloated database. Their solution was also not setup for high-availability and did not have a strong data recovery strategy.

Pull-quote-2.png

Why they chose Dev9

The client chose to work with Dev9 due to our expertise in microservices, cloud-ready applications, and our ability to rapidly understand our client's complex business and apply their expertise to our unique solution.

Dev9's Value and Challenges We Overcame

The organization wanted to adopt a modern software stack and agile practices to build, package, deploy and release. They needed administrative tools to own and operate these services in multiple environments in a cost-effective, reliable, repeatable and scalable fashion.

The project had two main technical goals:

  1. Decompose a monolithic application into an integrated set of microservices.
  2. Design and implement a suite of automation capabilities to provision hybrid Cloud environments.

First, Dev9 identified domain boundaries using Event Storming, and implemented a subset of features for a single domain (receipt processing). A Spring Boot micro-service emerged, and – incrementally – it collaborated with infrastructure services for lightweight API gateways (Kong), External Configuration (Consul), Service Discovery (Consul), Secure Secrets (Vault) and Health Monitoring (Prometheus, Grafana, CloudWatch).

Next, our team authored Ansible inventory files, roles and playbooks employing Cloud Formation Templates to provision (and teardown) cloud infrastructure and managed services such as: Virtual Private Gateway (VPGW), Virtual Private Cloud (VPC), Simple Storage Service (S3), Elastic Load Balancers (ELB), Auto-scaling Groups (ASG), Elastic Cloud Compute (EC2), Elastic Container Service (ECS) clusters, and Relational Database Services (RDS). We stood up a Jenkins instance and slaves, configuring a number of parameterized Pipeline jobs to enable self-service, continuous delivery automation. For artifact management, we leveraged an onsite instance of Artifactory, also hosting a private Docker registry there.

With these pieces in place, we focused on enabling canary deployments, automated smoke tests and blue-green releases. Finally, we optimized the EC2 instance types and auto-scaling policies by executing and analyzing reports from on-demand Gatling performance test runs to meet and exceed production performance targets.
 

Project Results

  • Developed a comprehensive Cloud-ready solution in just over 6 months
  • Extracted 10+ microservices from a 1.5M+ line monolith
  • Utilized AWS per our recommended approach which included DirectConnect, S3, CloudWatch, EC2, Route53, RDS and ECS
  • Reduced software release timeframe from 6 months to minutes
  • Introduced their development teams to Continuous Delivery and helped set the standard processes for the organization