Bossie Awards 2017: The best cloud computing software

reviews
Sep 27, 20175 mins
CareersCloud ComputingDevops

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
Contributor

Martin Heller is a contributing editor and reviewer for InfoWorld. Formerly a web and Windows programming consultant, he developed databases, software, and websites from his office in Andover, Massachusetts, from 1986 to 2010. More recently, he has served as VP of technology and education at Alpha Software and chairman and CEO at Tubifi. Disclosure: He also writes for Hewlett-Packard’s TechBeacon marketing website.

More from this author

serdar_yegulalp
Senior Writer

Serdar Yegulalp is a senior writer at InfoWorld, covering software development and operations tools, machine learning, containerization, and reviews of products in those categories. Before joining InfoWorld, Serdar wrote for the original Windows Magazine, InformationWeek, the briefly resurrected Byte, and a slew of other publications. When he's not covering IT, he's writing SF and fantasy published under his own personal imprint, Infinimata Press.

More from this author