Managing Databases in a
         {DEVOPS} Environment




                           / Robert Treat



                                            1

Friday, September 16, 11
Who Am I?



                           Robert Treat
                            @robtreat2
                            xzilla.net



                                2


Friday, September 16, 11
Who Am I?




                           OmniTI




                             3


Friday, September 16, 11
Who Am I?




                            “Database
                           Operations”




                                4


Friday, September 16, 11
Who Am I?


                             Highly Scaled
                                Big Data
                           Heavy Transactions



                                   5


Friday, September 16, 11
Who Am I?


                             Highly Scaled
                                 Big Data
                           Heavy Transactions


                            Really Important Stuff
                                      6


Friday, September 16, 11
What Is DevOps?




                                  7


Friday, September 16, 11
put your development in my ops




                           8

Friday, September 16, 11
put your ops in my development




                           9

Friday, September 16, 11
MINDMELD
                              10

Friday, September 16, 11
11

Friday, September 16, 11
Not A Talk About
                               DevOps
                                per se



                                  12


Friday, September 16, 11
I like to make up definitions




                                        13


Friday, September 16, 11
DevOps Is Basically About
                                Three Things




                                       14


Friday, September 16, 11
Configuration Management




                                      15


Friday, September 16, 11
Monitoring




                               16


Friday, September 16, 11
Software Development




                                    17


Friday, September 16, 11
Yes
                           I just offended
                               everyone
                                with a
                              “kanban”
                                t-shirt

                                  18


Friday, September 16, 11
Moving On




                               19


Friday, September 16, 11
Configuration Management




                                      20


Friday, September 16, 11
Some SysAdmins get
                               Very Excited
                                  about
                           Systems Automation


                                   21


Friday, September 16, 11
22

Friday, September 16, 11
meh




                            23


Friday, September 16, 11
Many
                                 DBA’s
                                Have Like
                                One Box to
                                 Manage
                           24

Friday, September 16, 11
This Makes Server Automation
                        Seem Like a Hassle




                               25


Friday, September 16, 11
Now You Have Two Problems




                                26


Friday, September 16, 11
Even With One Box, There Are
                     Many Things To Configure




                                27


Friday, September 16, 11
database configs, cron jobs, packages, scripts




             monitoring, binaries, shell config, pooler
                                 28


Friday, September 16, 11
A Lot To Configure




                                   29


Friday, September 16, 11
Needs To Be Documented




                                     30


Friday, September 16, 11
Needs To Be Documented
                                      or
                            At Least Reproducible



                                     31


Friday, September 16, 11
It Would Be Nice To Know
                            When Changes Occur In
                               Your Environment



                                      32


Friday, September 16, 11
Configuration Management
                                  Helps You
                                With All That



                                      33


Friday, September 16, 11
Configuration Management




                                      34


Friday, September 16, 11
“Configuration”
                                <-->
                           “Management”



                                 35


Friday, September 16, 11
Even Without Automation




                                      36


Friday, September 16, 11
Track Changes




                                 37


Friday, September 16, 11
Notification Of Changes




                                     38


Friday, September 16, 11
Also Consider




                                 39


Friday, September 16, 11
Your
                           “One Big Database”




                                   40


Friday, September 16, 11
Is Probably More Than
                              Just One Database




                                     41


Friday, September 16, 11
data loading
                           webservers                                   script


                                    writes                writes


                                              master

                                              writes
   reads
                                     replay                replay
                                    slave A                slave B




                                                       slave
                              slave slave      slave                  slave slave


                                               reads

                                            load balancer
                                                 42


Friday, September 16, 11
Failover, Reporting, Staging,
                           Development, Read Slaves,
                                    And More!



                                         43


Friday, September 16, 11
And Then
                            Someone
                             Sets Up
                                A
                           New Service


                                44


Friday, September 16, 11
Now You Have To Configure
                  Everything Again For Multiple
                            Machines



                                45


Friday, September 16, 11
How Long Does It Take You To Stand
    Up A New Copy Of Your Database?




                           46


Friday, September 16, 11
How Confident Are You That You
             Have Configured Everything
                    Correctly?



                           47


Friday, September 16, 11
Monitoring For DevOps




                                     48


Friday, September 16, 11
Monitor Everything!




                                    49


Friday, September 16, 11
System Stuff:




                                 50


Friday, September 16, 11
Disk IO, CPU, Network Traffic
                       Load, Disk Utilization




                                51


Friday, September 16, 11
Database Stuff:




                                  52


Friday, September 16, 11
Transactions Per Second




                                      53


Friday, September 16, 11
54


Friday, September 16, 11
TPS, Connections, Index Scans,
                       Seq Scans, Table Size




                                55


Friday, September 16, 11
TPS, Connections, Index Scans,
                       Seq Scans, Table Size
                         Cache Hit Ratio



                                56


Friday, September 16, 11
Try Not To Get Hung Up On The
                         DETAILS




                            57


Friday, September 16, 11
DBA’s Are Sometimes Finicky About
                Data Quality




                           58


Friday, September 16, 11
It is better to have USEFUL Metrics
          Than to have ACCURATE Metrics




                           59


Friday, September 16, 11
Metrics Enable Capacity Planning




                           60


Friday, September 16, 11
61


Friday, September 16, 11
Metrics Let You Know What
                                Good Looks Like




                                       62


Friday, September 16, 11
Metrics Enable Forensics




                                      63


Friday, September 16, 11
Why Did My Site Break?




                                     64


Friday, September 16, 11
You Should Also Track Changes




                              65


Friday, September 16, 11
Configuration Settings
                               Code Pushes
                              Traffic Spikes



                                     66


Friday, September 16, 11
Make It Easy To
                           Correlate Changes




                                   67


Friday, September 16, 11
Expose This To
                            EVERYONE!




                                 68


Friday, September 16, 11
DBAs, SAs, Devs
                       Support Folks, Finance Team
                          The Cute New Intern
                              EVERYONE!


                                    69


Friday, September 16, 11
Use Them To Make Decisions




                                  70


Friday, September 16, 11
Use Them To Make Decisions




                                  71


Friday, September 16, 11
Use Them To Make Decisions




                                  72


Friday, September 16, 11
Push Baby Push!




                                  73


Friday, September 16, 11
A Bazillion Deploys A Day!




                                       74


Friday, September 16, 11
From Idea To Code
                           In The Blink Of An Eye!




                                      75


Friday, September 16, 11
What’s the Problem?




                                    76


Friday, September 16, 11
This Doesn’t Work Well
                                For Databases




                                     77


Friday, September 16, 11
Databases Are Fundamentally
                              Different




                                 78


Friday, September 16, 11
They Have Data




                                 79


Friday, September 16, 11
Data Is Important




                                   80


Friday, September 16, 11
And Hard To Replace




                                    81


Friday, September 16, 11
You Can Always Rewrite The Code




                           82


Friday, September 16, 11
83


Friday, September 16, 11
You Can’t Get Everyone To Give You
              Their Data Again




                           84


Friday, September 16, 11
85


Friday, September 16, 11
Furthermore




                                86


Friday, September 16, 11
Code Is Static




                                87


Friday, September 16, 11
Code Is Controlled




                                       88


Friday, September 16, 11
Data Is Often Dynamic




                                     89


Friday, September 16, 11
Control Is In The Hands Of Users




                            90


Friday, September 16, 11
This Makes
                           Database Administration
                                More Difficult



                                      91


Friday, September 16, 11
We Can’t Eliminate
                               Change




                                   92


Friday, September 16, 11
We Must Manage
                               Change




                                 93


Friday, September 16, 11
Back In The Day




                                  94


Friday, September 16, 11
DBA’s Lived In Walled Gardens

                                 95


Friday, September 16, 11
Dev’s Send You Requirements




                                 96


Friday, September 16, 11
97


Friday, September 16, 11
You Send Them A Schema




                                     98


Friday, September 16, 11
99


Friday, September 16, 11
They Send You Modified Requirements




                           100


Friday, September 16, 11
101


Friday, September 16, 11
You Send Them A New Schema




                             102


Friday, September 16, 11
This Goes Back And Forth




                                      103


Friday, September 16, 11
This Goes Back And Forth




                            104


Friday, September 16, 11
Dev’s Keep Pushing
                           Just To Get Things Done




                                      105


Friday, September 16, 11
You Try To Temper Things To
                         Minimize Disruption




                                   106


Friday, September 16, 11
Eventually Something
                             Is Agreed Upon




                                    107


Friday, September 16, 11
But This Takes A Long Time




                                       108


Friday, September 16, 11
109


Friday, September 16, 11
Many Shops Respond By Eliminating
               The DBA’s




                           110


Friday, September 16, 11
But You Still Need
                                 Someone
                           To Make Things Work



                                    111


Friday, September 16, 11
You Need Balance




                                  112


Friday, September 16, 11
113


Friday, September 16, 11
Devs Design The Schema




                                     114


Friday, September 16, 11
Blasphemy!




                               115


Friday, September 16, 11
Devs
                           Meet With Project Managers




                                       116


Friday, September 16, 11
Devs
                           Digest Requirements




                                    117


Friday, September 16, 11
Devs
                           Understand The App




                                   118


Friday, September 16, 11
Your Job Is To Be Available If They
                    Have Questions




                            119


Friday, September 16, 11
If You Had A
                {Perl|Ruby|Python|Javascript}
                     Question, You Would
                       Ask A Senior Dev



                              120


Friday, September 16, 11
DBAs Are The Senior Devs
                               WRT Databases




                                      121


Friday, September 16, 11
Make A Style Guide For Schemas




                           122


Friday, September 16, 11
Schema Changes Become
                                 Migrations




                                     123


Friday, September 16, 11
New Stuff, Changed Stuff




                                      124


Friday, September 16, 11
Migrations Are Subject To Review




                           125


Friday, September 16, 11
Look For Red Flags




                                   126


Friday, September 16, 11
Nulls, Indexes,
                           Datatypes, Constraints




                                     127


Friday, September 16, 11
What Is The Impact?




                                    128


Friday, September 16, 11
Locking, Data Rewrites,
                           Other Stuff That Sucks




                                      129


Friday, September 16, 11
1000 Pushes A Day?




                                   130


Friday, September 16, 11
No




                           131


Friday, September 16, 11
Remember Locking?




                                   132


Friday, September 16, 11
You Have Peak Times




                                    133


Friday, September 16, 11
Build Schema Migration Windows
                Around Off-Peak Hours




                           134


Friday, September 16, 11
Once A Week




                                135


Friday, September 16, 11
Once A Day




                               136


Friday, September 16, 11
Just Not During Lunch




                                     137


Friday, September 16, 11
You Can’t Eliminate Risk




                                      138


Friday, September 16, 11
Minimize Unnecessary Risk




                                       139


Friday, September 16, 11
And It’s Worth Pointing Out




                                        140


Friday, September 16, 11
Schema Changes Don’t Have To Be
             Married To Code Changes




                           141


Friday, September 16, 11
If Your Feature Launches
                                  Next Week




                                      142


Friday, September 16, 11
You Can Make Changes This Week




                           143


Friday, September 16, 11
Add Columns Well
                               In Advance
                           Of Writing To Them



                                   144


Friday, September 16, 11
Stop Writing To Columns
                                 Well Before
                               Dropping Them



                                      145


Friday, September 16, 11
Like Development It’s
                                  Easier
                                 To Digest



                                     146


Friday, September 16, 11
Small
                           Incremental
                             Changes



                                147


Friday, September 16, 11
DevOps Is A
                           New Way Of Thinking




                                    148


Friday, September 16, 11
DBAs Are The
                           Original DevOps




                                  149


Friday, September 16, 11
It’s Time We Got On
                              The Same Team




                                    150


Friday, September 16, 11
THANK YOU!

                            #pgopen11



                                151


Friday, September 16, 11
http://www.flickr.com/photos/rubink1/3019322879/
                                  http://www.flickr.com/photos/nettsu/4570198529/
                               http://www.flickr.com/photos/camknows/5227248712/
                                   http://www.flickr.com/photos/fornal/373418814/
                            http://www.flickr.com/photos/kathryn_rotondo/473877266/
                               http://www.flickr.com/photos/remco0808/4121818178/
                                   http://www.flickr.com/photos/john/3807248802/
                             http://www.flickr.com/photos/facilitybikeclub/3197419294/
                                http://www.flickr.com/photos/michperu/3969552741/
                           http://www.flickr.com/photos/winterofdiscontent/4101596626/
                                http://www.flickr.com/photos/zooboing/4361038612/
                                 http://www.flickr.com/photos/sequoya/2236491391/
                                http://www.flickr.com/photos/blakespot/4011035061/
                                 http://www.flickr.com/photos/ikhnaton2/533233247/
                              http://www.flickr.com/photos/stayinsussex/3801588698/
                              http://www.flickr.com/photos/liamrichardsx/4373285723/


                                                       152


Friday, September 16, 11

Managing Databases In A DevOps Environment