More and more companies are preferring SaaS applications over traditional on-premise applications.
This is a very notable trend (look at O365) that urges applications developers to adapt to the market and reinvent their applications as a SaaS solution.
As a software company, revamping your application to a SaaS application is a project on its own but still manageable, since this complies within their skill set.
A harder part might be finding the right partner and solution to host your application as this crosses the boundaries of their knowledge field and as all companies they want to be 100% sure to give their customers a performant and secure hosting platform.
There are several reasons why a software development company might consider outsourcing the hosting part.
Uptime & Availability
One of the most important things of your SaaS solutions is that you can guarantee a maximal uptime.
Professional hosting providers invest a lot to give these kinds of guarantees. For example; state of the art datacentres, database clustering, dark fibre between their DC's, load balancers which can also initiate an automatic failover in case of disaster, DDOS protection, ...
Questions to ask yourself: What if I have a power outage? What if one customer is overconsuming resources? Will my customers be impacted?
Expertise
You don't ask your plumber to do your electricity because they both work in construction.
The same counts for software developers and system engineers, they both work in IT but have a very different skill set.
Software providers like to focus on what they do best, develop their code, new feature, prevent bugs... This already is a big task and comes with its own challenges.
The same counts for system engineers, we enjoy studying the application landscape and search for the best fit for that specific type of application. This could be in a public or a private cloud environment, all depending on the structure and type of application.
Questions to ask yourself: How well are we aware of the latest technologies? Do we have enough system engineers to provide 24/7 support? Are we skilled enough to handle big disasters?
Scalability
Let's say you forecast to sign 25 new customers good for 200 new application users and suddenly one of your top sales sings a mayor contract. One customer with 300 new users. This could implicate the go-live, since your infra on-premise isn't ready for this load. You have to scale out your storage, server and backup infra.
In a Cloud model, all these resources are available and can just be added with one push of a button.
Questions to ask yourself: Can we scale up on a very short notice? How many resources have we just sitting waiting to be used?
Flexibility
It could be that for some reason the hosting needs of your application changes, f.e. the need of graphical cards, higher clock speeds... In a cloud model, you don't have to change all your infrastructure. You can simply communicate your new needs to your cloud provider, and he will take care of it.
No need for big changes, migrations or stress, in most cases all these features are available.
Questions to ask yourself: Did we have to make changes to our environment over the last years? What was the cost? What were the risks involved?
Cost-efficiency
If you as a software company chooses to place your own infrastructure, you have to be able to forecast your growth for the next five years. In the best scenario, you haven't an oversized infrastructure for the first years that hopefully gets filled with new users.
A potential danger in this case is that we overestimate our growth, leaving us with an investment without return.
In a cloud model, your infrastructure grows perfectly with the growth of your customer portfolio. You have the certainty that no overinvestments are made, and you know perfectly for each new client the profitability.
Questions to ask yourself: Did we already make a financial study of a possible out-sourcing? Are we using our datacentre to its full potential?
Security & evolution
It is hard for a software company with no focus on infrastructure to compete with all these providers on security.
Cloud providers have way more resources to invest in R&D for security, DC infrastructure... And always keep evolving their solutions, as this is what they do.
Questions to ask yourself: What if I have a crypto locker? What if I have a targeted DDOS-attack? Do I do pentesting on a regular basis?
If you have any questions regarding these topics, don't hesitate to reach out.
Every application has different needs, and together we can find the right fit for your solution.
Some applications fit 100% with public clouds like Azure, other application might be a better fit for a private cloud because.