What we want is clear: to develop and manage our infrastructure like we do our apps; with direct API-access at the source for real-time configuration. This requires more than just an automation layer on top of services that were designed before the cloud. This requires a fundamentally different approach to building infrastructure components and services.
API Access What?
Consider a popular webserver like Nginx or Apache. To use either of these, you will write configuration in a file, then start the service. To adjust the running configuration you would modify the same file and restart or reload the service. A remote login and direct administrative access is required to perform both actions.
Sure, you can automate this administrative task with a configuration management tool like Chef or Puppet, but it is still a task, and all the administrative overhead is still required. Imagine if the same result could be achieved with an API call directly to the web server in question. Imagine all of the layers that could be eliminated. Imagine how seamlessly you could automate changes across your infrastructure.
An API-driven web server is just the beginning. Virtual networks, load balancers, DNS servers, log collectors and reporters, metrics reporters and collectors, virtual IP balancers, cluster management tools... Just a few of the components we aim to fix. In many cases a simple, lightweight API wrapper around an existing product may suffice. Other cases require a complete rewrite or replacement.
How Can We Do It?
Nanopack is a collection of open-source projects that embrace the Unix philosophy of a singular purpose. The collective result is left to the imagination of the consumer, likely dictated by the needs of the project. We have a solid start, thanks in large part to our sponsor Nanobox (a Pagoda Box product), who has funded our efforts and allowed the release of proprietary code. We value collaboration and recognize there are other organizations and efforts that are inline with our vision. Let’s build this together.
Let’s Work Together
We need your help to realize this vision. If you’re a systems administrator or a devops person, we need your assistance to identify scenarios and vet potential solutions. If you’re a programmer, we have lots of code that needs to be written. We need help to document and spread the word. Get in touch on Github.