Our challenge: To apply a cloud based microservices pattern on an existing monolithic software. The purpose was to benefit from the new cloud paradigm, QA Automation, Improved security, maintainability, extensibility & scalability of the software.
Fleetfoot SAAS offers all the workflows that a fleet business needs. These include lead management,asset tracking,billing,inventory etc. The application has a full stack of features which are configurable to adapt to different types and sizes of enterprises.
At the core of Fleetfoot is a microservices architecture. The different services are based on technologies best suited for their usecases. We run nodejs & apache for most of our service mix.
Our bus is powered by RabbitMQ and we utilise it to the max ( Including RPCs ).
Security & multitenancy is taken care of by Cognito & using middleware partitioning approaches.Scalability and extensibility is managed using API Gateways, lambdas and autoscaling from Amazon. We also use docker extensively for scaling compute for all background jobs and API availability.
The API gateways allow us to expose our APIs to the front end apps which include web & mobile. It also enables provisioning of scalable end points for third party consumers.
Our engineering approach
Re-engineering software while its under use has significant challenges. Agile methodologies are very important if they can help businesses become nimble. Our approach to engineering was to build QA automation coverage while keeping software shipping speeds using the existing manual testing framework. We use Atlassian JIRA to run our sprints and measure velicities. A mix of scrum and kanban techniques are used for new feature development and bugfixing respectively.