Moving from Monolith to Microservices

Client and Business Goals:

GrowthHackers is an online community and set of tools for marketers and growth professionals who use modern methods and analytics for business development. The client needed to boost product development and modernize their existing ecosystem.

Project Description: 

  • GrowthHackers comprised two major software products that we worked on
  • The GrowthHackers Community communication platform with many contributors, including guests from NASA and Twitter
  • The GrowthHackers Projects, a software to help teams achieve their growth objectives and “to support fast-paced growth teams in a rapidly changing environment”

Applied Technologies:

  • Angular, Webpack, Vue.js, Ruby on Rails, PostgreSQL, Redis, Trailblazer, Microservices, Active Admin, Capybara, Sidekiq, EventBus, Selenium, Rspec, MiniTest
  • Integrated 3rd-Party Services: Pivotal, Twitter, Clearbit, GUA, Segment, Optimizely, Jira, Kissmetrics, Logentries, Papertail, Algolia Search, Embedly, Rollbar, Stripe, Buffer, Slack, HipChat, Zapier, Sentry
  • Automated Deployment & Cloud Hosting: Docker, Vagrant, Ansible, Heroku, Codeship, Semaphore, Monit, Capistrano, AWS
Online community & tools for marketers
Microservices-based web development project highlights

Project Highlights:

  • Transitioning the platform from a monolith approach to microservices. This also included converting it from WordPress to Ruby on Rails
  • Taking the system to the next level: growth and automation
  • Supporting product evolution
migrating-monolith-architecture-to-microservices-mobile
migrating-monolith-architecture-to-microservices-mobile

From Monolith to Microservices, from WordPress to Ruby on Rails

  • We had the task of supporting this company’s popular Community website. Our primary goal was to overcome the technological dead-end of the WordPress-based blog by deconstructing monolith architecture and changing it over to microservices, and rebuilding Community with Ruby on Rails (RoR). The only potential issue lay in performance. However, optimization of interactions with smart caching and use of Redis solved this problem.
Screens-mobile

Taking the System to the Next Level: Growth and Automation

  • The system gained auxiliary software as its functionality was growing. The main parts — like user authentication services, integrations, and billing — required different procedures of testing and deployment. The use of Docker provided us with high-performance virtual containers for microservice interactions. The unification was created under Heroku and PostgreSQL.
  • Trailblazer allowed us to implement domain-driven design on RoR. We divided the business logic into entities, including card, project, integration, and more. The entire architecture was based on the subject matter and these entities, meaning that any new team member, or even an entirely new team, would be able to study the project very quickly.

Supporting Product Evolution

  • The products had an intense twice per week release cycle and a team of 12 people at its peak. It was dynamic work and took significant management efforts to keep everything efficient and manageable. We kept the process visible to the client and handled much of the routine, ensuring that the client’s focus would remain on business growth.

 

12 Product Team Composition

20+ 3rd-Party Integrations
Ruby For Microservices Structure
Migrating from WordPress to Ruby on Rails

Looking for an awesome offshore development team? Check out @MobiDev_mobidev.biz. I've been working with them for years.

CEO of GrowthHackers

Sean Ellis

CEO

Bring Your Project to Life

contact us
Ruby On Rails App Update: The Product Owner’s Complete Guide

Ruby On Rails App Modernization: The Product Owner’s …

Web Application Development Principles and Best Practices

12 Web Application Development Principles To Be Followe…

Application Modernization With Microservices: Challenges and Best Practices

Application Modernization With Microservices: Challenge…

We will answer you within one business day