Shifting Performance Engineering to the Left
Performance Engineering in SDLC

Shifting Performance Engineering to the Left

Introduction

Performance engineering plays a crucial role in software development, ensuring that performance, scalability, and reliability requirements are met. However, it is often neglected, leading to issues such as defects leakage, increased costs, and delayed releases. These issues can impact the quality of your products, and eventually create a dent in brand value and reputation. This article explores the importance of implementing a holistic approach to performance engineering, with a focus on shifting it left in the software development lifecycle (SDLC). We will discuss the opportunities and tools involved in this process, specifically what we do here at the Emirates Group.

Challenges and Opportunities

Engaging performance engineers towards the end of the SDLC and focusing solely on testing have presented IT teams with a multitude of issues. These include:

·??????Limited time for performance optimization

·??????Increased risk of performance issues

·??????Difficulty in implementing design changes at the end of SDLC

·??????Potential deployment delays

·??????Increased cost of fixes

·??????Limited visibility into performance requirements

·??????Missed opportunities for performance testing and validation

However, these challenges also offer opportunities for growth and development. Instead of seeing these challenges as obstacles, we can approach them as opportunities to demonstrate our value proposition and influence stakeholders. The solutions we implement may not be ground breaking, but what truly matters is how we, as a team, rise to the occasion and deliver the necessary results.

By addressing these issues early, teams can reduce costs, improve customer satisfaction, and accelerate time to market. Shifting performance engineering left allows for comprehensive testing, identification of architectural flaws, and the implementation of a fail-fast approach using unit/component level testing. Equally important is the implementation of good shift right strategies to ensure performance and availability are maintained and continuously optimised even after the product or feature is live.

Shifting Performance Engineering to the Left

Shifting performance engineering to the left is a strategic approach we have adopted to address and overcome the challenges mentioned earlier. This approach involves integrating performance engineering into the software development lifecycle (SDLC) at an early stage. Let us explore the key steps involved in shifting performance engineering to the left:

Requirement Analysis Phase: The performance engineer collaborates with the team to assess non-functional requirements (NFRs) and ensures that performance-related requirements are captured effectively. They contribute to defining clear performance goals, establish performance acceptance criteria, and help shape a comprehensive NFR backlog to drive performance-driven development and align expectations.

Design Phase: The performance engineer collaborates with the development team to incorporate performance considerations into the software design, ensuring scalability, efficiency, and reliability. They identify potential design flaws, provide performance-related recommendations, and help establish monitoring and observability strategies for proactive performance management.

Development Phase: The performance engineer assists developers by conducting performance-oriented code reviews, providing feedback for optimisation, guiding the use of performance testing tools, and sharing performance best practices to ensure efficient and high-performing code.

Testing and Tuning Phase: The performance engineer collaborates with stakeholders to define performance test scenarios and objectives. They facilitate continuous testing throughout the development lifecycle, including component testing, to ensure early detection of performance issues. By analysing test results and fine-tuning the system, they optimise response times, resource utilisation, and scalability to meet performance requirements.

No alt text provided for this image

By implementing a shift left approach in performance engineering and following these steps, we can enhance our software development process, mitigate risks, and ensure the delivery of products that meet or exceed customer expectations.

Selecting and implementing the right tool

Component-level testing is a crucial step in the Agile Shift Left model. Therefore, careful consideration is given to selecting the appropriate tool based on factors like cost and effectiveness. At the Emirates Group, we thoroughly evaluated various open-source load testing tools before choosing Gatling. Its simplicity, scalability, seamless integration, and extensibility, along with its code-driven approach, low resource footprint, and ability to handle high loads, made it the ideal choice. Gatling seamlessly integrated into our DevOps toolchain and offered comprehensive out-of-the-box reports, with valuable support from the active community.

As our performance testing requirements expanded and teams adopted component-level testing with Gatling, the need for advanced features and comprehensive support became apparent. This led us to upgrade to Gatling Enterprise, the commercial edition. The decision was driven by factors such as distributed testing, real-time dashboards, and dedicated support.

Deploying Gatling Enterprise

By implementing Gatling Enterprise, we have established a reliable performance testing framework that allows for continuous testing through our CI/CD pipelines early in the SDLC. This setup reinforces our commitment to proactive performance management, empowering us to detect and resolve issues swiftly and deliver high-quality software products efficiently.

The comprehensive architecture diagram below illustrates the key components of our performance testing framework, highlighting its scalability, elasticity, and integration capabilities. The table below highlights key components of our performance testing framework and their respective roles:

No alt text provided for this image

Our deployment of Gatling Enterprise involved various critical components:

No alt text provided for this image


Conclusion

Implementing a comprehensive approach to performance engineering by shifting left yields multiple benefits, such as delivering higher-quality products, boosting customer satisfaction, and enhancing reputation. By integrating performance engineering early in the SDLC and leveraging tools like Gatling, teams can proactively identify and address performance issues, leading to cost savings and accelerated time to market. This article serves as an introduction to shifting performance engineering left, focusing on early testing. For further insights on shift right through synthetic testing, please refer to our previous article [click here].



Syed Aamir Hasni

Cloud Performance Engineer | AWS | Azure | Google cloud | Chaos engineering | CI-CD | Docker | Kubernetes | AKS | Confidential Computing | Devops | Linux | Shell scripting | Freelancer

1 年

Awesome approach ?? . Performance engineering team should be involved from early stages , this is why Emirate airlines web portal is the fastest one I observed across airline companies.

Bala Murali Krishna Kanchukambala

Sr Engineering Manager-Quality Engineering/Senior Performance Architect, Performance Engineering/Testing & Tuning / websites speed analysis expert / betting & gaming domain expert at Ivy (an Entain Company)

1 年

Very well articulated the end to end approach in simplified manner, Great Work Sir.

Shivanand Veerbhadrannavar

Technical Program Manager | Data and Analytics Leader | Leading Data Science Initiative.

1 年

Nicely articulated Manjunath. Good work

要查看或添加评论,请登录

社区洞察

其他会员也浏览了