To have environments with homogenous application configuration, software, operating system, infrastructure and data where appropriate
Less time will be taken to investigate issues caused by environmental discrepancies, this will allow for faster delivery of business requirements and give higher confidence in what we are delivering is correct.
- Configuration will need to be enshrined in version-controlled code
- Software packages that are not amenable to being consistently configured will be less desirable
- Software that is free or provides developer licenses will be preferable
- We will need to invest heavily in making data available and consistent across environments
- Simple way of cleansing and scaling production data?
- Creating (and destroying) new environments will need to be as simple and as fast as possible and will rely heavily on the principle of Automating Repetitive Tasks (this will also require investment)
- We will require consistent configuration of infrastructure (including Networks, Firewalls and Servers)
- 1JL is a good example of this. A system really needs to have every instance on the cloud, be highly automated and have infrastructure as code.
- Bad examples of practices are changing things on the fly and not integrating with all the systems in every environment.
Points for discussion
- Are you using infrastructure as code? Examples are terraform or puppet.
- Have you got any processes in keeping data up to date?
- Are there lots of manual processes?