The why, what and how of DevOps
Why: The DevOps value proposition
Because the thing that we need to value most is how our products and services are making impact to business. It can be deploying feature that create new profit, fixing bug, increasing deployment time or anything.
From ideation, architecting and designing, setting up infrastructure, coding, to releasing in production. And after all that, of course we need to care about learning through monitoring and improving performance if needed. It is a lot and it is not just about writing code.
What: Yet another definition of DevOps
Simply put DevOps enables development teams and operation teams to work better together. DevOps also aims to reduce the time taken by teams to reflect changes in production.
The term DevOps emerged when small startups started disrupting different markets with very small teams, maybe 4 developers, who were creating new products and at the same time covering the work usually done by big larger of IT system operations people. They felt the need of applying the same practices and processes of coding into operations – scripting, automation, version control, etc.
DevOps has since evolved into a cultural movement or practice that emphasizes the collaboration and communication of both developers and other IT professionals.
How: A DevOps checklist
This checklist is neither unique nor static. It could help you proceed with setting up a DevOps culture and toll suite, but don’t consider it as a unique way to proceed with your organization transformation.
No one knows how a product should work better than the customer himself. A customer-oriented culture does not focus on building the best product but rather focuses on creating the best solution for your customer. It is also important to Stop worrying about creating new products or features and instead focusing on new customer needs to fill.
A Cross-Functional Team
A Cross-Functional-Team is superior to a functional team since it is assembled to collaborate in better manners to solve problems faster. In DevOps context, the dev and ops teams should not live in separate silos. Each team member should provide support and pieces of advice in order to take advantage of the skills of everyone.
Open & shared spaces
When open spaces are arranged in the right way, they are a key to valuable communications and collaboration.
A hackathon is an event where attendees involved collaborate intensively on software/hardware projects. Hackathons usually have a specific focus on technology, a topic or a project. Hackathons are a great way to build communications and allow people to work together and have the same goal. Internal Hackathons from the same organization are also a way that some companies like Netflix, Facebook, Google, Microsoft, organize to promote new product innovation by the engineering staff.
Source Control & Revisions
Version control is not just for developers and it operations, since one of the best emerging practices in startups and enterprises is versioning documentation. Documentation versioning will help you track incremental backups, record any change and revert documentation to an earlier version and Track co-authoring and collaboration and individual contributions.
Infrastructure As Code
The fact of enabling the Continuous Configuration Automation approach is becoming a key step in the life cycle of a product.
«Infrastructure as Code is the process of managing and provisioning computing infrastructure and its configuration through machine-processable definition files. It treats the infrastructure as a software system, applying software engineering practices to manage changes to the system in a repeatable, structured and safe way.» (Wikipedia)
Continuous Integration, Continuous Delivery and Continuous Deployment
Continuous integration is an important brick in the DevOps settlement and the weak link in the automation process since it is positioned between development and operations in order to automate the flow and fluidity the passage of an application from development to post-development operations.
Continuous delivery is a practice designed to ensure that code can be rapidly and safely deployed to production and ensuring business applications and services function as expected through rigorous automated testing.
Continuous deployment is the next step of continuous delivery. Every release that passes the automated tests is deployed to production automatically. Continuous deployment should be the goal of most companies that aim to have and end to end lifecycle for their products.
Download the e-book «Effective DevOps» from O’Reilly to get a practical guide for improving collaboration across teams, promoting efficient use of tools, and using the concepts of DevOps to work more effectively.
About the author: Michele Tedesco, Technical Specialist Azure Application Development, Microsoft Switzerland
Michele has over 14 years of experience in software engineering. He is a specialist focused on Microsoft Azure application development. In his role he helps enterprises to transform their core businesses by leveraging cloud capabilities and making us of DevOps practices.