Please note that Menlo Technologies is a Quisitive company.
In this case study:
Client: Equilar
Industry: Software & Technology
Products and Services: Application Development, Quality Assurance (QA)
Country: USA
The Challenge
Equilar is the leading provider of board intelligence solutions. Companies of all sizes rely on Equilar for their most important boardroom decisions, including 70% of the Fortune 500 and institutional investors representing over $13 trillion in assets. Equilar provides several solutions including advanced executive compensation data analysis and research.
Equilar partnered with Menlo Technologies, a Quisitive company, for development and QA services around a Java/Oracle/PostGres stack. At first, there were just four people on the team building one product. But now, there are over 30 people developing four core products that are web-based and mobile.
Equilar worked with Menlo to address these key problem areas:
- Bigger teams and more productivity within those teams
- Code and data dependency among the different product lines
- Slow release time and deployment for builds to QA (hours/days)
- No scalable containerized approach
- Code was modular, but none was engineered using microservices. Some layers of the product would benefit from re-engineering to reduce dependencies, risks, and time to market.
- Development and release could take as long as 6-8 weeks for a clean, fully tested deployment.
The Solution
Menlo Technologies coordinated with the Equilar management team to spearhead a DevOps approach for development, QA, and deployment to solve the problems that were continuing to grow– and cost Equilar real dollars and time.
Menlo inspired and implemented the following technology and process changes:
- Development:We assessed the areas of dependency and began refactoring code to use a microservices architecture for the key areas. We used Chef and Vagrant for containers in order to ensure predictability in the runtime infrastructure. Since we were using a Spring framework, we began utilizing SpringCloud to support the distributed architecture. We used Flyway for database migration across instances.
- Quality: Menlo wrote Junits, Jasmine, and Karma in the code for automated unit testing as well as code quality checks. We used Selenium to engineer robust test scripts for automated system and deployment testing. The metrics for the code quality and Selenium tests were logged and used for KPI’s and continuous improvement plans. Jira was used to track and manage issues along with the workflow for root cause, fixes, acceptance, and release. Finally, we used SonarQube to analyze and improve source code quality.
- Deployment:We used Jenkins for continuous integrations and deployments. Deployments were delivered to a Docker container where applicable. Code was checked into a centralized repository (Git) and then automatically deployed. Deployments were executed without manual intervention.
The Results
- Increased productivity within the teams
- Common modules were the first to be re-written into autonomous microservices structure
- Regression bugs decreased according to Jira metricsDocker containers are hosted in the CloudReleases now occur in minutes, not hours/days
- Improved efficiency with development teams and QA teams
- Quality is measurable down to the exact Sprint feature, resource, and product module
- All builds to QA and production are fully automated with predictable resultsA recent major database release was delivered to production with zero p1/p2 defects — ahead of schedule and under budget.