Blog‎ > ‎

SaaS system full automatization and integration APIs

posted Jan 26, 2014, 12:22 AM by Sami Lehtinen   [ updated Jan 26, 2014, 12:29 AM ]
Lately I have been thinking a lot about SaaS concept and required automation. Here's some thoughts.
  • Server deployment (provisioning) in cloud (Easy)
  • Server configuration, securing it on basic level (Easy)
  • Generic software installation
  • Generic software configuration
  • Specialized per customer software installation
  • Specialized per customer software configuration
  • Different software (automatic, if even possible) license management issues
  • Per customer multi-tenant configuration deployment (on demand)
  • Secure and easy access right management (Very important and not so easy!)
  • Efficient and secure customer data and resource isolation. (Absolutely no clear weaknesses or shortcuts allowed. My major focus point.)
  • Payment tracking
  • Integration with user account management
  • Self-service portal usability, clarity and reliability
  • Centralized control system for servers
  • Centralized control system for installed applications
  • Centralized control system for customer instances (data)
  • Secure API-key based standardized integration APIs for all data, allowing 'automated' 3rd party integration via self service control panel
  • Automated off-site backups with long term rollback feature (already implemented and done)

As you can see, I've been doing some light planning and testing. But as we know, it's not very easy to get all that to work reliably and fully automatically. But full automation is still absolute requirement for reliability, because doing all those complex steps manually, is guaranteed recipe for disaster and major trouble. Some times I just wish that architecture would be simpler, so number of required steps could be radically reduced, like using Google App Engine, or Azure PaaS platforms. But currently that just isn't the way to go.

Major benefit from this is that multi-tenant installations provide huge cost savings when producing services. Instead of running several hundreds of small single customer instances, it's possible to just run a few beefy servers. This also helps on the four first steps of the list. Because number of servers is highly reduced, it might be possible to do four first steps manually.

If you're interested about these topics, feel free to contact me.

 - Thanks