It was in early 2014 that iTelaSoft took on the responsibility of managing Skwirk online learning platform a leader in delivering K-12 curriculum based content to students and teachers of Australia and the UK schools. It had great content developed by amazing pedagogical and instructional design talent, which made it such a powerful tool loved by teachers and students alike. The demand for its service was souring and business was planning to scale-up.
iTelaSoft consistently deliver to us a high quality result from both our development and support tasks. We have had a long term relationship and found that the staff are able to enhance our own skills and to communicate to us the effectiveness of facets of our development tasks, as well as identifying areas where the task needs to strengthen.
However the Achilles heel of Skwirk was the tech platform behind it. It was bursting at its seams under heavy peak time traffic. The state of the platform was not in good shape. It would crash during peak hours and sometimes there would be loss of data. Furious users inundated support lines with frustration and threatening to cancel their subscriptions. Developers and engineers would burn time in fire fighting instead of adding value to the product. It was obvious that something had to be done, and it had to be done pretty quickly or risk of being abandoned by the users.
iTelaSoft as the new tech force behind the platform was faced with the challenge of recommending a viable solution. After evaluating multiple options, it became obvious that shifting of workloads to the cloud to be the best option. That would allow the platform to be highly available while addressing scalability, reliability and performance issues. Having studied the application architecture in depth we became convinced that this will also allow the platform to be set on the right trajectory for its future growth. Amazon Web Services was chosen as the cloud platform due to its completeness of service offerings compared to other platforms. Also RDS, EC2 and S3-Cloud front combination was an ideal fit for a content delivery platform. Quickly we devised the target architecture and costed the transition cost and operational expenses with a view on minimising the total cost of ownership. The new architecture would allow us to leverage availability zones, load balancing, provide auto scaling and 99.9% uptime, exceed reliability and performance goals, zero downtime maintenance. A proposal was prepared with a target architecture documented and a roadmap to transform the entire application. Its initial step was to lift and shift the application to the cloud with as little code changes as possible. It would also take care of business continuity and data security objectives. The business case was so compelling we were immediately given the go ahead.
After 3 weeks of minor application changes, engineering, provisioning and 2 further weeks of data and content migration and testing exercise, the platform was ready for taking its initial workload. An incremental migration strategy was devised where we would gradually migrate user accounts to the brand new environment. Apart from minor data migration related issues which were corrected swiftly, the results were positive. After 6 weeks of incrementally shifting hundreds of thousands of accounts finally we could look back, review and start monitoring service quality of the new setup. To everyone’s relief it was a great success. There was no more crashing and data losses, and the content was being delivered snap fast that the user sentiment turned around almost immediately. Skwirk was back in business and could start delivering valuable product features again.
Now the developers empowered with all the Dev-Ops options of AWS could automate and accelerate feature releases. Although the original application ported was not designed for the cloud, the effort provided a great launch-pad for the next phase of re-architecting Skwirk to fully leverage AWS’s capabilities.
Albeit done with a hurry, over time, moving to AWS proved to be a great decision. As the platform grew, it was re-architected to be cloud native. The original monolithic application was broken-up and transformed to run on well architected domain APIs which were backed by domain based database schemas. It could leverage AWS‘s SQS for queuing, API Gateway and lambda functions for various value added APIs and integrations.
As I write this article Skwirk is now working on another round of innovation leveraging AWS’s Elasticsearch and Machine Learning services, which will allow the platform to maintain its competitive edge and continue delivering exceptional value to the community.