chain of processing elements (processes, threads, coroutines, functions, etc.), arranged so that the output of each element is the input of the next. by Wikipedia @ https://en.wikipedia.org/wiki/Pipeline_(software) Deployment pipeline for databases @EdPiairo, #WinOps
the various groups involved in delivering software and provide everyone visibility about the flow of changes in the system, together with a thorough audit trail. by Martin Fowler @ https://martinfowler.com/bliki/DeploymentPipeline.html Deployment pipeline for databases @EdPiairo, #WinOps
changes (most of the time) are handled differently • Different deployment pipeline • Synchronization needed • Database is not included (manual work) @EdPiairo, #WinOps
• Lack of traceability of database changes (changes history) • It’s the most expensive and risky work type • Prevent CI and CD utilization in their full extent • Promote the fear of changes @EdPiairo, #WinOps
control over database development • Increase speed of response to change • Greater reliability of the release process • Remove/reduce human intervention in the release process From (Re)Learn and forget it to Improve and forget it @EdPiairo, #WinOps
your database deployment pipeline • Traceability through change history • SQL as documentation • Shared code-base and shared process • Enforceable standards to reduce conflicts @EdPiairo, #WinOps
• Migrations based solutions • How the database should change MIGRATIONS VS STATE Deployment pipeline for databases SQL Source Control @EdPiairo, #WinOps Migration Migration State Delta
changes • Tests: Unit, Integration • Small batches, less risk • Considerations: • What should be tested? And When? • Can the application help on this? @EdPiairo, #WinOps
• Very fast • Please, do not make mistakes • It’s like working backwards • Backups (before deploy) • Safer but slower • Keep databases small • Avoid share databases between applications @EdPiairo, #WinOps
Continuous Delivery APP DB @EdPiairo, #WinOps • Share the some code repository, CI process and CD process • No need of synchronization • Promotes learning within teams (database code reviews)
managing changes in the software development process (should contemplate databases, applications and infrastructure). by me ;) Show me your pipeline and I will tell you the way you work! Deployment pipeline for databases @EdPiairo, #WinOps