Today, Software as a Service (SaaS) has become the most popular business model. It is not only about large businesses and enterprise companies. Micro SaaS is becoming a growing trend in the software world.
For either small startups or for big enterprises, there are the same challenges and similar problems that must be solved. Modern SaaS solution must have the following in order to be most successful:
- Properly monitored and fully controlled
- Cost effective
- Proper resource isolation (silo, bridge, pool models)
- Simplified deployment
- Centralized management
And, it is not a trivial task to design an architecture and build a solution that meets all the requirements above. Let's consider that we have a worldwide SaaS solution with a 3-tier model. It consists of:
- Web tier with user interface, which should be "region specific" by providing area-specific content in different languages
- App tier with different set of components that can be selected by our customers and specified by different SaaS plans
- DB tier with proper isolation for the private data of our variety of customers, which is compliant and protected according to region's standards and legislation
In addition, we should care about SLA for this solution, RTO and RPO, that we have as a part of agreement with our customers. It must be continuously supported. Feature requests and updates must also be done regularly. Solution development process ought to be standardized and simplified, and at the same time, it should be cost effective.
With a classic deployment to on-premises datacenters we should consider continuous trade-off, and all the requirements above cannot be met simultaneously. Large development, operational, and implementation teams will be responsible for the deployment and maintenance of the SaaS solution—complicated monitoring systems, numerous scripts for automation, dealing with potential security issues, and resource overprovisioning.
Modern cloud solutions—however—mitigate all the risks associated and allow teams to avoid such problems. Because of this, utilizing the cloud within a shared responsibility model becomes an important part of SaaS. Using AWS Cloud and its managed services makes it easier to address all the challenges described above and get rid of tradeoffs. The same 3-tier SaaS solution can be implemented in following way:
Web tier can be implemented by CloudFront and S3 services that allow users to distribute content globally, and Route 53 helps to choose the proper destination according to customer's geolocation.
App tier implementation—with Elastic Load Balancing and Amazon container service (Amazon ECS)—helps to distribute customer's requests. The CloudWatch metrics and AutoScaling service handle any spikes in the incoming workload. Finally, because of the cloud computing, teams can prevent guessing the capacity and can scale resources on-demand.
Amazon RDS service—with multi-AZ deployment and regular automated snapshots—provides a highly available and properly secured DB tier, while closing the requirements of RPO and RTO for customer's data.
The provided set of AWS Developers Tools helps simplify and standardize the deployment processes. Implementation of the new features and decreased time to market prove to be simple—providing a company agility to meet business requirements and needs.
Finally, AWS CloudFormation enables fully-automated provisioning of infrastructure for our SaaS product. With this system, minimal administrator interaction is needed following the initial configuration. The new configuration also saves times and creates consistency across environments. Systems and code are then up-to-date and easily replicable.
AWS cloud also guarantees security and compliance of the provided services. AWS provides the opportunity to build and design highly available, robust, and resilient solutions.
Although deploying all systems to the cloud is a good first step, becoming cloud native take additional work. Visit the SoftServe website to see our SaaS case studies, and read about both SaaS and AWS cloud best practices that are used by our suite of experts. Contact SoftServe today to let us help you best design your architecture and deliver the SaaS solution that your business needs.