GCP Case Study EHR HealthCare - vidyasekaran/GCP GitHub Wiki
am taking notes from below links for case studies in an intention to provide solutions
https://cloud.google.com/certification/guides/professional-cloud-architect/ https://services.google.com/fh/files/blogs/master_case_study_ehr_healthcare.pdf
Compute Selection /Storage / decision refer
Refer : https://github.com/vidyasekaran/GCP/wiki/GCP-Services---Compute,-Storage-decision
EHR HealthCare - Provides electronic health record software to the medical industry. Its a SAS to multinational medical offices, hospitals etc.
Solution Concept - They need to scale their environment, adapt DR recovery plan, and roll out continuous deployment capabilities to update their software at a fast pace.
Existing Technical Environment -
- Currently hosted in multiple colocation facilities.
- Customer facing apps are web based containerized to run in GKE in multiple clusters.
- Data is stored in MYSQL, MYSQL Server, Redis and MongoDB.
- EHR is hosting multiple legacy interfaces with insurance providers on prem. No plan to upgrade to new system now.
- Users are managed in MS Active Directory and monitoring done via opensource tools.
Business Requirement
- On-board new insurance providers as quickly as possible.
- Provide minimum 99.9% availability for all customer facing systems.
- Provide centralized visibility and proactive action on system performance and usage.
- Increase ability to provide insights into healthcare trends.
- Reduce latency to all customers.
- Maintain Regulatory compliance.
- Decrease infra admin cost.
- Make predictions and generate report on industry trends based on provider data.
Technical Requirements
- Maintain Legacy interface with insurance providers with connectivity to on prem systems and cloud providers.
- Provide consistent way to manage customer facing apps that are container based.
- Provide Secure and high performance connection between on prem and gcp cloud.
- Provide consistent logging, log retention, monitoring and alerting capabilities.
- Maintain and manage multiple container based environments.
- Dynamically scale and provision new environments
- Create interfaces to ingest and process data from new providers.
Executive statement
Their on prem worked well for years but major investment and training team on distinctly different systems, managing similar but separate environments, and responding to outages have been result of misconfigured systems, inadequate capacity to manage spikes in traffic, and inconsistent monitoring practices. they want to use GCP to leverage scalability, resilient platform that can span multiple environments and provide consistent stable user experience that positions for future growth.
Solution
Let me start from technical requirement first
TR1. Maintain Legacy interface with insurance providers with connectivity to on prem systems and cloud providers.
--> Its a hybrid architecture having systems and platforms in on prem and also in GCP. We can have Cloud Interconnect with backup connectivity between onprem and GCP.
TR2. Provide consistent way to manage customer facing apps that are container based.
--> We can use Cloud Run (its a managed service so scalablity, HA is built in and taken care by GCP)
TR3. Provide Secure and high performance connection between on prem and gcp cloud.
--> Use Cloud Interconnect to connect onprem and gcp --> We can use Loading Balancer (Unified interface, built in DDOS Support) and CDN for quickly loading static pages. --> We can configure Cloud Armour @ GCP Side for protecting gcp resource from cross site scripting, sql injection, ddos and provision to have allow/deny list. You can see vulnerablities in security command center and also in cloud monitoring dashboard. --> I also suggest to use Apigee API Gateway or cloud run so that front end can consume the apis.
TR4. Provide consistent logging, log retention, monitoring and alerting capabilities.
--> Cloud Logging, Cloud Monitoring and Health checks to be setup
TR5. Maintain and manage multiple container based environments.
--> Anthos can be leveraged to manage multiple container environments.
TR6. Dynamically scale and provision new environments
--> Frontends are deployed in Cloud run and backends in Anthos so scalability is covered. --> For provisioning new environments we can use terraforms scripts to create new environments
TR7. Create interfaces to ingest and process data from new providers. BR1. On-board new insurance providers as quickly as possible.
--> 1. Create backend microservice and deployed in cloudrun and expose it via cloud endpoints. This service to process and ingest data into bigquery db.
--> 2. Create backend microservice and deployed in cloudrun which will be triggered once the data file is uploaded in cloud store or PubSub. Reference : https://cloud.google.com/blog/topics/developers-practitioners/cloud-run-story-serverless-containers https://storage.googleapis.com/gweb-cloudblog-publish/images/Cloud-Run_v4-12-21bookVersion.max-1600x1600.jpeg
BR2. Provide minimum 99.9% availability for all customer facing systems.
--> Frontends are deployed in Cloud run (automatic redundancy is implicitly builtin) so high availability is automatically taken care.
https://cloud.google.com/blog/topics/developers-practitioners/cloud-run-story-serverless-containers
BR3. Provide centralized visibility and proactive action on system performance and usage. --> Setup Cloud Monitoring to gain visibility into the performance, availability, and health of your applications and infrastructure.
BR4. Increase ability to provide insights into healthcare trends. --> Cloud Monitoring and Cloud Logging can be setup.
BR5. Reduce latency to all customers. --> CDN and Cloud MemoryStore can be setup
BR6. Maintain Regulatory compliance.
BR7. Decrease infra admin cost. --> We can develop IAAS provisioning script written in terraform.
BR8. Make predictions and generate report on industry trends based on provider data. --> For Predictions using ML you can process the data using services like Cloud Datalab, Cloud ML Engine and store the refined data in BigTable/BigQuery.