While many of our favourite apps are still deployed on premise, the “cloud first” initiative has gained tremendous popularity for the ease of deployment and maintenance and flexibility it provides end users.
From our vantage point as an infrastructure provider, we work very closely with many software vendors to both develop and deliver their SaaS apps. This experience has uncovered some key considerations that we believe are critical for success.
Top things to think about when developing and delivering your SaaS app:
1) Planning and testing matter: We cannot overstate the importance of starting out with the right software architecture in place. The software architecture and infrastructure must work in unison in order to keep things running smoothly. This means choosing the right architecture, network and performance monitoring tools and plans to ensure success. Plan on standardising your deployments and creating templates of them so that as you add customers to your SaaS service, you know it will behave in a consistent fashion. Focus on tools that work in an extensible, open fashion and that will be still relevant five to 10 years from now.
2) Understand the interplay between the infrastructure, the code and the database:
Whenever there is a performance problem with an application, the standard approach is to throw more resources at it to speed it up. While this may work in the short term, it does not address the root problem and often sets you up for a more catastrophic failure down the line. Understand the interplay of the infrastructure equation, namely, the network, storage, compute and virtualisation layer, and your code, database, and OS layer. Work with your team and your service provider to address their relative health individually as well as understand how to triage between them when troubleshooting a problem. If you are not sure how to handle an issue, start by separating these parts into buckets and work to assess their individual issues – but when doing this, make sure to have the right team leaders working on the problem to solve it quickly.
3) Communication between the core teams: Often we see that teams operate in siloes where the outsourced development team is not interfacing well with the internal development team, product management or others. It is critical to choose the right partners and establish open communication lines up front. Also identify key stakeholders rather than try to unwind a dysfunctional communication stream later when deep problems arise. We have seen great success in organisations where one person is assigned to manage communications between these groups.
4) Always have a Database Administrator (DBA): It is almost impossible to compensate for a database that is not architected optimally or, more importantly, maintained. Before embarking on a new SaaS-based app or converting from on premise, take some time to measure the health and viability of your database and make sure you have a DBA to guide you through this mission-critical part of the process.
5) Setup the proper dev, test, and staging areas for your app: This seems like obvious guidance, however, we have seen organisations that develop and deliver their apps entirely from a production environment as well as other risky staging environments. Setting up the right dev, test and staging platforms not only ensures an optimal experience for your customers, but also gives your teams the freedom to try new concepts and features in a safe environment. Many of our customers utilise our pay-as-you-go pricing to establish flexible laboratories to create and test their innovative ideas.
6) Have backups and proper disaster recovery plan in place: In the SaaS world, your customers expect their apps and the proprietary information that may be stored in those apps to be constantly available. However, we see many app developers that do not have a proper disaster recovery plan in place. Be it natural disaster or cybercrime, a good disaster recovery plan will literally save your bacon in dark times. We specialise in disaster recovery from backups to sophisticated Disaster-Recovery-as-a-Service programs and can attest that DR is one budget item you cannot afford to cut.
The flexibility and cost efficiency of developing and delivering SaaS applications with a third-party infrastructure provider is substantial. As experts in infrastructure and given our experience working with other application developers, we have learned a great deal about how to cross the cloud chasm quickly, cost effectively and with minimal disruption to your customers. Let’s talk about how we can help you.