Skip to main content

Our Servers or Yours: Thinking through deployment options

· 5 min read

Zandile is a program manager at an iNGO and she needs to use CommCare, DHIS2, and OpenFn for an upcoming public health project. She understands that all three pieces of software can be deployed locally, or accessed as SaaS (Software as a Service).

Essentially, Zandile needs to decide if she would like to run the software on someone else’s servers (SaaS), or on her organization’s own servers (deployed locally). Before making a decision she outlines the basic, non-technical considerations for both options.

What is SaaS?

SaaS is software that is installed and runs on computers maintained by software professionals, rather than on your own computer. While those computers might be anywhere in the world, typically you'll access and use this software via the Internet.

Some benefits of SaaS

With SaaS, the software vendor is responsible for the expenses of managing and monitoring all of the technical components and issues associated with the software. This means that Zandile’s iNGO will not be responsible for updating the software to ensure compliance with new security regulations, maintaining the servers, backing up the data, purchasing and managing uninterrupted power supplies, and providing a team of physical security guards to protect the computers and data therein against physical theft.

Going the SaaS route is often faster and more secure, because you do not need to develop expertise in "DevOps" or hire IT and physical security specialists. This option also provides the greatest amount of flexibility & scalability– because the SaaS provider is able to deliver more or less computing power, storage, and bandwidth—right when it’s needed.

Having smaller setup costs (you don't have to grow a software delivery company of your own) often makes this a more economical choice for many, though SaaS will always come with some sort of ongoing fee—a price per month or year that goes to the vendor to compensate for the time and money they'll spend to ensure your software works properly.

What is Local Deployment?

Unlike the SaaS option, local deployment means installing and running software on your own computers—typically on your organization’s servers.

Some benefits of Local Deployment

If a SaaS provider doesn't offer hosting in your country and your government doesn't allow your data to reside on foreign servers (i.e., you're not allowed to use things like Gmail, WhatsApp or Facebook for communicating sensitive information) then local deployment allows you to use tools like CommCare, DHIS2, and OpenFn while adhering to government data sovereignty regulations.

Local deployment also provides your organization with complete ownership of the end-to-end system. Your IT team will be personally responsible for ensuring that the software works, is maintained, is secure, etc. If your organization does not already have an IT team in place, then this can become a costly headache, but for a large organization with embedded IT experience, local deployment often makes sense.

Ultimately, being able to directly hire and fire the people who are responsible for your software's proper functioning can be very useful. It means you have complete responsibility for whether or not the solution succeeds.

If you've already got the teams in place (security, DevOps, etc.) then this option can be more economical in the long run. With a very good DevOps team, maintaining an extra piece of software might only occupy 20% of a full-time-employee's salary. For your security guards, if the software is installed in the same physical location it's possible that your costs won't increase at all. While there will be very high setup costs, over time you may realize cost savings by running an efficient software delivery unit within your organization that spreads its focus around a number of projects.

Zandile's Decision

In this fictional case, data residency is a concern—her data is sensitive or contains PII—and CommCare, DHIS2 and OpenFn do not provide hosting in the country she's located. Zandile's organization has a large, experienced IT team that has managed high-availability software projects for many years... they're pros. While they anticipate that the setup costs will be quite high (around $60000 and several months for this set of deployments) they plan on using this software for the next 5 years and have determined that they'll recoup a significant portion of that setup cost by not having to pay license fees for SaaS. They go with local deployment.

Which Deployment Option is Best for your organization?

The answer is: "it depends", but if your organization has never managed local software deployments, then we recommend going the SaaS approach. SaaS systems, like the one OpenFn and CommCare offer, are simply going to be more secure, more stable, and more scalable for the money.

Crucially, you can always start with SaaS (most tools even offer a free tier) and then decide later to invest in the big startup costs of a local deployment if the license fees for the SaaS feel high enough to make local deployment more economical over the long term. After a few months or years on the SaaS, you'll likely be in a better position to know if you want to continue using the software for 5-10 years.

Should you need any help with your decision though please do not hesitate to contact OpenFn.