27
Engineering the Bank Designing, delivering and maintaining an Operational Platform for Clydesdale Bank, Yorkshire Bank & B. Redhat Forum – London 2018

Engineering the Bankimages.engage.redhat.com/Web/RedHat/{03342036-0619-4e0b-82f3 … · Continuous Integration Continuous Delivery Purpose Builder Operations Management A set of capabilities

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Engineering the Bankimages.engage.redhat.com/Web/RedHat/{03342036-0619-4e0b-82f3 … · Continuous Integration Continuous Delivery Purpose Builder Operations Management A set of capabilities

Engineering the Bank Designing,deliveringandmaintaininganOperationalPlatformfor

ClydesdaleBank,YorkshireBank&B.

RedhatForum–London2018

Page 2: Engineering the Bankimages.engage.redhat.com/Web/RedHat/{03342036-0619-4e0b-82f3 … · Continuous Integration Continuous Delivery Purpose Builder Operations Management A set of capabilities

StevenO’DayTechnologyConsultantPlatformEngineering

PhillipOllenbuttelTechnicalSpecialistPlatformEngineering

09/10/2018 CYBG-EngineeringTheBank-RedhatForumLondon2018 2

Page 3: Engineering the Bankimages.engage.redhat.com/Web/RedHat/{03342036-0619-4e0b-82f3 … · Continuous Integration Continuous Delivery Purpose Builder Operations Management A set of capabilities

What will we cover?

• WhoareCYBG?• Wherewestarted?• Whatdidwedo?• Whatdidwelearn?• Howdidweusethoselessonslearned?•  EvolutionofthePlatformEngineeringTeam• Currentchallengesandfutureplans

09/10/2018 CYBG-EngineeringTheBank-RedhatForumLondon2018 3

Page 4: Engineering the Bankimages.engage.redhat.com/Web/RedHat/{03342036-0619-4e0b-82f3 … · Continuous Integration Continuous Delivery Purpose Builder Operations Management A set of capabilities

Who are CYBG?

•  AnindependentUKbankinggroup•  ListedontheLSEandASX•  Servingcustomerssince1838•  Over160branchesandanetworkof

businessandprivatebankingcentre•  2.7mcustomers

09/10/2018 CYBG-EngineeringTheBank-RedhatForumLondon2018 4

Page 5: Engineering the Bankimages.engage.redhat.com/Web/RedHat/{03342036-0619-4e0b-82f3 … · Continuous Integration Continuous Delivery Purpose Builder Operations Management A set of capabilities

09/10/2018 CYBG-EngineeringTheBank-RedhatForumLondon2018 5

2014 2015 2016 2017 2018

MobileonLegacyWebonLegacy

Year

Where we started

DYB Project

ArchitectureandMethodologies Microservices

Page 6: Engineering the Bankimages.engage.redhat.com/Web/RedHat/{03342036-0619-4e0b-82f3 … · Continuous Integration Continuous Delivery Purpose Builder Operations Management A set of capabilities

09/10/2018 CYBG-EngineeringTheBank-RedhatForumLondon2018 6

2014 2015 2016 2017 2018

MobileoniB

MobileonLegacyWebonLegacy

Year

What did we do?

ArchitectureandMethodologies Microservices

Project

Page 7: Engineering the Bankimages.engage.redhat.com/Web/RedHat/{03342036-0619-4e0b-82f3 … · Continuous Integration Continuous Delivery Purpose Builder Operations Management A set of capabilities

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

Page 8: Engineering the Bankimages.engage.redhat.com/Web/RedHat/{03342036-0619-4e0b-82f3 … · Continuous Integration Continuous Delivery Purpose Builder Operations Management A set of capabilities

09/10/2018 CYBG-EngineeringTheBank-RedhatForumLondon2018 8

2014 2015 2016 2017 2018

MobileoniB

WeboniB

MobileonLegacyWebonLegacy

Year

What did we do?

ArchitectureandMethodologies MicroserviceswithContinuousDeliveryandOperationalPlatform

Project

Page 9: Engineering the Bankimages.engage.redhat.com/Web/RedHat/{03342036-0619-4e0b-82f3 … · Continuous Integration Continuous Delivery Purpose Builder Operations Management A set of capabilities

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.

Page 10: Engineering the Bankimages.engage.redhat.com/Web/RedHat/{03342036-0619-4e0b-82f3 … · Continuous Integration Continuous Delivery Purpose Builder Operations Management A set of capabilities

Composer

Other*nixOS’s

Microservices API Gateway

Microservices Microservices

Containerized Applications

TraditionalApps

ApplicationFramework

TraditionalApps

TraditionalApps

TraditionalAppsTraditional

AppsTraditional

Apps

ElementsContainerizedApplications

Page 11: Engineering the Bankimages.engage.redhat.com/Web/RedHat/{03342036-0619-4e0b-82f3 … · Continuous Integration Continuous Delivery Purpose Builder Operations Management A set of capabilities

Other*nixOS’s

TraditionalAppsTraditional

AppsTraditional

AppsTraditional

AppsTraditional

AppsTraditional

Apps

Microservices API Gateway

Microservices Microservices

Containerized Applications

ApplicationFramework

ContainerizedApplications

Page 12: Engineering the Bankimages.engage.redhat.com/Web/RedHat/{03342036-0619-4e0b-82f3 … · Continuous Integration Continuous Delivery Purpose Builder Operations Management A set of capabilities

at the Core

09/10/2018 CYBG-EngineeringTheBank-RedhatForumLondon2018 12

Primary*nixoperatingsystemontheplatformisRedhatEnterpriseLinuxOpenShiftisourKubernetesimplementationofchoice.•  Implementedprimarilyforitsoperationalfeatures

•  Scaling•  Geographicalloadbalancing•  Healthmonitoring•  Templates

SatelliteandCloudformsusedforprovisioningandmanagementofourestate.

Page 13: Engineering the Bankimages.engage.redhat.com/Web/RedHat/{03342036-0619-4e0b-82f3 … · Continuous Integration Continuous Delivery Purpose Builder Operations Management A set of capabilities

Composer

Other*nixOS’s

Microservices API Gateway

Microservices Microservices

Containerized Applications

TraditionalApps

ApplicationFramework

TraditionalApps

TraditionalApps

TraditionalAppsTraditional

AppsTraditional

Apps

ElementsContainerizedApplications

Page 14: Engineering the Bankimages.engage.redhat.com/Web/RedHat/{03342036-0619-4e0b-82f3 … · Continuous Integration Continuous Delivery Purpose Builder Operations Management A set of capabilities

09/10/2018 CYBG-EngineeringTheBank-RedhatForumLondon2018 14

CommonQuestionsWhataboutalltheother“ConfigurationManagers”,Chef,Ansible,Puppet,SaltStacketc?WhataboutalltheCMDBproviders?

WhatisChieftain?Systemofrecordforstoringcomponentconfigurationwhichcanbeprovidedinastandardformat.UseofJSONtoreturninformationinastructuredformat.Autopopulationofdependencyinformationwithouthavingtoknowallthedetailsaboutdependencies.

Page 15: Engineering the Bankimages.engage.redhat.com/Web/RedHat/{03342036-0619-4e0b-82f3 … · Continuous Integration Continuous Delivery Purpose Builder Operations Management A set of capabilities

Composer

09/10/2018 CYBG-EngineeringTheBank-RedhatForumLondon2018 15

Whatiscomposer?Environmentbuilder,deployorchestrator.ComponentDependencyResolver

Whatareelements?LibraryofscriptsusedbyComposertobuildanddeploytoanyenvironmentorplatform.

Page 16: Engineering the Bankimages.engage.redhat.com/Web/RedHat/{03342036-0619-4e0b-82f3 … · Continuous Integration Continuous Delivery Purpose Builder Operations Management A set of capabilities

Composer

Other*nixOS’s

Microservices API Gateway

Microservices Microservices

Containerized Applications

TraditionalApps

ApplicationFramework

TraditionalApps

TraditionalApps

TraditionalAppsTraditional

AppsTraditional

Apps

ElementsContainerizedApplications

Page 17: Engineering the Bankimages.engage.redhat.com/Web/RedHat/{03342036-0619-4e0b-82f3 … · Continuous Integration Continuous Delivery Purpose Builder Operations Management A set of capabilities

CIBuilds–BuildPR’sandReleaseCandidatesEverybuildgetsitsownfullfunctioningenvironmenttorunDeveloperwrittenIntegrationTests

Storageofartifactsaswellasopensourcevulnerabilityscanning

CodeQualityChecks

CD-Routetolivepipelinesonapercomponentbasis

Continuous Integration and Delivery with Composer

09/10/2018 CYBG-EngineeringTheBank-RedhatForumLondon2018 17

Page 18: Engineering the Bankimages.engage.redhat.com/Web/RedHat/{03342036-0619-4e0b-82f3 … · Continuous Integration Continuous Delivery Purpose Builder Operations Management A set of capabilities

09/10/2018 CYBG-EngineeringTheBank-RedhatForumLondon2018 18

Continuous Delivery Pipelines

Page 19: Engineering the Bankimages.engage.redhat.com/Web/RedHat/{03342036-0619-4e0b-82f3 … · Continuous Integration Continuous Delivery Purpose Builder Operations Management A set of capabilities

Other*nixOS’s

Microservices Microservices Microservices

TraditionalAppsTraditional

AppsTraditional

AppsTraditional

AppsTraditional

AppsTraditional

Apps

Elements

API Gateway

Containerized Applications

ApplicationFramework

ContainerizedApplications

Page 20: Engineering the Bankimages.engage.redhat.com/Web/RedHat/{03342036-0619-4e0b-82f3 … · Continuous Integration Continuous Delivery Purpose Builder Operations Management A set of capabilities

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

Page 21: Engineering the Bankimages.engage.redhat.com/Web/RedHat/{03342036-0619-4e0b-82f3 … · Continuous Integration Continuous Delivery Purpose Builder Operations Management A set of capabilities

What does all this mean for delivery?

09/10/2018 CYBG-EngineeringTheBank-RedhatForumLondon2018 21

Page 22: Engineering the Bankimages.engage.redhat.com/Web/RedHat/{03342036-0619-4e0b-82f3 … · Continuous Integration Continuous Delivery Purpose Builder Operations Management A set of capabilities

09/10/2018 CYBG-EngineeringTheBank-RedhatForumLondon2018 22

52 Builds 89 UAT Releases

36 Production Releases

Delivery of a Prototype in 2017

3 Months

Page 23: Engineering the Bankimages.engage.redhat.com/Web/RedHat/{03342036-0619-4e0b-82f3 … · Continuous Integration Continuous Delivery Purpose Builder Operations Management A set of capabilities

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

Page 24: Engineering the Bankimages.engage.redhat.com/Web/RedHat/{03342036-0619-4e0b-82f3 … · Continuous Integration Continuous Delivery Purpose Builder Operations Management A set of capabilities

Evolution of the Team

09/10/2018 CYBG-EngineeringTheBank-RedhatForumLondon2018 24

• Howcouldwemakeadifferencetobuildanddeploytime?

• 20peoplefromacrossDevandOps

Feburary20165DaysHackathon

• Howdoweimplementcontinuousdelivery?

• 15PeoplefromacrossDevandOps

June20162WeekHackathon • ProjectTeamtotake

concepttoMVP•  ImplementOpenShiftandCDPlatforms

November2016BusinessCaseforCD

• Widefullstackteam• LookaftertheOperationalPlatformasaProduct

May2018BAUTeam

Page 25: Engineering the Bankimages.engage.redhat.com/Web/RedHat/{03342036-0619-4e0b-82f3 … · Continuous Integration Continuous Delivery Purpose Builder Operations Management A set of capabilities

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

Page 26: Engineering the Bankimages.engage.redhat.com/Web/RedHat/{03342036-0619-4e0b-82f3 … · Continuous Integration Continuous Delivery Purpose Builder Operations Management A set of capabilities

What Next?

09/10/2018 CYBG-EngineeringTheBank-RedhatForumLondon2018 26

Page 27: Engineering the Bankimages.engage.redhat.com/Web/RedHat/{03342036-0619-4e0b-82f3 … · Continuous Integration Continuous Delivery Purpose Builder Operations Management A set of capabilities

09/10/2018 CYBG-EngineeringTheBank-RedhatForumLondon2018 27

Thank you for your time. Questions?