I'm one of those people who genuinely loves technology.
As a kid I took things to bits to see how they worked - telephones a speciality. Thankfully, with time, "see" became "understand", "work" became "work better" and taking an active role in technological innovation became a central theme of my life. This is what I do now...
I make new things, mostly in software.
Two decades on from leaving University I have experience across much of the technlogical landscape - Lots of software engineering, in both static and dynamic languages. Projects delivered for a wide variety of industries including network hardware, visual effects, consumer software, and post-production. I've used maths for music, c++ for speed, administered servers, raised vc, grown to love python and best of all, made people's lives better.
In 2015 I started investigating the various container ecosystems with an eye to consulting in one of them. I found SmartOS (an Open Solaris derivative) to be the best available substrate for container deployment, but with an extremely small ecosystem and non-trivial porting. However, I've invested heavily in SmartOS skills and can now deploy zfs, containers, vm's, and software defined networking in the same machine; very securely; as part of a distributed system; and as a day to day development environment.
I'm currently building 20ft.nz - a secure, fast, always-on container infrastructure with a Python SDK.
Enterprise IT develops and deploys software slowly and with too much risk.
For our industry this is the problem and many of our advances (since the late 1960's) have either been against this problem, or towards minimising its effects. In the last decade, the broad uptake of agile management techniques has reduced risk significantly - principally by taking large, high investment, intractable monolithic projects; and reducing them down to a number of smaller, cheaper and literally more agile sprints. Virtualisation and/or Cloud technologies have eliminated the need for both a large up-front investment, and the risk that incurred. And where version control bought predictability to actually building software... automated testing, continuous integration and the rise of devops tools have started to extend the concept onto the infrastructure itself.
These four techniques - agility, version management, virtualisation and cloud deployment - form the backbone of modern software development. Containers are about doing it more.
The concept of installing software is eliminated.
Developers create scripts to make the containers, which are then delivered as versioned binaries with no installation requirements, leading to the elimination of a whole class of management problems. Orchestration removes the need for chef/puppet/etc scripts while still ensuring that the infrastructure itself is still software defined and therefore versioned. Startup times are approximately 10x faster than with VM's, so the rapid provisioning of test environments and customer demos finally becomes a reality.
At the leading edge, new classes of application become possible.
20ft has a strong emphasis on controlling the physical location where code runs. Primarily this is for geographic redundancy, but with little effort the same principle can be used for IoT applications, NFV, service differentiation or new classes of edge computing. The programmatic nature also gives rise to new architectures such as user-per-container and self-serve private SaaS.
You should care because...
Containers increase development velocity, reduce deployment risk, improve resilience and free employees to work on business requirements instead of fighting fires.
A word about this timeline: For much of my career I have worked for a company, often mine, but have done work on behalf of another. Similarly MixTape was a full time project that became part time (and led to spinoff work) and some smaller projects have been omitted completely. This timeline is thus not exactly linear and describing it as such is something of a challenge...