All of our customers benefit from continuous integration and continuous delivery. But what does that mean? It means we’re constantly checking, reviewing and delivering our applications.
From the moment code is committed by a developer, automation takes over and notifies the team. Whilst this code is under peer review, our systems are also ensuring the code compiles and its tests pass. It sounds simple but this practise ensures that at least 80% of any concerns with quality, design and bugs are caught and resolved. Before they even hit a server for review.
Once this stage has completed, we automatically bundle the application into an ‘artefact’ which lets us push builds to QA, staging and production environments at the click of a button. We can also run automated tests that check through all key user journeys over and over again. Every time we prepare a release. And this is all performed using well defined, repeatable processes.
With all of that, its possible that an issue may yet exist. Consequently we ensure that each release is uniquely identified. By doing so we can deploy and rollback software at will.
Larger, more complex systems also involve multiple stakeholders and for those customers we also augment our processes with feature flags. This allows us to enable and disable features in different environments. We do this as our clients will have multiple deadlines, approval windows and launch dates. This avoids complicating the software development lifecycle and means we can continue to deploy frequently.
In a nutshell our customers all take advantage of:
- Gated builds and build automation
- Automated deployments
- Secured configuration and tight access controls
- Cloud automation for deploying applications
- Server automation in pre-provisioned Iaas environments