Understanding the Technical Stack for DevOps

Adding tooling to your DevOps investments is key to making sure your adoption goes from good to great. 

There are many DevOps tools on the market today. Understanding what toolsets to implement for today and for tomorrow can be challenging.

Collaborating – The DEVOPS glue that binds DEV to OPS.

Although not traditionally included in DevOps tools lists these are essential because of the importance that collaboration has in DevOps. You can have great processes, people, and culture within your organization around collaboration, but in the end, without the right tools in place, you still will not get far, and scaling will also become a real issue without collaboration. [Teams, Zoom, Slack, Jira, Project etc. are some of the well-known platforms used to collaborate.]

Building – Which includes Coding.

Build tools are what enable you to take what you have developed and turn it into something that you can later deploy somewhere else. This starts with source control tooling. By far the most common such tool today is Git. Some of the most popular tools are SubVersion, Jira, GitHub/ GitLab and Eclipse, although Git-based technologies can be found within several different source control products and products that span beyond “CODE” or “BUILD”. Build tools are also not exclusively related to software – Infrastructure can be built with some these tools as well like [IaC – Infrastructure as Code]. Container Infrastructure can be built in the same way and Database Infrastructure can also be built to manage your database schema and structure using the same platforms and tools. [Maven, Gradle and Apache Ant are some of the popular, successful tools performing in this space.]

Testing – including Release

Testing is one of the broadest terms when it comes to DevOps tooling. Here you will find tools to perform testing for a wide range of requirements. The process of testing could be anything from the unit testing of code by developers all the way through to user acceptance testing and tools that automate browser testing for web applications. [Selenium or JUnit are tools used for Testing with Jenkins or Bamboo for Releasing]

Deploying – to Operations

Deployment is where the built and tested solution/application/artifact is implemented to the destination environment. This could be to a cloud platform such as Microsoft Azure, Amazon Web Services, or Google Cloud or Hybrid Cloud or Private Datacentre. It could even be in a mobile app store or mobile application. Whatever the solution is, it needs a place to exist where it will be used. [Puppet, Chef, Ansible and SaltStack are deployment tools in this arena, and they are contributing to successful DevOps deployment phases.]

Running – Operating with monitoring

Once you have deployed your application, you have entered what is known as the run phase. At this point, the operations team uses tooling to manage the application. The Managing or [Operating Tools for solutions form a vast library from Open-Source to proprietary solutions and these tools will not be discussed here since they may be unique to every solution.]
Developers will also have multiple tools in place for monitoring. Monitoring of performance with detection, identification and reporting of exceptions. Some of the monitoring tools in the RUN phase may be natively built into the platform of the solution while some may be add-on products or tools. [New Relic, Sensu, Splunk and Nagios are very well known, successful Monitoring tools in this DevOps space.]

DevOps tooling covers the whole DevOps life cycle. In WiRD’s experience it is important to be clear on which tools will be used for each DevOps category; as well as how these tools will interact with each other; before deploying them.

What has your experience been with regards to deploying DevOps tools? Please share your experiences with WiRD by commenting or interacting on LinkedIn.

 

 

 

This website uses cookies and asks your personal data to enhance your browsing experience.