What is GitOps and why you should know about it
Developing technology is in reality far more expansive than just writing code. Technology teams need to consider a number of different aspects of the company’s technology stack including its compute infrastructure, storage, development pipeline, security and more.
For the most part, companies choose to purchase various products from third party vendors in order to complete their technology stack and thereby not have to build it all on their own. Each of these tools come with some form of a management console or dashboard that enables companies to tailor that specific tool to the company’s needs as well as integrate it within their product. The on-boarding, configuration and ongoing management will likely occur directly from within that console. In fact, managing these third party products and dashboards actually becomes a significant portion of a technology teams work-load and today often falls under the responsibility of the DevOps team.
Companies, and developers, in their continual quest for automation and efficiency are bypassing dashboards and instead preferring to manage these products directly from within their code base.
Naturally, these products are therefore deployed and configured, not as another management console, but rather by developers, as code, in the company’s Git (GitHub, GitLab or Bitbucket). This trend has been coined “GitOps” or “Git Centric”, as increasingly products are being codified and deployed within Git environments.
In a somewhat unusual twist of events, Git has become the tool that software companies use to manage their entire technology stack. This includes deploying their infrastructure, security and the automation of their development pipeline all from within their Git.
The technology blog Dzone put it nicely — “Increasingly, companies are using Git as their ‘single source of truth’ for their code, configurations and infrastructure. All their business logic lives in Git, and automated processes can turn their Git repositories into built and deployed software… We’ve entered the world of GitOps.”
A great example of a Git Centric tool is Terraform by Hashicorp. Terraform allows developers to define their infrastructure as code within their Git environment. It enables developers to consistently and automatically spin up servers with a consistent set of configurations in a scalable manner. It also enables teams of developers to understand the underlying server configurations by simply being able to look at the code itself without having to enter their cloud providers dashboard.
The GitOps market is growing exceptionally fast with companies announcing the codification of their products on a daily basis. Yet, at the same time, it is giving developers a perhaps unconsidered and threatening gateway into their production environments. Now that developers can automate the deployment of much of their tech stack from within Git, they can make changes that can directly affect their production environments. Prior to this new way of operating, these changes would have been reviewed, verified and released by the company’s DevOps team according to the company’s IT policies. This poses a dilemma, provide developers with the authority and responsibility to automate the deployment from within their code and gain the speed and efficiency benefits of doing so? Or ensure that the company maintains close control over its production environment?
This is where Datree.io (A TLV Partners portfolio company) wants to contribute. Datree is the first GitOps policy engine that connects with GitHub to provide automatic policy compliance checks and insights for every code commit. It lets Engineering and DevOps leaders accelerate delivery of quality software, and ensure operational efficiency. It lets Security leaders mitigate security and compliance risks and foster collaboration between Security and DevOps.
Other tools are emerging to allow GitOps manage and automate more than application deployments. For example, Gitpitch enables teams to build, edit, change, and publish slide presentations. In other words, developers can build entire slide decks and presentations from within their Git provider. They can then manage changes to these presentations and collaborate around them just as they would over their application code base.
And there’s Waffle.io, a project management tool built within Git for engineering teams. By operating from within Git, Waffle can automatically determine what features and tasks developers have been completed and what is still in progress. It can then automatically communicate status updates to the rest of the team so that everyone is on the same page.
We believe that Git is likely to become the de-facto tool for automating many company operations. Obviously, the first use cases are focused around the deployment and configurations of applications. However, as seen by some of the creative ways to take advantage of Git, these use cases are not only restricted to development and deployment of code, but can be effectively used for other business processes.
Above, we have started to document a GitOps landscape. Since we are still in the early days of this market, we expect to have missed a number of relevant companies. Therefore, please reach out to us @ brian[at]tlv.partners and we would be happy to add.
Brian Sack is on the investment team at TLV Partners, an early stage VC based in Tel Aviv, Israel.
Link to original article: https://venturebeat.com/2019/02/02/what-is-gitops-and-why-you-should-know-about-it/