I have rewritten the title of this blog post at least ten times now. Anything from “replacing AWS piece by piece” to “VAMP, powering the open source wave of cloud computing”.
I don’t want this to turn into click bait, but at the same time I believe we are on the cusp of some very interesting changes in the cloud space. So why don’t I start by explaining what VAMP is, and we will get to why I think it might be a part of the next generation of cloud computing.
Let’s start out with the intro blurb on their homepage.
Vamp, or the Very Awesome Microservices Platform, takes the pain out of running complex and critical service based architectures. Vamp’s core features are a platform-agnostic microservices DSL, powerful A-B testing/canary releasing, autoscaling and an integrated metrics & event engine.
Alright, that’s a mouthful. Let’s try to break it down. It features a platform agnostic microservices DSL. So platform agnostic means it can run anywhere, and that you aren’t locked into a specific vendor like AWS or Azure, and that you can move freely between the platforms as needed. But what the heck is a microservices DSL? you might ask. DSL stands for domain specific language, with HTML being one of the best examples. You can think of it as a mini language for a specific thing, as opposed to a general purpose language like Java. Ok, great, it is a specific markup like mini-language for microservices. What the heck does that mean?
If you are familiar with AWS, I would like for you to think about what Cloudformation provides to you. Cloudformation is a templating language for provisioning AWS cloud resources, such as compute nodes and setting up virtual networks. It is a mini-languge (DSL, hint hint), that helps you provision and orchestrate things in the virtual word of cloud. It is very cool, and very powerful. You can version control entire environments using this stuff.
However, there is one caveat to this. Cloudformation is vendor specific and dependant. Cloudformation is inherently tied do AWS, and cannot run anywhere else. Most cloud vendors have their own version of this, for example Openstack with its HEAT.
So VAMP promises us a platform agnostic way to do Cloudformation-ish things, for microservices, they call their templates blueprints.
Let’s be honest. Just writing another DSL for orchestrating/templating cloud resources isn’t that exciting. It’s exactly what Openstack has done. So what makes VAMP different?
So VAMP actually ties in with your deployment as well, not only provisioning. It will integrate with things like Mesos, zookeeper, HAProxy etc to make its magic work. The result is that you can do weighted releases of new versions on the fly for example. This is highly customizable, and can tie into HAproxy rule sets. So you can do things like release the new version of your app to customers in a specific country with a specific http header. Say whaaat?
If you are familiar with AWS, this might be a little bit of OpsWorks, but better?
Autoscaling, integrated metrics etc…
So we are starting to see that this is kind of difficult to map to AWS, but there are some distinct similarities. We have a Cloudformation type DSL, we can integrate with the continuous integration pipeline with canary releases like OpsWorks (or Elastic Beanstalk). It also promises autoscaling and integrated metrics.
In other words, we have the auto scaling functionality present in EC2, with capabilities from Cloudwatch (monitoring) in there as well. All while being platform agnostic and geared towards microservices.
So it can monitor things like response times and throughput, and use these as events to kick off scaling (=auto scaling) of underlying resources. This integrated with other things such as DCOS/Marathon to actually handle the scaling part.
Standing on the shoulder of giants
Docker, Mesos, Zookeeper, HAproxy etc
As we can see, VAMP is very cool, and can accomplish many things that leading cloud vendors like Amazon has spent years building. It looks extremely cool, and geared towards a more microservice orientated architecture.
The reason such a small team has been able to build something as cool and feature rich as this is because the surrounding ecosystem is expanding and maturing. We have emerging technologies such as Docker, Mesos, Zookeeper etc. The common thread being cloud native thinking, and open source. Projects such as Mesosphere’s DCOS is showing that we are on the verge of enterprise adoption for these technologies.
Replacing AWS piece by piece?
This is where I think my initial title might have been a bit controversial. Are we seeing AWS functionality being replaced with open source projects such as VAMP and DCOS? Why not just use established technologies that companies like Amazon and Microsoft provide?
Let me be clear, I don’t think AWS or Azure is going away any day soon. They are innovating and driving the cloud community forward. I do however think their role will start to change as we move forward. Containerization and microservice-ification as driving a much more open and platform agnostic architecture, and services such as VAMP and DCOS are helping people make this a reality.
The large cloud vendors are becoming much more commoditized, with them being providers of compute, storage and network. The thing that has been promised all along. But somewhere along the way we started seeing much more proprietary technology making its way in the ecosystem, and VAMP et al are proving to be a swing back towards more open technologies.
Why use cloudformation, cloudwatch, opsworks etc, when you could build a platform independent platform by yourself using open source such as DCOS, and VAMP on DCOS, to be completely vendor neutral going forward?
The reason I think the vendor agnostic aspect of all of these emerging technologies is important, is because it enables hybrid cloud. What do I mean by that? Namely that enterprises can build the same stack, with all the same interfaces and tools, regardless of vendor or data center. They can deploy some workloads on their internal on premises infrastructure, and maybe some external facing mobile app (e.g. systems of engagement) on a cheap public cloud vendor such as Amazon or Google, but with all the tooling etc that they are used to.
Final words and wrapping up
Hopefully I have made you excited about VAMP, and the related surrounding technologies. It is free to download and try out, apparently licensed under Apache License 2.0. So give it a spin.
Finally I would like to give a big ‘thank you’ to one of the founders of VAMP, Olaf Molenveld, for taking the time to showcase VAMP over Skype. Looking forward to seeing what functionality they will add next…