Open Source DevOps: 6 tools you can’t do without
Over the past few years, Open Source software has made considerable strides towards mainstream adoption – and if the results of the 2015 Future of Open Source Survey are anything to go by, it looks like this might be the year that we finally turn the corner: only 3% of respondents said that they didn’t use any open source software at all, more than two-thirds of respondents said they would consider open source software before purchasing proprietary software, and rates of adoption and engagement with open source software in enterprises is at an all-time high. When it comes to the open source DevOps world, things are no different. There is a huge variety of open source tools on offer, and selecting the right ones for the context of your business can be a very important decision. With that in mind, let’s look at some of the most widely-used open source DevOps software and what each can offer you.
Arguably the most well-known software on this list, Jenkins is a continuous integration and continuous delivery platform that makes it easy to continuously build and test software projects. Jenkins improves productivity by allowing developers to easily integrate changes, and users to access fresh builds without hassle. Jenkins also integrates with a large number of testing and deployment technologies and provides ways to define your build pipelines to ensure continuous delivery of software projects. The platform allows for extensive customisation, and if you don’t find what you’re looking for in the 1,000+ community-made plugins, creating custom ones is quick and easy. Builds can be started in a number of ways, including triggering by commit in a Version Control System (VCS), requesting a specific build URL and scheduling through a Cron-like system. Some of Jenkins’ most well-known users include NASA, the UK Government, Dell and Yahoo!.
Ansible is an open source DevOps software platform which provides configuration management and automation services. Ansible also includes ad hoc task execution and multi-node deployment. Ansible modules work over both JSON and standard output, and can be written in any language. Part of what makes Ansible such an effective tool is the fact that it uses YAML (a human-readable data format) to describe reusable system descriptions. Ansible makes it easy to autonomously deploy apps and manage systems, saving your engineers valuable time and bringing new efficiency to mundane and repetitive processes.
Docker is another household name in the world of open source DevOps. Docker makes it easy to create, deploy and use applications by packaging the application and all its dependencies (Code, runtime, system tools, system libraries etc.) into a virtual ‘container’. This means that developers can rest assured that the application will run properly on any other machine, regardless of any custom or conflicting system settings on the end user’s machine. In this sense, Docker acts in a similar way to a virtual machine – but it lets the application use the same Linux kernel as the machine on which it is currently running. This results in significant boosts to performance and a substantial reduction in file size, and facilitates flexibility and portability. The lightweight and performant nature of containerisation is driving the trend towards MicroServices, where applications are broken into smaller self-contained components that are packaged and deployed independently as containers. Combined MicroServices and Containerisation address some of the key challenges that organisations have faced deploying monolithic applications, and supports one of the key “agile” principles: small batches. Docker’s most notable customers include eBay, PayPal, Spotify and BBC News.
Nagios is a monitoring tool that can monitor and report on network environments, applications, systems and infrastructure, and collate and send this data over a network via customisable plugins. Nagios is highly customisable and flexible and provides [AC4] an overview of business-critical IT infrastructure. Nagios is a popular tool in the world of open source DevOps as it allows proactive identification of potentially catastrophic issues by making it possible to detect and repair problems before they affect customers, thereby mitigating service issues and preventing Service Level Agreement (SLA) disputes. It’s also an effective way to coordinate tech-team responses and manage infrastructure upgrades and outages without affecting service levels.
Artifactory is an open source, universal Artifact Repository Manager. According to Jfrog, the organisation that produces Artifactory, it is the only enterprise-grade repository manager available today. Artifactory supports software packages regardless of which operating system or technology they were designed on, and integrates seamlessly with all major Continuous Integration and Continuous Delivery software. Artifactory makes it possible to store artifacts remotely while still keeping a local cache for easy and quick retrieval, mitigating the chance for failure and deviation that comes with rebuilding from source. Additionally, Artifactory features user-friendly searchable XML metadata and user-defined properties to quickly find and identify any artifact, as well as customisable access and security protocols to control who can access and deploy artifacts. Some of the most well-known users of Artifactory include Google, LinkedIn, Oracle and Amazon.
Selenium is a lightweight, portable automation platform for browsers that provides tools for authoring tests without having to learn a test scripting language, and is the core technology behind many other browser automation tools. However, Selenium is primarily used for automating web browser applications for testing purposes. Selenium also includes a testing Domain-Specific Language (DSL) called Selenese that makes it possible to write tests in most popular programming languages. Selenium features a number of components, including Selenium IDE (An Integrated Development Environment implemented as a Firefox plugin), the Selenium client API (which provides an alternative to testing in Selenese) and Selenium WebDriver (which allows users to remotely automate browsers). Selenium is supported by many of the largest browser developers, all of which have included, or are planning to include, Selenium as a native part of their browsers.
This list is by no means an exhaustive catalog of the open source DevOps software that exists – there are many more options for open source DevOps, as well as several proprietary tools that provide valuable services in their own right. As a DevOps consultancy, at ECS Digital we make it our business to understand every option that’s available so that we can implement the best DevOps solution for your business. We have extensive experience implementing all major open source products, including those listed in this article, as part of open source only, and hybrid open source and enterprise software DevOps solutions. To find out more about the services we provide, please don’t hesitate to contact us.