This is a follow up to my previous post on my favourite talks at Craft Conf. A tweet from Werner Vogels the CTO of AWS reminded me that I’d also missed Adrian Trenaman’s talk. Adrian’s talk is on Scaling Micro-Services at Gilt. I got a chance to watch the stream last night and its a great example of how they turned a huge Rails / Postgres monolith into over 250 micro services mainly using Scala.
There are lots of interesting points but the 2 I liked most are.
The Rails app and Postgres database still exist and if they started again they’d probably still start with a monolith. There was a great post yesterday on Monolith First by Martin Fowler. In larger organisations micro services are great because they enable small autonomous teams. But if you’re an early stage startup with a small team you might be best just developing a monolith with lots of features. This makes me happy as a Ruby developer because I think Rails is still a great choice to do this. Although if you can you should design a monolith that can be easily split apart later.
The other area I found interesting was Gilt’s move to AWS but that most of the 250 services run on 3 t2.micro instances. Only a few high traffic services are using the most powerful instances like c4.2xlarge. Gilt are moving to containers and they work well with micro services. Containers allow much higher server density and by combining this with micro scaling the right mix of micro services can be run at the right time. It’s still at an early stage but we’re hoping that Force12.io will help with this by providing QoS (Quality of Service) for containers.