For an organization that wishes to modernize a software development and delivery platform and create a DevOps culture, it's crucial to adopt tools that are associated with these productivity gains. Here are five tool types that an IT organization can integrate into the DevOps technology stack:
- Distributed version control
- Continuous integration servers
- Container and container orchestration tools
- Configuration management technology
- JSON and NoSQL servers
1. A distributed version control system
Teams must be able to quickly share their work with simple tools that make the process easy. That's where a distributed version control system (DVCS) like Git comes in. While cumbersome on other centralized version control systems, Git makes tasks such as development branch creation or development workflow assignment a natural part of the development process.
Furthermore, with cloud-hosted services such as GitHub or GitLab, patches and fixes are easily accessible by admins that want speedy distribution of software updates. The first step in any DevOps transition is to get the right tools in place, and the first thing organizations should integrate into their DevOps technology stack is an enterprise-ready DVCS tool.
Five popular DVCS offerings include:
- Atlassian Bitbucket
- AWS CodeCommit
2. Continuous integration and delivery tools
Just because code can check into Git without any merge conflicts doesn't mean it complies. With multiple developer contributions on a project -- along with the occasional contribution from the Ops team -- everyone needs a mechanism to constantly integrate and compile code. That's where a continuous integration (CI) server comes in. Every DevOps team needs one.
A developer has many options from which to choose to add to the DevOps technology stack. Jenkins gets the most press in the Java community, but there are many others, such as:
- JetBrains TeamCity
- CloudBees Core
- Atlassian Bamboo
- Concourse CI
3. Containers and orchestration tools
Gone are the days of monolithic application developments and EAR and WAR file deployments to resource hungry application servers. Instead, each application is provisioned in its own lightweight environment with any and all necessary tools and technologies.
These self-contained environments are called containers. These containers make lightweight resource provisioning to applications possible. But when an organization runs many containers in production, it will need an orchestration tool to manage the environments. Enter Kubernetes.
By combining a software container to provision an application's resources with Kubernetes to manage all the containers in production, an organization can enjoy the promise of DevOps brought by the benefits of continuous deployment and improved productivity.
Popular container and orchestration tools include:
- The LXC Linux Container
- Apache Mesos
4. Configuration management
With each application provisioned in its own environment through a Docker container, and with potentially hundreds of microservice applications deployed in production, an organization now must manage this plethora of resources. It needs to keep track of how it provisions each container, not to mention the occasional need to patch, update and reconfigure various components.
That's where DevOps teams need to consider configuration management tools, such as Puppet recipes and Ansible playbooks. These tools help automate the creation of operational environment builds, which make DevOps environments more predictable, manageable and auditable than before.
Five popular configuration management tools to choose from include:
- CA Unified Infrastructure Management
5. JSON and NoSQL as DevOps tools
JSON is often overlooked as part of the DevOps technology stack, but in many cases it is the glue that binds development and operations. JSON is a simple data structure that is easily read, written, edited and consumed by developers and admins alike, and creates a common language between the two.
Furthermore, NoSQL database usage, where data structures can be changed, frees developers from pestering admins about tedious schema changes and table commands alterations, which lets both groups concentrate on more pertinent tasks.
Five popular NoSQL databases include:
- Apache Cassandra
The point of DevOps is to empower developers and administrators with tools to make them more productive, speed up application performance and continually deploy microservices. When done properly, a DevOps transition results in a permanent, positive culture change. And the key to such a transition is to introduce a DevOps technology stack that makes everything possible.