Modernise Your Test-First Cloud Approach
Test first includes your Cloud!
Every organisation is using the Cloud, whether it’s SaaS, IaaS or PaaS solutions, Cloud is fast becoming a core component within technology. Our engineering approaches have changed to enable our teams to develop and release at speed, with this we must change the way we look at quality. Cloud leverages many new services which traditionally would not have a test approach.
We’ve seen application quality increase but often this is not aligned with the platform the application will run on. Test cycles do not cover environments or the different Cloud services utilised, the cohesion between application and platform is vital for optimum performance of the application. Without this we’ve seen:
- Poor integration – works in Development environments, but doesn’t in Production
- Technology misalignment – containers in Dev, deployed on a Linux host in Production
- Limited scaling – Application designed to be run multithreaded but platform scales vertically
We must ensure that any release goes through the same quality as any application release (inclusive of Security, Data, Infrastructure and Ops), so we must adopt a test-first approach to Cloud. This approach enables us to validate all services used in the Cloud but also foresee when our infrastructure will hit capacity. As we build towards immutable and ephemeral environments, there are a few key areas we look into:
- Performance – benchmark your services and the capacity the application can handle
- Reliability – how to work across multi-region and availability zones, and most importantly what happens if they go down
- Scalability – how easily can you both scale up and down based on demand.
- Consistency – All environments will be identical in construct, with scaled-down services based on environment.
When you move to the Cloud you gain advantages that would be impossible with on-premise infrastructure. Below, we will explore some of the additional tests to incorporate into your pipeline:
- Serverless – treat as application code should contain unit tests, integration tests and possibly contract.
- Container Orchestration – create automated repeatable clusters across all environments
- Dynamic Availability – ensure infrastructure can be provisioned in all locations to match application performance
We can build this into the application pipeline to ensure the Cloud Platform the Application run’s on is reliable and scalable.
By bringing together your application and the platform it runs on, you are able to test against a true representation and simulation of production.
- Ability to simulate changes in real-time to validate edge cases with representative infrastructure and data.
- Test how the application performs, validating scaling capabilities for both single threaded and multi threaded applications.
- Consistency across all environments, building towards immutable infrastructure and ephemeral environments.
- Building these components in isolation is no longer suitable, creating inefficiencies and
For any teams looking to move towards a test-first approach, ClearRoute would love to hear about your ambitions and help you realise your objectives. Please, get in contact to find out more.