Engineering the Bankimages.engage.redhat.com/Web/RedHat/{03342036-0619-4e0b-82f3 … · Continuous...
Transcript of Engineering the Bankimages.engage.redhat.com/Web/RedHat/{03342036-0619-4e0b-82f3 … · Continuous...
Engineering the Bank Designing,deliveringandmaintaininganOperationalPlatformfor
ClydesdaleBank,YorkshireBank&B.
RedhatForum–London2018
StevenO’DayTechnologyConsultantPlatformEngineering
PhillipOllenbuttelTechnicalSpecialistPlatformEngineering
09/10/2018 CYBG-EngineeringTheBank-RedhatForumLondon2018 2
What will we cover?
• WhoareCYBG?• Wherewestarted?• Whatdidwedo?• Whatdidwelearn?• Howdidweusethoselessonslearned?• EvolutionofthePlatformEngineeringTeam• Currentchallengesandfutureplans
09/10/2018 CYBG-EngineeringTheBank-RedhatForumLondon2018 3
Who are CYBG?
• AnindependentUKbankinggroup• ListedontheLSEandASX• Servingcustomerssince1838• Over160branchesandanetworkof
businessandprivatebankingcentre• 2.7mcustomers
09/10/2018 CYBG-EngineeringTheBank-RedhatForumLondon2018 4
09/10/2018 CYBG-EngineeringTheBank-RedhatForumLondon2018 5
2014 2015 2016 2017 2018
MobileonLegacyWebonLegacy
Year
Where we started
DYB Project
ArchitectureandMethodologies Microservices
09/10/2018 CYBG-EngineeringTheBank-RedhatForumLondon2018 6
2014 2015 2016 2017 2018
MobileoniB
MobileonLegacyWebonLegacy
Year
What did we do?
ArchitectureandMethodologies Microservices
Project
What did we learn?
09/10/2018 CYBG-EngineeringTheBank-RedhatForumLondon2018 7
• ModernArchitecture• Smalldeployablecomponents
• Scalabilityatacomponentlevel
• Componentstartuptimes
• Separationoffunctions
• Teamscanworkondifferentpartsoftheplatformwithoutgettingineachothersway
• Dependencymanagementbetweencomponentswashard
• Configurationmanagementbetweenthedifferentcomponentsgotmessy
• Versioningwastheperfectmixtureofartandsciencethatwasnotalwayswellunderstood
• RequiredDeploymentStrategies(i.estillmonolithic)
• Lotsofefforttomanagedeployments
• Timetakentoget2ndand3rdlinesupportreadyforeachrelease
• Lotsofefforttomitigatethebad
TheGo
od
TheBa
d
TheUgly
09/10/2018 CYBG-EngineeringTheBank-RedhatForumLondon2018 8
2014 2015 2016 2017 2018
MobileoniB
WeboniB
MobileonLegacyWebonLegacy
Year
What did we do?
ArchitectureandMethodologies MicroserviceswithContinuousDeliveryandOperationalPlatform
Project
What is the Operational Platform?
09/10/2018 CYBG-EngineeringTheBank-RedhatForumLondon2018 9
APlatformisacomponentwhichdoesnotprovideanybusinessfunctionalitybutallowsapplicationstoberunonit
Standard Interface for Self Service
Development Structures
PaaS IaaSVirtualised
Physical
Testing
Platform
On Site Private Public (If needed)
Ca
pa
bili
ties Continuous Integration
Continuous Delivery
Purpose Builder Operations Management
Secure by Design Asetofcapabilitiesdesignedtoprovideendtoendmanagementofsoftwareinareliable,efficientandsecuremanner.
Composer
Other*nixOS’s
Microservices API Gateway
Microservices Microservices
Containerized Applications
TraditionalApps
ApplicationFramework
TraditionalApps
TraditionalApps
TraditionalAppsTraditional
AppsTraditional
Apps
ElementsContainerizedApplications
Other*nixOS’s
TraditionalAppsTraditional
AppsTraditional
AppsTraditional
AppsTraditional
AppsTraditional
Apps
Microservices API Gateway
Microservices Microservices
Containerized Applications
ApplicationFramework
ContainerizedApplications
at the Core
09/10/2018 CYBG-EngineeringTheBank-RedhatForumLondon2018 12
Primary*nixoperatingsystemontheplatformisRedhatEnterpriseLinuxOpenShiftisourKubernetesimplementationofchoice.• Implementedprimarilyforitsoperationalfeatures
• Scaling• Geographicalloadbalancing• Healthmonitoring• Templates
SatelliteandCloudformsusedforprovisioningandmanagementofourestate.
Composer
Other*nixOS’s
Microservices API Gateway
Microservices Microservices
Containerized Applications
TraditionalApps
ApplicationFramework
TraditionalApps
TraditionalApps
TraditionalAppsTraditional
AppsTraditional
Apps
ElementsContainerizedApplications
09/10/2018 CYBG-EngineeringTheBank-RedhatForumLondon2018 14
CommonQuestionsWhataboutalltheother“ConfigurationManagers”,Chef,Ansible,Puppet,SaltStacketc?WhataboutalltheCMDBproviders?
WhatisChieftain?Systemofrecordforstoringcomponentconfigurationwhichcanbeprovidedinastandardformat.UseofJSONtoreturninformationinastructuredformat.Autopopulationofdependencyinformationwithouthavingtoknowallthedetailsaboutdependencies.
Composer
09/10/2018 CYBG-EngineeringTheBank-RedhatForumLondon2018 15
Whatiscomposer?Environmentbuilder,deployorchestrator.ComponentDependencyResolver
Whatareelements?LibraryofscriptsusedbyComposertobuildanddeploytoanyenvironmentorplatform.
Composer
Other*nixOS’s
Microservices API Gateway
Microservices Microservices
Containerized Applications
TraditionalApps
ApplicationFramework
TraditionalApps
TraditionalApps
TraditionalAppsTraditional
AppsTraditional
Apps
ElementsContainerizedApplications
CIBuilds–BuildPR’sandReleaseCandidatesEverybuildgetsitsownfullfunctioningenvironmenttorunDeveloperwrittenIntegrationTests
Storageofartifactsaswellasopensourcevulnerabilityscanning
CodeQualityChecks
CD-Routetolivepipelinesonapercomponentbasis
Continuous Integration and Delivery with Composer
09/10/2018 CYBG-EngineeringTheBank-RedhatForumLondon2018 17
09/10/2018 CYBG-EngineeringTheBank-RedhatForumLondon2018 18
Continuous Delivery Pipelines
Other*nixOS’s
Microservices Microservices Microservices
TraditionalAppsTraditional
AppsTraditional
AppsTraditional
AppsTraditional
AppsTraditional
Apps
Elements
API Gateway
Containerized Applications
ApplicationFramework
ContainerizedApplications
API Gateway and Application Frameworks
APIGateway
• BuiltonOpenSourcetechnologyfromSpring
• TookinspirationfromFabric8forintegratingwithOpenShifttogetservicelocation
• DynamicallyregistersMicroservicesastheystarttakingeventfromKubernetestheninterrogatingmicroservicefordetailsaboutitself
ApplicationFrameworks
• BasedonOpenSourcetechnology• Java• PythonandJS
• IntegratestightlywithKubernetestoprovideoperationalimperatives• Restarts,liveliness,health,metrics
• IntegrateswithAPIGateway• Monitoringbundledinaspartofbuild
• Componentdependencymanagementoutofthebox
• Standardrepostructure
09/10/2018 CYBG-EngineeringTheBank-RedhatForumLondon2018 20
What does all this mean for delivery?
09/10/2018 CYBG-EngineeringTheBank-RedhatForumLondon2018 21
09/10/2018 CYBG-EngineeringTheBank-RedhatForumLondon2018 22
52 Builds 89 UAT Releases
36 Production Releases
Delivery of a Prototype in 2017
3 Months
09/10/2018 CYBG-EngineeringTheBank-RedhatForumLondon2018 23
94 Builds - (99 Integration Deploys) 74 UAT Releases
0 Production Releases
Delivery of a Prototype in 2018
1 Month Latency during deployments is now measured in minutes J
Evolution of the Team
09/10/2018 CYBG-EngineeringTheBank-RedhatForumLondon2018 24
• Howcouldwemakeadifferencetobuildanddeploytime?
• 20peoplefromacrossDevandOps
Feburary20165DaysHackathon
• Howdoweimplementcontinuousdelivery?
• 15PeoplefromacrossDevandOps
June20162WeekHackathon • ProjectTeamtotake
concepttoMVP• ImplementOpenShiftandCDPlatforms
November2016BusinessCaseforCD
• Widefullstackteam• LookaftertheOperationalPlatformasaProduct
May2018BAUTeam
How Redhat helped us
09/10/2018 CYBG-EngineeringTheBank-RedhatForumLondon2018 25
• ProfessionalServices• Architecture–Helpedusgetthedesignright,thenvalidatedonceitwasimplemented• Engineering–Onsiteengineeratvariousdifferenttimes,helpedwithautomationbutalsohelpedout
acrosstheprojectasneeded–reallyboughtintoourselfmanagedteam• Ongoingsupportthroughtheusualsupportchannels
• Continuallyprovidinguswithnewideasaboutdifferenttechnologies• Throughblogsandpublications• AttendingRedhatconferences• Ongoingandregularrelationshipdiscussions
• Encouragedustotakepartinopensource• Showingtheartofthepossible
• InspiringuswiththeiruseofOpenOrganization
What Next?
09/10/2018 CYBG-EngineeringTheBank-RedhatForumLondon2018 26
09/10/2018 CYBG-EngineeringTheBank-RedhatForumLondon2018 27
Thank you for your time. Questions?