to hire, or to train, that is the question (percona live 2014)

55
1 train, that is the question #PerconaLive 20

Upload: geoffrey-anderson

Post on 11-May-2015

242 views

Category:

Technology


0 download

DESCRIPTION

"We're hiring!" How many times have you heard this phrase at a conference? Every database-driven company is hiring and that makes for pretty stiff competition when trying to get a new DBA. Instead of searching for the perfect database administrator from a conference or Linkedin, why not look internally at your organization for system administrators or engineers who may be an equally good fit given the right training. In this talk, I'll explain how the DBAs at Box developed a knowledge-sharing culture around databases and disseminated important learnings to other members of the company. I'll also cover the mentorship process we established to train other members of our Operations team to become rock star DBAs and manage our MySQL and HBase infrastructure at Box.

TRANSCRIPT

Page 1: To Hire, or to train, that is the question (Percona Live 2014)

1

To Hire, or to train, that is the question

#PerconaLive 2014

Page 2: To Hire, or to train, that is the question (Percona Live 2014)

2

Geoffrey Anderson• DBA @ Box, Inc.

• Tooling for MySQL and HBase

• #DBHangOps

Page 3: To Hire, or to train, that is the question (Percona Live 2014)

3

Share, manage and access your content from any device, anywhere

Page 4: To Hire, or to train, that is the question (Percona Live 2014)

4

25MM+USERS

225K+BUSINESSES

99% FORTUNE 500

Page 5: To Hire, or to train, that is the question (Percona Live 2014)

5

HEALTHCARE INDUSTRIAL HIGH TECH MEDIA RETAIL SERVICES

Page 6: To Hire, or to train, that is the question (Percona Live 2014)

6

Why this talk?

Page 7: To Hire, or to train, that is the question (Percona Live 2014)

7

We’re Hiring!

Page 8: To Hire, or to train, that is the question (Percona Live 2014)

8

What are you actually looking for?

Page 9: To Hire, or to train, that is the question (Percona Live 2014)

9

The Perfect MySQL Candidate• 5+ years with MySQL in a high volume production environment

• “Strong hands-on experience” with MySQL‒ SQL and Query optimization‒ Replication‒ Performance and Tuning‒ Knowledge of InnoDB internals

• “Strong systems administration” skills (e.g. “Knows Linux”)

• Passionate about Devops and automation‒ MySQL tools‒ Monitoring

• Self-Motivated

• Known in the community‒ Active blogger‒ Active bug filer/fixer

Page 10: To Hire, or to train, that is the question (Percona Live 2014)

10

Page 11: To Hire, or to train, that is the question (Percona Live 2014)

11

Page 12: To Hire, or to train, that is the question (Percona Live 2014)

12

Let’s backpedal for a second

Page 13: To Hire, or to train, that is the question (Percona Live 2014)

13

Benefits of External hiring

• New Knowledge

• Fresh perspectives‒ Culture‒ Performance and tuning‒ Automating

• Start on-call rotation in 1-2 months!

Page 14: To Hire, or to train, that is the question (Percona Live 2014)

14

Costs of External Hiring

• Recruiting‒ Sourcing‒ Interviewing

• New-hire package‒ Benefits‒ Salary/Equity

• Still potentially a bad hire

Time and money

Page 15: To Hire, or to train, that is the question (Percona Live 2014)

15

Benefits of Internal Hiring

• Familiarity with environment

• Familiarity with team

• Known strengths and weaknesses

• New organizational perspective

• Retention

Page 16: To Hire, or to train, that is the question (Percona Live 2014)

16

Costs of Internal Hiring

• Some training required

• Ramp-up time

• Starting in on-call rotation is probably 3-6 months out

Page 17: To Hire, or to train, that is the question (Percona Live 2014)

17

But YouAlreadyKnowAllThis

Page 18: To Hire, or to train, that is the question (Percona Live 2014)

18

Page 19: To Hire, or to train, that is the question (Percona Live 2014)

19

Why’d YOU become a MySQL DBA?

• You were the developer that knew the most MySQL

• You were the Sys admin that knew the most MySQL

• You knew Oracle/SQL Server/PostgreSQL/etc before

• You studied it at school

• Other reasons?

Page 20: To Hire, or to train, that is the question (Percona Live 2014)

20

Page 21: To Hire, or to train, that is the question (Percona Live 2014)

21

Let’s Talk About HowBox TrainsA MySQL DBA

Page 22: To Hire, or to train, that is the question (Percona Live 2014)

22

Necessary DBA Skills

1. Systems Administration

2. SQL

3. MySQL

4. MySQL at Box

5. MySQL Automation

6. Continued Learning

1. Systems Administration

2. Hadoop

3. HBase

4. HBase at Box

5. HBase Automation

6. Continued learning

(HBase plan is nearly identical)

That’s for another

conference

Page 23: To Hire, or to train, that is the question (Percona Live 2014)

23

1. Systems Administration

• Management‒ Configuration Management‒ Version Control‒ Change Control

• Triaging‒ Disk – iostat, df‒ CPU – top, ps‒ Memory – free‒ Network – ifconfig, ping‒ What happened – sar, log files

• Automation‒ Scripts!

Page 24: To Hire, or to train, that is the question (Percona Live 2014)

24

2. SQL

Page 25: To Hire, or to train, that is the question (Percona Live 2014)

25

2. SQL – What

• Used to talk to RDBMSs

• Manipulate sets of data

• For a DBA‒ DDL vs. DML‒ Query optimization

Page 26: To Hire, or to train, that is the question (Percona Live 2014)

26

2. SQL – Resources

http://www.sqlcourse.com/

Page 27: To Hire, or to train, that is the question (Percona Live 2014)

27

2. SQL – Resources

http://www.phlonx.com/resources/nf3/

Page 28: To Hire, or to train, that is the question (Percona Live 2014)

28

2. SQL – Resources

http://databases.about.com/od/specificproducts/a/Should-I-Normalize-My-Database.htm

Page 29: To Hire, or to train, that is the question (Percona Live 2014)

29

3. MySQL

Page 30: To Hire, or to train, that is the question (Percona Live 2014)

30

3. MySQL – What

• A Relational Database Management System‒ Open source https://launchpad.net/mysql-server‒ Active community

• For DBAs‒ Pluggable storage engines‒ Cost-based optimizer

Page 31: To Hire, or to train, that is the question (Percona Live 2014)

31

3. MySQL – How to Read The (Freakin’) Manual

• Version number is important!

• Download PDF for your version!‒ MySQL 5.5 – http://downloads.mysql.com/docs/refman-5.5-en.pdf‒ MySQL 5.6 - http://downloads.mysql.com/docs/refman-5.6-en.pdf

Page 32: To Hire, or to train, that is the question (Percona Live 2014)

32

3. MySQL – How to Read The (Freakin’) Manual

• “Typographical and Syntax Conventions”‒ http://dev.mysql.com/doc/refman/5.5/en/manual-conventions.html[ Optional ]

Page 33: To Hire, or to train, that is the question (Percona Live 2014)

33

3. MySQL – How to Read The (Freakin’) Manual

• “Typographical and Syntax Conventions”‒ http://dev.mysql.com/doc/refman/5.5/en/manual-conventions.htmluser_input

Page 34: To Hire, or to train, that is the question (Percona Live 2014)

34

3. MySQL – How to Read The (Freakin’) Manual

• “Typographical and Syntax Conventions”‒ http://dev.mysql.com/doc/refman/5.5/en/manual-conventions.html

defined_below:

Page 35: To Hire, or to train, that is the question (Percona Live 2014)

35

3. MySQL – How to Read The (Freakin’) Manual

• “Typographical and Syntax Conventions”‒ http://dev.mysql.com/doc/refman/5.5/en/manual-conventions.html

| (pipe) indicates full clauses

Page 36: To Hire, or to train, that is the question (Percona Live 2014)

36

3. MySQL – What all DBAs should do

• Get the server - http://dev.mysql.com/downloads/mysql/

• Go through the tutorial - http://dev.mysql.com/doc/refman/5.5/en/tutorial.html

Page 37: To Hire, or to train, that is the question (Percona Live 2014)

37

3. MySQL – What all DBAs should do

http://docs.linuxtone.org/ebooks/MySQL/Replication%20Tutorial%20Presentation.pdf

Page 38: To Hire, or to train, that is the question (Percona Live 2014)

38

3. MySQL – What all DBAs should do

http://mysqlsandbox.net/

Page 39: To Hire, or to train, that is the question (Percona Live 2014)

39

3. MySQL – What all DBAs should do

http://planet.mysql.com

http://www.mysqlperformanceblog.com/

irc.freenode.net/#mysql

Page 40: To Hire, or to train, that is the question (Percona Live 2014)

40

3. MySQL – What all DBAs should do

• http://education.oracle.com/

• http://www.percona.com/products/mysql-training

• http://www.skysql.com/products/training

Page 41: To Hire, or to train, that is the question (Percona Live 2014)

41

3. MySQL – Backups (a.k.a. a DBA’s biggest responsibility)

• Take them‒ Seriously.Take them.‒ No, Seriously.Take them.

• Whole books have been written on this!

• Whole podcasts have been done on this!‒ http://bit.ly/oursql035‒ http://bit.ly/oursql159

• Backup tools‒ Percona Xtrabackup‒ MySQL Enterprise Backup‒ mysqldump‒ mydumper/myloader

Page 42: To Hire, or to train, that is the question (Percona Live 2014)

42

3. MySQL – Scalability and High Availability

Page 43: To Hire, or to train, that is the question (Percona Live 2014)

43

4. MySQL at Box

Page 44: To Hire, or to train, that is the question (Percona Live 2014)

44

4. MySQL at Box

• Box Database infrastructure

• Typical /etc/my.cnf

• Tools‒ Box Weather Station‒ Querykiller

• MySQL Backups and Recovery @ Box

• Team responsibilities

• Checklists‒ Changing active server‒ Granting access‒ Applying schema changes

Page 45: To Hire, or to train, that is the question (Percona Live 2014)

45

4. MySQL at Box (Ramping up someone)

BestWayToRampup

Page 46: To Hire, or to train, that is the question (Percona Live 2014)

46

5. MySQL Automation

https://code.launchpad.net/mysql-utilities

https://code.launchpad.net/percona-toolkit

https://forge.puppetlabs.com/puppetlabs/mysqlhttps://github.com/mozilla-it/puppet-mysql

Page 47: To Hire, or to train, that is the question (Percona Live 2014)

47

5. MySQL Automation

• DB Ops Script Framework‒ Server tasks

‒ Clone replicas‒ Promote slave to master

‒ Security tasks‒ Grant management‒ Auditing

‒ Sharding tasks‒ Split shards‒ Move shards

Page 48: To Hire, or to train, that is the question (Percona Live 2014)

48

6. Continued Learning

Page 49: To Hire, or to train, that is the question (Percona Live 2014)

49

6. Continued Learning

Page 50: To Hire, or to train, that is the question (Percona Live 2014)

50

??? – http://dbareactions.tumblr.com

When I call one of my former coworkers to see if they want the new DBA position

Page 51: To Hire, or to train, that is the question (Percona Live 2014)

51

??? – http://dbareactions.tumblr.com

When management asked me to fix the database scalability problem by adding an index

Page 52: To Hire, or to train, that is the question (Percona Live 2014)

52

InClosing

• Don’t discount external hiring

• Don’t discount internal hiring

• Commit to knowledge sharing with others

• Remember your learning curve– Help others through their own

Page 53: To Hire, or to train, that is the question (Percona Live 2014)

53

?Email [email protected]

Twitter @geodbz

Tech Blog tech.blog.box.comPlatform developers.box.com

Github github.com/box

Page 54: To Hire, or to train, that is the question (Percona Live 2014)

54

References (seriously…check these out!)

• http://www.jonathanlevin.co.uk/2010/07/where-have-all-mysql-dbas-gone.html

• http://www.iheavy.com/2011/12/19/mythical-mysql-dba/

• http://www.iheavy.com/2012/02/26/top-mysql-dba-interview-questions-part-1/

• http://www.percona.com/live/mysql-conference-2013/sites/default/files/slides/PLMCE13%20-%20Training%20-%20Cost%20or%20Investment%20%28final%29.pdf

Page 55: To Hire, or to train, that is the question (Percona Live 2014)

55

Image Credits

• http://www.flickr.com/photos/atgeist/8663784742/sizes/o/

• http://www.flickr.com/photos/prodiffusion/4486297043/sizes/l/

• http://www.qwantz.com/fanart/dinocussing.png

• http://www.flickr.com/photos/bparker321/7906708980/sizes/l/

• http://www.flickr.com/photos/96641479@N03/12309210613/sizes/o/

• http://farm4.staticflickr.com/3081/3202565643_c2d1a6f67b_o.jpg

• https://www.flickr.com/photos/mhillyer/138766962/sizes/o/

• http://www.flickr.com/photos/tylermyeo/11618726115/sizes/o/

• http://www.flickr.com/photos/billkimandthecats/6338535597/

• http://www.flickr.com/photos/babykailan/2126901394

• https://www.flickr.com/photos/krupptastic/4988425044/sizes/o/

• http://danga.com/words/2007_yapc_asia/yapc-2007.pdf

• http://albertolarripa.com/wordpress/wp-content/uploads/2012/06/mysql-replication-principle.png

• http://www.cubrid.org/manual/91/en/_images/image38.png

• https://www.flickr.com/photos/rfmcdonald/4301658325/sizes/o/

• https://www.flickr.com/photos/byte/120228210/sizes/o/

• http://www.nytimes.com/2013/07/16/business/last-car-plant-brings-detroit-hope-and-cash.html

• https://www.flickr.com/photos/lens_envy/2212050922/sizes/o/

• https://www.flickr.com/photos/stvan4245/162066238/sizes/o/