Wix.com started their journey on DevOps and Microservices about two years ago and recently switched from a monolithic application to a microservices-based application. Yes, it took them full two years to complete the transition from monolith to microservices!
I got connected with Aviran Mordo (@aviranm), head of backend engineering at Wix on twitter.
@arungupta @Valdarez we at @WixEng are doing microservices for over 4 years now with over 100 microservices in production
— Aviran Mordo (@aviranm) June 26, 2015
They migrated to microservices because the “system could not scale” and the requirements for functional components were varied. The journey took their WAR-based deployment on Tomcat to fat JAR with embedded Jetty. On a side note, take a look at WildFly Swarm if you are interested in a similar approach for Java EE applications.
Video Interview
I discussed some points with him about this journey and you can watch the same too.
In this discussion, you’ll learn:
- Why Continuous Delivery and DevOps are important requirements for microservices?
- How they migrated from a big monolith to smaller monoliths and then a full-blown microservices architecture
- How database referential integrity constraints were moved from database to application?
- “micro” in microservices refers to the area of responsibility, nothing to do with LOC
- Neither REST nor messaging was used for communication between different services. Which protocol was used? JSON-RPC
- How do services register and discover each other? Is that required during early phases?
- Why YAGNI and KISS are important?
- Chef for configuration management and how to make it accessible for massive deployments
- TeamCity for CI
- Is 100% automation a requirement? Can 100% automation be achieved? Learn about Petri, Wix’s open source framework for A/B testing
- Relevance of hybrid cloud (Google, Amazon, Private data center) and redundancy
- Hardest part of migrating from monolith to microservice
- How much code was repurposed during refactoring?
- Where was the most effort spent during the two years of migration?
- Distributed transactions
- What was the biggest challenge in DevOps journey? Look out for a nice story towards the end that could be motivating for your team as well 😉
Additional Material
Watch the slides from DevoxxUK:
You can also learn more about their architecture in Scaling Wix to 60m Users.
Enjoy!