Repeatable, Rapid Delivery
How we ensure consistent, rapid delivery
Automation is the key to rapid and repeatable software delivery. Do the work once, let the computer to the work the next thousand times.
Building software is always hands-free, automated and repeatable, ensuring we always have a testable version.
Every change we make is tested automatically. Every change is rejected if it doesn’t meet the quality bar. Build quality in from the start.
Make sure we can release changes continuously and repeatably through automated pipelines.
It’s not just a passion for technology, it’s a passion to use technology to change the world for the better
The 10 Principles of DevOps
At 345 DevOps isn’t a buzzword or an initiative, it’s a core part of the way we do things. So much so that we created a set of principles that we’ve included into the 345 Method.
#1: Everything is Automated
As you can see fro the top of the page, automation is key. Automation brings repeatability, and repeatability is key to ensuring quality as it forms the basis for continuous improvement.
#2: Single Source of Truth
There is only ever one master source of truth. For software this is your source repositories. Keep the team focused on one place.
#3: Protect Sensitive Data
Make sure that sensitive information such as passwords, private keys and security details are handled appropriately.
#4: Infrastructure as Code
All infrastructure is defined as code and can be created / torn down / regenerated by running that code.
#5: Immutable Infrastructure
Infrastructure is never modified once created. When a change is made it is always torn down and rebuilt.
#6: Immutable Application
Applications are never changed. When an application is changed it is rebuilt, repackaged and redeployed from scratch.
#7: Each Environment Separate
Store the information for each infrastructure environment separately, ideally in its own repository. Avoid the confusion of merging this together.
#8: Each App or Service Separate
Store the code for each application, API or service separately in its own repository.
#9: Configure Each Environment
Each environment should be configured separately.
#10: Maintain Backwards Compatibility
When you change an API or application, make sure it works with older clients to prevent having to change everything at once.