Tabulate’s Success Story:
Migrating Monolithic Applications to Microservices on AWS
Tabulate Inc. provides bookkeeping and payroll software for hospitality companies such as cafes, restaurants, food trucks, and bars. This all-in-one solution allows businesses to keep track of their daily transactions, generate real-time financial reports, and make smarter decisions through built-in data analytics tools.
Tabulate was founded in 2014 to help independently owned bars and restaurants track their financial data through dedicated software and outsource teams of bookkeeping experts. Today, they provide services to leading hospitality businesses, generating over $150 million in annual sales.
New technological trends and rapid increases in the application user base brought up numerous challenges for Tabulate’s initial monolith architecture. Even though its performance was strong and had well-defined functional areas, the infrastructure lacked agility and was hard to scale. New releases took months to deploy due to long build-test-release cycles.
To implement new features faster and provide a stable, easily scalable and user-friendly solution to its customers, Tabulate initiated cloud transformation of the monolithic architecture. Triangu as their cloud technology partner also suggested moving monolithic architecture to microservices.
With the migration project, they planned to achieve:
- Improved agility and innovation through faster releases and shorter cycles
- Ensured redundancy and failover for the system
- Implementation of disaster recovery and QA automation
The solution: Harnessing DevOps and microservices on AWS
Tabulate initially partnered with Triangu to assist in AWS setup. Based on the ease and results of that working process, they then extended the scope of the project to leverage microservices architecture as a replacement for their monolith system. A monolith system works as a single unit of deployment that handles the entire functionality of the application, while microservices each take core functionality and deploy as different units. Microservices architecture allows teams to align their code with the business logic of the product, as well as develop, manage, and scale these service units independently of each other.
Triangu deployed microservices alongside the monolith and then diverted traffic to the microservices with zero downtime for Tabulate users. Triangu secured the developed ecosystem of microservices on network, container, and application levels and implemented a continuous monitoring system with which developers can analyze the behavior of their microservices like actual SLA of microservices, service dependency, request and response time, and latency.
Finally, Triangu’s cloud microservices have not only enabled smooth deployment and the addition of new features but also allowed Tabulate to manage infrastructure as code and CI/CD implementation for each service. Infrastructure changes in cloud environments have become repeatable and can be made using the same tools as code changes. The overall application system now powers the engine of rapid innovation and enables development teams to experiment with new features and innovate at a much faster pace.
Tabulate microservices stack
In the new architecture, Triangu used the Docker platform to package microservices into standardized containers that serve to support operations of the service unit and have the required libraries, system tools, and runtime required for the operations. Orchestration and automation of the CI/CD pipeline are delivered with Jenkins CI and SaltStack configuration management systems. Along with the mentioned platforms, Triangu used Trello, Slack, and GitHub to support and manage the development processes.
The final tally
Albert Blanchard, CEO at Tabulate, says Triangu was a valuable partner in achieving migration success and had a positive impact on business agility:
With the microservices architecture built on AWS, Tabulate has managed to deploy new releases much faster — multiple times per hour as compared to once per day before the migration. With the new cloud infrastructure, Tabulate can scale service units horizontally, minimize errors, and enable efficient disaster recovery. The end result is an application that is notably more stable, user-friendly, and overall more attractive to end-users.