When software is developed, basic decisions get made to form the foundation of the technology. As time passes most companies are stuck with the technology decisions they made 10, 20 or 30 years ago. Fast forward to today, and many are now faced with a difficult choice - pick a new technology and rewrite the entire application or keep patching and adding to the existing application in order to just "keep it going". If they choose to ‘keep it going’, the application becomes more expensive to maintain, programmers who know how to code and manage the software are harder to find and any innovation is squashed. In fact, parts of the application become a "no-go zone". No changes allowed here without the risk of bodily harm or death.
Back in 1997 when we decided that the "cloud" was the way of the future period. We made the decision that our foundational technology would be part of our development process and it would be just as important to continually change and improve the foundational technology as well the application. Since this time we have been able to integrate new technologies into our application - seamlessly. This means our customers have not gone through, "How much is going to cost? Or how long is this going to take?” when wanting a new feature or change due to old code not being able to harness new technology. That makes it fast and easy for our customers. Because we keep the foundational technology up to date, our customers have not had to buy a whole new version or go through large painful updates.
This is going to get a little technical and is really geared for IT people. We are completely open about our technologies and how they work. We believe it’s important for your IT department to be confident that we can become a seamless partner in your overall IT plan.
All vendors say they "Run in the Cloud" but that doesn’t mean they are cloud based applications. What they are really saying is we took the server that was in your office that ran your application, virtualized the machine and moved it to a data centre connected to the Internet. The network cable that ran between your users computers and the server has now been replaced with the Internet. This is significantly better than servers in offices and we made this move back in 2000. However, if there is ONE thing, we have learned about doing SAAS applications since 1998 is that the Internet is NEVER going to be as reliable or as performant as a physical piece of wire between your users computers and a local server. This usually manifests itself into users seeing application pauses and lockups. There is nothing more frustrating to a user than being slowed down when they are under the gun from their customers and bosses to get stuff done. The vendor simply says “it’s your internet” not our problem. However, we believe IT IS their problem – their application is not designed to run on the internet.
We took the approach of writing a services, messaging based application that allows us to decide what parts of the application we run on the users computer and what we run on the server. The obvious benefit is now WE control when we have to go to the server for data and can optimize the process on the client for the best experience regardless of the quality of the network connection. What this means, is that you can easily run the application at a local coffee shop, public WIFI or even Airplane WIFI (ie Satellite) without compromise over a standard HTTPS connection. No special firewall rules or network requirements.
You get all sorts of unexpected benefits. Once you are thinking in terms of a services, messaging based application, then code changes and customization becomes easier. If your code is only tied to a service or a message, not an implementation, changes are much more contained and have a much smaller blast radius. This also allows us to isolate your custom code from the rest of the application - to provide custom functionality without touching the core product. No custom builds or millions of configuration switches are required. This makes for an application that can be changed and customized quickly and reliably. Our modular design allows us to automatically package the application, version it and run it in a docker container. It also gives us the ability to split the application into smaller docker containers that can just talk to each other or even new technologies in their own containers. (if you are consuming a service where the service lives and what language it is written in does not matter). We now leverage the power of the cloud with Kubernetes which provides infinite computing, network disk resources to orchestrate our containers. It can match the right amount of resources for the load required and automatically failover to other locations in the case of a datacenter outage. This makes for a very reliable and cost-efficient solution.
The cherry on top is all of our application is written using open source libraries, so we have no external license costs. Our REST API came out of our customers wanting access to their data. With our service-based application any internal calls to services in our application can be provided to our clients via our REST API over a standard HTTPS connection. This lets you build sophisticated custom applications that access your data in REAL TIME. There is no need to expose your database over the internet or hire an army of consultants to explain database structures and build custom queries. We give you a high-level API that lets you focus on your needs and hides all the internal business logic and database structures. Finally, we would be remiss if we didn’t talk about the security of the system. Our competitors moved servers that were in customers offices, nice and secure behind a company firewall, which were accessed locally using protocols that were designed for LOCAL access – read: no network security. When they moved to the cloud, it was all transferred to a machine and firewall they had no control over, using modified protocols to meet internet security requirements. In our model, the users are simply accessing stateless services over HTTPS in a docker container. There are no user accounts in the container and even we cannot login into the container or the virtual machines they are running on. We believe, the best security is having a well-designed application that does not need complex setups that lead to complex security challenges.
We are truly a cloud based SAAS provider. It is baked into the very fabric of the company. This provides our clients with the best product now and gives them the assurance that in the future their application will be able to quickly and seamlessly take advantage of the newest technologies providing a better value add for their customers.