
InfraKit, for creating and managing declarative, self-healing infrastructure - dankohn1
https://blog.docker.com/2016/10/introducing-infrakit-an-open-source-toolkit-for-declarative-infrastructure/
======
erikrothoff
I have worked at large companies before, and one theme of them was always
stagnation. They never really expanded after their initial product was
developed. Years and years worth of man-hours were just spent on beauracracy,
reinventing the wheel and just sitting around doing nothing (harshly put). A
lot due to the leadership and lack of motivation.

I'm just so amazed by the level of innovation going on at Docker, and none-
stop delivering of new features. All the while building a very solid base
product. I'm genuinly intrigued at how they are able to do this, and grow so
fast. How can all these new products be spawned, and yet still be relevant in
the grand scheme of things? Sorry for sounding preachy, I really love what
Docker is doing.

And technically there is probably a lot to dislike about Docker. I get that
vibe from some comments in this thread. While everything is not perfect (yet),
the Docker eco-system is just such a besutiful blend of user experience and
function. Even their marketing is spot on. It feels almost like I started
loving Docker because of the cute whale!

~~~
brazzledazzle
Not a dig against Docker but in my experience usually that stagnation kicks in
when you're reasonably profitable or the end of the investment money is
nowhere in sight. Gotta stay hungry. Always.

------
subway
_As part of this mission, we have always endeavored to contribute software
plumbing toolkits back to the community, following the UNIX philosophy of
building small loosely coupled tools that are created to simply do one thing
well._

Great stuff. Coffee just shot out my nose.

------
_jezell_
Cool, but do you really Have to keep putting everything in docker engine?

------
camillomiller
The "live open-sourcing" onstage at LinuxCon Europe was pretty neat. :D

------
Rapzid
I'm waiting to be convinced this is a better approach than leaning on AWS
autoscaling. I'm not super familiar with Azure, but it looks like that have
availability sets which may offer the same basic abilities as autoscale
groups.

This could be an interested bare-metal solution though; would need to write a
connector for a bare-metal providers provisioning API though. I'm guessing
profit bricks and Rackspace would be good places to start..

------
grabcocque
So is this like Terraform?

~~~
shykes
Docker founder here.

InfraKit is a higher-level component, it focuses on production deployment and
"self-healing" state reconciliation. You can actually use terraform as a
backend for infrakit.

Another difference is that Infrakit is not a standalone tool, it's a component
designed to be embedded in a higher-level tool. For example we're embedding it
in the Docker platform for built-in infrastructure management.

~~~
atsaloli
I love it. Also, coming from a background in CFEngine, I see a lot of familiar
motifs. Low-level primitives, check. Audit and repair, check. Declarative
description of desired state, check. Distributed, check. Good stuff. All
workable approaches as proven since 1993 by CFEngine. I certainly wish Docker
the best.

~~~
shykes
Thanks :) I am a cfengine fan myself, it inspired me to start working on what
would eventually become Dotcloud then Docker. There was also Radmind and
ISconf, which did not enjoy the same success.

I still remember reading the "infrastructure thinking" paper [1] and being
blowm away by the concept. Back then (around 2005) calling it infrastructure
as opposed to just "servers" was radical and unusual.

There was also a paper on "computer immunology" which I found really
inspiring.

[1] [http://www.infrastructures.org](http://www.infrastructures.org)

[2]
[http://people.scs.carleton.ca/~soma/biosec/readings/burgess-...](http://people.scs.carleton.ca/~soma/biosec/readings/burgess-
immunology.pdf)

~~~
atsaloli
Great! Appreciate all your work. :)

------
hartror
Terraform meets Consul?

~~~
endymi0n
Yup, and it somehow also includes Packer, Kubernetes, Spinnaker and Mesos.

Don't get me wrong, but this looks like it's trying to be systemd for
infrastructure orchestration - and I don't mean that in a particularly good
way. This design is just all over the place.

------
SEJeff
This was worked on by Bill Farner, of Apache Aurora (Mesos) fame and his team.
Nice job gents!

------
StavrosK
Hmm, does anyone know how it compares to Ansible? It looks similar at a first
glance.

~~~
shykes
They are quite different.

\- Ansible is a _standalone tool_ with a _very broad scope_ ("automation for
everyone").

\- InfraKit is an _embeddable component_ with a _very narrow scope_ ("create
and manage declarative, self-healing infrastructure").

If Ansible were written today, it could probably embed InfraKit to implement
low-level infrastructure management.

------
moondev
This looks similar to the k8s design. In theory could one build a plugin to
run k8s on top of this? Then you could easily switch between swarm and k8s?

~~~
shykes
> _In theory could one build a plugin to run k8s on top of this? Then you
> could easily switch between swarm and k8s?_

Yes, absolutely, you could use Infrakit to provision any kind of
infrastructure using a custom "flavor".

