Reputation: 610
According SaaS maturity model a SaaS is level 2 if is configurable, but how i can get started in this concept?how patterns and Technics, i can use to enable my SaaS?
Upvotes: 0
Views: 495
Reputation: 7855
The primary pattern is separation of configuration data from application code. Find the properties of your application that may vary from installation to installation, and pull those properties out into a configuration system.
Start by figuring out some basic properties that are likely to vary from installation to installation. Some examples: What port numbers are your services on? What URLs? What certs/CAs that you are using? Can the customer rebrand/reskin your software, and where are their brand images or skin resources located? What OSes will you deploy to, and what is liable to change when the OS changes? Even configuring where your configuration lives can be an important property to vary. Then extend to features that may be unique to particular sites: how do you enable them? do they need to be set up differently for different customers? As you go through this exercise, keep in mind that you are adding points of variation to your system, thus additional points of complication, and additional points that need to be validated, tested, and potentially secured. Think carefully about which points of variation really matter to your customers, and focus on those.
Then think about implementation:
key = value
style. The configuration could be in multiple files, or one file with sections (ini-style), or both.For complicated multi-tier setups, you may want to provide some additional tools to help synchronize configuration across the machines where it's necessary. Many services also provide tools to generate default configuration files. These files are often loaded with comments to explain each configurable value, which will help the customer get started with using them.
There are a ton of examples out there about how people have gone about configuring their services. Study your favorite services and how they're configured. Think for yourself, or ask your friends, about which services you felt were the easiest to set up. Remember that the configuration is part of your interface to your customer, so you want it to be as clean, understandable, and easy-to-use as possible.
Upvotes: 2