SlideShare une entreprise Scribd logo
1  sur  59
Télécharger pour lire hors ligne
Database Engineering
Velocity Conference, Santa Clara
Laine Campbell, Chief Unicorn
May 28th, 2015
content
© 2014 Pythian
● reliability and operations engineering
- history and context
● design
- architecture and objectives
● deploy
- delivery pipelines, capacity and automation
● maintain
- data stewardship, business continuity and change
Who am I?
Who am I?
© 2014 Pythian
● first of a series
● focuses on operations
engineering for DBEs
● laine gives perfectionist
and enterprise focus
● charity gives real world
start-up view
● crazy breakdancing
© 2014 Pythian
O’Reilly doesn’t allow unicorns
on their covers
in early release by OSCONF
Portland
© 2014 Pythian
me with a jaguar…
engineering, not administration
© 2014 Pythian
engineering
© 2014 Pythian
● quantitative
● interdisciplinary
● results focused
● repeatable and code-driven
systems engineering
© 2014 Pythian
● designing and managing complex systems for complete
life-cycle
● translation from business to system, with focus on
communications, resiliency, flexibility and interoperability
● ensuring the system generates necessary data for
measuring its performance against KPIs
operations engineering
© 2014 Pythian
● allocate resources to balance competing objectives of
cost, service level and productivity
● designing and building processes and infrastructure to
maintain peak flexibility and quality to serve the business
● gathering and utilizing data to effectively provide
continuous improvement to systems
database engineering
© 2014 Pythian
● participates in systems and operations engineering
processes by providing expertise to facilitate all work
● understands and teaches dataset nuances to ensure all
KPIs are met
● anchors teams with expertise for troubleshooting,
recovery and other tasks requiring depth, not breadth
reliability engineering
© 2014 Pythian
● focuses on the glue common to all services, platform-
centric
● deployment, efficiency, scale, performance, observability
● often done by systems and operations engineering,
rather than being their own function
yesterday’s DBA
© 2014 Pythian
● gatekeeper
● master builder
● superhero
● siloed
● specialized
paradigm
shifts
© 2014 Pythian
virtualization and cloud
© 2014 Pythian
● forces horizontal scaling
● forces designing for resilience
● elasticity drives new data storage
● management by API
infrastructure as code
© 2014 Pythian
● forces standardization
● forces us to learn to code
● we start building platforms
● changes become deployments
devops cultures
© 2014 Pythian
● lean manufacturing defines our workflows
● tighter feedback loops require
organizational shifts
● experimentation and controlled failure
shift architecture and process design
● integration drives empathy
continuous delivery
© 2014 Pythian
● brings us to the source code
control paradigm
● we must be teachers, not
gatekeepers
● testing and compliance become
top priorities
polyglot persistence
© 2014 Pythian
● relational is not the end of the line
● data must be looked at end to end
● function dictates form
● we cannot predict all uses
today’s database
engineer
© 2014 Pythian
specialty = depth
© 2014 Pythian
● analytical thinking
● problem solving
● edge case knowledge
● exhibited in at least one system
○ MySQL/Solaris
○ Cassandra/RHEL
○ PostgreSQL/Windows
breadth, crossing
disciplines
© 2014 Pythian
● understands core concepts
● can communicate with experts
● apply knowledge to intersection with core
disciplines
● database engineers need:
○ TCP/IP networking concepts
○ scripting
○ virtualization, automation and orchestration
db engineer’s manifesto
© 2014 Pythian
● its about the mission
● protect the data
● eliminate waste
● data-driven decision making
● databases are not special
● eliminate the barriers between
software and ops
bringing
it
to
the
table
© 2014 Pythian
design
© 2014 Pythian
what do we design for?
© 2014 Pythian
● mission KPIs
● function, not form
● operational processes and management
designing for the business
© 2014 Pythian
velocity
efficiency
security
performance
availability
https://derpicdn.net/img/view/2012/8/3/65841__safe_fluttershy_tank_scooter_artist-colon-giantmosquito_tortoise_vespa.jpg
velocity
© 2014 Pythian
velocity ● how fragile is the datastore?
● what features allow for rapid change?
● how rapidly can fallback be performed?
● does it integrate with CD pipelines?
● how rapidly can developers learn to use it?
efficiency
© 2014 Pythian
velocity
efficiency
● how elastic is the datastore?
● how configurable is resource allocation?
● does the datastore require vendor lock-in?
● can we measure our cost per transaction?
security
© 2014 Pythian
velocity ● is there robust and granular user management?
● is there an audit trail?
● is data and connection encryption supported?
● history of vulnerabilities?
efficiency
security
performance
© 2014 Pythian
velocity
efficiency
security
performance
● how does the datastore handle concurrency? large
data size per node?
● at what points do consistency requirements get
violated?
● what are the performance curves and cliffs at
scale?
● how tunable and instrumented is the datastore?
availability
© 2014 Pythian
velocity
efficiency
security
performance
availability
● what are the single points of failure?
● can you take consistent backups?
● how are network partitions handled, and recovered
from?
● is failure and rebalancing built in, or do you have
to build it?
● how do node, partition and system failures impact
consistency?
choosing your datastore(s)
© 2014 Pythian
“partitions always occur, whether from network
outages or overload of components”
“design for performance, consistency, durability and
availability, and make tradeoffs along the way”
polyglot love
© 2014 Pythian
so, how do we classify and choose our datastores?
traditional relational stores (RDBMS):
● e.f. codd’s 12 rules of relations
○ simplified to tables with key relationships and constraints
● SQL accessible
● ACID levels
○ consistency and isolation may be tunable, or fuzzy
distributed DBMS functionality
© 2014 Pythian
relational? strict EF Codd limited key/value JSON/BSON
data access
language
SQL mapreduce SQLesque (ie
CQL)
custom
atomicity strict ACID node only cluster level specific ops Only
consistency (ACID) strict ACID (three rules) distributed (quorum) eventual, weak
(w/conflict res.)
eventual, strong (i.
e CRDT)
isolation strict ACID relaxed isolation
durability strict ACID relaxed durability Write Repair
availability one writer:many readers write:read anywhere allow lagged read
partition tolerance shut down whole cluster shut down minority read only minority continue in parallel
understanding the spectrum
© 2014 Pythian
compromise reason tunable example
availability consistency boolean replica out of service
durability latency yes disk flush intervals
partition tolerance availability yes read only minority
isolation concurrency yes dirty reads allowed
consistency performance yes quorums, CRDT
designing for operations
© 2014 Pythian
component patterns anti-patterns
configuration mgmt config files, APIs in-memory changes, binaries
degradation mgmt read-only modes, queue draining,
timeouts, dynamic configuration
changes
bad defaults, long timeouts, static
configurations
change mgmt online changes, fast alters, atomic
operations, instrumented DDL, data
dictionaries
lack of data governance, table and schema
level locking, config based DDL
elasticity auto session failover, pre-load cache,
easy node add/removes, auto-
registration
cold cache, slow starts, complicated member
management, impactful hash redistribution
designing for operations (cont.)
© 2014 Pythian
component patterns anti-patterns
availability online backups, incremental backups, auto-
failover, auto-registration, read/write
anywhere, rate limits
single points of failure, common partitions,
cold backups, complicated registration,
special snowflakes
instrumentation good data dictionary, comprehensive status
instrumentation, APIs, dynamic logging
levels, audit trails, documentation
lack of documentation, lack of API,
minimal status management, no plugins
for common tooling
security granular access controls, encryption
options, audit trails, ldap integration,
granular privileges, policy enforcement, SSL
no roles, no object level permissions, no
encryption, no SSL, no audit/access
logging
designing for operations (cont.)
© 2014 Pythian
component patterns anti-patterns
support extensive documentation, user community,
responsive vendor, transparent bug
databases, active committers, exception
collection, clean source code
opposites of ←-
disciplines and systems
© 2014 Pythian
discipline concept systems
operating system concepts disk, virtual and network I/O linux, solaris, windows, etc...
kernel behaviors
networking tcp/ip core theory and constructs
network services dhcp, dns, load balancing
distributed systems dynamo based stores riak, cassandra, voldemort
hadoop and mapreduce hadoop, hbase, hive
document stores mongodb, couchbase
shared state engines zookeeper, consul
a day in the life...
© 2014 Pythian
● selecting datastores to add
to production platform catalogs
● dbms and feature education
to software, systems and
operations engineers
● integrating with company-wide
services
a day in the life...
© 2014 Pythian
● validating acceptable configurations
● testing and benchmarking new
versions, features and configurations
● documenting and sharing standards
© 2014 Pythian
deploy
deploying infrastructure
© 2014 Pythian
● configuration management
● orchestration
● test automation
● self-service to the team
defining “done”
© 2014 Pythian
● standards and documentation of acceptable
use
● integration into operational visibility platforms
● playbooks for operations staff
● repeatable tests, manual and automated to
verify quality
deploying software
© 2014 Pythian
● agile participation with developers
● using version control for schemas and
metadata
● more flexible data model approaches
● teach your engineering teams how to
assess risk, performance and impact
disciplines and systems
© 2014 Pythian
discipline concept systems
config mgmt and orchestration building playbooks/recipes chef, puppet, ansible...
scripting python, ruby, etc...
virtualization, cloud architecture basics compute, storage, network etc...
operational visibility core components, writing
checks, etc...
sensu, graphite, ELK, grafana, etc...
statistics, anomaly tests moving averages, predictive analytics
test Infrastructures testing theory/principles jenkins, travis, code repo etc...
scripting, automation jenkins, travis, code repo etc...
disciplines and systems (cont)
© 2014 Pythian
discipline concept systems
agile Software Development requirements, epics, stories any tool…
process any tool… .
software repositories checking out, coding,
integration
github, bitbucket etc...
DEV OPS
database engineers:
O.G. devops
© 2014 Pythian
DBA
DEV OPS
DBE
shared goals, tools and processes
a day in the life...
© 2014 Pythian
● attending scrums, grooming
and planning
● committing DDL and DML to
the codebase
● monitoring automated builds
and tests, performing manual
ones
a day in the life… (cont)
© 2014 Pythian
● providing new or modified recipes for CM
and automation
● pairing with, and teaching
engineers, iterating on
the schema
maintain
© 2014 Pythian
maintaining the datastores
© 2014 Pythian
● maintaining dataflow
● backup and recovery
● change management
● incident management
● capacity planning
dataflow
© 2014 Pythian
● lambda architectures
○ data backbones: pubsub
○ batch processing
○ hadoop
● cache population, use, and
flushing
● search stores
backup and recovery
© 2014 Pythian
● this has not changed, we live and die
by the safety of our data
● borrow ideas of continuous deployment,
for continuous recovery testing
● build backup and recovery into every
possible process
change management
© 2014 Pythian
● business velocity often demands that
developers and DBEs work together to
assess risk, rather than gate keep
● where possible, we are pushing
changes through code deployments
and automated scripting
● immutable architectures will force us
to create change at the template layer
and redeploy
incident management
© 2014 Pythian
● where possible, we are identifying items
in need of work before they become
problems
● we sometimes share pagers with ops
and dev groups, often as tier 2
escalation
a day in the life...
© 2014 Pythian
● reviewing current workloads and tuning
● managing escalations on DB
issues
● continuous improvement
● writing, testing and performing
change plans as part of the
deployment process

Contenu connexe

Tendances

Indus Water Treaty
Indus Water TreatyIndus Water Treaty
Indus Water Treaty
babak danyal
 
Chapter 4 configuring and managing the dns server role
Chapter 4   configuring and managing the dns server roleChapter 4   configuring and managing the dns server role
Chapter 4 configuring and managing the dns server role
Luis Garay
 
Database ,14 Parallel DBMS
Database ,14 Parallel DBMSDatabase ,14 Parallel DBMS
Database ,14 Parallel DBMS
Ali Usman
 

Tendances (20)

Pakistan's Water Concerns
Pakistan's Water ConcernsPakistan's Water Concerns
Pakistan's Water Concerns
 
Pak india water issue
Pak   india water issuePak   india water issue
Pak india water issue
 
Indus Water Treaty
Indus Water TreatyIndus Water Treaty
Indus Water Treaty
 
Google file system
Google file systemGoogle file system
Google file system
 
Big Data: Getting started with Big SQL self-study guide
Big Data:  Getting started with Big SQL self-study guideBig Data:  Getting started with Big SQL self-study guide
Big Data: Getting started with Big SQL self-study guide
 
Database management system of facebook
Database management system of facebookDatabase management system of facebook
Database management system of facebook
 
FHIR for Architects and Developers - New Zealand Seminar, June 2014
FHIR for Architects and Developers - New Zealand Seminar, June 2014FHIR for Architects and Developers - New Zealand Seminar, June 2014
FHIR for Architects and Developers - New Zealand Seminar, June 2014
 
indus water treaty
indus water treatyindus water treaty
indus water treaty
 
memory management of windows vs linux
memory management of windows vs linuxmemory management of windows vs linux
memory management of windows vs linux
 
CS6401 OPERATING SYSTEMS Unit 3
CS6401 OPERATING SYSTEMS Unit 3CS6401 OPERATING SYSTEMS Unit 3
CS6401 OPERATING SYSTEMS Unit 3
 
Disaster Recovery using Spectrum Scale Active File Management
Disaster Recovery using Spectrum Scale Active File ManagementDisaster Recovery using Spectrum Scale Active File Management
Disaster Recovery using Spectrum Scale Active File Management
 
A pre study for selecting a supplier relationship management tool
A pre study for selecting a supplier relationship management toolA pre study for selecting a supplier relationship management tool
A pre study for selecting a supplier relationship management tool
 
Ch10: Virtual Memory
Ch10: Virtual MemoryCh10: Virtual Memory
Ch10: Virtual Memory
 
data replication
data replicationdata replication
data replication
 
Load Balancing Server
Load Balancing ServerLoad Balancing Server
Load Balancing Server
 
Cache memory
Cache memoryCache memory
Cache memory
 
Memory virtualization
Memory virtualizationMemory virtualization
Memory virtualization
 
Unit 01 dbms
Unit 01 dbmsUnit 01 dbms
Unit 01 dbms
 
Chapter 4 configuring and managing the dns server role
Chapter 4   configuring and managing the dns server roleChapter 4   configuring and managing the dns server role
Chapter 4 configuring and managing the dns server role
 
Database ,14 Parallel DBMS
Database ,14 Parallel DBMSDatabase ,14 Parallel DBMS
Database ,14 Parallel DBMS
 

Similaire à Database engineering

A Reference Architecture to Enable Visibility and Traceability across the Ent...
A Reference Architecture to Enable Visibility and Traceability across the Ent...A Reference Architecture to Enable Visibility and Traceability across the Ent...
A Reference Architecture to Enable Visibility and Traceability across the Ent...
CollabNet
 
Lessons Learned from Building an Enterprise Big Data Platform from the Ground...
Lessons Learned from Building an Enterprise Big Data Platform from the Ground...Lessons Learned from Building an Enterprise Big Data Platform from the Ground...
Lessons Learned from Building an Enterprise Big Data Platform from the Ground...
DataWorks Summit
 

Similaire à Database engineering (20)

Velocity pythian operational visibility
Velocity pythian operational visibilityVelocity pythian operational visibility
Velocity pythian operational visibility
 
Pythian operational visibility
Pythian operational visibilityPythian operational visibility
Pythian operational visibility
 
Does Big Data Spell Big Costs- Impetus Webinar
Does Big Data Spell Big Costs- Impetus WebinarDoes Big Data Spell Big Costs- Impetus Webinar
Does Big Data Spell Big Costs- Impetus Webinar
 
How IT Pros Can Get and Stay Relevant in the Cloud
How IT Pros Can Get and Stay Relevant in the CloudHow IT Pros Can Get and Stay Relevant in the Cloud
How IT Pros Can Get and Stay Relevant in the Cloud
 
apidays LIVE Paris 2021 - Synchronous Communication Patterns by Sébastien Ber...
apidays LIVE Paris 2021 - Synchronous Communication Patterns by Sébastien Ber...apidays LIVE Paris 2021 - Synchronous Communication Patterns by Sébastien Ber...
apidays LIVE Paris 2021 - Synchronous Communication Patterns by Sébastien Ber...
 
[Christopher Ngo] Intro DevOPS XP Day 2015
[Christopher Ngo] Intro DevOPS XP Day 2015[Christopher Ngo] Intro DevOPS XP Day 2015
[Christopher Ngo] Intro DevOPS XP Day 2015
 
Geode Meetup Apachecon
Geode Meetup ApacheconGeode Meetup Apachecon
Geode Meetup Apachecon
 
SAP TechEd 2013 session Tec118 managing your-environment
SAP TechEd 2013 session Tec118 managing your-environmentSAP TechEd 2013 session Tec118 managing your-environment
SAP TechEd 2013 session Tec118 managing your-environment
 
Microservices as an evolutionary architecture: lessons learned
Microservices as an evolutionary architecture: lessons learnedMicroservices as an evolutionary architecture: lessons learned
Microservices as an evolutionary architecture: lessons learned
 
TEC118 – How Do You Manage the Configuration of Your Environments from Metal ...
TEC118 –How Do You Manage the Configuration of Your Environments from Metal ...TEC118 –How Do You Manage the Configuration of Your Environments from Metal ...
TEC118 – How Do You Manage the Configuration of Your Environments from Metal ...
 
A Reference Architecture to Enable Visibility and Traceability across the Ent...
A Reference Architecture to Enable Visibility and Traceability across the Ent...A Reference Architecture to Enable Visibility and Traceability across the Ent...
A Reference Architecture to Enable Visibility and Traceability across the Ent...
 
Adopting the Cloud
Adopting the CloudAdopting the Cloud
Adopting the Cloud
 
Building Scalable High Availability Systems using MySQL Fabric
Building Scalable High Availability Systems using MySQL FabricBuilding Scalable High Availability Systems using MySQL Fabric
Building Scalable High Availability Systems using MySQL Fabric
 
Wie macht man aus Software einen Online-Service in der Cloud
Wie macht man aus Software einen Online-Service in der CloudWie macht man aus Software einen Online-Service in der Cloud
Wie macht man aus Software einen Online-Service in der Cloud
 
Scaling Application Development & Delivery across the Enterprise
Scaling Application Development & Delivery across the EnterpriseScaling Application Development & Delivery across the Enterprise
Scaling Application Development & Delivery across the Enterprise
 
Abhijit_Saurabh_Resume
Abhijit_Saurabh_ResumeAbhijit_Saurabh_Resume
Abhijit_Saurabh_Resume
 
A Tighter Weave – How YARN Changes the Data Quality Game
A Tighter Weave – How YARN Changes the Data Quality GameA Tighter Weave – How YARN Changes the Data Quality Game
A Tighter Weave – How YARN Changes the Data Quality Game
 
Lessons Learned from Building an Enterprise Big Data Platform from the Ground...
Lessons Learned from Building an Enterprise Big Data Platform from the Ground...Lessons Learned from Building an Enterprise Big Data Platform from the Ground...
Lessons Learned from Building an Enterprise Big Data Platform from the Ground...
 
Best practices for application migration to public clouds interop presentation
Best practices for application migration to public clouds interop presentationBest practices for application migration to public clouds interop presentation
Best practices for application migration to public clouds interop presentation
 
Role of a Solution Architect-1.pptx
Role of a Solution Architect-1.pptxRole of a Solution Architect-1.pptx
Role of a Solution Architect-1.pptx
 

Plus de Laine Campbell

An Introduction To Palomino
An Introduction To PalominoAn Introduction To Palomino
An Introduction To Palomino
Laine Campbell
 
Hybrid my sql_hadoop_datawarehouse
Hybrid my sql_hadoop_datawarehouseHybrid my sql_hadoop_datawarehouse
Hybrid my sql_hadoop_datawarehouse
Laine Campbell
 
Methods of Sharding MySQL
Methods of Sharding MySQLMethods of Sharding MySQL
Methods of Sharding MySQL
Laine Campbell
 
CouchConf SF 2012 Lightning Talk - Operational Excellence
CouchConf SF 2012 Lightning Talk - Operational ExcellenceCouchConf SF 2012 Lightning Talk - Operational Excellence
CouchConf SF 2012 Lightning Talk - Operational Excellence
Laine Campbell
 

Plus de Laine Campbell (9)

Recruiting for diversity in tech
Recruiting for diversity in techRecruiting for diversity in tech
Recruiting for diversity in tech
 
Scaling MySQL in Amazon Web Services
Scaling MySQL in Amazon Web ServicesScaling MySQL in Amazon Web Services
Scaling MySQL in Amazon Web Services
 
RDS for MySQL, No BS Operations and Patterns
RDS for MySQL, No BS Operations and PatternsRDS for MySQL, No BS Operations and Patterns
RDS for MySQL, No BS Operations and Patterns
 
Running MySQL in AWS
Running MySQL in AWSRunning MySQL in AWS
Running MySQL in AWS
 
An Introduction To Palomino
An Introduction To PalominoAn Introduction To Palomino
An Introduction To Palomino
 
Hybrid my sql_hadoop_datawarehouse
Hybrid my sql_hadoop_datawarehouseHybrid my sql_hadoop_datawarehouse
Hybrid my sql_hadoop_datawarehouse
 
Methods of Sharding MySQL
Methods of Sharding MySQLMethods of Sharding MySQL
Methods of Sharding MySQL
 
CouchConf SF 2012 Lightning Talk - Operational Excellence
CouchConf SF 2012 Lightning Talk - Operational ExcellenceCouchConf SF 2012 Lightning Talk - Operational Excellence
CouchConf SF 2012 Lightning Talk - Operational Excellence
 
Understanding MySQL Performance through Benchmarking
Understanding MySQL Performance through BenchmarkingUnderstanding MySQL Performance through Benchmarking
Understanding MySQL Performance through Benchmarking
 

Dernier

➥🔝 7737669865 🔝▻ Bangalore Call-girls in Women Seeking Men 🔝Bangalore🔝 Esc...
➥🔝 7737669865 🔝▻ Bangalore Call-girls in Women Seeking Men  🔝Bangalore🔝   Esc...➥🔝 7737669865 🔝▻ Bangalore Call-girls in Women Seeking Men  🔝Bangalore🔝   Esc...
➥🔝 7737669865 🔝▻ Bangalore Call-girls in Women Seeking Men 🔝Bangalore🔝 Esc...
amitlee9823
 
Call Girls Hsr Layout Just Call 👗 7737669865 👗 Top Class Call Girl Service Ba...
Call Girls Hsr Layout Just Call 👗 7737669865 👗 Top Class Call Girl Service Ba...Call Girls Hsr Layout Just Call 👗 7737669865 👗 Top Class Call Girl Service Ba...
Call Girls Hsr Layout Just Call 👗 7737669865 👗 Top Class Call Girl Service Ba...
amitlee9823
 
Abortion pills in Jeddah | +966572737505 | Get Cytotec
Abortion pills in Jeddah | +966572737505 | Get CytotecAbortion pills in Jeddah | +966572737505 | Get Cytotec
Abortion pills in Jeddah | +966572737505 | Get Cytotec
Abortion pills in Riyadh +966572737505 get cytotec
 
Vip Mumbai Call Girls Marol Naka Call On 9920725232 With Body to body massage...
Vip Mumbai Call Girls Marol Naka Call On 9920725232 With Body to body massage...Vip Mumbai Call Girls Marol Naka Call On 9920725232 With Body to body massage...
Vip Mumbai Call Girls Marol Naka Call On 9920725232 With Body to body massage...
amitlee9823
 
➥🔝 7737669865 🔝▻ malwa Call-girls in Women Seeking Men 🔝malwa🔝 Escorts Ser...
➥🔝 7737669865 🔝▻ malwa Call-girls in Women Seeking Men  🔝malwa🔝   Escorts Ser...➥🔝 7737669865 🔝▻ malwa Call-girls in Women Seeking Men  🔝malwa🔝   Escorts Ser...
➥🔝 7737669865 🔝▻ malwa Call-girls in Women Seeking Men 🔝malwa🔝 Escorts Ser...
amitlee9823
 
Call Girls Bannerghatta Road Just Call 👗 7737669865 👗 Top Class Call Girl Ser...
Call Girls Bannerghatta Road Just Call 👗 7737669865 👗 Top Class Call Girl Ser...Call Girls Bannerghatta Road Just Call 👗 7737669865 👗 Top Class Call Girl Ser...
Call Girls Bannerghatta Road Just Call 👗 7737669865 👗 Top Class Call Girl Ser...
amitlee9823
 
Call Girls In Doddaballapur Road ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Doddaballapur Road ☎ 7737669865 🥵 Book Your One night StandCall Girls In Doddaballapur Road ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Doddaballapur Road ☎ 7737669865 🥵 Book Your One night Stand
amitlee9823
 
Jual Obat Aborsi Surabaya ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Surabaya ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...Jual Obat Aborsi Surabaya ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Surabaya ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
ZurliaSoop
 
Call Girls Jalahalli Just Call 👗 7737669865 👗 Top Class Call Girl Service Ban...
Call Girls Jalahalli Just Call 👗 7737669865 👗 Top Class Call Girl Service Ban...Call Girls Jalahalli Just Call 👗 7737669865 👗 Top Class Call Girl Service Ban...
Call Girls Jalahalli Just Call 👗 7737669865 👗 Top Class Call Girl Service Ban...
amitlee9823
 
Abortion pills in Doha Qatar (+966572737505 ! Get Cytotec
Abortion pills in Doha Qatar (+966572737505 ! Get CytotecAbortion pills in Doha Qatar (+966572737505 ! Get Cytotec
Abortion pills in Doha Qatar (+966572737505 ! Get Cytotec
Abortion pills in Riyadh +966572737505 get cytotec
 
Call Girls In Shivaji Nagar ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Shivaji Nagar ☎ 7737669865 🥵 Book Your One night StandCall Girls In Shivaji Nagar ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Shivaji Nagar ☎ 7737669865 🥵 Book Your One night Stand
amitlee9823
 
Call Girls In Bellandur ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Bellandur ☎ 7737669865 🥵 Book Your One night StandCall Girls In Bellandur ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Bellandur ☎ 7737669865 🥵 Book Your One night Stand
amitlee9823
 
Call Girls Bommasandra Just Call 👗 7737669865 👗 Top Class Call Girl Service B...
Call Girls Bommasandra Just Call 👗 7737669865 👗 Top Class Call Girl Service B...Call Girls Bommasandra Just Call 👗 7737669865 👗 Top Class Call Girl Service B...
Call Girls Bommasandra Just Call 👗 7737669865 👗 Top Class Call Girl Service B...
amitlee9823
 
Just Call Vip call girls roorkee Escorts ☎️9352988975 Two shot with one girl ...
Just Call Vip call girls roorkee Escorts ☎️9352988975 Two shot with one girl ...Just Call Vip call girls roorkee Escorts ☎️9352988975 Two shot with one girl ...
Just Call Vip call girls roorkee Escorts ☎️9352988975 Two shot with one girl ...
gajnagarg
 

Dernier (20)

➥🔝 7737669865 🔝▻ Bangalore Call-girls in Women Seeking Men 🔝Bangalore🔝 Esc...
➥🔝 7737669865 🔝▻ Bangalore Call-girls in Women Seeking Men  🔝Bangalore🔝   Esc...➥🔝 7737669865 🔝▻ Bangalore Call-girls in Women Seeking Men  🔝Bangalore🔝   Esc...
➥🔝 7737669865 🔝▻ Bangalore Call-girls in Women Seeking Men 🔝Bangalore🔝 Esc...
 
Call Girls Hsr Layout Just Call 👗 7737669865 👗 Top Class Call Girl Service Ba...
Call Girls Hsr Layout Just Call 👗 7737669865 👗 Top Class Call Girl Service Ba...Call Girls Hsr Layout Just Call 👗 7737669865 👗 Top Class Call Girl Service Ba...
Call Girls Hsr Layout Just Call 👗 7737669865 👗 Top Class Call Girl Service Ba...
 
Detecting Credit Card Fraud: A Machine Learning Approach
Detecting Credit Card Fraud: A Machine Learning ApproachDetecting Credit Card Fraud: A Machine Learning Approach
Detecting Credit Card Fraud: A Machine Learning Approach
 
Abortion pills in Jeddah | +966572737505 | Get Cytotec
Abortion pills in Jeddah | +966572737505 | Get CytotecAbortion pills in Jeddah | +966572737505 | Get Cytotec
Abortion pills in Jeddah | +966572737505 | Get Cytotec
 
Vip Mumbai Call Girls Marol Naka Call On 9920725232 With Body to body massage...
Vip Mumbai Call Girls Marol Naka Call On 9920725232 With Body to body massage...Vip Mumbai Call Girls Marol Naka Call On 9920725232 With Body to body massage...
Vip Mumbai Call Girls Marol Naka Call On 9920725232 With Body to body massage...
 
➥🔝 7737669865 🔝▻ malwa Call-girls in Women Seeking Men 🔝malwa🔝 Escorts Ser...
➥🔝 7737669865 🔝▻ malwa Call-girls in Women Seeking Men  🔝malwa🔝   Escorts Ser...➥🔝 7737669865 🔝▻ malwa Call-girls in Women Seeking Men  🔝malwa🔝   Escorts Ser...
➥🔝 7737669865 🔝▻ malwa Call-girls in Women Seeking Men 🔝malwa🔝 Escorts Ser...
 
Call Girls Bannerghatta Road Just Call 👗 7737669865 👗 Top Class Call Girl Ser...
Call Girls Bannerghatta Road Just Call 👗 7737669865 👗 Top Class Call Girl Ser...Call Girls Bannerghatta Road Just Call 👗 7737669865 👗 Top Class Call Girl Ser...
Call Girls Bannerghatta Road Just Call 👗 7737669865 👗 Top Class Call Girl Ser...
 
Call Girls In Doddaballapur Road ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Doddaballapur Road ☎ 7737669865 🥵 Book Your One night StandCall Girls In Doddaballapur Road ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Doddaballapur Road ☎ 7737669865 🥵 Book Your One night Stand
 
Predicting Loan Approval: A Data Science Project
Predicting Loan Approval: A Data Science ProjectPredicting Loan Approval: A Data Science Project
Predicting Loan Approval: A Data Science Project
 
Jual Obat Aborsi Surabaya ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Surabaya ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...Jual Obat Aborsi Surabaya ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Surabaya ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
 
Call Girls Jalahalli Just Call 👗 7737669865 👗 Top Class Call Girl Service Ban...
Call Girls Jalahalli Just Call 👗 7737669865 👗 Top Class Call Girl Service Ban...Call Girls Jalahalli Just Call 👗 7737669865 👗 Top Class Call Girl Service Ban...
Call Girls Jalahalli Just Call 👗 7737669865 👗 Top Class Call Girl Service Ban...
 
Abortion pills in Doha Qatar (+966572737505 ! Get Cytotec
Abortion pills in Doha Qatar (+966572737505 ! Get CytotecAbortion pills in Doha Qatar (+966572737505 ! Get Cytotec
Abortion pills in Doha Qatar (+966572737505 ! Get Cytotec
 
SAC 25 Final National, Regional & Local Angel Group Investing Insights 2024 0...
SAC 25 Final National, Regional & Local Angel Group Investing Insights 2024 0...SAC 25 Final National, Regional & Local Angel Group Investing Insights 2024 0...
SAC 25 Final National, Regional & Local Angel Group Investing Insights 2024 0...
 
5CL-ADBA,5cladba, Chinese supplier, safety is guaranteed
5CL-ADBA,5cladba, Chinese supplier, safety is guaranteed5CL-ADBA,5cladba, Chinese supplier, safety is guaranteed
5CL-ADBA,5cladba, Chinese supplier, safety is guaranteed
 
Call Girls In Shivaji Nagar ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Shivaji Nagar ☎ 7737669865 🥵 Book Your One night StandCall Girls In Shivaji Nagar ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Shivaji Nagar ☎ 7737669865 🥵 Book Your One night Stand
 
Call Girls In Bellandur ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Bellandur ☎ 7737669865 🥵 Book Your One night StandCall Girls In Bellandur ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Bellandur ☎ 7737669865 🥵 Book Your One night Stand
 
Call Girls Bommasandra Just Call 👗 7737669865 👗 Top Class Call Girl Service B...
Call Girls Bommasandra Just Call 👗 7737669865 👗 Top Class Call Girl Service B...Call Girls Bommasandra Just Call 👗 7737669865 👗 Top Class Call Girl Service B...
Call Girls Bommasandra Just Call 👗 7737669865 👗 Top Class Call Girl Service B...
 
Just Call Vip call girls roorkee Escorts ☎️9352988975 Two shot with one girl ...
Just Call Vip call girls roorkee Escorts ☎️9352988975 Two shot with one girl ...Just Call Vip call girls roorkee Escorts ☎️9352988975 Two shot with one girl ...
Just Call Vip call girls roorkee Escorts ☎️9352988975 Two shot with one girl ...
 
Aspirational Block Program Block Syaldey District - Almora
Aspirational Block Program Block Syaldey District - AlmoraAspirational Block Program Block Syaldey District - Almora
Aspirational Block Program Block Syaldey District - Almora
 
DATA SUMMIT 24 Building Real-Time Pipelines With FLaNK
DATA SUMMIT 24  Building Real-Time Pipelines With FLaNKDATA SUMMIT 24  Building Real-Time Pipelines With FLaNK
DATA SUMMIT 24 Building Real-Time Pipelines With FLaNK
 

Database engineering

  • 1. Database Engineering Velocity Conference, Santa Clara Laine Campbell, Chief Unicorn May 28th, 2015
  • 2. content © 2014 Pythian ● reliability and operations engineering - history and context ● design - architecture and objectives ● deploy - delivery pipelines, capacity and automation ● maintain - data stewardship, business continuity and change
  • 5. © 2014 Pythian ● first of a series ● focuses on operations engineering for DBEs ● laine gives perfectionist and enterprise focus ● charity gives real world start-up view ● crazy breakdancing
  • 6. © 2014 Pythian O’Reilly doesn’t allow unicorns on their covers in early release by OSCONF Portland
  • 7. © 2014 Pythian me with a jaguar…
  • 9. engineering © 2014 Pythian ● quantitative ● interdisciplinary ● results focused ● repeatable and code-driven
  • 10. systems engineering © 2014 Pythian ● designing and managing complex systems for complete life-cycle ● translation from business to system, with focus on communications, resiliency, flexibility and interoperability ● ensuring the system generates necessary data for measuring its performance against KPIs
  • 11. operations engineering © 2014 Pythian ● allocate resources to balance competing objectives of cost, service level and productivity ● designing and building processes and infrastructure to maintain peak flexibility and quality to serve the business ● gathering and utilizing data to effectively provide continuous improvement to systems
  • 12. database engineering © 2014 Pythian ● participates in systems and operations engineering processes by providing expertise to facilitate all work ● understands and teaches dataset nuances to ensure all KPIs are met ● anchors teams with expertise for troubleshooting, recovery and other tasks requiring depth, not breadth
  • 13. reliability engineering © 2014 Pythian ● focuses on the glue common to all services, platform- centric ● deployment, efficiency, scale, performance, observability ● often done by systems and operations engineering, rather than being their own function
  • 14. yesterday’s DBA © 2014 Pythian ● gatekeeper ● master builder ● superhero ● siloed ● specialized
  • 16. virtualization and cloud © 2014 Pythian ● forces horizontal scaling ● forces designing for resilience ● elasticity drives new data storage ● management by API
  • 17. infrastructure as code © 2014 Pythian ● forces standardization ● forces us to learn to code ● we start building platforms ● changes become deployments
  • 18. devops cultures © 2014 Pythian ● lean manufacturing defines our workflows ● tighter feedback loops require organizational shifts ● experimentation and controlled failure shift architecture and process design ● integration drives empathy
  • 19. continuous delivery © 2014 Pythian ● brings us to the source code control paradigm ● we must be teachers, not gatekeepers ● testing and compliance become top priorities
  • 20. polyglot persistence © 2014 Pythian ● relational is not the end of the line ● data must be looked at end to end ● function dictates form ● we cannot predict all uses
  • 22. specialty = depth © 2014 Pythian ● analytical thinking ● problem solving ● edge case knowledge ● exhibited in at least one system ○ MySQL/Solaris ○ Cassandra/RHEL ○ PostgreSQL/Windows
  • 23. breadth, crossing disciplines © 2014 Pythian ● understands core concepts ● can communicate with experts ● apply knowledge to intersection with core disciplines ● database engineers need: ○ TCP/IP networking concepts ○ scripting ○ virtualization, automation and orchestration
  • 24. db engineer’s manifesto © 2014 Pythian ● its about the mission ● protect the data ● eliminate waste ● data-driven decision making ● databases are not special ● eliminate the barriers between software and ops
  • 27. what do we design for? © 2014 Pythian ● mission KPIs ● function, not form ● operational processes and management
  • 28. designing for the business © 2014 Pythian velocity efficiency security performance availability https://derpicdn.net/img/view/2012/8/3/65841__safe_fluttershy_tank_scooter_artist-colon-giantmosquito_tortoise_vespa.jpg
  • 29. velocity © 2014 Pythian velocity ● how fragile is the datastore? ● what features allow for rapid change? ● how rapidly can fallback be performed? ● does it integrate with CD pipelines? ● how rapidly can developers learn to use it?
  • 30. efficiency © 2014 Pythian velocity efficiency ● how elastic is the datastore? ● how configurable is resource allocation? ● does the datastore require vendor lock-in? ● can we measure our cost per transaction?
  • 31. security © 2014 Pythian velocity ● is there robust and granular user management? ● is there an audit trail? ● is data and connection encryption supported? ● history of vulnerabilities? efficiency security
  • 32. performance © 2014 Pythian velocity efficiency security performance ● how does the datastore handle concurrency? large data size per node? ● at what points do consistency requirements get violated? ● what are the performance curves and cliffs at scale? ● how tunable and instrumented is the datastore?
  • 33. availability © 2014 Pythian velocity efficiency security performance availability ● what are the single points of failure? ● can you take consistent backups? ● how are network partitions handled, and recovered from? ● is failure and rebalancing built in, or do you have to build it? ● how do node, partition and system failures impact consistency?
  • 34. choosing your datastore(s) © 2014 Pythian “partitions always occur, whether from network outages or overload of components” “design for performance, consistency, durability and availability, and make tradeoffs along the way”
  • 35. polyglot love © 2014 Pythian so, how do we classify and choose our datastores? traditional relational stores (RDBMS): ● e.f. codd’s 12 rules of relations ○ simplified to tables with key relationships and constraints ● SQL accessible ● ACID levels ○ consistency and isolation may be tunable, or fuzzy
  • 36. distributed DBMS functionality © 2014 Pythian relational? strict EF Codd limited key/value JSON/BSON data access language SQL mapreduce SQLesque (ie CQL) custom atomicity strict ACID node only cluster level specific ops Only consistency (ACID) strict ACID (three rules) distributed (quorum) eventual, weak (w/conflict res.) eventual, strong (i. e CRDT) isolation strict ACID relaxed isolation durability strict ACID relaxed durability Write Repair availability one writer:many readers write:read anywhere allow lagged read partition tolerance shut down whole cluster shut down minority read only minority continue in parallel
  • 37. understanding the spectrum © 2014 Pythian compromise reason tunable example availability consistency boolean replica out of service durability latency yes disk flush intervals partition tolerance availability yes read only minority isolation concurrency yes dirty reads allowed consistency performance yes quorums, CRDT
  • 38. designing for operations © 2014 Pythian component patterns anti-patterns configuration mgmt config files, APIs in-memory changes, binaries degradation mgmt read-only modes, queue draining, timeouts, dynamic configuration changes bad defaults, long timeouts, static configurations change mgmt online changes, fast alters, atomic operations, instrumented DDL, data dictionaries lack of data governance, table and schema level locking, config based DDL elasticity auto session failover, pre-load cache, easy node add/removes, auto- registration cold cache, slow starts, complicated member management, impactful hash redistribution
  • 39. designing for operations (cont.) © 2014 Pythian component patterns anti-patterns availability online backups, incremental backups, auto- failover, auto-registration, read/write anywhere, rate limits single points of failure, common partitions, cold backups, complicated registration, special snowflakes instrumentation good data dictionary, comprehensive status instrumentation, APIs, dynamic logging levels, audit trails, documentation lack of documentation, lack of API, minimal status management, no plugins for common tooling security granular access controls, encryption options, audit trails, ldap integration, granular privileges, policy enforcement, SSL no roles, no object level permissions, no encryption, no SSL, no audit/access logging
  • 40. designing for operations (cont.) © 2014 Pythian component patterns anti-patterns support extensive documentation, user community, responsive vendor, transparent bug databases, active committers, exception collection, clean source code opposites of ←-
  • 41. disciplines and systems © 2014 Pythian discipline concept systems operating system concepts disk, virtual and network I/O linux, solaris, windows, etc... kernel behaviors networking tcp/ip core theory and constructs network services dhcp, dns, load balancing distributed systems dynamo based stores riak, cassandra, voldemort hadoop and mapreduce hadoop, hbase, hive document stores mongodb, couchbase shared state engines zookeeper, consul
  • 42. a day in the life... © 2014 Pythian ● selecting datastores to add to production platform catalogs ● dbms and feature education to software, systems and operations engineers ● integrating with company-wide services
  • 43. a day in the life... © 2014 Pythian ● validating acceptable configurations ● testing and benchmarking new versions, features and configurations ● documenting and sharing standards
  • 45. deploying infrastructure © 2014 Pythian ● configuration management ● orchestration ● test automation ● self-service to the team
  • 46. defining “done” © 2014 Pythian ● standards and documentation of acceptable use ● integration into operational visibility platforms ● playbooks for operations staff ● repeatable tests, manual and automated to verify quality
  • 47. deploying software © 2014 Pythian ● agile participation with developers ● using version control for schemas and metadata ● more flexible data model approaches ● teach your engineering teams how to assess risk, performance and impact
  • 48. disciplines and systems © 2014 Pythian discipline concept systems config mgmt and orchestration building playbooks/recipes chef, puppet, ansible... scripting python, ruby, etc... virtualization, cloud architecture basics compute, storage, network etc... operational visibility core components, writing checks, etc... sensu, graphite, ELK, grafana, etc... statistics, anomaly tests moving averages, predictive analytics test Infrastructures testing theory/principles jenkins, travis, code repo etc... scripting, automation jenkins, travis, code repo etc...
  • 49. disciplines and systems (cont) © 2014 Pythian discipline concept systems agile Software Development requirements, epics, stories any tool… process any tool… . software repositories checking out, coding, integration github, bitbucket etc...
  • 50. DEV OPS database engineers: O.G. devops © 2014 Pythian DBA DEV OPS DBE shared goals, tools and processes
  • 51. a day in the life... © 2014 Pythian ● attending scrums, grooming and planning ● committing DDL and DML to the codebase ● monitoring automated builds and tests, performing manual ones
  • 52. a day in the life… (cont) © 2014 Pythian ● providing new or modified recipes for CM and automation ● pairing with, and teaching engineers, iterating on the schema
  • 54. maintaining the datastores © 2014 Pythian ● maintaining dataflow ● backup and recovery ● change management ● incident management ● capacity planning
  • 55. dataflow © 2014 Pythian ● lambda architectures ○ data backbones: pubsub ○ batch processing ○ hadoop ● cache population, use, and flushing ● search stores
  • 56. backup and recovery © 2014 Pythian ● this has not changed, we live and die by the safety of our data ● borrow ideas of continuous deployment, for continuous recovery testing ● build backup and recovery into every possible process
  • 57. change management © 2014 Pythian ● business velocity often demands that developers and DBEs work together to assess risk, rather than gate keep ● where possible, we are pushing changes through code deployments and automated scripting ● immutable architectures will force us to create change at the template layer and redeploy
  • 58. incident management © 2014 Pythian ● where possible, we are identifying items in need of work before they become problems ● we sometimes share pagers with ops and dev groups, often as tier 2 escalation
  • 59. a day in the life... © 2014 Pythian ● reviewing current workloads and tuning ● managing escalations on DB issues ● continuous improvement ● writing, testing and performing change plans as part of the deployment process