Bossie Awards 2017: The best cloud computing software

reviews
Sep 27, 20175 mins

InfoWorld picks the best open source software for building and managing cloud infrastructure

bossies 2017 cloud computing
Credit: IDG

The best open source software for cloud computing

Containers, microservices, functions as a service—it’s a light, fast, devopsy new world of distributed systems, service meshes, and “infrastructure as code” that just reeks of complexity. Luckily, the brilliant engineers at Google, Lyft, Uber, et. al. are solving the hard problems and sharing the code. 

[ InfoWorld presents the Best of Open Source Software Awards 2017The best open source software development tools. | The best open source machine learning tools. | The best open source databases and analytics software. | The best open source networking and security software. ]

Docker

bos17 docker

Image by Docker

Docker brought easy OS-level virtualization to Linux and added packaging and other nifty tricks. For a moment it looked like Docker would be the uncontested ruler of the next wave of virtualization. That changed, but while Kubernetes is gaining adoption among those building big clouds, Docker remains the default for almost everyone else. It is also the easiest path—especially if you just want to create a container or three on your laptop and share with others. If you’re not sure which to pick and you haven’t had a lot of experience with either, pick Docker.

— Andrew C. Oliver

Kubernetes

bos17 kubernetes

Kubernetes provides a set of metaphors for running clusters of containers that are grouped together to form applications. In addition to simplifying deployments, updates, rollbacks, and high availability, Kubernetes makes multi-container apps portable across public and private clouds, because the same container patterns can be redeployed anywhere Kubernetes runs. In three short years Kubernetes has become a staple of the new application stack, and shows no sign of slowing down.

— Serdar Yegulalp

Kops

bos17 kops

Kops (Kubernetes Operations) is a command-line tool for provisioning production Kubernetes clusters on cloud infrastructure. In just a few commands, you can provision and maintain a Kubernetes cluster with relative ease. Currently, the only cloud provider supported is AWS, but Google Compute Engine and VMware vSphere are in alpha and other platforms are being planned.

— Jonathan Freeman

Moby and LinuxKit

bos17 moby linuxkit

Image by Moby Project

The Moby and LinuxKit projects give developers a “LEGO set” of components to build their own container systems. Moby provides a container runtime, an orchestration toolkit, and other core system components, all delivered as OCI-compatible containers. LinuxKit is for building minimal, stateless Linux distributions, though persistent storage can be attached. The resulting images can be booted and tested on every major OS by way of a hypervisor or run in any of the major cloud environments.

— Serdar Yegulalp

HashiCorp Terraform

bos17 terraform

Image by HashiCorp

HashiCorp has always produced high-quality software that solves developer headaches. Terraform automates the deployment of infrastructure, allowing you to script the setup and configuration of server clusters and multi-tier applications in a datacenter or cloud—sort of like a Unix shell script can create devices, users, and services on a single machine. Compute, storage, networks, and supporting services like DNS can all be provisioned and combined in a repeatable, consistent manner.

— Steven Nunez

OpenFaaS

bos17 openfaas

Image by Alex Ellis

If you’re plunging into serverless computing and functions as a service, it’s easy to get locked into a particular cloud provider. Amazon, Google, and Microsoft Azure all offer competing serverless computing services, but they all require writing to their standards—and that means sacrificing flexibility. OpenFaaS is a serverless framework for Kubernetes and Docker Swarm, letting you maintain cloud provider flexibility while leveraging any programming language and Linux or Windows containers to create serverless functions.

— Jonathan Freeman

Envoy

bos17 envoy

Envoy is an edge and service proxy with a pluggable filter chain model and support for HTTP L7 filtering. Envoy can be used for a variety of scenarios such as HTTP/2 gRPC proxying and MongoDB filtering and rate limiting, and its load balancing support includes eventually consistent service discovery, circuit breakers, retries, and zone-aware load balancing. Envoy also exposes both statistics and distributed tracing. Envoy is currently implemented in C++ 11 as a service mesh that runs out-of-process.

— Martin Heller

Jaeger

bos17 jaeger

Image by Uber

Jaeger is an OpenTracing-compatible distributed tracing system for monitoring microservice-based architectures. It has Go, Java, Python, and Node.js clients, and templates for Kubernetes and OpenShift. Jaeger uses consistent upfront sampling with individual per service/endpoint probabilities. Its back-end components are implemented in Go and its UI in React. It can use Cassandra or Elasticsearch as back-end storage plug-ins.

— Martin Heller

Linkerd

bos17 linkerd

Linkerd is a transparent service mesh, designed to make modern applications safe and sane by transparently adding service discovery, load balancing, failure handling, instrumentation, and routing to all inter-service communication. Linkerd acts as a transparent HTTP/gRPC/Thrift/Etc proxy, and can usually be dropped into existing applications with a minimum of configuration, regardless of what language they’re written in. It works with many common protocols and service discovery backends, including scheduled environments like Mesos and Kubernetes.

— Martin Heller

Zipkin

bos17 zipkin

Zipkin is a distributed tracing system that helps gather timing data needed to troubleshoot latency problems in microservice architectures. Applications are instrumented to report timing data to Zipkin. The Zipkin UI presents a dependency diagram showing how many traced requests went through each application. If you are troubleshooting latency problems or errors, you can filter or sort all traces based on the application, length of trace, annotation, or timestamp.

— Martin Heller

Awless

bos17 awless

Image by Wallix

Awless is an alternative to the AWS CLI that offers a simpler syntax and some powerful enhancements. Awless makes it easy to create, update, or delete resources through simple scripts or template files that chain together commands. It supports aliases and provides autocompletion, inputting smart defaults and prompting for missing variables during resource creation. It even keeps a local RDF graph of your AWS resources that you can query offline, and a local log of operations you can use to revert to a previous state. 

— Victor R. Garza

Martin Heller

Martin Heller is a contributing writer at InfoWorld. Formerly a web and Windows programming consultant, he developed databases, software, and websites from his office in Andover, Massachusetts, from 1986 to 2010. From 2010 to August of 2012, Martin was vice president of technology and education at Alpha Software. From March 2013 to January 2014, he was chairman of Tubifi, maker of a cloud-based video editor, having previously served as CEO.

Martin is the author or co-author of nearly a dozen PC software packages and half a dozen Web applications. He is also the author of several books on Windows programming. As a consultant, Martin has worked with companies of all sizes to design, develop, improve, and/or debug Windows, web, and database applications, and has performed strategic business consulting for high-tech corporations ranging from tiny to Fortune 100 and from local to multinational.

Martin’s specialties include programming languages C++, Python, C#, JavaScript, and SQL, and databases PostgreSQL, MySQL, Microsoft SQL Server, Oracle Database, Google Cloud Spanner, CockroachDB, MongoDB, Cassandra, and Couchbase. He writes about software development, data management, analytics, AI, and machine learning, contributing technology analyses, explainers, how-to articles, and hands-on reviews of software development tools, data platforms, AI models, machine learning libraries, and much more.

More from this author

Serdar Yegulalp

Serdar Yegulalp is a senior writer at InfoWorld. A veteran technology journalist, Serdar has been writing about computers, operating systems, databases, programming, and other information technology topics for 30 years. Before joining InfoWorld in 2013, Serdar wrote for Windows Magazine, InformationWeek, Byte, and a slew of other publications. At InfoWorld, Serdar has covered software development, devops, containerization, machine learning, and artificial intelligence, winning several B2B journalism awards including a 2024 Neal Award and a 2025 Azbee Award for best instructional content and best how-to article, respectively. He currently focuses on software development tools and technologies and major programming languages including Python, Rust, Go, Zig, and Wasm. Tune into his weekly Dev with Serdar videos for programming tips and techniques and close looks at programming libraries and tools.

More from this author