Since 1999 we
have been investing in companies that develop SaaS applications targeting the
mid-upper and global enterprise. Through
these investments and the hundreds of other SaaS companies, targeting these and
other segments, we have considered during this period, we have started to
notice a transition in the way companies utilize cloud computing infrastructures
platforms to develop, test and deploy their applications. In the last 5 years SaaS companies,
particularly the earlier stage ones, have started to transition from
exclusively building and deploying their applications on custom developed
infrastructures, to utilizing third-party infrastructures and platforms for
these tasks. Third party infrastructures
come in two flavors: Infrastructure as a Service (IaaS),
e.g., Rackspace, VCE, or Amazon’s AWS, and Platform as a Service (PaaS), e.g.,
Salesforce’s Heroku, or Microsoft’s Azure.
During this period we have seen SaaS companies for which developing and
deploying on a public infrastructure was absolutely the right decision, e.g.,
Dropbox developed and continues to deploy on AWS, and others which had to
switch to a private infrastructure after having initially developed their
application on a public one.
The decision
to employ a custom/private infrastructure for a SaaS application, or,
alternatively, the decision to switch from a public to a private infrastructure
to develop and deploy such an application are expensive propositions for a SaaS
company of any size. Using a private
infrastructure means that the SaaS company has full control of its
infrastructure but also that a meaningful percentage of its capital is spent
for the development, maintenance and upgrading of this private
infrastructure. Switching from a public
infrastructure to a private one, or even switching among public
infrastructures, done without proper planning leads to delays in product
release schedules, increased downtime and low customer satisfaction.
SaaS
entrepreneurs and management teams are asking two questions regarding the
platforms and infrastructures used for their applications so that they can
accomplish their development, testing and deployment goals while building
profitable companies, maintaining their customers trust and expectations:
What factors should I consider as I try
to determine whether to use a third party/public cloud computing
infrastructure?
When should I move from exclusively
using a public cloud computing infrastructure, even in a single-tenant mode, to
using a private/custom infrastructure or to using a hybrid approach?
We see entrepreneurs
selecting a third party platform to start developing their SaaS applications
because they instinctively believe that the associated costs, for both
development and initial deployment, will low.
They are often right about the startup phase of their business. However, the decision for the long term use
of such infrastructures is not as simple as it first appears because several
interdependent factors need to be considered.
They include:
The
economics associated with the company’s business model. For example, a SaaS application that will be monetized
using an advertising or a freemium model has very different economics than one
that will be sold and monetized through a direct inside sales model. The paying users of the application’s premium
version must subsidize the usage of a very large number of users that utilize
the application’s free version.
Therefore, the company’s operating model must take into account the costs
of running the infrastructure used to develop and deploy such an application. One can then determine if the company can
create a profitable model using a third party infrastructure or roll out its
own private infrastructure.
The
SLAs the SaaS application will need to meet in order to satisfy its
customers. These SLAs can range from
uptime to response time, from backup time to failover time, etc. SLAs
are themselves a complex factor. They are dictated by the type of
target user,
e.g., consumer vs corporation, the number of users, e.g., hundreds for a
specialized corporate application, to millions for a typical successful
consumer
application, the application company’s stage, e.g., the SLAs for an
application
that is entering its initial deployment phase are oftentimes different
from the
SLAs of a fully deployed application, the geographies where the
application
will need to operate, e.g., data storage and retention regulations in
one
geography may be different than in another.
Each SLA has an associated cost.
For example, if it is necessary for a SaaS application to run on
multiple geographies from the time it is initially deployed, the use of a
third
party public infrastructure will enable the company to meet this
requirement at
a lower cost than having to build its own data centers. Certain
application types, e.g.,
entertainment applications such as Flixster, general utilities such as
Wunderlist or Open Table, etc., that are targeting particular market
segments,
e.g., consumer, SOHO, or applications targeting specific segments of the
broader SMB market, e.g., Square, LevelUP, Milyoni, can be developed and
deployed
on third party infrastructures and never need to migrate to private
ones. This is because the SLAs associated with such
applications are more flexible and the third party infrastructures can
easily
accommodate them. Moreover, the
scalability and capabilities of these infrastructures are constantly
improving
so keeping up with the applications’ growth is possible. SaaS
applications such
as Evernote, or Carbonite that have more stringent SLAs and, in addition
to
consumer and SMB segments, target the enterprise, run on proprietary
infrastructures because third party infrastructures cannot meet their
SLAs at
acceptable economics.
The
regulations governing the industry targeted by the application. For example, the data privacy regulations
governing applications targeting the health care and financial services
industries often necessitate the use of private cloud infrastructures by
companies developing application for this industry.
The
available in-house expertise and the importance of having such expertise. The company must determine whether it has the
in-house expertise to build and maintain a custom cloud infrastructure to
support application development and deployment, particularly as the company
grows, whether acquiring such expertise provides it with a competitive
advantage, and whether it is willing to continue incurring the costs associated
with the building, maintaining and upgrading the required infrastructure and
the associated expertise.
The
company’s stage. Early stage companies
have different priorities, e.g., time to market, than later stage ones, e.g.,
sustaining growth at a reasonable cost.
Based on the
factors above,
Early stage
SaaS companies use public cloud infrastructures to:
Accelerate
product development by focusing on the business logic and taking advantage of
the ecosystem that is typically built around the third party platform to provide
faster a more feature-rich application.
Improve
time to market by quickly onboarding customers.
Address
lack of expertise in building and effectively managing cloud infrastructures.
Growth stage
companies use public cloud infrastructures to:
Reduce product development costs
while enabling collaboration among distributed development teams.
Reduce the cost and time to customer
on-boarding.
Utilize the elastic supply of
computation and storage provided by the public infrastructures in order to
easily grow their customers while meeting SLAs.
Achieve their growth goals while
controlling capital and operating costs.
SaaS companies start using public cloud infrastructures
and remain in such infrastructures if they target consumer and SMB
market
segments under business models that allow them to make money using such
infrastructures, and can satisfy the SLAs of their target segments.
Companies start with public cloud
infrastructures and completely migrate to custom/private ones when they
want to
target mid-upper and global enterprises.
If they target both the SMB and the large enterprise segments then they
can use a hybrid approach remaining on public infrastructures to address
the
needs of the SMB segment and using their own private infrastructure to
address
the large enterprise segment, as Workday does which runs its application
on both its own infrastructure, as well as in AWS. In all of
these cases when a migration from a public to a private cloud
infrastructure is
contemplated I advise the companies to build their application assuming a
multi-cloud strategy. This means that
the application can simultaneously utilize several public cloud
infrastructures,
or that can it easily migrate from one public infrastructure to another,
in this way also avoiding vendor lock-in. The problem with hybrid
environments is
that you have to keep track of multiple different security platforms and
ensure
that all aspects of your business can communicate with each other.
Finally, if a company develops a SaaS
application targeting a regulated industry such as health care or
financial
services then it needs to build and deploy its application on its own
private
infrastructure.
Determining the infrastructure and
platform on top of which to develop and deploy a SaaS application is not as
easy as it may initially appear particularly if the company is thinking long
term. The factors I provided above which
have been derived from my years of experience in investing in SaaS application
companies will hopefully help entrepreneurs and management teams put some
structure around this decision.