Making of the Monster
By now you are asking yourself what the heck are we even looking at here. Silly movie clips, vauge threatening snippets about privacy and spying or some such crap. You are probably wondering what’s the point?
Understandable. There is going to be allot to consider here, and we are just getting started, myself included. I’ve been hacking away at concepts and ideas around cloud architecture, and in particular, the secure deployment of microservice containers. I have an idea that we can make things better, I’m just not sure how much better. We shall see. This is only a project, a test, and experiment, and the focus for this post is to establish the core design principles that we start from. There is nothing magical or proprietary going on here, many people are far down this path, and I’m not just trying to catch the train, I’m trying not to get run over by it. To prepare ourselves for this ride, we will build and test around some basic design concepts.
- Simple and unburdened by as few dependancies as possible
This is going to be a tough one, but I have stayed as true as I can. Of course there is always dependancies, but how do I keep that to a dull roar? The underlying operating system that drives this CoreOS . There is no specific reason for this beyond its really simple and easy for automating the creation of container hosts. It does exactly what we need it to do, with minimal configuration, and that is to boot up, provide a place for service containers to run, and don’t annoy me with things like patches and updates. It just takes care of it. Take a closer look if you want, but the way this launches, we care as little as possible about the host operating system. That does not preclude any of this from running on any other flavour of container host, i.e. Linux, feel free to adapt it to your needs, but my level of system admin laziness has led me to CoreOS for the base to build on.
- Agile, to the point of platform agnostic
Cloud providers like to talk about agile, but always around what they offer. I would like this to be able to migrate to the most efficent services the system can access, and not be tied to a specific provider or service. The chosen OS runs pretty much anywhere, including bare metal, so I have the basis to deliver on this, however at this point, in the interested of validating the system works as expected, I have focused on development in AWS for now. Reality is I need to know the parts are working, before I start moving them around, so I am limiting my crash variables, so to speak, but there is no reason this can’t expand to any and all cloud and physical platforms. And when we get to the point it can launch itself on everything we can find, I don’t want to have to even consider where best to run my services, I just want it to happen. Not just hardware agnostic, but hardware invisible. Can the system make the choice of platform, based on my suggestions? Better yet, can this system make me not care what platform it happens to be running on?
- Secure by design
I know everyone says that, it is more a dream you strive for, then a place we can end up, but then I find myself thinking about this in a whole different way. Docker seems to have a bad reputation when it comes to security, but all these risks we point to, are really all that happens when a dev team builds architecture to app. Guess what, that is happening now, and yes, if you jump to –net and bind your host to expose everything you can to anyone, sure. It’s usually a disaster for security. Did we also just port over your existing server, as is? Of course it’s vulnerable. As vulnerable as it ever was. I know, you are going to ‘migrate’ to a cloud/container/sas/pass/whatever at some point. Ok, but what considerations have we given a container and microservice architecture at the infrastructure layer, because from what I’m seeing and testing now, my understanding of security architecture has fundamentally changed, and I believe we can do more about creating secure applications we collapse into this test enviroment. I want to see an enviroment where someone may be trying to break in right now, I just don’t care. Sound too good to be true? Come see for yourself.