As our CEO and Founder Arin Sime wrote in a recent blog post called The Importance of DevOps in Live Video Applications, DevOps is a set of skills that our WebRTC development clients are needing more and more, even if they don’t always ask for it by name.
As our resident DevOps Engineer, I would like to share my thoughts about DevOps — how we apply it internally and with our clients, and how its proper implementation is essential to the success of our projects. Many thanks to our WebRTC.ventures Information Security Officer, Maynor Taisigüe, who is a great partner in our DevOps operations and helped me organize these thoughts.
A Quick Intro to DevOps
“…We live among its people now, hiding in plain sight, but watching over them in secret, waiting, protecting…”Optimus Prime
DevOps generally is support work and technical in nature. Our efforts are not always visible. We are not developers presenting the results of our coding to clients. Rather, we are “under the hood”. Always watching, waiting, and protecting.
Devs vs. Ops
There is a historical conflict present in the software development lifecycle. We have two groups with two very opposite goals.
The Development team makes software. They are constantly creating new features and coding. Their goal is CHANGE. They want to create great applications and keep them great through continuous optimization.
The Operational side is in charge of making sure that the infrastructure is working. Their goal is the opposite. They want to STABILITY. One way to do this is to actually prevent change. If it’s not broken, don’t fix it!
To make it more complicated, you add in the Leadership or Business team. They want new products (change), but also don’t want anything to go wrong (stability).
This creates SILOS. Each department is working toward their own goal, which is in direct conflict with the other parts of the company. The idea of DevOps is to remove the silos, satisfy everyone’s goal, and help move forward to achieve business objectives. In other words, DevOps increases pace to achieve change, but keeps it stable.
OK … so what really IS DevOps?
I think this quote says it all.
“DevOps is the combination of cultural philosophies, practices, and tools that increases an organization’s ability to deliver applications and services at high velocity: evolving and improving products at a faster pace than organizations using traditional software development and infrastructure management processes”https://aws.amazon.com/devops/what-is-devops/
How do we do this? Three ways:
DevOps is Culture
DevOps is a state of mind that must be born in the organization. It starts with the business owners. They have to break down silos in favor of autonomous teams with shared responsibility for feedback, automation, and quality.
With this type of culture, everything should be in place to meet a company’s business objectives: for example to release software more often and with better quality. This needs to be everyone’s responsibility.
DevOps is Practices
Knowing how it should work is one thing. How do we make sure it works like that? What do we need to do?
In this regard, each company will be different. One of my favorite books about DevOps, The Phoenix Project, tells the story of a manufacturing company that is having issues with its releases. Software has a better cycle. So they implement automation processes to speed up.
Automation is a key DevOps practice. It is a logical step in both manufacturing and software development. Its benefits can be clearly seen when applied to these 5 processes:
- Continuous Integration / Continuous Delivery
- Log Management
- Infrastructure Management
- Software Testing
One final word on this subject: practices need to be documented! Especially as the team grows.
DevOps is tools
Tools make it all happen. And there are so many tools! We use them to plan, code, build, test, release, deploy, operate, and monitor our software products. The above diagram is a great representation of some of the popular items in the DevOps toolbox. It is just the tip of the iceberg!
Evolution takes time
Tools come after implementing a practice. The practice comes after adoption of the DevOps culture. It is an evolution that takes time.
Software development is a never ending, infinite cycle. We never finish. We can and should always improve in order to evolve and adapt to an ever-changing world.
DevOps is the backbone to achieving this vision.
The WebRTC.ventures team of developers, designers, testers, DevOps, and project leads has deep expertise connecting users via WebRTC video and audio applications. Contact us today and let us put it to work for you!