Wikipedia defines Continuous Delivery as a design practice used in software development to
automate and improve the process of software delivery. That is well known and very true, but less known and still very true is that the same practices should be applied on to the database development, by using Database Enforced Change Management.
2. Before We Begin
⢠You will be on mute for the duration of the event
⢠We are now talking so please type a message
in the Questions box in the Control Panel if you canât
hear us (please check your speakers and
GoToWebinar audio settings first)
⢠There will be a Q+A session at the end, you can start
submitting you questions on the Q&A bar on your
gotowebinar dashboard.
⢠A recording of the full webinar will be put up online
2
4. DBmaestro: DevOps for Database
Streamline Database
Development Process
Reduce Database
Development Costs
Instill Change Policy Enforcement
Mitigate Deployment Risks
Automate Deployment Process
Reduce Deployment
cost by 95%
YY
5. Agile worldâŚ
⢠Doing better with less
⢠Reacting quickly to market needs
⢠Getting ahead of competition
⢠Just canât wait 6 months for that next
releaseâŚ
⢠Agile Development
⢠Process Automation
⢠DevOps
5
7. What is Continuous Integration?
⢠Principles and practices
⢠Been around for a while
⢠Focus on streamlining development
â˘
â˘
â˘
â˘
â˘
Developers integrate code into shared repository
Each check-in is verified
Automated builds
Automated tests
High visibility
⢠Easier & quicker to find problems, less back
tracks => short integrations
7
8. And Continuous Delivery?
⢠Next step after continuous integration
⢠Becoming lean, and even more Agile
⢠Make sure each change is releasable
⢠Develop-> build-> test-> move to staging-> acceptance test
⢠Build a process to release with a push of a button
⢠Deploy to production-> test production
⢠Actual deployment to production in manually
actuated
=> Ensure risk mitigation and high efficiency
8
10. Continuous Deployment
⢠Automating changes all the way to production
⢠Develop-> build-> test-> move to staging-> acceptance test->
deploy to production-> test production
⢠Makes sense for Facebook, Amazon, i.e. - for
large SAAS solutions.
⢠A/B test new features
⢠Stream traffic to new releases etcâŚ
⢠Not for everyoneâŚ
10
11. How Do I Measure Success?
â˘
â˘
â˘
â˘
More rapid changes
Fewer changes backed out
Better collaboration
Fewer defects
⢠Ultimately better service
⢠Happy customers
⢠Profitability
11
12. To summarizeâŚ
⢠Automate âeverythingâ
⢠Move the process upstream
⢠Create the deployment pipeline
12
14. Database is a Key Component
⢠The database holds your essential
information
⢠Changes can impact the entire system
⢠Need to be synchronized with other changes
⢠Often overlooked
14
15. The Weakest Link In a Chain
⢠Old adage but true
⢠The database is often âforgottenâ and
therefore can become the weakest link
⢠Essential from a compliance point of view
⢠Should be the strongest link
⢠âUsing NoSQL can eliminate the step of data migrations and
schema changes, often manual steps or exceptions to a continuous
delivery workflowâ http://en.wikipedia.org/wiki/Continuous_delivery
(Rarely a practical optionâŚ)
15
16. Reaching Inside the Database
⢠There is more to a database than SQL scripts
â˘
â˘
â˘
â˘
â˘
Schema structure
Code
Content and meta-content
Internal dependencies
âŚ
⢠Ensure that changes are not made without
authorization
⢠Ensure no out-of-process changes
16
17. Developers and DBAs
â˘
â˘
â˘
â˘
Silos existâŚ
Donât always communicate effectively
Need to share knowledge
Need to follow same procedures & best
practices
17
18. Two isolated Processes
Development Process
Version Control Process
(file based)
Check-Out
Script
?
Check-In
Script
?
A
Modify Script
Get updated
Script from DB
?
18
?
Compile
Script
in DB
Aâ
Debug Script
in DB
19. Database deployment automation
⢠Major challengeâŚ
⢠Risky if done incorrectlyâŚ
⢠Conflicts & Merges
⢠Code overrides
⢠Outdated update scripts
⢠Need Impact analysis processes
⢠Traceability and transparency
⢠Audit and compliance
⢠Automating problems into production is a major
risk!!!
19
20. Where Do We Start
â˘
â˘
â˘
â˘
â˘
â˘
Start in the beginning
Build quality in from the beginning
Incremental steps
Move to QA nextâŚ
Take a complete lifecycle approach
Iterative approach to improving process
20
21. Traceability
Coordinated Process
Well Defined Processes
Impact Analysis
Dealing with challengesâŚ
Task Based Development
Start in the Beginning
No Out-of-Process Changes
Automation
21
24. Built Proof Deployment Automation
Simple Compare & Sync
Source vs.
Target
=
â
Baseline Aware Deployment
Source vs.
Baseline
Action
No Action
Target vs.
Baseline
Action
=
=
Override
=
â
Ignore
â
You do not have all
of the information
No Action
â
?
=
â
Merge
With Baselines and 3 way
analysis the unknown is now
known
24
26. Demo flow
Starting Point
⢠3 environments: PROD, Critical Bug Fix Branch, UAT
Flow
⢠Make critical fixes
â˘
â˘
â˘
â˘
Change the dedicate branch
Test
Promote to PROD
Test PROD
⢠Promote the UAT to PROD
⢠Test
⢠Promote to PROD
⢠Test PROD
26
27. Summary
DevâŚ
⢠Enforce best practices for database development
⢠Closely manage your database development
⢠Know who can do what, where, when & why
âŚOps
⢠Build a safety net to catch problems early
⢠Reduce deployment issues
⢠Enable automated deployments
27