This document/White Paper talks about the importance of Microservices and the role that it plays in today's ever-changing IT heathcare landscape.
The document aims to share a perspective on areas to consider while adopting microservices architecture for modernizing healthcare applications.
VIP Call Girls Sector 67 Gurgaon Just Call Me 9711199012
Microservices: A Step Towards Modernizing Healthcare Applications
1. A Step Towards Modernizing
Healthcare Applications
July 2018
Microservices
White Paper
2. Healthcare providers demand better solutions to be
able to consistently provide effective patient care.
Healthcare organizations in turn are pushing the
boundaries of innovation to meet the demand for such
high quality patient care services. As organizations
embrace the evolving technology trends, the overall IT
landscape becomes complex with distributed systems
involving multiple entities that both generate and
consume data.
A provider of care may request for additional features
or modifications in the existing workflows of these IT
systems to optimize and enhance the care giving
processes. However, with complex systems, the
healthcare IT organizations may not be able to
respond to requests with the speed and agility that are
demanded of them.
With the introduction to modern architecture like
microservices, enhancing the existing solutions and
building new features to respond to business needs
OVERVIEW OF MICROSERVICES IN HEALTHCARE
1
becomes an easier proposition with reduced time to
market. Microservices architecture promotes the
thought of viewing healthcare IT as small independent
components or services working together to constitute
a larger enterprise system fulfilling business needs.
Microservices with Cloud and DevOps practices are
paving the way to modernize healthcare IT solutions. In
this article, we share our perspective on areas to
consider while adopting microservices architecture for
modernizing healthcare applications.
3. The What and The Why
Microservices is an architectural style that structures an
application as a collection of loosely couples,
independently deployable services communicating
through lightweight mechanisms. It works on the Unix
philosophy of "do one thing, and do it well”.
Each service is built around a business capability and is
independently developed, managed, and deployed.
Microservices architecture enables delivering complex
applications while leveraging CI/CD and improving the
choice of technology stacks.
INTRODUCTION TO MICROSERVICES
2
Challenges in Monolithic Applications
Monolithic applications are generally averse to change.
Managing and supporting a monolith may become
extremely challenging due to factors such as:
Technology stack lock-in
Large codebase and interdependencies
Cascading failures due to one failing component
Need to redeploy the entire application even for minor
component changes (slowing down production)
Shared databases which increase cross-team
coordination, slow product development process and
make the application highly susceptible to failures.
Need to scale the entire application to meet the
demands of a few components
Typical Microservices Architecture Typical Monolithic Architecture
4. ADOPTION OF MICROSERVICES: KEY DRIVERS
3
Microservices
Architecture
Time to Market
Promotes shorter development cycles
Enables deployment automation with DevOps
Advocates Agile with reduced risk and faster
time to market
Decentralized Governance
Empowers teams with focus on a single
business domain
Encourages individual teams to own the
end-to-end development and operations
Enables high responsiveness to changing
business needs
Technology Stack Independence
Provides flexibility of adopting technology
stack best suited for business use cases
Enables deployment on supported hardware
and software platforms
Promotes innovation with fail-fast approach
Scalability
Enables packaging as single unit of
execution
Enhances easy scale up and scale
down based on usage and demand
Maintainability
Facilitates maintenance of smaller
codebase for a business use case
reducing overall complexity
Promotes isolation with independent
builds and deployment
Digital Transformation
Supports cloud-based deployments
Promotes API driven development
Supports multiple channels and devices
to develop integrated solutions
5. Cloud Platforms & Services
Microservices architecture brings scalability to
enterprise applications. The scalability can only be
achieved if the infrastructure supporting the
microservices implementation is highly elastic and
scalable. The dynamic nature of cloud allows the IT
teams to quickly spin up services, support routing
between services, while allowing the application to
function even when some part of the application may
not respond due to heavy demand.
DevOps Processes and Maturity
A microservices-based architecture contains numerous
components making the integration and deployment
process complex and challenging. DevOps processes
like Continuous Integration help in identifying and
addressing integration issues faster in the
development lifecycle, whereas processes like
Continuous Deployment provide the ability to build
and release the software in a consistent way.
Automation is at the heart of a successful DevOps
MICROSERVICES ARCHTECTURE ENABLERS: CLOUD & DEVOPS
4
Pipeline. It leads to reduced duration of the SDLC
process and fosters collaboration between
development and operations teams.
Team Organization (Conway’s Law)
For microservices architecture to succeed, the teams
must be aligned based on Conway’s Law. Distributed
teams must become the norm, with each team
completely owning the services. The teams should
include right-skilled contributors and must be
empowered with mature processes and toolsets to
support development and delivery based on business
requirements.
Successful Healthcare IT Solution =
(Well-defined Microservices + Elasticity
offered by Cloud Platform) x Maturity of
DevOps Processes
6. Service Discovery
In a distributed system, the number of service
instances and their locations change dynamically.
Service discovery allows clients to communicate with
the right service based on the service registry.
Inter-service Communication
In a microservices architecture, many services
communicate synchronously or asynchronously to
complete a transaction. Inter-service communication
mechanism drives the orchestration and choreography
of the services.
Data Integrity
With each microservice having its own database,
ensuring data consistency across transactions
spanning multiple services becomes a challenge.
Patterns like event sourcing, CQRS and saga help in
achieving eventual consistency of the data.
MICROSERVICES: KEY DESIGN CONSIDERATIONS
5
Security
Healthcare systems generally deal with PHI and PII.
Ensuring security is one of the topmost priorities while
designing such systems. Encryption mechanisms and
strong authentication / authorization tools will ensure
security of data at rest and data in transit.
Monitoring and Health Check
As the microservices architecture becomes complex
with addition of hundreds of services, troubleshooting
issues becomes challenging. Monitoring the system
with distributed transaction tracing and health check
APIs ensure that applications run efficiently.
Quality Assurance (Testing)
To ensure that all the interactions and
communications are thoroughly tested, we must
consider automated testing with unit tests, integration
tests, component tests, and contract tests.
7. Performance Challenges
Microservices architecture is a highly distributed
architecture that supports many complex requirements
like SAAS enablement and independent evolution.
Such systems introduce network complexity and can
lead to performance issues, if not managed carefully.
Eventual Consistency
Microservices architecture insists on decentralized data
management and introduces data consistency via
eventual consistency. Developers need to avoid
distributed transactions as far as possible and in other
cases, ensure that the state is not out of sync.
Operational Complexity
Microservices architecture introduces a lot of small
services and deployable components as against the
traditional few components associated with monolith,
increasing the strain on the operations team. A mature
DevOps process needs to be adopted to manage
operational complexity.
MICROSERVICES: TRADEOFFS
6
https://martinfowler.com/bliki/MicroservicePremium.html
8. MIGRATING FROM MONOLITHIC TO MICROSERVICES ARCHITECTURE
7
Discover
& Analyze
Define
Microservices
Template
Automate
with DevOps
Strangle the
Monolith
Decouple
Services
Document
& Deliver
Gather metrics and data – Discover and
create inventory of applications,
application users, usage patterns,
technology stack, etc.
Identify critical use cases, types of
clients, points of failures, need for
agility, and responsiveness to change
Define strategy for developing APIs
(Swagger, RAML spec, etc.)
Build a starter kit template (e.g. Dockerfile)
for microservice that includes:
o Authentication and Authorization
o Configuration Management
o Auditing and Logging
o Distributed Request Management
o Monitoring
o Analytics and Reporting
Automate the process of build and
release cycle using DevOps
Define the CI/CD pipelines to easily
accommodate other processes like
static code analysis, unit and
integration testing, packaging,
security and performance testing
Implement any new feature request as
microservice & integrate with monolith using
anti-corruption layer
Split frontend from backend & introduce APIs
Identify distinct modules based on business
domain and implement them as microservices
Introduce API gateway and glue code to route
and respond to requests between monolith
and microservices
Decouple microservices using event driven
architecture
Manage service discovery using orchestration
tools like Kubernetes, Docker Swarm, Eureka.
Implement service mesh to manage complex
network of services
Use circuit breaking techniques for fault tolerance
Make microservices available for
consumption by third-party
applications/clients
Leverage cloud infrastructure / SaaS
deployments to lower time to market
Define granularity of the microservices
based on the type of the client (web,
mobile, etc.)
9. MICROSERVICES: USE CASES IN HEALTHCARE
8
EMR & EHR
A microservices architecture can be a good fit for
designing EMRs and EHRs where multiple teams can
build features based on the core needs of their
respective domains. The business can drive the
enhancements and evolution of the EMR system based
on specialty or multi-specialty needs.
Since the application is built as a highly modular,
isolated services model, teams can drive faster releases,
maintain the application better and respond faster to
changing regulatory and business needs.
Bioinformatics
The tools and algorithms used in bioinformatics are
becoming more complex and need more collaboration
within the community to increase the pace of
innovation. Therefore, building a SAAS based platform
to expose algorithms to a wider audience has immense
potential.
By using a microservices architecture, each algorithm
can be packed as a service which can be managed and
This can allow researchers to easily share their work, run
algorithms on demand by spinning up the right
infrastructure, analyzing the results and dismantling the
infrastructure without manual intervention.
Internet of Healthy Things
Healthcare organizations can build powerful solutions
personalized care or preventive care based on access to
real-time patient data (through wearables). Other areas
that benefit from IoT include remote patient monitoring,
predictive modelling, population health management,
resource utilization, etc.
Microservices architecture facilitates the design of
services that directly support IoT use cases. Services can
range from highly granular to composite, based on
requirements. Healthcare IoT applications supporting
these use cases and built using microservices can be
highly resilient and help deliver immersive experiences.
10. efficacy and safety of product is paramount. The
journey of the product from manufacturer to
consumer has multiple stages: transportation,
handling, storage, redistribution, retail. Things can go
wrong during these stages, from simple human error
to malicious intent (fraud). In a conventional system, it
can get difficult to identify the problem as participants
in the supply chain may usually maintain their own
records and may share their information usually just
one level up and one level down the chain.
Furthermore, if these records are paper-based, they
are more prone to errors. These factors further delay
investigations to identify the issues with drug supply
chain.
Additionally, with governments and consumers
demanding transparency in the supply chain for such
products, companies have worked towards
maintaining an open or transparent supply chain
system. Depending on one organization to track
irregularities still isn't fool proof.
CONCLUSION
REFERENCES
9
Microservices offers many advantages over traditional, monolithic
architectural approaches. However, healthcare organizations need to
consider essential trade-offs while adopting the microservices
approach.
By developing a robust roadmap for microservices adoption, along with
DevOps processes and collaborative teams, healthcare organizations
can drive innovation, build new products, lower time to market,
modernize their existing IT environment, and create competitive
advantage.
http://microservices.io/
https://martinfowler.com
https://www.amazon.com/Implementing-Domain-Driven-Design-Vaughn-
Vernon/dp/0321834577
https://oauth.net/2/
https://jwt.io/
https://www.slideshare.net/citiustech/improving-efficiency-and-outcomes-in-
healthcare-using-internet-of-things
11. efficacy and safety of product is paramount. The
journey of the product from manufacturer to
consumer has multiple stages: transportation,
handling, storage, redistribution, retail. Things can go
wrong during these stages, from simple human error
to malicious intent (fraud). In a conventional system, it
can get difficult to identify the problem as participants
in the supply chain may usually maintain their own
records and may share their information usually just
one level up and one level down the chain.
Furthermore, if these records are paper-based, they
are more prone to errors. These factors further delay
investigations to identify the issues with drug supply
chain.
Additionally, with governments and consumers
demanding transparency in the supply chain for such
products, companies have worked towards
maintaining an open or transparent supply chain
system. Depending on one organization to track
irregularities still isn't fool proof.
ABOUT THE AUTHORS
10
Roshni Thomas
Solution Architect, CitiusTech
roshni.thomas@citiustech.com
Roshni has over 13 years’ experience in the IT industry. She has primarily been a Java Technical Architect working on service
oriented applications and mobile platforms. She has worked on various frameworks including microservices, message brokers,
containerization, cloud computing and so on. Roshni currently is working as a microservice architect at CitiusTech. She has a
Bachelors degree in Electronics Engineering.
Tathagata Roy
Sr. Solution Architect, CitiusTech
tathagata.roy@citiustech.com
Tathagata has over 13 years’ experience as a technology professional. He has worked as a Java Technical Architect, providing
expertise across service oriented architectures and integrated applications on various on-premise or multi-vendor cloud
platforms. Recently, Tathagata worked on an architectural model for a service-based EHR, leveraging the latest in
microservices architecture, third party service integration, security and Infrastructure-as-a-service management. He has a
Bachelors Degree in Electronics and Communications Engineering.
Khushboo Shah
Sr. Solution Architect, CitiusTech
khushboo.shah@citiustech.com
Khushboo has over 11 years of experience as a healthcare technology professional with strong experience in EHRs, HL7
messaging, consumer health platforms and measures reporting. She has worked on several healthcare projects for leading
provider organizations and healthcare ISV’s. Khushboo’s most recent experience involves leading the Performance
Engineering Practice and Product Engineering Practice at CitiusTech to evangelize the microservices and full-stack
engineering trends. She has a Bachelors degree in Computer Engineering.