This client provides Advanced Artificial Intelligence (A2I), workflow
engineering, science, and virtual care strategies to improve, innovate, and transform how care is provided, accessed, and delivered. Based in Redlands, California, the company is growing rapidly with a steady
list of new clients and projects.
- Since, the initial process was manual and the size of the questionnaire was big, it was very important to get the user experience right.
- The solution that had to be implemented had to cater to different types of field executives using different devices like laptops, tablets, and mobiles.
- Lack of internet connectivity was one more thing that we had to keep in mind while planning for the solution.
- The solution should be able to completely eradicate manual work while it should be effort saving and cost-efficient.
- Build a fully responsive web application that can support all different devices and browsers.
- Add Progressive Web Application (PWA) support to the system in order to enable offline working.
- A Microservice-based Containerized modern integration system.
Building a Progressive Web App with Microservice-based Containerized Architecture on Kubernetes
- Our objective was to build a web-based application, which can be accessed anywhere, work offline, easy to use and update, and can be synced with server whenever internet is available.
- To digitize their whole workload, a Progressive Web App (PWA) has been built in which the whole backend API completely runs on Google Kubernetes Engine (GKE). We have built a modern integration system using microservices-based architecture where all components have been built as microservices and run on Google Cloud Platform (GCP) using Google Kubernetes Engine (GKE). Kubernetes helped us to deploy, scale, and manage the containers. It also allowed us to automate the deployment of the containerized microservices.
- Client preferred the microservices-based containerized architecture mainly because they were looking to have an easy-to-use and easy-to-maintain application, where making alterations, scaling functions, adding new features, and finding and resolving errors would be easier.
- One more reason was the fact that containers could enable them to scale their backend services based on load during peak business hours. Needless to say, the advantages of containerization like flexibility, agility, and ease of deployment were amongst the other reason for choosing containerization.
- Containers has also eased the process from development to production by offering a continuously integrated test environment allowing the developers to easily push changes without worrying about underlying infrastructure.
- PWA was chosen over ‘traditional’ app development models because of its flexibility and development cost. Traditional mobile app development can be expensive and often use a major amount of storage and data on the users’ device. Whereas, Progressive Web Apps are developed as single code base that can be installed and run on all platforms, and they don’t require any significant storage on the device.
- Also, the PWAs bridge the gap between responsive web pages and mobile apps and can be saved on desktops like native Android or iOS app.
- Updates are also easy to do, since, they work similar to web applications, the update happens during the loading and it doesn’t have to be updated in the background or before it is launched like a native app.
- Likewise, Google Kubernetes Engine (GKE) also has its own advantages such as automated orchestration, deployment, scaling of containers, easy/automated kubernetes version upgrades. GKE gave them the reliability they needed; architecting a containerized integration system based on microservices running on GKE provided them their desired level of efficiency and helped to control their costs.
- We designed our architecture to use lightweight microservices to allow for easy build and deploy pipeline. We followed the best practices by ensuring 90% code coverage, and used Sonarqube to measure code quality. We configured CI/CD pipeline using Jenkins to automate the non-human part of the application development process, so that it deploys code instantly, and generates test reports. QA automation was also done using Selenium.
- We successfully leveraged the potential of the Google Cloud Platform and Kubernetes to achieve the desired scalability and performance. This provided a configuration-driven framework where the company can get the entire system and the application spun up with just one click or set up an automated scaling based on traffic and various parameters, thus making it more dynamic in nature and easy to manage.