Editor’s Note: As of January 2022, iland is now 11:11 Systems, a managed infrastructure solutions provider at the forefront of cloud, connectivity, and security. As a legacy iland.com blog post, this article likely contains information that is no longer relevant. For the most up-to-date product information and resources, or if you have further questions, please refer to the 11:11 Systems Success Center or contact us directly.
At this point, offering applications in a SaaS model is not just an option for software developers; it is a requirement. While many of our favorite apps are still deployed on-premises, the “cloud first” initiative has gained tremendous popularity for the ease of deployment, 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.
Here are the 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 to keep things running smoothly. This means choosing the right architecture, network, and performance monitoring tools, and plans to ensure success. Plan on standardizing your deployments and creating templates of them so that as you add customers to your SaaS service, it will behave consistently. Focus on tools that work in an extensible, open fashion and that will be still relevant five to 10 years from now.
2) Work to 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 virtualization 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. However, 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 is vital: 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, establish open communication lines up front, and identify key stakeholders rather than try to unwind a dysfunctional communication stream later when deep problems arise. We have seen great success in organizations 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-premises, 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 organizations 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 utilize our pay-as-you-go pricing to establish flexible laboratories to create and test their innovative ideas.
6) Have backups and a 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 specialize 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.