In praise of DevOps and Release Engineering
Photo by Kaique Rocha from Pexels
Ever wonder how your favorite apps and online services update their features without any downtime? It’s all happening thanks to the miracle of DevOps and Release Engineering.
There was a time that web designers would launch a website by opening an FTP or SSH program and publish the web pages one by one. Then, static web pages evolved into web applications, and elegant client-server architecture in the cloud, mobile devices, and a new generation of desktop apps. That’s how we deliver and distribute software products and services from product developers to the end users. It’s also how we scale up software to be used by thousands of organizations and millions of users.
Devops and Release Engineering are two terms that you hear a lot in the meetings when you are building a complete system. Such a system would have working databases and services with APIs in the cloud. It has mobile, web, or desktop apps that are being used by your customers or staff, and these apps communicate with back-end in the cloud.
DevOps and Release Engineering could easily take up %25~%50 of a project’s cost depending on the scalability, security, and reliability requirements of your software product.
So what’s the difference between DevOps and Release Engineering?
In simple terms, Release Engineering is about putting together the software tools and scripts that we use for automating the process of testing and assembling the building blocks of your system.
DevOps is about the policies, practices, and workflows that we put in place in software development release cycles, building software packages, distributing software, and making sure that everything works in harmony. DevOps involves not only the Release Engineering team, but also the Software Development, Quality Assurance, and Support teams.
To build a useful application or software as a service (SAAS), we go through numerous iterations and continuous updates. DevOps is about creating a production line capable of continuous integration and deployment of your app to your customers.