Topic: tech juniper ijaut prev next
tech juniper ijaut > 02: Introduction to DevOps
The ‘agile’ software development methodology is built around three pillars: Flow, Feedback, and Continuous Learning.
Consider the entire process. Changes should not hurt those downstream in the process.
When considering how to implement a change, choose the option that will increase the rate of flow in the long term. For instance, if a task is to be repeated, automate it rather than do the task manually. It takes longer initially, but will save time in the long run.
Do not incur technical debt. If you did not have time to do the task correctly, it is unlikely that you will have time to go back and improve short term fixes.
Analyse feedback from people at each stage: development, deployment, delivery. Feedback can also be obtained from monitoring systems. The earlier feedback is obtained, the quicker it can be fed back into the flow.
Find fault with processes, not people. If everyone understands that the ultimate goal is to improve the flow, participants are unafraid to suggest improvements to their own flow.
It is difficult to understand the tolerance of a system to failure until it is tested. People should deliberately look for faults in the system. Some companies deliberately introduce faults to see how people and processes react.
Frequently commit, build and test the code to provide rapid feedback. Quality control and testing happen at all stages of the process. Reserving extra time at the end of the process is unnecessary because the code has already been tested.
Continuous Delivery & Deployment are extensions of CI. Continuous Delivery makes sure that the code is ready to deploy at any time. Continuous Deployment is a way to automate the code deployment. Operations, security and compliance teams are brought into the process much earlier.
Network Reliability Engineering
Network DevOps is the application of DevOps philosophies, principles and behaviours to network operations (NetOps). It is put into practice by network reliability engineers. Smaller deployments result in greater agility and quality.
The change is designed by network engineers and network architects. Code is written to represent the change, which is then committedd to the version control system. The change is peer reviewed and feedback is given. The change is then tested automatically, ideally in separate testing and staging environments, before being deployed on the live network. Once the change is deployed, it is subject to continuous monitoring. Failures are viewed as opportunities for improvement and can be rolled back quickly.
DevOps is a culture/mindset and does not prescribe specific tools. Here are some example tools.