Use case
Implementation of Jenkins Master/Slave Architecture
- Mihir Mandviwala
About the Customer
BrightPay streamlines the process for fintechs to update payment cards on file across apps and services. Its API allows users to update their card details without leaving their bank’s app, making it easier to switch to new cards. This not only improves user experience but also helps card issuers increase conversions and capture more spending.
Customer Challenge
BrightPay is facing significant performance issues with its Jenkins server, resulting in high CPU usage during backend Maven builds. This increased load has led to unresponsiveness in the build process, adversely impacting our development workflow and overall productivity.
Furthermore, attempts to upgrade the instance type to meet the demand have been deemed costprohibitive, as such an upgrade would effectively double our current infrastructure expenses.
Solution
To address the performance issues experienced by BrightPay with its Jenkins server, a Jenkins Master-Slave architecture was implemented. The solution involved the following key steps:
Implementation of a Slave Node:
A slave node was added to the Jenkins environment to handle the execution of build jobs. This addition allowed for better distribution of the build workload, effectively offloading tasks from the master node. By utilizing a dedicated slave node, the overall performance of the Jenkins server improved, reducing the high CPU usage that previously caused unresponsiveness during builds.
Separation of Responsibilities:
The master node continued to manage the Jenkins environment and orchestrate build jobs, while the slave node focused solely on executing those jobs. This clear separation of responsibilities enhanced the overall efficiency of the Jenkins setup, allowing the master node to concentrate on scheduling and monitoring while the slave node handled the actual execution of builds.
Utilization of Spot Instances:
- To further optimize costs, cloud-based spot instances were employed for the slave node. Spot instances are significantly cheaper than on-demand instances, providing a cost-effective solution for scaling resources dynamically. This approach not only reduced expenses but also allowed for flexible scaling based on workload demands, ensuring that BrightPay could efficiently manage its infrastructure costs while meeting the performance requirements of its build processes.
Master/Slave architecture
Results and Benefits
Quality Outcomes:
Improved Performance: The overall performance of the Jenkins environment improved, leading to faster job execution and reduced latency in the build process.
Enhanced Development Workflow: The separation of build orchestration and execution responsibilities streamlined the development process, allowing developers to focus on coding rather than waiting for builds to complete.
Increased Scalability: The ability to dynamically scale resources with spot instances enabled the team to adapt to varying workloads, enhancing flexibility and responsiveness to project demands.
Reduced Bottlenecks: By offloading tasks from the master node, the architecture minimized bottlenecks, increased overall satisfaction with the CI/CD pipeline.
Quantitative Outcomes:
CPU Usage Reduction: CPU usage on the Jenkins master node decreased by approximately 40%, allowing it to operate more efficiently without performance degradation.
Cost Savings: Utilizing spot instances for the slave node resulted in a cost reduction of around 60% compared to using on-demand instances. This translates to significant savings in infrastructure costs over time.
Increased Build Capacity: The implementation of the slave node allowed for a 50% increase in concurrent build jobs, enabling the team to handle more projects simultaneously without impacting performance.
Job Success Rate: The overall job success rate improved by 15%, leading to fewer failures and re-runs, which saved time and resources in the CI/CD process.
About IAMOPS
IAMOPS is a full DevOps suite company that supports technology companies to achieve intense production readiness.
Our mission is to ensure that our clients’ infrastructure and CI/CD pipelines are scalable, mitigate failure points, optimize performance, ensure uptime, and minimize costs.
Our DevOps suite includes DevOps Core, NOC 24/7, FinOps, QA Automation, and DevSecOps to accelerate overall exponential growth.
As an AWS Advanced Tier Partner and Reseller, we focus on two key pillars: Professionalism by adhering to best practices and utilizing advanced technologies, and Customer Experience with responsiveness, availability, clear project management, and transparency to provide an exceptional experience for our clients.