You don’t need DTAP + Backbase implementation - Amsterdam 17-12-2015
-
Upload
pavel-chunyayev -
Category
Software
-
view
1.442 -
download
0
Transcript of You don’t need DTAP + Backbase implementation - Amsterdam 17-12-2015
![Page 1: You don’t need DTAP + Backbase implementation - Amsterdam 17-12-2015](https://reader033.fdocuments.us/reader033/viewer/2022050614/589ca44d1a28abf4148b664b/html5/thumbnails/1.jpg)
You don’t need DTAPDevOps and Continuous Delivery at Backbase
DevOps Amsterdam meetup, 17-12-2015
Backbase, Amsterdam
Pavel Chunyayev
![Page 2: You don’t need DTAP + Backbase implementation - Amsterdam 17-12-2015](https://reader033.fdocuments.us/reader033/viewer/2022050614/589ca44d1a28abf4148b664b/html5/thumbnails/2.jpg)
![Page 3: You don’t need DTAP + Backbase implementation - Amsterdam 17-12-2015](https://reader033.fdocuments.us/reader033/viewer/2022050614/589ca44d1a28abf4148b664b/html5/thumbnails/3.jpg)
@PavelChunyayev
Amsterdam
Levi9 HQAmsterdam – 2005
25 people
Novi Sad
SerbiaNovi Sad – 2005
320+ people
Zrenjanin
SerbiaZrenjanin– 2014
30+ people
Iasi
RomaniaIasi – 200780+ people
Kiev
UkraineKiev – 2008130+ people
![Page 4: You don’t need DTAP + Backbase implementation - Amsterdam 17-12-2015](https://reader033.fdocuments.us/reader033/viewer/2022050614/589ca44d1a28abf4148b664b/html5/thumbnails/4.jpg)
@PavelChunyayev
Electronic
Retail
Digital
Marketing
Traffic and
Transport
Software
Services
![Page 5: You don’t need DTAP + Backbase implementation - Amsterdam 17-12-2015](https://reader033.fdocuments.us/reader033/viewer/2022050614/589ca44d1a28abf4148b664b/html5/thumbnails/5.jpg)
@PavelChunyayev
Customer satisfaction 2015
• 4th year great results in Outsourcing Performance study
• 2015: 100% customer recommendation scoreExcellent trust score
![Page 6: You don’t need DTAP + Backbase implementation - Amsterdam 17-12-2015](https://reader033.fdocuments.us/reader033/viewer/2022050614/589ca44d1a28abf4148b664b/html5/thumbnails/6.jpg)
![Page 7: You don’t need DTAP + Backbase implementation - Amsterdam 17-12-2015](https://reader033.fdocuments.us/reader033/viewer/2022050614/589ca44d1a28abf4148b664b/html5/thumbnails/7.jpg)
@PavelChunyayev
Forester Wave: Omni channel Banking Solutions Q3‘15
![Page 8: You don’t need DTAP + Backbase implementation - Amsterdam 17-12-2015](https://reader033.fdocuments.us/reader033/viewer/2022050614/589ca44d1a28abf4148b664b/html5/thumbnails/8.jpg)
@PavelChunyayev
Gartner Magic Quadrant for Horizontal Portals 2014
![Page 10: You don’t need DTAP + Backbase implementation - Amsterdam 17-12-2015](https://reader033.fdocuments.us/reader033/viewer/2022050614/589ca44d1a28abf4148b664b/html5/thumbnails/10.jpg)
@PavelChunyayev
Top 10 companies in NL with best work-life balance
![Page 11: You don’t need DTAP + Backbase implementation - Amsterdam 17-12-2015](https://reader033.fdocuments.us/reader033/viewer/2022050614/589ca44d1a28abf4148b664b/html5/thumbnails/11.jpg)
@PavelChunyayev
About me
• 11 years of IT experience
• Lived and worked in Ukraine and Estonia
• Moved a year ago to the Netherlands
• Learning Dutch
• Love cycling
• De Holandse 100• https://www.dehollandse100.nl/actie/pavel-chunyayev
![Page 12: You don’t need DTAP + Backbase implementation - Amsterdam 17-12-2015](https://reader033.fdocuments.us/reader033/viewer/2022050614/589ca44d1a28abf4148b664b/html5/thumbnails/12.jpg)
Continuous Delivery
![Page 13: You don’t need DTAP + Backbase implementation - Amsterdam 17-12-2015](https://reader033.fdocuments.us/reader033/viewer/2022050614/589ca44d1a28abf4148b664b/html5/thumbnails/13.jpg)
Safely, rapidly and predictably deliver new features to production
![Page 14: You don’t need DTAP + Backbase implementation - Amsterdam 17-12-2015](https://reader033.fdocuments.us/reader033/viewer/2022050614/589ca44d1a28abf4148b664b/html5/thumbnails/14.jpg)
Quality > Speed
![Page 15: You don’t need DTAP + Backbase implementation - Amsterdam 17-12-2015](https://reader033.fdocuments.us/reader033/viewer/2022050614/589ca44d1a28abf4148b664b/html5/thumbnails/15.jpg)
DTAP
![Page 16: You don’t need DTAP + Backbase implementation - Amsterdam 17-12-2015](https://reader033.fdocuments.us/reader033/viewer/2022050614/589ca44d1a28abf4148b664b/html5/thumbnails/16.jpg)
@PavelChunyayev
Journey across environments
Development Testing Acceptance Production
![Page 17: You don’t need DTAP + Backbase implementation - Amsterdam 17-12-2015](https://reader033.fdocuments.us/reader033/viewer/2022050614/589ca44d1a28abf4148b664b/html5/thumbnails/17.jpg)
@PavelChunyayev
DTAP is history
• It was hard to create infrastructure -> we had to reuse it
• Manually provisioned environments• Took a lot of time
• Ticket to system administrator
• Nightmare for both parties• End up with golden images
• Fixed set of environments• Name them
• Configure once
• Maybe even automate deployment
![Page 18: You don’t need DTAP + Backbase implementation - Amsterdam 17-12-2015](https://reader033.fdocuments.us/reader033/viewer/2022050614/589ca44d1a28abf4148b664b/html5/thumbnails/18.jpg)
@PavelChunyayev
DTAP is evil
• Configuration drift• Environments have nothing to do with production
• With time they move more and more apart
• Dirty environments• Undocumented, forgotten hacks
• No one can recreate environment as no one knows how to configure them
• Testing is complicated• Different bugs on different environments
![Page 19: You don’t need DTAP + Backbase implementation - Amsterdam 17-12-2015](https://reader033.fdocuments.us/reader033/viewer/2022050614/589ca44d1a28abf4148b664b/html5/thumbnails/19.jpg)
Downwards spiral
![Page 20: You don’t need DTAP + Backbase implementation - Amsterdam 17-12-2015](https://reader033.fdocuments.us/reader033/viewer/2022050614/589ca44d1a28abf4148b664b/html5/thumbnails/20.jpg)
You don’t need DTAP
![Page 21: You don’t need DTAP + Backbase implementation - Amsterdam 17-12-2015](https://reader033.fdocuments.us/reader033/viewer/2022050614/589ca44d1a28abf4148b664b/html5/thumbnails/21.jpg)
Immutable infrastructure
![Page 22: You don’t need DTAP + Backbase implementation - Amsterdam 17-12-2015](https://reader033.fdocuments.us/reader033/viewer/2022050614/589ca44d1a28abf4148b664b/html5/thumbnails/22.jpg)
Immutable infrastructureImmutable delivery
![Page 23: You don’t need DTAP + Backbase implementation - Amsterdam 17-12-2015](https://reader033.fdocuments.us/reader033/viewer/2022050614/589ca44d1a28abf4148b664b/html5/thumbnails/23.jpg)
Easy on-demand environments
![Page 24: You don’t need DTAP + Backbase implementation - Amsterdam 17-12-2015](https://reader033.fdocuments.us/reader033/viewer/2022050614/589ca44d1a28abf4148b664b/html5/thumbnails/24.jpg)
@PavelChunyayev
Change in paradigm
• Change in paradigm of the way software is built, shipped and managed
• No more static infrastructure
• Provision and create infrastructure just in time when it’s needed
• And then throw it away
![Page 25: You don’t need DTAP + Backbase implementation - Amsterdam 17-12-2015](https://reader033.fdocuments.us/reader033/viewer/2022050614/589ca44d1a28abf4148b664b/html5/thumbnails/25.jpg)
Create • Use • Dispose
![Page 26: You don’t need DTAP + Backbase implementation - Amsterdam 17-12-2015](https://reader033.fdocuments.us/reader033/viewer/2022050614/589ca44d1a28abf4148b664b/html5/thumbnails/26.jpg)
@PavelChunyayev
Never change again
• Never touch or change the running system. • No configuration changes
• No complicated update processed
• Any change = new deploy
• Create infrastructure right before deployment
• You always start from the scratch• Identical process
• No more dirty environments
• Does it matter how environment is called if the deployment process is identical?
![Page 27: You don’t need DTAP + Backbase implementation - Amsterdam 17-12-2015](https://reader033.fdocuments.us/reader033/viewer/2022050614/589ca44d1a28abf4148b664b/html5/thumbnails/27.jpg)
@PavelChunyayev
Variability
• Variability is enemy
• Manufacturing: Six sigma
• How to deliver environments at scale?
![Page 28: You don’t need DTAP + Backbase implementation - Amsterdam 17-12-2015](https://reader033.fdocuments.us/reader033/viewer/2022050614/589ca44d1a28abf4148b664b/html5/thumbnails/28.jpg)
@PavelChunyayev
Prerequisites
• Cloud • Manage infrastructure lifecycle as code / through API
• Docker containers
• Automate the setup and deployment of your application
![Page 29: You don’t need DTAP + Backbase implementation - Amsterdam 17-12-2015](https://reader033.fdocuments.us/reader033/viewer/2022050614/589ca44d1a28abf4148b664b/html5/thumbnails/29.jpg)
@PavelChunyayev
Continuous Delivery
• Immutable infrastructure enables CD
Build • Test • Deploy
• When you want to change - go through the whole pipeline
![Page 30: You don’t need DTAP + Backbase implementation - Amsterdam 17-12-2015](https://reader033.fdocuments.us/reader033/viewer/2022050614/589ca44d1a28abf4148b664b/html5/thumbnails/30.jpg)
@PavelChunyayev
Infrastructure is integral part of application
• Application is delivered as a set of immutable virtual machines or containers.
• Any change in the application is actually a change of infrastructure
• Exactly the same process to deploy any version of the application
• MTTR is predictable • It’s time required for whole pipeline execution
• Gives incentive to optimize the process in order to speed it up
![Page 31: You don’t need DTAP + Backbase implementation - Amsterdam 17-12-2015](https://reader033.fdocuments.us/reader033/viewer/2022050614/589ca44d1a28abf4148b664b/html5/thumbnails/31.jpg)
@PavelChunyayev
Immutable infrastructure applies to
• Stateless applications• State is stored outside (DB)
• Even more relevant for microservices
• Pushing of responsibility to someone else
• Databases
• Separate DBMS from data
• There are solutions for this (e.g. Flocker)
![Page 32: You don’t need DTAP + Backbase implementation - Amsterdam 17-12-2015](https://reader033.fdocuments.us/reader033/viewer/2022050614/589ca44d1a28abf4148b664b/html5/thumbnails/32.jpg)
@PavelChunyayev
Deliverables
• Server images (AMIs) or containers should be built using automated CI/CD process• Base image + application = deliverable
• Or the configuration process and deployment scripts are applied over and over again
![Page 33: You don’t need DTAP + Backbase implementation - Amsterdam 17-12-2015](https://reader033.fdocuments.us/reader033/viewer/2022050614/589ca44d1a28abf4148b664b/html5/thumbnails/33.jpg)
@PavelChunyayev
Deliverables
• Create your own images, don't reuse someone else's
• Images must be versioned and all history must be saved
• Implement automated testing of infrastructure
• Create building blocks
• Test deployments without any fear• Deployments are automated
• Identical deployment procedures to all environments
• Green/blue, canary and rolling deployments
![Page 34: You don’t need DTAP + Backbase implementation - Amsterdam 17-12-2015](https://reader033.fdocuments.us/reader033/viewer/2022050614/589ca44d1a28abf4148b664b/html5/thumbnails/34.jpg)
@PavelChunyayev
Immutable infrastructure
• Get infrastructure exactly when it’s needed
• Dispose immediately after use
• Never regret
![Page 35: You don’t need DTAP + Backbase implementation - Amsterdam 17-12-2015](https://reader033.fdocuments.us/reader033/viewer/2022050614/589ca44d1a28abf4148b664b/html5/thumbnails/35.jpg)
Continuous Delivery at BackbaseAnd immutable infrastructure
![Page 36: You don’t need DTAP + Backbase implementation - Amsterdam 17-12-2015](https://reader033.fdocuments.us/reader033/viewer/2022050614/589ca44d1a28abf4148b664b/html5/thumbnails/36.jpg)
@PavelChunyayev
Backbase
• Research and Development
• Professional Services
Customer Experience Platform
Launchpad Mobile SDK
Digital Banking Services
Digital Banking Platform
![Page 38: You don’t need DTAP + Backbase implementation - Amsterdam 17-12-2015](https://reader033.fdocuments.us/reader033/viewer/2022050614/589ca44d1a28abf4148b664b/html5/thumbnails/38.jpg)
@PavelChunyayev
Publishing
• Multiserver configuration is needed to test publishing
Editorial Staging Live
![Page 39: You don’t need DTAP + Backbase implementation - Amsterdam 17-12-2015](https://reader033.fdocuments.us/reader033/viewer/2022050614/589ca44d1a28abf4148b664b/html5/thumbnails/39.jpg)
@PavelChunyayev
Dual deployment model
• Cloud Native first
• But bank are not ready
• Dual deployment model• Containers/cloud – modern
• Enterprise style
![Page 40: You don’t need DTAP + Backbase implementation - Amsterdam 17-12-2015](https://reader033.fdocuments.us/reader033/viewer/2022050614/589ca44d1a28abf4148b664b/html5/thumbnails/40.jpg)
@PavelChunyayev
Teams structure
• Squads• Team is divided into squads
• Each squad is responsible for one or more components
• Components• Components = microservices
• >10 BE components
• Dozens of FE components
• Continuous Delivery squad is a Platform team
![Page 41: You don’t need DTAP + Backbase implementation - Amsterdam 17-12-2015](https://reader033.fdocuments.us/reader033/viewer/2022050614/589ca44d1a28abf4148b664b/html5/thumbnails/41.jpg)
@PavelChunyayev
Platform team
• Now consists of 4 people, 5th starting in January
• You can be part of this team
• Several generations of platform• We are in the middle of introduction 4th generation
![Page 42: You don’t need DTAP + Backbase implementation - Amsterdam 17-12-2015](https://reader033.fdocuments.us/reader033/viewer/2022050614/589ca44d1a28abf4148b664b/html5/thumbnails/42.jpg)
@PavelChunyayev
Generations
1. Infrastructure as a service MVP
2. All configurations for CXP 5.6 and testing at scale
3. Docker and microservices support
4. Unified way of delivering infrastructure (being rolled out)
![Page 43: You don’t need DTAP + Backbase implementation - Amsterdam 17-12-2015](https://reader033.fdocuments.us/reader033/viewer/2022050614/589ca44d1a28abf4148b664b/html5/thumbnails/43.jpg)
@PavelChunyayev
Development environments
• Docker containers = building blocks• Docker Machine
• Docker Compose
• No need to use virtual machines
• No need to use jetty and h2
• No need to start whole environment
![Page 44: You don’t need DTAP + Backbase implementation - Amsterdam 17-12-2015](https://reader033.fdocuments.us/reader033/viewer/2022050614/589ca44d1a28abf4148b664b/html5/thumbnails/44.jpg)
@PavelChunyayev
Building blocks
• Ansible roles
• Packer
• Infrastructure testing• Before – Starting full environments
• Now – Testing roles in isolation• Test-kitchen
• Serverspec
![Page 45: You don’t need DTAP + Backbase implementation - Amsterdam 17-12-2015](https://reader033.fdocuments.us/reader033/viewer/2022050614/589ca44d1a28abf4148b664b/html5/thumbnails/45.jpg)
@PavelChunyayev
Delivery pipelines
git Build Version Test Release
Component 1
git Build Version Test Release
Component 2
git Build Version Test Release
Component 3
Assemble CXP
Test Release
342
128
473
921
![Page 46: You don’t need DTAP + Backbase implementation - Amsterdam 17-12-2015](https://reader033.fdocuments.us/reader033/viewer/2022050614/589ca44d1a28abf4148b664b/html5/thumbnails/46.jpg)
@PavelChunyayev
Pipelines as code
• Pipelines as code• Changes -> same process as code changes
• First stage is enforcing specifications
• GoCD + Gomatic (updated)• https://github.com/Backbase/gomatic
![Page 47: You don’t need DTAP + Backbase implementation - Amsterdam 17-12-2015](https://reader033.fdocuments.us/reader033/viewer/2022050614/589ca44d1a28abf4148b664b/html5/thumbnails/47.jpg)
@PavelChunyayev
Platform
• Services to manage environments lifecycle
• The same way for everyone
• Autoconfig• AWS
• Autodocker• Docker
![Page 48: You don’t need DTAP + Backbase implementation - Amsterdam 17-12-2015](https://reader033.fdocuments.us/reader033/viewer/2022050614/589ca44d1a28abf4148b664b/html5/thumbnails/48.jpg)
@PavelChunyayev
Autodocker
• Swarm cluster• Interface for docker environments provisioning
• Limitations• One host for networking
• Memory checks
• Destruction after TTL
• Configuration is a docker compose file
• Start exact version of your component and released version of all other components
![Page 49: You don’t need DTAP + Backbase implementation - Amsterdam 17-12-2015](https://reader033.fdocuments.us/reader033/viewer/2022050614/589ca44d1a28abf4148b664b/html5/thumbnails/49.jpg)
@PavelChunyayev
Autoconfig
• AWS on-demand multi-server environments• Any application version• Any configuration option
• JSON (Form data) with parameters{
"server": "jboss",
"database": "oracle",
"universal_collection": "true",
"htts": "true"
}
![Page 50: You don’t need DTAP + Backbase implementation - Amsterdam 17-12-2015](https://reader033.fdocuments.us/reader033/viewer/2022050614/589ca44d1a28abf4148b664b/html5/thumbnails/50.jpg)
@PavelChunyayev
Autoconfig APIs
• GET /api/stacks - List stacks available for provisioning
• GET /api/environments - List all currently provisioned environments
• POST /api/stacks/<stack_name> - Provision specified stack
• DELETE /api/environments/<environment_id> - Destroy environment with specified id
• DELETE /api/environments/all - Destroy all environments
![Page 51: You don’t need DTAP + Backbase implementation - Amsterdam 17-12-2015](https://reader033.fdocuments.us/reader033/viewer/2022050614/589ca44d1a28abf4148b664b/html5/thumbnails/51.jpg)
@PavelChunyayev
Autodocker APIs
• POST /api/docker - create new docker environment
• GET /api/docker/<env-name> - get info about specified environment
• GET /api/docker - get info about docker environments provisioned by the user Optional parameters:• all_users = True • uptime (value in hours) • owner (AD username)
• DELETE /api/docker/<env-name> - delete specified docker environment
• DELETE /api/docker - remove docker environments provisioned by the user Optional parameters:• all_users = True • uptime (value in hours)• owner (AD username)
![Page 52: You don’t need DTAP + Backbase implementation - Amsterdam 17-12-2015](https://reader033.fdocuments.us/reader033/viewer/2022050614/589ca44d1a28abf4148b664b/html5/thumbnails/52.jpg)
@PavelChunyayev
Quality
• Build the quality in the process
• Move tests to the left
• Testing pyramid
• No more manual testing
• Ideal testing framework • Manage parallelism
• Create environments
M
E2E
Contract
Component
Integration
Unit
![Page 53: You don’t need DTAP + Backbase implementation - Amsterdam 17-12-2015](https://reader033.fdocuments.us/reader033/viewer/2022050614/589ca44d1a28abf4148b664b/html5/thumbnails/53.jpg)
@PavelChunyayev
Releasing
• Banks don’t want frequent releases
• 3 stage release process• Rolling
• In the effort to not release too infrequently
• Technical previews• At the end of every sprint
• Marketing releases• When product manager decides to release
![Page 54: You don’t need DTAP + Backbase implementation - Amsterdam 17-12-2015](https://reader033.fdocuments.us/reader033/viewer/2022050614/589ca44d1a28abf4148b664b/html5/thumbnails/54.jpg)
@PavelChunyayev
Culture
• No blaming, no fingerpointing
• Failing the build is a learning opportunity
• We failed a lot• Several iterations of JS deployments
• Visibility
• Shared responsibility• Squad – for component delivery
• Tribe – for product delivery
![Page 55: You don’t need DTAP + Backbase implementation - Amsterdam 17-12-2015](https://reader033.fdocuments.us/reader033/viewer/2022050614/589ca44d1a28abf4148b664b/html5/thumbnails/55.jpg)
@PavelChunyayev
Key takeaways
• Forget about DTAP
• Believe in immutable infrastructure
• Create repeatable and reliable process for releasing software
• Build quality in
• Improve continuously
Any questions?