My own talk on the night, which was a case study about the evolution of microservices at Tyro Payments, laid out many examples of practices and tools we’ve used, but left it for people to either follow or ignore what we’ve done as they feel led. Yamen’s talk, on the other hand, was deliberately prescriptive, describing by the end what he obviously considers to be a widely-applicable framework – a “microservice platform in a box”, if you will. (He also ranked the importance of his suggestions based on a hilarious scale of Seinfeld characters, so he could recommended some ideas more strongly than others.)
Is a Microservices PaaS In Our Future?
Yamen’s talk, as well as being really interesting, left me wondering about the future of microservices development. In particular, it had me wondering whether, at some point in the near future, we’ll see a Microservices Platform as a Service, or MSA-PaaS. I’m now thinking…
- Will some enterprising young men & women take something like the architecture he described and turn it into a template that can be stamped across a bunch of cloud servers with nothing more than the push of a button and the entering of a credit card number?
- Could development teams of the future start building a microservice-based system simply by pressing the “Spin Up A New System” button, then coding the business logic of the first service and pushing it to Production by the end of the day?
- Could someone make a business out of offering that?
- Is someone already DOING this?!
Is a Microservices PaaS even possible?
Now I imagine someone might say that the scope of solutions that can be labelled “microservices” is too wide and varied to allow such a template to be broadly applicable. However, I think the PaaS world has already proven that a heavily-prescriptive solution can gain popularity, then reach broader appeal as time progresses by bolting more options onto the existing infrastructure in response to market demand.
While vendors like AWS (more of an IaaS) offer a simple virtual Linux box on which to run anything you like, other ventures have started off very prescriptive. Take for example Heroku, which originally only offered Ruby apps running on Rack and PostgreSQL, but now has more “Add-Ons” available than my phone has apps. One of the biggest competitors in PaaS, Google App Engine, started by offering Python as the only language, with data stored in their proprietary, BigTable-inspired, ingeniously-named “Datastore”. But they now also offer Java, PHP and Go as languages, MySQL and “Cloud Storage” as additional storage options, and the option of bolting on a whole stack of other languages and managed technologies if you want to connect up to their Compute Engine.
Both of these, like many other successful PaaS players, and AWS to an extent, have rolled out more varied options as the business has proved itself. Could a microservices PaaS take the same route, offering restrictive but sensible defaults to start with, and adding optional extras as the money starts to roll in?
Could a Microservices PaaS be quite close?
If this is going to happen, is it a long way away or will it happen some time soon?
In the corner of the technology world that I spend the most time in – that of the JVM – tools like Dropwizard and Spring Boot are already appearing as the building blocks out of which an opinionated microservices PaaS might be based. These are the push-button solutions for starting up a single service quickly. Then there are also bigger packages appearing, like Spring Cloud, which seems like it’s trying to be an architecture (or the majority of one) out of the box, and CloudFoundry, an open-source PaaS in a box, with a commercial instance running as a service on Pivotal Web Services.
It’s not hard to see how it might be a small step for someone to marry these technologies with some of the products already offered by Amazon, Heroku or Google AppEngine to spin up a whole architecture for you. In fact, I had a conversation last week with a developer friend who is having a break from work and is using some of his spare time to develop a microservices architecture in a box (though he didn’t call it that) for the benefit of his own future projects. So there are all kinds of people nibbling their way towards this concept as we speak, whether they know it or not.
No one is there yet, though. You can google for “Microservices PaaS” and you’ll get a lot of videos and blogs about running microservices on PaaS systems, but no one offering what I’m dreaming about here.
I think this offering will come. I also think it’s most likely to appear not from a new player, but from someone already in this space deciding to add a “Spin up this template architecture” feature to their existing PaaS. As someone who would much rather be writing software than installing web servers or configuring firewalls, I’m very much looking forward to that.
Want to learn more?
Image credit: facebook-datacenter-tecnomovida by Tecnomovida Caracas