Posting in continuity over my previous post of my internship completion and learning.
These are the seven core principles that I noticed during my internship on a whole to help one achieve a DevOps culture.
1. Create a highly collaborative environment - It means each member of the team has end-to-end ownership for the software they release. This creates a high-trust culture that values the efforts of each team member and transfers knowledge across teams and the organisation. (Learnt from open source and teammates)
2. Automate when possible - With DevOps, repeatable tasks are automated, enabling teams to focus on innovation. Identify automation opportunities at every phase, such as code integrations, reviews, testing, security, deployments, and monitoring. Infrastructure-as-code (IaC) can be used for predefined or approved environments. (Learnt from Nana Janashia)
3. Focus on customer needs - A customer first mindset is a key factor in driving development. Monitoring helps teams determine the success of their application and continuously align their efforts. Streamlined processes and automation deliver requested updates faster and keep customer satisfaction high. For example, with feedback loops DevOps teams stay in-touch with their customer and develop software that meets the customer needs. (Learnt from Major League Hacking)
4. Develop small and release often - Adopting modern development practices, such as small and frequent code releases, gives teams the agility they need to be responsive to customer needs and business objectives. (Learnt this from EddieHub)
5. Include security at every phase - To support continuous delivery, security must be iterative, incremental, automated and in every phase of the application lifecycle. Security testing can include scanning for hard-coded access keys, or usage of restricted ports. This way, you can identify and resolve potential vulnerabilities before they become major issues.(Learnt from a serious downtime)
6. Continuously experiment and learn - Inquiry, innovation, learning, and mentoring are encouraged and incorporated into DevOps processes. Leadership accepts failure and teams are encouraged to see failure as a learning opportunity. DevOps teams use DevOps tools to spin-up environments on demand, enabling them to experiment and innovate. (Learnt from Kunal Kushwaha)
7. Continuously improve - Thoughtful metrics help teams monitor their progress, evaluate their processes and tools, and work toward common goals. For example, teams strive to improve development performance measures such as throughput and stability. Using the right monitoring tools, you can set application benchmarks for usual behaviours and continuously monitor for variations.
Try noticing them, lucky enough might witness one.