Overcoming Challenges with Microservices ArchitectureExpert Strategies + One Client’s Story
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
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
Eric RochPrincipal, IT Modernization
Perficient
Manisha DatyeVP of Integration
Center of ExcellenceTCF Bank
Presenters
MICROSERVICES
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
DevOpsNot my problem
Separate tools, varied incentives, opaque process
Continuous DeliveryRelease once every 6 months
More bugs in production
MicroservicesTightly coupled componentsSlow deployment cycles waiting
on integrated tests teams
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
Microservices Versus the MonolithA 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
123
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
Microservices RequirementsTo 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
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
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
Motivations for ChangeBusiness 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
Other solutions are incompleteImpractical to unplug legacy mainframe - expensive, prolonged timelines, and high riskUsing 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 integrationsDoesn’t enable speed to marketDependency on mainframe development – difficult to move towards DevOps and Agile
Why Microservices?
15
CHALLENGES
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 journeySolution• 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
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
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 andTechnical Complexity
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 andTechnical Complexity
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
• 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
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
• 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
24
ROAD MAP
25
Road Map to Microservices Modernization
TRACK 1 TRACK 2 TRACK 3 TRACK 4
DevOps Agile Monitoring Technology Adoption
• Vision • Lean IT • Bimodal IT • Tool Chain • Automation • CI/CD• Run-time Insight
• Collaborate• Train• Semantics• Deliverables• Backlog• Sprint
• Rationalize Tools• Process • Instrument • Feedback Loop
• Selection• PoT• Innovation Lab• Partner• Migration
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
Practical approach, a journey towards microservices – low risk, refine as you goMaintain existing system-of-truth by enabling availability of informationProvide accessibility via microservices – platform evolution to microservice platformComplete continuous integration, continuous deployment Versioning strategy to allow services to plug and playEstablish monitoring
TCF Microservices Approach
28
TCF Sample RoadmapLevel 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 lineageand 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
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 LabPerficient’s Innovation Lab is focused on helping your organization
modernize IT in a lean, agile, and collaborative environment.
DISCOVERYCandidate platforms
Solution requirementsApp portfolio rationalization
AGILE REALIZATIONImplement MVP for use cases
Stakeholder demosFeedback/closure reports
ADOPTION PLANNINGPlatform selection
Road map for adoptionCommunity of Practice
30
Road map and maturity targetsPlatform and frameworksIntegration strategy and toolsAgile / Collaboration / DevOps andTool-chain NoSQL persistence Architecture and API standards (wiki) Pilot microservices – vet tools and standards
TCF Proof of TechnologyArea 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
Questions?Type your question into the chat box
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 CloudThursday, October 20th
[Event] Cloud Native Workshop with PivotalTuesday, October 13th
THANK YOU