Abstract: As organizations invest in DevOps to release more frequently, there’s a need to treat the database tier as an integral part of your automated delivery pipeline – to build, test and deploy database changes just like any other part of your application.
However, databases (particularly RDBMS) are different from source code, and pose unique challenges to Continuous Delivery - especially in the context of deployments.
Often, code changes require updating or migrating the database before the application can be deployed. A deployment method that works for installing a small database or a green-field application may not be suitable for industrial-scale databases. Updating the database can be more demanding than updating the app layer: database changes are more difficult to test, and rollbacks are harder. Furthermore, for organizations who strive to minimize service interruption to end users, database updates with no-downtime are a laborious operation.
Your DB stores the most mission-critical and sensitive data of your organization (transaction data, business data, user information, etc.). As you update your database, you’d want to ensure data integrity, ACID, data retention, and have a solid rollback strategy - in case things go wrong …
This talk covers strategies for database deployments and rollbacks.
Learning Outcomes: - • Patterns and best practices for reliably deploying databases as part of your CD pipeline
- • Tips for deploying Relational databases (with/without schema changes) vs. NoSQL data stores
- • How to safely rollback database code
- • How to ensure data integrity
- • Best practices for handling advanced scenarios and back-end processes, such as scheduled tasks, ETL routines, replication architecture, linked databases across distributed infrastructure, and more
- • How to handle legacy database, alongside more modern data management solutions