DevOps is essential to the culture, practices, and technology of our work at WebRTC.ventures. Similar to testing, DevOps is a set of practices that our clients don’t always realize they need when they contact us, but it’s a crucial part of building their live video application.
Our team holds regular internal meetings where we update each other on company strategy as well as share knowledge. One of our DevOps leads, Hector Zelaya, recently gave a presentation about some of the important work they have been doing recently for our clients.
Their presentation got me thinking about the importance of DevOps to our client work. It is a set of skills that our clients are needing more and more, even if they don’t always ask for it using that terminology.
What is DevOps?
As Hector did in his presentation, I’ll first share a definition of DevOps, in case you’re not familiar with the term:
“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.”Amazon AWS website
This lofty goal is achieved by implementing cloud infrastructure using best practices, server scaling, continuous integration and testing tools, system monitoring, and automation wherever feasible. These technical practices are not always simple, especially in video applications that place unique performance constraints on the cloud services they run on. Scaling a video application is not the same as a standard website. The video traffic and media processing creates a much bigger burden on a server than a WordPress site.
Implementing quality DevOps is crucial to our work in that it enables:
- Scalable architectures
- Reliable applications
- Easier application maintenance
- Easier application transition
- Continuous improvement
Let’s look closer at each reason why DevOps is so important to your video application.
#1 DevOps helps plan scalable architectures
As I discussed in a recent WebRTC Live episode with Anton Venema, CTO of LiveSwitch, scaling a video application is not easy. Anton’s advice is that similar to recording, it is important to take scaling into account early on in your application architecture design. That means choosing a cloud service and auto scaling tools that will allow your application to grow over time.
This is exactly what DevOps will do for your team. Scaling is not as simple as deciding to use AWS and then just increase the number of server instances whenever customers complain. You need to think about scaling a variety of servers: your TURN server, the media servers (unless you’re using a CPaaS, in which case they’ll do it for you), as well as scaling your database and application servers. Deciding when and how to do that scaling will typically involve expertise using other tools like Kubernetes. Many developers don’t have that expertise, but a DevOps expert can supplement their knowledge with scaling patterns to help you plan for success.
#2 DevOps makes applications more reliable
Our video application developers are the best around. But like any software developer, they sometimes make mistakes. Building software is not easy! At a minimum, you need to take into account manual testing for your video application. From a DevOps perspective, the main requirement for manual testers is that they have a testing environment in which they can safely experiment with the application without affecting production users or the developers who need a more fluid environment to build code in.
Even better is to build in automated testing on top of a continuous integration environment. This will allow your development and testing teams to collaborate on automated test suites that can help verify your application faster and ensure reverse compatibility as new features are released.
This combination of manual testing environments, automated testing, and continuous integration all requires DevOps expertise to set up and manage properly. The end result of these efforts is a much more reliable application than even the best developers can build alone. It’s well worth the investment.
#3 DevOps makes applications easier to maintain
An application using automated testing and monitoring is also much easier to maintain. This is true of any web application. It’s particularly true of live video applications because there are additional things you need to monitor in order to ensure your application is working smoothly.
A standard web application might monitor things like server CPU load (to determine when scaling is necessary), error logs, and customer usage statistics. All of these help notify the application team that something is wrong, hopefully before customers report an issue.
For a video application, you may also want to monitor things like call quality using tools like CallStats.io, as well as specific logs around things like call connectivity. You may also want to write a “smoke test” script that runs periodically to go through a simple video call path in your customer journey, just to see that everything is working as expected.
Determining the types of monitoring and automated testing your application needs is something that our DevOps and Testing teams can help figure out and also implement.
#4 DevOps makes transitions easier
At WebRTC.ventures, we regularly hear from potential clients who are struggling to take their application to production. This is often because they built the first version with a single developer and now that developer has other priorities or has left, and all the knowledge went with them. Or, that single developer didn’t do a great job and now the client is stuck with a half functional and hard to maintain application that they cannot easily transition to a new development team.
DevOps, when properly implemented, can help with these challenges. By building scalable architectures on cloud services and by using code that is tested and deployed automatically using scripts shared across the team, the application is not overly dependent on any single developer.
Applications that are built with DevOps principles are better suited to team environments and growing companies who cannot afford to have any single point of failure in their application or in their development team.
As consultants and contract developers, our team at WebRTC.ventures is often not going to be your permanent development team. Although we’re certainly happy to work with you for a long time, we always assume there will come a point where you want to hire your own team to continue the development and maintenance of your live video application. Using good DevOps practices will make that transition easier, which is good for us and good for our clients!
#5 DevOps encourages continuous improvement
One of the great advantages of using DevOps practices like continuous integration and continuous delivery in application development is that it encourages teams to deploy their work frequently and in small chunks. This agile software development technique is designed to remove fear so that both business and technical teams are confident continually trying new ideas and implementing frequent improvements to their application.
In this way, DevOps enables a culture of continuous improvement. This is especially important in live video applications because so much of our work is on the cutting edge of what is capable in internet software development.
DevOps is more than a technical practice
As you can see, DevOps is so much more than a series of technical practices. DevOps enables innovative businesses to adapt more quickly to customer demands and better compete in a rapidly changing marketplace. Given that live video applications have become so important due to the global coronavirus pandemic, our clients must innovate constantly. Our DevOps expertise at WebRTC.ventures is an essential element of that innovation. Contact us to learn more!