Public cloud services have truly come of age for enterprises worldwide, with global spend forecast to grow 47.2% in 2022, reaching $397.4 billion, up from $270 billion in 2020; however, it’s not always a smooth ride. Gartner reports that nearly two-thirds (62%) of companies claim that their cloud migration projects were more difficult than expected. And 55% said their projects had gone over budget. When asked if there was anything they could do differently, 56% said they would perform more pre-migration testing.
The implication is clear. If enterprises want to achieve their speed-to-market and business functionality goals, they must have a rigorous focus on quality from the start of their cloud journey and keep it up throughout. To do that, they need to adopt what Accenture calls “Holistic quality engineering.” This approach enhances traditional testing by embedding quality into all aspects of the development process. It optimizes automation and uses analytics and artificial intelligence to be more precise about what is being tested.
The goal? To increase quality, reduce cost and improve time-to-market across the journey to cloud.
So, why does holistic quality engineering matter so much? It all comes down to the differences between cloud and on-premises systems. Unlike their on-premises predecessors, cloud systems are extremely complex. They may sit across multiple locations and can fail in unpredictable ways. For example, in an on-premises data center, every component is managed in the same place. But harnessing cloud involves managing an ecosystem of different and distributed components and applications, all interacting with an underlying infrastructure.
It's like the difference between manual versus automatic transmission in a car. With a manual gearbox, you need to expend manual effort but have better control over how the car is driven on various road gradients and traffic conditions. It is also easy to understand the mechanical problem when the gearbox is malfunctioning. That’s the same as on-premises systems. But cloud more closely resembles an automatic transmission: a lot of technical details are abstracted from the user by the automation of the underlying cloud control plane and you have access to all the functions, but there’s no simple way to see how the various components interact. So when things fail, it’s much harder to understand why.
Testing for resilience
Developers, for example, must understand why applications may fail. But with system components interacting across different zones in the cloud, the reason isn’t always apparent. Take, for instance, a “time-out” when one component requests service from another but does not get a response. The delay could be for any number of reasons, such as latency or node-specific failures. But if the component requesting the service issues a “retry” and still gets no response and then repeatedly tries again, the resulting overload could bring the whole infrastructure down.
It is critical to ensure applications are resilient and work together. This becomes more important when additional workloads and applications are migrated to the cloud.
Scaling for value
One of the critical advantages of cloud is rapid scalability, with the ability to dial workloads up and down on-demand. For example, financial reporting happens periodically, but when it occurs, it requires enhanced computer resources. Cloud enables scalability by seamlessly adding resources as necessary to process the financial reports, and it releases those resources when they are no longer necessary, making it much more efficient to conduct regular financial reporting.
Auto-scalability raises the risk of consuming more capacity than required and ending up with a bigger bill at the end of the month than expected. So, auto-scaling rules must be set in an optimum manner – and validated through testing - to ensure there is cost-benefit balance. This hasn’t been a concern with on-prem systems because all the infrastructure is already paid for and deployed.
Again, quality engineering is essential to optimize and fine-tune usage so that resources are consumed efficiently and deliver the required performance at the right cost. This hasn’t been a concern with on-prem systems because all the infrastructure is already paid for and deployed.
Security in a multi-tenant world
With multiple users sharing resources on public cloud, security is a critical consideration. While cloud providers invest heavily in securing the infrastructure, they still expect applications running on it to operate securely. So security on the cloud remains the responsibility of the enterprises that use it.
Companies must design and build applications to ensure they don’t expose their data or functions to unauthorized use. Using shared resources in a multi-tenant environment also means that sometimes the ‘bad’ behavior of one component (for example, monopolizing bandwidth) can negatively impact the performance of others. This is what’s known as the “noisy neighbor” problem. quality engineering can help identify where issues like these might arise and proactively address them.
QE to harness cloud value
There’s no question that the cloud offers value that’s simply unavailable any other way. But it’s imperative to prepare for the cloud journey with eyes wide open and a complete picture of what’s needed for success. This means understanding the implications of the three principal characteristics of cloud architectures: heterogeneous, distributed and complex.
Harnessed correctly, these qualities offer tremendous advantages. But when developing the cloud application ecosystems that will unleash their potential, they need to be validated, verified and tested to ensure that no faults have been introduced inadvertently.
That’s where quality engineering comes in. It's the essential set of disciplines for keeping cloud migration projects on track and ensuring that the cloud journey leads to the right destination.
In our next blog, we’ll explore Accenture’s approach to quality engineering and highlight the key differentiators that set our journey to cloud apart.
To know more about how we are leading change and making an impact for our clients in the quality engineering space, click here