Compute Services

Think Research Accelerates App Delivery with IBM Cloud Kubernetes Service

Share this post:

Think Research’s VirtualCare app brings efficiency and protects privacy

An effective medical practice requires office efficiency that protects privacy. Think Research’s VirtualCare app enables patients and doctors to securely manage medical appointments and clinical history online. As a result, quality of care remains the top priority.

VirtualCare currently serves 1,200 patients and 36 providers, and it continues to grow. For requirements like reviewing test results, patients can book a 10-minute virtual doctor’s visit, saving time and effort for both the doctor and themselves.

Choosing a container-based cloud platform

VirtualCare is architected as microservices. In evaluating cloud platforms for hosting it, we determined that the IBM Cloud Kubernetes Service would provide the right combination of distributed resources and automated scaling for developing and updating the app. In fact, its toolsets helped us move towards a more DevOps-centered culture.

Using a managed Kubernetes service makes our lives a lot easier, and it means we can focus our resources in the areas that will benefit our company. It’s also a lower-cost approach because IBM provides the ready-made Kubernetes environment that we can deploy into. With IBM Cloud Kubernetes Service, the Think Research team no longer needs to worry about the infrastructure in terms of memory, processor utilization, storage, and so on. Instead, we rely on IBM to take care of everything.

Another key factor was timing—we needed to build our app within four to six months. When it comes to running a full production Kubernetes cluster, you need expertise to make sure it gives you the expected performance. It didn’t make sense to take on the risk ourselves and try to learn the whole of Kubernetes technology when we could rely on IBM’s expertise.

Rapid, highly secure, automated

The VirtualCare app is based on a microservices architecture, with five or six specific microservices all containerized and running within the same pod, clustered across three nodes. Re-using the same backend services, Think Research created a mobile version of the app that providers can use when making medical visits and patients can use at home.

Think Research worked with the IBM Cloud team to ensure adherence to the security standards required by HIPAA and PHIPAA. We are now building up functionality in the IBM Cloud console to manage access privileges according to roles. The new roles-based logic from IBM Cloud will make it much easier for us to assign the appropriate levels of access—for example, ensuring that developers can access the sandbox and the production staging environment but not the critical production environment itself.

To build and enhance VirtualCare, Think Research uses its own custom DevOps toolset, which was easy and seamless to integrate with the IBM Cloud. When Jenkins sees that new code has been pushed, it pulls the relevant branch from the Bitbucket repository and creates the Docker image for it. It then pushes that image into the registry in the IBM Cloud Kubernetes Service, instructing Kubernetes to deploy it into the pipeline. At each stage, from dev to staging to UAT to production, Think Research runs automated tests to maintain quality.

Using a DevOps approach on the IBM Cloud, Think Research has been able to really streamline the pipeline and achieve quicker turnaround times. Our developers can now deploy their code themselves onto the IBM Cloud, and we’re moving towards an infrastructure-as-code philosophy, where we will use Puppet and other types of scripts to standardize the installation of certain modules within each image. We’ll deploy the app to those images and then containerize them and ship them onto the IBM Cloud. This move towards automated deployment for our VirtualCare app will make our lives a lot more efficient, and help us to bring the app to a wider group of users.

By hosting VirtualCare on IBM Cloud Kubernetes Service, Think Research get reliable horizontal scaling, elastically provisioning cloud resources to match user activity. Since the Kubernetes Services is a managed service, our DevOps teams only has to declare a configuration that the IBM-managed Kubernetes master must maintain for our app to perform as required. The system self-regulates and self-heals to operate with the balance of resources we declare.

As a result, the Think Research team focuses more time on improving VirtualCare and, with it, actual patient care.

To find out more about how your organization can tap into the power of IBM Cloud, visit or read the IBM case study on Think Research .

VP of Engineering – Think Research

More stories
May 3, 2019

Kubernetes Tutorials: 5 Ways to Get You Building Fast

Ready to start working with Kubernetes? Want to build your Kubernetes skills? The five tutorials in this post will teach you everything you need to know about how to manage your containerized apps with Kubernetes.

Continue reading

May 3, 2019

Using Portworx to Deploy and Manage an HA MySQL Cluster on IBM Cloud Kubernetes Service

This tutorial is a walkthrough of the steps involved in deploying and managing a highly available MySQL cluster on IBM Cloud Kubernetes Service.

Continue reading

May 2, 2019

Kubernetes v1.14.1 Now Available in IBM Cloud Kubernetes Service

We are excited to announce the availability of Kubernetes v1.14.1 for your clusters that are running in IBM Cloud Kubernetes Service. IBM Cloud Kubernetes Service continues to be the first public managed Kubernetes service to support the latest upstream versions from the community.

Continue reading