Microservices are the next evolution in the enterprise integration landscape, allowing organizations to continually adapt to the new demands of the digital marketplace. But where do you start? How do you evolve legacy architecture and IT processes in areas like Agile and DevOps to support microservices?
Our webinar covered the benefits and challenges of microservices and the steps to build a practical, successful microservices strategy and roadmap.
Manisha Datye, VP of the Integration Center of Excellence at Perficient client TCF Bank, discussed TCF’s experience with microservices including the business drivers and benefits.
Discussion centered on:
-An understanding of the microservices evolution
-Insight into the constraints and benefits of microservices architecture
-Steps to building a microservices migration strategy and roadmap
-A look at how to jump start microservices with Perficient’s Innovation Lab
2. 2
About Perficient
Perficient is the leading digital
transformation consulting firm serving
Global 2000 and enterprise customers
throughout North America.
With unparalleled information technology, management
consulting, and creative capabilities, Perficient and its
Perficient Digital agency deliver vision, execution, and
value with outstanding digital experience, business
optimization, and industry solutions.
3. 3
Perficient Profile
• Founded in 1997
• Public, NASDAQ: PRFT
• 2015 revenue $473.6 million
• Major market locations:
Allentown, Atlanta, Ann Arbor, Boston, Charlotte,
Chattanooga, Chicago, Cincinnati, Columbus, Dallas, Denver,
Detroit, Fairfax, Houston, Indianapolis, Lafayette, Milwaukee,
Minneapolis, New York City, Northern California, Oxford (UK),
Southern California, St. Louis, Toronto
• Global delivery centers in China and India
• 3,000+ colleagues
• Dedicated solution practices
• ~95% repeat business rate
• Alliance partnerships with major technology vendors
• Multiple vendor/industry technology and growth awards
4. 4
Eric Roch
Principal, IT Modernization
Perficient
Manisha Datye
VP of Integration
Center of Excellence
TCF Bank
Presenters
6. 6
Microservices: The Journey to Digital
• Elastic infrastructure
• Modernize IT
• Increase velocity
• Ready the business for the digital age
• Improve business agility
• Foster environment of innovation
DevOps
Not my problem
Separate tools, varied incentives,
opaque process
Continuous Delivery
Release once every 6 months
More bugs in production
Microservices
Tightly coupled components
Slow deployment cycles waiting
on integrated tests teams
7. 7
Architecture Goals
SOA APIs
Microservices
Microservices are a more concrete and modern interpretation of service-oriented
architectures (SOA) used to build distributed software systems.
Reuse Integration
Scalability and Agility
8. 8
Microservices Versus the Monolith
A method of developing software where code is contained in small, self-contained units enabling specific
capabilities and that communicate through a lightweight mechanism (e.g.an API)
Monolithic Deploy
Service Deploy
Service Deploy
Service Deploy
Cloud
Server
Monolithic Microservice
1
2
3
9. 9
Microservices
Architecture Benefits
• Spur innovation
• Speed time to market
• Improve availability
• Shift spend from maintenance to new functions
The journey to microservices is an opportunity to modernize
IT with many benefits along the way.
10. 10
Microservices
Requirements
To realize the benefits of microservices, an organization must
begin a journey to modernize IT technology and processes.
• An Agile lifecycle: A primary goal of microservices is to
speed innovation
• Engineering skills: Build capabilities with new technologies
• Automated provision and deploy: Many services running in
a elastic environment
• DevOps: Collaboration, automation, and tooling needed
• Application platform monitoring: Product owners, admin,
and developers need data
11. 11
TCF Bank
• TCF is a Minnesota-based national bank holding
company
• $21.3 billion in total assets
• 376 branches in eight states
• Provides retail and commercial banking services
TCF’s ultimate goal is to be relevant to its
customers are anywhere, anytime, and on any
device. It’s about being “One TCF” and in rhythm
with its customers’ goals. It’s about creating value
for all stakeholders.
12. 12
TCF’s Microservices
Journey
In an effort to support TCF’s commitment
to provide the best customer experience
possible, the bank had a key initiative
focused on improving its digital banking
capabilities through the establishment,
modernization, and integration of IT
systems that support and enables its online
and mobile banking operations.
13. 13
Motivations for Change
Business Drivers
• Competing in the digital market
• Identifying a unique customer across
channels for cross-sell and upsell
• Availability of data for marketing and
analytics
• Speed to market – everything is waterfall
with no automation
Technical Drivers
• TCF has historically been a buy shop –
extensible platforms and integration is
important
• Accessibility of data (buried in mainframe)
• Spaghetti and point-to-point integrations
• Limitations in scalability and high availability
• Limited reusability
• No visibility to the available services
• No automation – error-prone deployments
• Unpredictable release schedules due to
information spread across
14. 14
• Other solutions are incomplete
• Impractical to unplug legacy mainframe - expensive, prolonged
timelines, and high risk
• Using integrations to connect with legacy data tools that allow you to
access the data directly like an API layer or an ESB message broker:
– Incomplete data accessibility for marketing, analytics, or moving
from the spaghetti integrations
– Doesn’t enable speed to market
– Dependency on mainframe development – difficult to move
towards DevOps and Agile
Why Microservices?
16. 16
Challenge
• Large investments for future benefits
• Technical and cultural challenges slow
adoption and realization of benefits
A pragmatic path that creates value along the journey
Solution
• Must lay the technological groundwork
• Early benefits from meeting prerequisites –
Agile, CI/CD, and DevOps
• Limit initial scope but add valuable services
Challenge #1:
Realizing Value
17. 17
TCF Strategy
• Establishing architectural principles and practices, understanding Agile and its myths, and
weaving architecture into Agile process
• Establishing engineering practices while considering the API management lifecycle
• Choosing the right technology for the microservices implementation
• Building our own services using open source tools versus “pre-built integration solutions”
• Building the foundation with CI/CD tooling
• Defining DevOps and the maturity curve for DevOps
• Pilot microservices – vet tools and standards
• Define roadmap and maturity model
Challenge #1:
Realizing Value
18. 18
Challenge
• New technology introduction
• Many micoservices across platforms
• Non-functional requirements
• Hybrid / multi-cloud deployments
• DevOps requirements
• Testing complexity
• Denormalized persistence
Manage Technology Adoption
Solution
• Proof of technology with proven best practices
• Product feedback
• Run what you wrote
• Instrument application/infrastructure
• Embrace open source software
• Blue/green deploy, A/B Test, canary test
• Fault tolerance and automation
Challenge #2:
Operational and
Technical Complexity
19. 19
TCF Strategy
• Define minimal viable product
• Pragmatic approach to the number of services delivered. Keep scope small to build foundation.
• Deploy Learn Refine
• Build an operational data store; collect data via various means
• Define and test non-functional requirements – build for scalability, agility, and resilience
• Establish monitoring, logging/exception handling, and define baseline
• Approach – scope/build microservices and build platform later
Challenge #2:
Operational and
Technical Complexity
20. 20
Challenge
• DevOps skillset is hard to recruit
• Current culture does not support DevOps
• Existing toolset insufficient
Build a DevOps Culture
Solution
• Vision / Communications / Roadmap
• Embrace Agile and lean IT
• Gartner’s bimodal IT
• Tool-chain and best practices
• Developers own run-time
• Instrument applications for operational insight
Challenge #3:
Lack of DevOps Skillset
21. 21
• Defining DevOps processes to build into organizational culture
• Establishing the right tools to support DevOps processes
• Automating the provisioning/installation of software and tools
• Automating the testing and deployment
• Continuous development, integration, testing, and deployment
• Slow conservative approach to adoption
TCF Strategy
Challenge #3:
Lack of DevOps Skillset
22. 22
Challenge
• Implicit contracts
• Catalog – service discovery
• Versioning
• Security
Solution
• API as a product
• Know your consumers
• Developer portal and self-service
• Machine-generated documentation like Swagger
• API standards like versioning
• Contract first development
• Test first and regression testing
Create a Developer Self-service Model
Challenge #4:
Integration Difficulty
23. 23
• Define API specifications for request and response using Swagger
• Establish developer community
• Enhance collaboration in the organization (have right tools in place)
• Establish API lifecycle management
TCF Strategy
Challenge #4:
Integration Difficulty
26. 26
Migrating the Monolith
• Create a roadmap to address challenges and
requirements
• Create data architecture and integration strategy
• Setup tooling environment
• Start simple with a limited initial scope
• Carve out monolithic business functions and refactor
• Deliver new applications in the microservices style
• Mature skills and processes through the journey
27. 27
• Practical approach, a journey towards microservices – low risk, refine as you go
– Maintain existing system-of-truth by enabling availability of information
– Provide accessibility via microservices – platform evolution to microservice platform
– Complete continuous integration, continuous deployment
– Versioning strategy to allow services to plug and play
– Establish monitoring
TCF Microservices Approach
28. 28
TCF Sample Roadmap
Level 1 Level 2 Level 3
Business Functions Distributed with no single
definition
Well-defined vocabulary and
functions
Enterprise view of business until
BPR-Level 3 defined
Services Ad-hoc with each service
defined based on project need
(localized view)
Flexible services with
established standards
Well defined service hierarchy
with ease of change
Data Redundant data that’s
consolidated on a nightly basis
Reliable data source with latest
information and enterprise view
Well-defined data lineage
and eventual consistency
established
CI/CD Manual Fully automated Container based
Infrastructure Pockets of single points of
failure
Highly available Multi-datacenter High
Availability (MDHA)
29. 29
What platforms are best
suited for me?
Does this platform have the
capabilities I require?
How will I operationalize this
new platform?
Perficient’s Innovation Lab
Perficient’s Innovation Lab is focused on helping your organization
modernize IT in a lean, agile, and collaborative environment.
DISCOVERY
Candidate platforms
Solution requirements
App portfolio rationalization
AGILE REALIZATION
Implement MVP for use cases
Stakeholder demos
Feedback/closure reports
ADOPTION PLANNING
Platform selection
Road map for adoption
Community of Practice
30. 30
• Road map and maturity targets
• Platform and frameworks
• Integration strategy and tools
• Agile / Collaboration / DevOps and
Tool-chain
• NoSQL persistence
• Architecture and API standards (wiki)
• Pilot microservices – vet tools and standards
TCF Proof of Technology
Area Technology
ESB Framework Apache Camel
API CA API Gateway
Code Repository Git/GitHub
CI Jenkins
Build Script Groovy
Container Spring Boot (Embedded tomcat) for Java /
Camel
DSL Java
Documentation for
services
Swagger and CA API Developer Portal
Testing Junit
Logging STDOUT and use SPLUNK forwarder agent
for Splunk integration
ODS Datastax/Cassandra
Agile Management Version One
Documents Confluence
Artifacts Storage Artifactory
32. 32
• Perficient.com/SocialMedia
• Facebook.com/Perficient
• Twitter.com/PRFT_Integrate
• Blogs.perficient.com/Integrate
Follow Us Online
Next up:
[Webinar] Why Business Is Better in the Cloud
Thursday, October 20th
[Event] Cloud Native Workshop with Pivotal
Tuesday, October 13th
Allows better understanding and maintenance of complex applications.
Each microservice can be deployed independently of other services, making continuous and frequent deployment feasible.
Each service can be scaled independently, making it easier to scale development and improving fault isolation.
Eliminates long-term commitment to a specific technology stack (enabling quicker trial and adoption of new technologies.)
An API enabled microservice exposes business capabilities from across the company more easily to developers – both internal and external – supporting an innovative and agile environment.
TCF’s goal is to be relevant to the customer; main focus – who is the customer, what are their needs, what services they want, when they want and where they want it.
Journey starts with leadership both in business and IT realizing the significance of technology in the digital era. And most importantly realizing technology’s strategic role as an enabler of business success. TCF has embarked on a journey to improve its digital Banking– through establishment, modernization and integration of its IT systems
To compete in the digital market you need to know your customer, you need know their needs/demands, - you need to understand their challenges.
Today TCF data is buried in mainframe; distributed across myriad of flat files. Inaccessibility of data limits the ability to understand the customer. Unlocking the data is critical; speed to market is critical; agility in this digital age is critical – this the core motivation for change
There are various approaches or paths.
Option 1 - Yanking off completely – is impractical – prolonged timelines means by the time you are done with overhauling …the technology has moved on and you are playing the catch-up game with both the business and technology. In this approach if you are trying to balance timelines/cost .. You will have to make compromises - often the tendency is to transition like to like solution to the new technology; which means you inherit the issues/problems; architecture/design of the monolith solution plus didn’t get opportunity to clean up shop and create a optimal solution both from the business and IT perspective.
Option 2 - Prolong the life of legacy monolith systems by exposing/wrapping the backend legacy systems as services and make them available for use in new, more modern applications using technologies like Integration Service Bus. Provides the ability to unlock the legacy systems without the developer’s needing to understand the legacy interface. Allows you to start the journey of the digital transformation But it still doesn’t solve the core of the problem of understanding the customer – enabling marketing or analytics; or speed to market and agility.
Option 3 - Doing it organically .. Piece at a time enables a thoughtful architecture and design approach.
Approach
Unlock the data first (Move relevant data real time from m/f VSAM files to ODS (in case of TCF we are using Cassandra)). Build data services.
Build the foundation first. Evolve to robust microservice infrastructure over time. Maturing the microservices program as the internal skillset, foundation evolves
CI/CD to rapidly deploy & promote ; make automated testing as first class and preferred over manual testing.
Evolution to microservices starts with a cultural change
Allows you to address the core organizations challenges; makes you relevant in the digital era.
Sounds great, right!! Answer to all your problems? Well ….it comes with its own challenges - We are going to talk about challenges with microservices and discuss how to tackle them
Keep the microservices (new stack) scope small ; it is very tempting to take on more and more services… but by doing so your focus will shift to delivering the services vs. building/establishing/solidifying your foundation. Spend significant amount of time vetting the tools; establishing engineering and architecture practices/patterns; CI/CD tooling; Process is as significant as tooling; At TCF we are staying light weight and using open source for most of our technology stack.
Allows us to compete in the digital market place and moves us to the direction of microservices organically. Thoughtful journey towards – Define -> Learn -> Refine
Lots of technology introduced – CI/CD, API stack, Data pipeline (using CDC), - INFRA is new, different paradigm
Critical to spend time building the foundation
Monitoring is critical; as the new stack has too many moving parts …troubleshooting is challenging and not having a good monitoring framework can make resolution of production incidents time consuming
Keep scope of delivery of services to minimal (enough to test your technology stack)
Center of Excellence to enable adoption; lend and support development
Slow conservative approach to adoption
Introduction of the broad concepts and challenges it will overcome
Partnering with PMO org; understand current SDLC gaps; introduce bi-modal approach
Partner with delivery organization leaders understand development competency gaps and define roadmap
Start with basics
Introduce CI/CD and start individual group adoption
Catalog services – current environment is unmanaged; no ability to have visibility to available services; functionality
Introducing developer community and collaboration the vein of the organization
Establish practice for API versioning; standards; contracts;
Have a good API lifecycle management practice defined
Test automation part and parcel of your development cycle
Define your integration strategy - Timeline being a constraint, build parallel integration with existing stack while maturing the new (Carve out and service wrap the monolith; API first and fork the monolith; Refactor)
Mature architecture and engineering practice
Setup tooling environment
API management
Integrate to the monolith
Collaboration / Source Code Management
CI/CD
Automated Testing
Start simple – e.g. read-only data services; Limit initial scope
No single giant canonical model; rather its distributed and matured over a period of time
Prioritize – e.g. customer facing / business value – e.g. in TCF scenario we are focusing on just the customer service.
Migrate modules / domains / functions organically as you learn – long term
At TCF we are using 2 fold approach both integrating with existing while we learn the data and build the foundation for microservices; deliver while we mature.
1) Expose the mainframe functionality as services and access thru IIB as ESB – gets us in the digital market fast; enables digital transformation journey. Provides the ability to unlock the legacy systems without the developer’s needing to understand the legacy data in detail. Enables us to start the journey of the digital transformation
2) While building microservices using Apache Camel accessing Operational Data store (Cassandra) updated real time using Informatical Powerexchange CDC (Change Data Capture). Helps us unlock data; learn the systems and data at the backend.
By doing it organically .. Piece at a time enables a thoughtful architecture and design approach. Start with small scope – few services enough to test the tech stack and the foundation.
When we discuss microservices the biggest challenge is the establishment new platform/infrastructure; many moving parts; trouble shooting can be a challenge –
Steps or approach
Start with data services. As customer is our focus we started with customer service first.
Solidify the environment
Establish error logging/monitoring/alerting – trouble shooting where the issue is very critical for quick resolution of issues
Automate automate automate – minimizing manual deployments; build ;test is the key
Evolve to robust microservice infrastructure over time. Maturing the microservices program as the internal skillset, foundation evolves
Enables agility; speed to market and frees you to focus on enabling more services faster and smoothly
Tech stack PoT was short 2 months long - We started with PoT using a small Perficient team of experts;
Did not spend with extensive amount of POCs – made educated decisions on some part of the stack; some we spent significant amount of time compare and contrast
Used industry opinions; leverage perficient SME knowledge plus their vendor relations to ensure right tech stack is selected
And of course our collective past learnings also helped us move faster in making the decisions.