Amazon AWS, the leader in cloud computing services, AWS's design of SaaS solutions provides some cloud computing services best practices.
One, isolate the platformized functionality, SaaS products are updated very quickly, but we can still summarize some of the core functionality is basically unchanged or can be reused in many other new product modules. We have to separate this part of the function for platform transformation to serve more other functions, the platform of these functions will also reduce the coupling of the whole system to support more SaaS applications. The isolation of platform services for general-purpose functions allows for better tuning and independent expansion, while the reuse of core services combined with the use of application frameworks will greatly improve the efficiency of application development.
Two, Optimize cost and performance, in the traditional technical architecture of the two often need to carry out a certain amount of balancing, and in the architecture of the AWS cloud SaaS service cloud model can often be achieved under the fish and bear the paw and bear the bear's paw. Achieving elastic horizontal scaling at each architectural level allows us to realize a pay-per-use model, without the need to pay a large amount of resource costs in advance in order to obtain strong performance, while we can use smaller, parallel resource units for scaling in the AWS architecture of SaaS, which is more closely related to the actual resource requirements of SaaS environments, and in the appropriate scenarios as far as possible, using the Services that are fully hosted by AWS (e.g. Amazon DynamoDB, etc.) to reduce the operation and maintenance costs of SaaS partners and improve efficiency.
Third, for SaaS solution design. Cloud computing services, first of all, for multi-tenant design to SaaS applications for their own characteristics to plan, the overall design principle is that the system will have multiple accounts, and an account will correspond to a number of users, a user will correspond to a number of roles; secondly, for the system to deal with a variety of requests to be in accordance with the priority of hierarchical management, in the system through the use of a variety of services such as AWS, SQS, SWF and so on. After the decoupling of AWS resources intensive use of the premise of the request prioritization will greatly enhance the processing capacity and stability of the SaaS architecture; next to increase investment in monitoring, with AWS CloudWatch and other monitoring services, through a finer-grained monitoring to control the more effective elasticity of the distributed resources to the scalability; and finally, the partners need to be very understanding of the SaaS Finally, partners also need to understand the SaaS application architecture, the life cycle of all the data and the characteristics of the data in each cycle, based on these characteristics of the data in the AWS service to choose the right way to optimize the technical architecture and reduce costs.
Four, collect all the data you can and extract value from it. AWS infrastructure itself through the CloudWatch service can collect very fine-grained metrics, while the SaaS application itself will generate a large number of logs and metrics data, these data and metrics should not only be closely monitored at the same time, but also the full amount of the proper preservation of the subsequent work of big data mining. Cloud computing services, do not worry about the high cost of data storage in the traditional model, in the AWS cloud architecture model, there are a large number of such as Amazon S3, Glacier and other very low-cost storage. Analyzing this vast amount of data to understand the customers of your SaaS service can bring tremendous value to the business, such as automating real-time adjustments to the user experience and the infrastructure associated with it, improving business models through usage analytics, and more.