Developing a Software-as-a-service has a lot of tightly knitted components. Each component provides its own purpose and adds its unique color in the overall picture. While we could have a solid block that was just this singular service from top to bottom; we encountered multiple challenges during our initial build. Some were limitations and some were requirements. Some limitations that we faced, were for high availability and for us to be able to monitor failed tasks and processes. Some requirements were for security and to separate the back-end processes and their networks. Additionally, configurations and consistency were key items that we needed to scale with load.
The logical solution at that time was containers. But we had to solve the following questions.
- How do they connect as a network?
The goal was to keep separate networks so we achieved isolation. Isolation is the simplest way to impart security so we thought that we should do that first. We solved that we by scripting and connecting network elements when the containers are built or started.
- With separate containers how do we track process and applications running in them?
Here we used Compose and Kubernetes and few solutions to solve those simple tasks.
- How do you make the data portable?
We decided to just provide a simple mapping to the data. However to map from the data to the application was difficult as two hops separated them. The Data was to be referenced from the central repository and needed to be visible into the Hosts running the containers and then the containers eventually referenced it for their applications.
You may be wondering why do all this, why not just do simple containers and move on? But then, were is the challenge with simple things and secondly we had to rethink the way we solved the problems. We learnt it the hard way when our development system was down due to a cyber attack. We just shelved the old one as it only had test data and got down to build this complex system.
Now it has survived both cyber attacks and changing technology gracefully.
But for now, I should say….
Hope you learnt something from our experiences.
Parzee proved a simple and easy way to deploy application servers in Private and Public clouds, by just using a browser. Do give us a try at http://www.parzee.com or write to us at firstname.lastname@example.org.