CoreOS is meant to be immutable so attaching to running things from the host directly is a bit of a challenge and possibly just wrong. But as I look at OpenStack, CoreOS, Unikernels and the other moving parts I’m curious to know if there is a complete and reasonable analog to OpenStack in terms of CoreOS (other Linux variations later).
- OpenStack Cinder - Storage.
There are plenty of Linux storage solutions for CoreOS. If you are not mounting an NFS file system from the core then you’re probably creating a DataContainer and attaching to a NAS or SAN. Additionally there are some docs suggesting that ZFS can be attached using Flocker.
- OpenStack Nova - Command Line
Currently there is no aggregated CLI or GUI for all of the CoreOS features but the same can be said for OpenStack. Nova is but one part of the equation. CoreOS performs that function mainly with the fleet list-machines command.
- OpenStack KeyStone - Identity Server
There are a number of identity solutions for CoreOS, however, it’s not actually a CoreOS function but Docker. There are OAuth and OpenID servers that can be loaded as containers.
- OpenStack Glance - Image Server
Docker and CoreOS provide on premise enterprise registry servers.
- OpenStack Neutron - Networking
Docker has built-in isolation and tunneling. When you get into ambassador and sidekick helpers or into schedulers like kubernetes, Deis it’s all pretty similar.
- OpenStack Swift - Object Storage
This could be implemented in any 3rd party data or in ectd.
- OpenStack Heat - Orchestration
CoreOS has been working on Fleet as a way to schedule containers and tasks. If that’s not enough any of the scheduling frameworks are sufficient; even fig.
- OpenStack Cellometer - Telemetry
I might have to give this one to OpenStack. CoreOS has some tools that will capture system data as part of the enterprise setup. There are even some tools that will install and monitor the system… like DataDog. But things may not be the same as DTrace on SmartOS.
- OpenStack Trove - Database Service
This is already addressed and from the OpenStack side of things is just a database or DB proxy. It does not appear to be a level up from the existing container based DBs. A handful of Postgres DBs or Mongo DBs would get you into the same place.
- OpenStack Sahara - Data processing command line
Just another Hadoop.
- OpenStack Openstack - Command Line
I’m running out of steam… between the apparent duplicate projects (database and command line) and. While CoreOS + Docker + Fleet + LockSmith + Etc + Systemd + and anything else I’ve forgotten OpenStack does not take me someplace special. Yes, CoreOS will run in an OpenStack or QEMU environment but (a) once you have more than one OS running on the bare metal you start to lose some scale and (b) And it will effect the density benefits of a Docker plus CoreOS on bare metal. Yes, Docker will run in OpenStack too. It might even support many of the frameworks and tools identified here… however that’s just a wrapper inside a wrapper. (consider running docker on windows. There’s at least one addition virtualization layer between the container and the bare metal.)
One of the missing pieces from the conversation is composition. CoreOS gets that either by implementing your own tools, scripts, sidekicks, or ambassadors or by deploying under a container framework like Kubernetes, Deis, or my favorite Apcera.
In Conclusion, CoreOS is analogous to OpenStack and although it has choices in how you achieve the integration it still has the power to compete in the same space. Because the tools are supposed to be containerized you’re going to get some scale and loose coupling that you’re not going to get from OpenStack. If it were my money I’d be spending it on CoreOS.