Overview
One of our clients is a software-as-a-service (SaaS) startup that wanted to develop an enterprise application for managing utilities, bank statements, medical records, and tax papers. The client was aiming to create a platform that would enable users to access all of their important information in one secure place, from any location at any time.
The Business Need
When it came to building the new application, the client had two main priorities:
- The system had to be a robust SaaS platform by following Twelve-Factor App methodology
- The system had to be deployable in any cloud environment
Challenges
How to manage one codebase with multiple deployment
How can we explicitly declare and isolate dependencies
How can we manage backing servies as resources.
How can we manage application configuration.
How can we define build and run stages of multiple apps
How can we develop and execute stateless applications
How can we expose all application services over port.
How can we write application that can independently scale.
How can we make sure application startup fast and shutdown gracefully.
How can we manage development and production parity
How can we aggregate, store and search logs events
How can we automate admin processes.
Solution
Used GIT for managing code base per deployment
Used JFrog for managing external as well as internal dependencies
Used OS environment variable for storing config
Selected Backing services that share similar behavior on dev and prod
Used Atlassian Bamboo for CI/CD
Developed stateless services that can scale out
Exposed all services over ports
Utilized AWS Loadbalancer & Auto scaling group for concurrency
Make system start faster
Managed Dev and Prod Parity
Used Splunk Storm for log management
Utilized Flyway for database migration
Business Benefits
Deployable anywhere
Superior scalability
High resiliency
Easily maintainable system
Improved security and code practices
Automated and efficient operational tasks
Conclusion
Decision-Science-Partners Software Services has helped deliver a robust, cost-effective, and future-proof application that will empower our client to compete with the biggest players in its industry.
Despite having to change our mindset and development approach to adopt the Twelve-Factor App methodology, we were able to meet all of our client’s goals in record time. The successful outcome of the project made all the effort worthwhile.