What’s the best way to develop a Hyrbid SaaS application? By Hybrid SaaS app I mean solutions where the primary functionality is hosted, but there is a local footprint required at the customer site. The first thing I would say is don’t do it! Don’t install anything at the customer location…ever. Cloud, SaaS, whatever you call it, is becoming more acceptable as a standard software delivery model. We can thank Salesforce.com for that. that’s how you should deliver software. However, then you make a good case for why there must be software installed on site, and I again say don’t do it. Investigate every possible option for moving this local functionality up to the cloud.
So after all of this, it becomes obvious there is no way to move 100% of the required functionality up to the cloud. You have to install software locally. Well, then start by minimizing the footprint. We’ve already established that there is an absolute requirement to have software installed on site, so install the bare minimum and nothing more. Design an architecture that provides a minimal on site footprint with everything else run as SaaS.
Key Design techniques:
- Minimize local footprint: Once you realize you need a local footprint, you may be tempted to add more functionality to the on site deployment. Don’t! Manage as much of your software as possible in one place, and under your control.
- Utilize webservices or other technologies that run over standard ports: Webservices by default run over port 80 or 443, which will be open on any customer network you are selling into. Take advantage of the existing configuration, and use these ports.
- Make it installable over the web: Whether you use an MSI or other installer program, or a virtual appliance, it should be downloaded and installed over the web by the customer. if you are selling a SaaS or Hybrid SaaS application, services should not be a requirement.
- Deliver as a “virtual appliance”: While appliances are a popular and attractive option to ease support and deployment, you are a software vendor and don’t want to support hardware. Convert your appliance image into a virtual, and deliver via VMWare .
- Secure all data in transit: use ssl for all webservice and/or web communications. You may also need to encrypt data stored in the cloud, which will increase transfer time.
If you follow these techniques, you’ll have a Hybrid Solution that scales well, is supportable, and will work reliably in any enterprise.
Filed under: Uncategorized Tagged: | agile, hosted, hybrid, internet, saas, web app