An Experienced Enterprise Architect might tell you that communication and collaboration between all of the essential’s stakeholders are improved by implementing DevOps principles and practices. But what is often overlooked is the added value by building your cloud solution on building blocks. Properly testing are essentials if you want to develop and deliver systems that meet and exceed your customers expectations.
The underlying building blocks of DevOps are to ensure that the platform is in place to facilitate continuous delivery, integration, and improvement.
By building your blocks on code, and creating modules based on blocks, your entire cloud infrastructure gets reusable and reproducible. A module can be as simple and small as enforcing a strict naming convention based on environment, stage and customer. Or it can be more complex and be put together to handle a VPC (Amazon) and, or an azure VNet, with its respective NAT gateways, routing, security groups and nsg’s.
By traditional operations and configuration management you will often get what`s called Configuration Drift. It is the phenomenon where running live servers eventually are not identical anymore, often it is related to Ad-Hoc changes and undocumented changes. It is two ways to combat configuration drift. One is to use Sccm, Puppet or Chef, and run them frequently to keep machines in line.
Test Automation, the secret to success.
By implementing Continues integration (CI) and continues delivery (CD) to you infrastructure you can ensure even higher rate of quality assurance. By doing unit testing, and writing integration tests, you automate and make sure that changes done to your code is either being denied or approved based on a given set of criteria. By threating your cloud solution as you would threat your software, you are able to identify and stop conflicting changes even before they happen.