Software-as-a-service (SaaS) is fast becoming the established way of selling software. Companies as big as Google and Microsoft are focusing on the SaaS model due to the many ways in which it opens up new revenue streams.
Many of the biggest software IPOs to have in the last few years have been SaaS-related. However, there are many failed examples as well. Many developers are struggling to understand the core essence of the SaaS delivery platform and fail to design robust, scalable and secure architectures for SaaS.
This article is based on the lessons learned from developing our flagship product, Clintra, a cloud-based business–management system. It highlights various aspects you as a SaaS developer must focus on to make your SaaS offering profitable for the long run. It is an exciting (but at the same time challenging) journey.
Why should you take notice?
Worldwide spending on public cloud services will grow at a 19.4% compound annual growth rate (CAGR) from nearly US$70 billion in 2015 to more than $141 billion in 2019. According to an IDC report, “Worldwide Semiannual Public Cloud Services Spending Guide.” IDC predicts SaaS will remain the dominant cloud computing type, capturing more than two-thirds of all public cloud spending through most of the forecasted period. Worldwide spending on infrastructure-as-a-service (IaaS) and platform-as-a-service (PaaS) will grow at a faster rate than SaaS with five-year CAGRs of 27% and 30.6%, respectively.
Gartner predicts that application software sales will grow by 7.5% this year, and will exceed $200 billion by 2019, driven by widespread adoption of the cloud-based SaaS model.
So are you ready to build your next unicorn company and join the billionaires club? If so, let’s first focus on the important aspects you need to master before you turn your existing software or new idea into SaaS.
Three important factors for building secure, scalable and profitable applications for the cloud
SaaS architecture is different than traditional software architecture. Whether you want to convert your traditional software to SaaS or build it from scratch, you must pay close attention to some of the important factors of the architecture, such as security, performance, scalability and availability.
Security, the all-important beast: Security is the most important factor of SaaS, and every CIO will pay close attention to it. Almost all of our clients asked us if our software is secure and whether or not their data will be safely stored.
With many companies affected by hackers who steal valuable company and customer information, many customers have become more cautious of using SaaS applications. Thus, it is safe to say that if your online service ends up in the news for all the wrong reasons, there is a high probability that there will be a fall in the number of active users of that service—at least immediately.
There are multiple security measures you can take. You need to make sure you have SSL installed on the server, which enables data to be transferred securely. For user authentication and authorization, you can choose from multiple options, like two-factor authentication, IP blocking and MAC address blocking. There are some development practices and design patterns you can use, which will allow to secure your APIs.
Performance and availability, and tips on how to ride this mammoth: Technological innovation has resulted in people taking many features for granted. Users have an ever-increasing set of criteria that must be met in order for them to consider an online service to be exceptional.
This has proven to be a challenge for many vying to provide the highest quality web-based SaaS. If you have used one yourself, you might have found some to be glitchy, slow and downright complicated to use, which users do not enjoy. Thus, if you want to ensure that your online software solution remains the favored option among your users, make sure it performs according to their liking.
In traditional software there will be only one user logged into the system at a time, and the performance of the application depends solely on the user computer’s resources. For SaaS applications, it is different as the processing load is shifted to the server-side, and the user’s computer is acting as a dumb client.
Also, there will be multiple users connecting from different parts of the world at the same time. This puts a heavy load on the server resources, so you want to make sure your server can handle this properly. One way to deal with this is to load balance your services. You can add multiple server nodes, which can connect to a single load balancer. This way you can distribute the load across multiple servers.
There are different designs you can use for load balancing your server, such as round robin, multicast/broadcast, etc. You will also need to focus on failover strategies. For example, you should be prepared to answer the following questions: What will happen if the load balancer fails? Should you load balance your load balancer? What kind of impact will users have if one application node goes down? What will happen if the master database node goes down? What are the points you will include in your disaster recovery plan?
Data backup and recovery, or how to catch the fly: Your disaster recovery plan must focus on data backup and recovery.
This aspect has some legal issues associated with it as well. Depending on your domain area, you may need to make sure you take proper measures to secure your data. For example, if you have a medical SaaS application, then your data backup and recovery plan will look significantly different than an ERP SaaS application. Also, you need to make sure you create multiple recovery strategies. In case one strategy fails, you should have another strategy available.
For data backup, you need to make sure you keep database backups as well as document backups. For database backups, you can set auto-replication on a master database to a read-only slave database server. This will enable you to use this slave server to replace your master database server in case of failure.
For document storage, you need to replicate the stored document from your server to an external storage backup in case you lose your primary storage. One way to do it is use a storage service from AWS, Google Cloud Storage, or some other storage provider. You can setup rsync on the storage folder, which will automatically replicate the documents to this secondary storage.
Three soft factors for making SaaS usable
Once you took care of the above important factors, you must make sure your application is usable. Many SaaS platforms do not do well because they only focus on getting the above three factors right but completely miss out on usability.
There are three soft factors you should look at in order to reap the rewards from your SaaS offering:
Quality of service: Quality is king, especially keeping in mind the number of services that can be used to perform the same task. If a user doesn’t like an online software service, they will graduate to using one provided by your competitor. What I mean by “quality” is concerned with the interface of the service, how stable it is, and how fast it opens, among other factors.
Availability: The mistake that some companies make when they launch a SaaS is that they limit the number of people who can use that service. This is done by only making the service available in specific cities, countries and regions. Even though it is understandable as to why they opt to do this (to test the waters instead of risking it all), it should be noted that this might cause them to lose out on potential business and provide an opportunity for competitors to step in and fill the void.
Ease of use: Online-based software should be easy to use. The main purpose behind providing online software services is to provide convenience to the users. For this reason, online service providers should make sure they stick to a simple format of the software, one that is the same as the one that is offered in the offline version. More often than not, keeping it simple is the best option.
The trade-offs between SaaS performance, security and usability
Sadly, you can’t have everything you wish for with a SaaS feature. You have to look for a balance between performance, security and usability. It is a triangle. The more you stretch on security the less usable the system is. The same is true for performance; the more you focus on performance, the chances are you will create a few security holes in the system. The more you focus on usability, the security and performance get affected.
For example, in order to increase security, you added two-factor authentication. Now the user has to carry an external device with them all the time to make sure they get the valid code for login. This affects usability, and from the performance side the server has to perform additional authentication to validate the entered code.
However, you can also provide options so that your end user can decide whether they want to focus on security or usability. For example, for Clintra, since it is a very generic application that can be used by any industry, we decided to include all the authentication measures, like two-factor authentication, IP blocking, MAC blocking, etc., and allow our clients to choose which type of security they would like to enable.
This allows them to choose between security and usability, so you as a SaaS provider do not have to force your clients one way or the other.
How to choose the best cloud infrastructure for your application
Infrastructure plays an important role in making your SaaS platform profitable, scalable and usable. As such, the world is moving from an owning to a leasing mindset. Leasing offers a lot of benefits as there is no huge upfront cost, and you can start off with a small investment.
You should design your SaaS architecture in a way that it allows you to use a PaaS and IaaS in combination. The PaaS model makes the coding and programming of web-based software easy by providing developers with the tools to make the service better in a number of aspects. There are many great PaaS services available that offer low-level services like media server, Auth Server, preconfigured application servers, etc., such as Salesforce.com.
These services will save you considerable expense because you don’t need an upfront investment to hire someone to set up your servers for you and then pay them yearly to manage them.
PaaS comes with support so you can get peace of mind and save money. The same is true with IaaS, which provides the combination of software and hardware that is used to provide the service. It focuses on the operational aspect and proper functioning of the web-based services. In simpler terms, it is a combination of servers, networks, storage and operating systems that is used to effectively deliver the service.
You should focus on using a mix of PaaS and IaaS platforms. This will enable you to do rapid development and improve time to market for your SaaS-based applications.
Why are developers struggling?
SaaS is growing, and many new companies are reaping the profits from the huge market for SaaS-based products. However, older developers and companies are feeling left behind.
Whenever there is a paradigm shift, there is an opportunity for new ideas to overtake old, established ideas. This is exactly what is happening with SaaS. It totally changes the rules of the game, and while older companies struggle to change and adapt, newer companies made for the future are leapfrogging over them.
A new revenue model
Revenue models for software companies were simple. You usually sold your product in an annual license and added in a monthly payment for support in some cases.
SaaS introduces a new revenue model, which is different. Instead of buying your product, people buy a subscription to use your services.
SaaS often ties customers into contracts for a certain period of time, say 12 months. This makes your revenue forecast much more predictable, which investors like to see.
Software vendors no longer collect large sums upfront, but fees are spread out over time. This allows them to scale the offering to serve many more customers at the same time, and also to deliver the product more rapidly to their customers all over the world.
Customers also get a lot of customization options, which further complicate financial projections and models.
Companies have to figure out how to generate revenue in a way that is completely different from anything they have done before. It is hard enough to rebrand a company—it is much harder to rethink the company’s business model.
The need to rebuild the software
Most established companies have enough people to update their software and make new versions of it. In order to adapt traditional software applications to SaaS, however, companies have to completely rewrite their software from scratch in many cases. New companies can simply invest all their development resources in creating new software in a SaaS model. Older companies that are dependent on legacy software need to support their existing software while creating a separate SaaS product as well.
Companies also have to completely rethink how their software works in order to turn it into a SaaS product. There are software products that have been on the market for two decades, and they were always built with the assumption that they will be installed on computers. But that isn’t true anymore.
The SaaS platform has become increasingly popular for many reasons. Generally, customers find the subscription-based solution more flexible in terms of their needs. It also makes their products and services more affordable for them in the long term. By making the switch to the SaaS paradigm, developers can capture a large segment of the target market, and earn greater revenues.
Here are the some of the things that can help make the transition to a SaaS platform successful and profitable for a developer:
- Deliver unique and outstanding products and services that not only satisfy, but delight customers.
- Keep the product offering simple. Complex features seem intimidating to new customers, causing them to look elsewhere.
- Dedicate resources such as sales, services, and customer support for your SaaS offerings.
- Make sure to market to the growing mobile customer segment.
- Constantly test and update your product delivered on a SaaS platform.
In the end, the effort to adopt the SaaS paradigm will be well worth it. You will be able to generate loyal customers, boost revenues, and position your business to achieve profitable growth targets.