Skip to content

evan-schott/ww

 
 

Repository files navigation

Wetware

Godoc Reference Go Report Card tests Matrix

Wetware is the language of the cloud. It is an alternative to Kubernetes, Mesos and OpenShift that turns any group of networked computers -- including cloud-based instances -- into a programmable IaaS/PaaS cluster.

Developers use wetware to write distributed applications that can be instantly ported from a single laptop to the datacenter, cloud, or a hybrid of both.

Managers love Wetware for its organizational benefits, which include a unified API for coordinating access to resources across teams, cloud-agnostic services that avoid vendor lock-in, and a small learning curve that onboards developers faster.

But there's more. Wetware is a full-fledged distributed systems language, complete with a batteries-included standard library, and a rich ecosystem that your team will never outgrow.

Quickstart

TODO

Motivation

Fear, uncertainty, and declarative config

Existing IaaS/PaaS like Kubernetes try to hide cluster state behind declarative config, often written in a high-level markup language like YAML, TOML or JSON. Instead of programming your infrastructure, you declare the desired state of your cluster in a configuration file, and the software tries to figure out a way to reach that state. Declarative approaches work well for applications like database queries, but cause serious problems in a IaaS/PaaS setting.

The problem is that declarative syntax gets datacenters exactly backwards. In a datacenter or cloud environment, you need to keep track of two things at all times:

  1. What is the current configuration of my cluster? (state)
  2. How do I get to the desired state? (strategy)

But with IaaS/PaaS systems like Kubernetes and Mesos, both 1 & 2 are burried under multiple layers of configuration, indirection and abstract interfaces. And although you know where you want to go (i.e., the state described by your YAML config), you can't be sure where are right now, nor how your config translates into execution.

When you encounter a problem, it's hard to diagnose what went wrong. All you can really do is grapple with configuration, restart services, and make educated guesses. Worse, existing IaaS/PaaS systems are incomprehensibly complex, and frequently degenerate into inconsistent states that force you to reboot the entire cluster, especially as you scale. When that happens you lose valuable debugging information that could have prevented the next incident.

The Wetware Way

Wetware breaks this vicious cycle by turning IaaS/PaaS on its head. Instead of static configuration, you're given a powerful language for querying and programming your cluster. Wetware comes with a REPL to interactively run code on your cluster, high-performance datastructures and synchronization primitives that make concurrency simple, and a rich standard library for writing distributed systems, batteries included.

Drawing inspiration from proven paradigms such as UNIX, Wetware will feel familiar to junior devs and CTOs alike, empowering them to finally treat infrastructure as code.

For managers and devops, Wetware's intuitive cluster API provides a clear, accountable and safe interface between the various engineering roles in a technology company, increasing iteration speed and reducing time-to-value.

How it Works

Getting Started

TODO

Documentation and Support

TODO

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 94.9%
  • Cap'n Proto 3.6%
  • Makefile 1.5%