Three constraints and the future of open source infrastructure
The Plural Manifesto
Posted 2021-08-16 by @pluralsh
Innovation in computing has been rapid, but periodically road blocked by a sequence of solving three major constraints.
1. Materials science and semiconductor design
Computation was initially restricted to massive machines, only accessible to those with enough capital to purchase and maintain them. As we rapidly decreased the cost and size of the chip while dramatically increasing compute power, we were able to develop a new breed of personal computers accessible to the masses.
This unveiled the second major constraint.
2. Information transfer cost
While transitional solutions like the floppy disk or cd-rom came first, this was a problem ultimately solved by the internet which allowed computers to stream effectively unlimited amounts of data at high-speed between each other over TCP.
This created a third major constraint that’s proven more difficult to wrangle than the previous two.
3. Distributed systems operational cost
Similar to the original challenge of semiconductor design, the solution we’ve chosen to manage this constraint to date has been to achieve economy of scale.
Centralized services have minimized the need to hire for the unique skill set required to maintain distributed systems and reduced the challenge of preserving the knowledge around how each specific system works in-and-out.
But what have we given up in exchange?
As with all centralization this has deep implications in terms of data privacy for users, results in obscene markups for what are effectively “managed” copies of open source software, and compensates the big guys whose primary value is simply owning datacenter real estate instead of supporting the developer communities truly responsible for the software.
At Plural, we believe there’s a better way to solve this third major constraint that benefits OSS developers and DevOps teams alike. A truly scalable, flexible solution to application delivery that gives developers autonomy to build and reconfigure the software they use freely, while appropriately compensating open source maintainers for their work.
If you’ve built an application that has some degree of traction, we’ll give you all the tools needed to build a business around third party installations of that software — support, observability, multi-cloud installation — enabling you to offer a SaaS-like total cost of ownership to your customers with a very non SaaS-like application ownership profile.
Today we have an initial catalog featuring some of the most popular open source applications like Airflow, GitLab, Sentry, and RabbitMQ, but this is just the beginning of the OSS marketplace we’re working to build.
With Plural you can adopt, integrate, and maintain any or all of these applications within a matter of minutes, and because Plural sits between the open source application and the Kubernetes layer of a deployment it’s totally cloud-agnostic.
Legacy constraints currently prevent all the major players from doing this right (Amazon, Google, Microsoft’s need to protect their core cloud business, VMWare’s lock-in with their core VM business, etc.) The core technology needed is all there, it just needs to be brought together and offered in a holistic manner to the market. We aim to do just that.
How Plural works
We believe that with the proliferation of declarative configuration, distributed systems can now be delivered effectively as source code, and are building around this paradigm.
Our workflow has three basic steps:
Package & Publish
- we offer package registries for common resources like helm, terraform, docker with an overarching dependency system to ensure installations always meet requirements
- installation bundles can tie together common modules to form coherent stacks, eg a mattermost deployment on GCP
- plans can be attached to repositories with a cryptographically secured license generated that can embed installation-specific attributes like line items, feature add-ons, etc.
Install & Configure
- a customer can use our build tool to codegen a complete workspace given their current installations into an existing git repo
- Once built, the build tool can then sequence installation in dependency order to ensure seamless installation in a hands-off manner, even if the application requires a mix of cloud services, k8s resources, or anything else.
- GitOps best-practices are handled out-of-the-box, like secret management
- Any custom configuration changes are preserved as the application evolves, making troubleshooting far more transparent and manageable
- Once the application is installed, use our dynamically extensible admin console to convert any kubernetes installation of your application into its own “managed service”
- Upgrade queues are polled to ensure installations remain fully up-to-date (or within specific release channels)
- Dashboards, log aggregators, runbooks are all specifiable via CRDs for the specific application you might want to deploy
- Aggregate application health-checks give at-a-glance views of the health of any app you’re running
- Trouble ticketing is available in-dashboard as well, with bonuses like slash-commands and zoom integrations to make the experience responsive and seamless