Node, microservices and IOLmobile: Meetup Review
Yesterday (23 Feb, 2015) I attended the second Node.js Cape Town meetup of the year hosted and presented by Evan Summers (@evanxsummers). It was one of the most informative and comprehensive meetups that I have ever attended.
Evan Summers is a Software Engineer at IOLMobile.co.za, one of the most popular news websites in South Africa. The presentation was an in-depth look into how Evan and his team moved from a Java stack to a microservices architecture using Node.js. He used their company website as a case study for his presentation.
Slides for the presentation
Below is a summary of some of the topics that Evan spoke about:
The presentation started with absolute Node.js basics - definition, how it works, best practises, pros and cons.
- Node.js is an open source, cross-platform runtime environment for server-side and networking applications. It is V8 (Chrome JS engine) + libuv + JS libs.
- What makes Node.js a good fit for server apps? non-blocking, event-driven I/O.
- It is good for single purpose stand alone apps that fit perfectly into the microservices architecture.
- Run CPU intensive tasks in separate processes and use message queues to manage
- Node.js has resulted in more developer happiness and satisfaction
- Learn about the bad parts and how to avoid them (use a tools like JSLint and JSHint)
Tech evolution is moving towards a microservices architecture.
- Use the principles of the 12Factor App to write stateless stand alone apps that do one thing and one only.
- Services maintain individual versions and should be deployed individually
- Node is a perfect fit for the microservices architecture
- Use something like Redis or messages queues to share state
- Microservices architecture - Docker, Raik, Redis, NoSQL, nginx, e.t.c..
- Benefits of micro services architecture - decentralised teams, faster deployments, easier for new team members to start contributing, supports use of multiple languages
The IOLMobile.co.za website uses express on the back-end and Angular on the the front-end.
- Stack - Express, Angular, Redis, elastic search, nginx, Cloudflare
- Internal microservices - Weather app, Matric results, Search
- Faster development cycle, improved performance, faster response times
- Future Plans - phasing out Java in favour of Node.js.
Evan says that he hopes he doesn't have to write Java again because of the joy he has found in Node.js. Great event, great presentation - the future of Node.js surely looks bright in South Africa.
Thank you Evan!