Google, Amazon and Soundcloud all have successfully deployed microservices. Let’s modernize healthcare applications with microservices.
Microservice architecture transfers healthcare providers and payers from one large application into smaller applications. These little applications or “micro” applications provide specialization using service-oriented architectures (SOA) by building dependent and flexible components. These micro pieces are not simple CRUD (create, read, update, delete) services — they have responsibilities.
Microservices combine lightweight mechanisms that offer scalability (Netflix supporting 800 different devices and 1 billion calls a day) and can support a range of platforms and interactions (the web, mobile, IoT, wearables).
The world of microservices
There are many reasons why microservices are valuable for healthcare. Before we jump into those reasons, let’s define the ecosystem that makes up the world of micro services.
- Code management: Atlassian, GitHub, Gitlab
- Continous integration: JFrog, CircleCI, Shippable, CloudBees, Codeship, Werker
- Services discovery and planning: Docker, Kubernetes, Hashicorp
- Service optimization: Force12.io
- Security and compliance: Illumio, Twistlock, Conjur, Apcera, Redlock, Scalock, CloudPassage, Banyan, StackRox, Palo Alto Networks
- Inter-service communications: Confluent, Hystrix, NATS, Tensyr, Thrift, gRPC, Ginagle, Rabbit by Pivotal
- API management: Mulesoft, Kong, Akana, WSO2, Apigee, 3Scale, Runscope, Mashery
- Operating systems: Ironic, Mesosphere, Linux, UNIXC, Windows, CoreOS
- Monitoring environments and log analysis: Wavefront, Nagio, Runscope, DataDog, Netsil, New Relic, Sysdig, App Dynamics, SignalFX, Elastic, SumoLogic, Splunk, Logentries
- Platform management: Docker, Nirmata, Apcera, ManageIQ, Rancher, Flexiant, AppFormix, Stack Engine by Oracle, Containership
- Load balancing: NGINX, Datawire, Buoyant, HAprozy, Traefik
- Infrastructure automation frameworks: HashiCorp, Puppet, Chef, Ansible by Red Hat, SaltStack
- Database and data management: ClusterHQ, MongoDB, Cockroach, Minio, Crate.io
- Network: Cumulus, Big Switch, FBOSS, Wedge, OpenSwitch, Calico, Weaveworks
- Converged infrastructure: Ceph by Red Hat, Springpath, Datawise, Portworx
- Platforms: OpenShift, Cloud Foundry, Docker, Deis, Joyent
- Public cloud: AWS, IBM, Azure, DigitalOcean, VMware, Google
A dynamic response to changing business conditions
Microservices provide agility and align well with changing business needs that require automation and the ability for functionality to be recomposed. The benefit of intrinsic interoperability with industrywide standards (HTTP and JSON) ensures that your technology is enabling your business to solidify your competitive advantage.
Microservices work off a three-layer system: system APIs (core business capabilities), process APIs (orchestration and choreography of components) and experience APIs (adaptable processes and configurable options). As patient engagement, sustainability, and outcomes prove ever more critical, the ability to micronize your healthcare environment will become a best practice in healthcare. The speed of delivery, accelerating innovation capabilities and new models of care today are prerequisites for a functional and efficient business operation.
Microservices for healthcare enable this vision.
Avoiding the snowball
Monolithic applications like the large electronic health record systems we know and love, eventually snowball into unreasonably large systems. The effect is that problems quickly snowball, out of control. Simple changes need to be made in multiple locations. Various systems across a healthcare ecosystem are running on different versions or service patients using entirely different and unconnected systems. Value is siloed.
What’s our solution to this problem? Our solution is that we build the functionality over and over again. We try to “reuse” components, but for the most part, they are constructed initially by vendors and then modernized — and that means another bill for similar work. Moving away from limited-reuse applications enables organizations to slide move toward the edge of innovation — where the most value occurs.
Microservice providers acknowledge there are tradeoffs when leading initiatives that require scale (multiple location installations), including the following:
- Service discovery and documentation
- Fault tolerance
- Quality of service
- Request traceability
- Failure triage
Start exploring the value of microservices
It’s always difficult when exploring new areas you’re unfamiliar with. Here are a few steps to help jump-start the journey of incorporating microservices into your healthcare environment.
- Identify potential microservices categories where you may find value.
- Define the scope of responsibility for the identified microservices.
- Consider the type of information that will be transmitted.
- Associate business processes with the technical functionality defined.
- Link technical processes to the business processes.
- Research capabilities that are ahead on the business road map — capabilities that are not offered today but are desired. The following steps are typically done with tools, not manually.
- Design the micro service starting with the API definition and elaborate how the service will be consumed (REST or event-driven)
- Develop a service mocking or simulation. This step is also known by isolation, simulation or virtualization. In essence, you’re building something that works as something else.
- Deploy the microservice. This is where we transition from deploying to multi-tenant environments like JBoss AS or Tomcat and leverage IaaS automation frameworks such as HashiCorp or Chef and virtualization technology such as Xen or VMware.
- Manage container systems. Conflicts and container integration must be proactively managed. Pivotal Cloud Foundry and Mesosphere DCOS have recognized this gap and are evolving to address the need.
Best-of-breed healthcare solutions
This year, your team will identify new technical capabilities. They will assess how these skills will align to the predefined needs of the business. As a healthcare leader, what do you expect out of this analysis? What have we always expected? We expect a recommendation — a single recommendation.
When was the last time your team identified, assessed and presented options and the result was a set of five to eight products that worked together and provided a unified best-of-breed solution? I’d say it probably hasn’t happened in the past 30 days and likely not even within the past year. Whether you’re assessing a healthcare medical record solution or a pure desktop product used by clinicians, everyone wants simplicity.
Unfortunately, in today’s knowledge-rich world, one solution rarely provides all the answers. As a result, we “fit.” We fit our solution into whatever problem hole we find. The solution rarely fits the need perfectly, yet we just cram the solution into the problem space. The action correspondingly has a ton of white space where the solution didn’t solve the intended problem (business or technical).
Delivering the value of simple
The most logical microservices uses are attributable to business processes or transactions. Microservice responsibility goes beyond pushing data. Each service is discrete and encapsulates a set of responsibilities. These responsibilities may relate to a business domain such as claims or billing. However, they also could relate to technical domains such as operating systems or network performance.
The benefit of deploying microservices is the micro scale of functionality that is agonistic to a particular domain or subdomain such as claims reconciliation. The patient name, account number and balance may also be applicable across other business areas such as patient entry, patient discharge or utilization. Microservices begin with business-oriented designs commonly in the form of APIs (business interactions to access information).
Adaptability, loose coupling, autonomy, fault tolerance, composability and discoverability each offer the advantage of reuse — a core principle supporting the value of microservices design. Define the problem first. Savvy healthcare pioneers have already discovered that microservices help solve problems by getting back to simple.