SlideShare a Scribd company logo
Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB
I'm Jean-Jérôme from the Severalnines Team and
I'm your host for today's webinar!
Feel free to ask any questions in the Questions
section of this application or via the Chat box.
You can also contact me directly via the chat box or
via email: jj@severalnines.com during or after
the webinar.
Your host & some logistics
Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB
About Severalnines and ClusterControl
Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB
What we do
Manage Scale
MonitorDeploy
Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB
● Provisioning
○ Deploy a cluster in minutes
○ On-premises or in the cloud (AWS)
● Monitoring
○ Systems view
○ 1sec resolution
○ DB / OS stats & performance
advisors
○ Configurable dashboards
○ Query Analyzer
○ Real-time / historical
ClusterControl Automation & Management
● Management
○ Multi cluster/data-center
○ Automate repair/recovery
○ Database upgrades
○ Backups
○ Configuration management
○ Cloning
○ One-click scaling
Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB
Supported Databases
Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB
Customers
Copyright 2017 Severalnines AB
DevOps Tutorial
July, 18th 2017
‘How to Automate Your Database Infrastructure’
Riaan Nolan, Devops Lead @Mukuru.com
Presenter
riaan@mukuru.com
Art van Scheppingen, Senior Support Engineer @Severalnines
Presenter
art@severalnines.com
Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB
● DevOps and databases - what are the challenges
● Managing databases in a DevOps environment
● Data distribution
● Cloud Automation on AWS
● Demo of DevOps features in ClusterControl
Agenda
Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB
Devops and Databases - What are the Challenges?
Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB
● Collaboration and communication between Dev and Ops
○ Change in culture and environment
○ Work closely together
● More (frequent) development cycles
A different approach to Development and Ops
Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB
● RDBMS databases are mostly built around securing the integrity of the data
○ Schema changes are slow and will create locks
○ Frequent changes will inevitably cause production issues
● NoSQL databases have schemaless design
○ Trade off of flexibility over consistency
How do databases fit in DevOps?
Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB
● DevOps roles are less clearly defined
○ Developer is now involved in operations
○ Ops is now actively involved in development release cycles
○ The whole team shares responsibility over the application
● A DBA is a too specialized role
○ Collaborative role between developers and ops
○ Developer will drive initiative, changes and performance
○ Ops will handle consistency and security
Where does the DBA fit in DevOps?
Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB
● Deployment automation for frequent release cycles
○ Continuous deployment needs quick environment deployments
○ Full environment also requires database copies
● Incompatibility between databases and microservices
○ Microservices have a shared nothing architecture
○ Databases generally have a relational schema
● Collaboration
○ Communication is key
○ Every team member needs to be up to date at all times
○ Collaboration tools can help
What challenges are there for Databases and DevOps?
Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB
● Get all credentials in code, whether you manage the resource or not.
- Start by getting access to the resources your are to manage.
- Store these details encrypted.
- Share/Transfer/Make available these credentials securely
● Weird code being deployed, causing outages or undesired performance degradation.
- Developers can push code that cause outages and performance degradation, I use Newrelic,
Cloudwatch, Kibana for high level performance dashboards.
● Once you do have this resource under DevOps control, how do you present it to the app?
- Capistrano, Puppet and Composer for example can write config files, I use a combination of
Capistrano executing Composer that use DotEnv https://github.com/vlucas/phpdotenv
● Alerting, who’s responsible (and able) to get up at 3am and solve a complex outage, caused by
code, you have no knowledge of, pending on application versions you have no authority to
deploy or commit to? Feedback loops?
- Slack, Collectd, Kibana, New Relic, Cloudwatch
What are the challenges
Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB
Managing Databases in a DevOps environment
Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB
● Microservices are very popular among DevOps
○ Easy to deploy
○ Strong cohesion
○ Loose coupling
● Shared-nothing databases
○ Simple schema designs
○ Interchangeable with any other storage system
● How to join data between microservices?
The impact of microservice architectures
Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB
● Direct querying creates a dependency between
them
○ Any change to the schema could make the
depending microservice to fail
○ Any infrastructural change needs to be
propagated to the depending mircoservice
○ Duplicated configurations can get out of sync
How to join data between microservices?
Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB
● The only proper way would be by making a request to
the API
○ In case of a slow response or error the
microservice should be resilient
○ Generic error handling can be used for multiple
(depending) microservices
○ This creates data layer abstraction
● Microservices can now be independently changed
○ Non-standard datastores can be used
○ Migrations are much easier
How to join data between microservices?
Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB
● Full environment deployments
○ Release development/testing
○ Disaster recovery (testing)
● Automatic database deployments
○ Restore/copy (production) data sets
○ Install necessary packages and helper software
○ Create necessary (application users)
○ Setup load balancers
● Automation frameworks
○ Puppet
○ Chef
○ Ansible
Automated deployments
Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB
● Make sure insights are available for anyone in the team
● Create dashboards around application / services
● Incorporate existing application / service metrics with (detailed) database metrics
○ Correlation of these metrics can help in tracing problems
○ Pre-emptive troubleshooting when (application) latency increases
● Application performance monitoring systems lack database performance metrics
○ No insight in what happens inside the database
○ Only insight from the application point of view
Performance monitoring
Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB
● Rapid and continuous development may lead to many schema changes
● Adding new columns and tables is no problem
○ Altering existing columns will create structural changes
● ORMs are known to generate frequent schema changes
● Not all ORMs can properly handle schema changes in production
○ Requires create / alter rights
○ Applies changes directly to any connection
● Automate using available tools
○ Percona Online Schema Change
○ Gh-ost
Schema changes
Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB
● New versions contain (important) bug fixes and resolve vulnerabilities
○ Upgrade regularly
● Minor version vs major versions
○ Minor versions are in-place replacements
○ Major versions (may) require dumping/loading of data
● Upgrades are routine for sysadmins and DBAs
○ DevOps may not be that experienced
○ Automate as much as possible
● Retain high availability
○ Upgrade slaves first and then promote an upgraded slave to become master
○ Use a proxy to divert traffic from nodes that get upgraded
● Test scenarios through
Version upgrades
Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB
● Microservices should be made resilient against failure
● Topology changes should not result in failure
● Master node fails
○ Slave promotion necessary
○ This may take up to 20 seconds to happen
● Failover handling
○ Configfile: topology discovery and failover has to be handled by the application
○ Resource manager: provides topology to the application, (may) handle failover
○ Load Balancer / Proxy: provides connections to the application and handles failover
Automated failover
Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB
● One of the most important aspects of DevOps is the communication between members
● Improve communication
○ Put people physically in a team?
○ Distributed teams?
○ Enrich communication channels
● ChatOps
○ Integrate (vital) information as metrics, alerts and status
○ Add database commands
○ Pre-deployment backups
○ Schema changes
Chatops integrations
Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB
Data distribution
Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB
● Not all data may be in the same location
○ Multi data center topologies
○ Disaster recovery
○ Uneven (storage) usage
● Sharding will separate data
○ Functional sharding by service separation
○ Horizontal sharding by every growing data
Data locality
Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB
● Microservices abstract (database)
complexity away from the application
● Microservices increases complexity on
infrastructure level
○ Data locality
○ Sharding
○ Schema changes
● Load balancer / proxy will abstract the
infrastructure complexity away
○ Help with maintenance
○ Automatic scaling
Managing data flows
Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB
Cloud Automation on AWS
Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB
Atom is a great IDE for DevOps, developed by https://github.com
https://atom.io
https://atom.io/packages/hiera-eyaml
Using Hiera EYAML, you can encrypt credentials, and store this under version control
Mailvelope is an easy to use PGP client for popular browsers
and email provider to send secure emails
https://www.mailvelope.com/en/
Store and Share credentials Securely
Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB
DotEnv to Autoload credentials, developed by https://github.com/vlucas/phpdotenv
Store and Share credentials Securely continued..
Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB
https://gist.github.com/star3am/d5c84ba4a6a00f6abdb57d1d0a50fac3
Managing DBs in a DevOps environment
Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB
# Hiera hash
profile_mysql::servers:
company-stack-env-role:
endpoint: 'company-stack-env-role.private.vpc'
user: 'root'
password: ENC[PKCS7,MIIBi..==]
# Hiera Eyaml - https://puppet.com/blog/encrypt-your-data-using-hiera-eyaml
databases:
database_env: 'present'
test_database_env: 'absent'
# Set .my.cnf in root with above hira details so we can manage the resources
$servers = hiera_hash('profile_mysql::servers', {})
file { '/root/.my.cnf':
content => template("profile_mysql/root/.my.cnf"),
}
Managing DBs in a DevOps environment
Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB
# Call the defined type to create the DBs
create_resources('profile_mysql::databases', $servers)
# Puppet ERB template profile_mysql/root/.my.cnf
<% @servers.each_pair do |key, value_hash| %>
# use on the command line: mysql --defaults-group-suffix=<%= key %>
[client<%= key %>]
user=<%= value_hash['user'] %>
host=<%= value_hash['endpoint'] %>
password=<%= value_hash['password'] %>
connect_timeout=2
<% end %>
Managing DBs in a DevOps environment
Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB
define profile_mysql::databases (
$profile = $name,
$endpoint,
$user,
$password,
$databases,
) {
$databases.each |$database_data| {
$database = $database_data[0]
$ensure = $database_data[1]
if $ensure == 'present' {
exec { "${ensure}-${profile}-${database}":
unless => "/usr/bin/mysql --defaults-file=/root/.my.cnf --defaults-group-suffix=${profile} -e "show databases;" | grep -q
"${database}" 2>/dev/null",
command => "/usr/bin/mysql --defaults-file=/root/.my.cnf --defaults-group-suffix=${profile} -e "create database
${database};"",
require => Class['mysql::client'],
}
}
Managing DBs in a DevOps environment..
Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB
Demo of DevOps features in ClusterControl
Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB
Q & A
Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB
● Riaan Nolan’s blog on DevOps
http://www.riaannolan.com
● DevOps whitepaper
https://severalnines.com/resources/whitepapers#download_whitepaper/5073
● DevOps @ Severalnines blog
https://severalnines.com/blog?categories=306
● ClusterControl Command Line Interface (CLI)
https://severalnines.com/product/clustercontrol/command-line-client-cli
Additional resources
Copyright 2017 Severalnines AB
Thank You!

More Related Content

Similar to Webinar slides: DevOps Tutorial: how to automate your database infrastructure

Webinar slides: Free Monitoring (on Steroids) for MySQL, MariaDB, PostgreSQL ...
Webinar slides: Free Monitoring (on Steroids) for MySQL, MariaDB, PostgreSQL ...Webinar slides: Free Monitoring (on Steroids) for MySQL, MariaDB, PostgreSQL ...
Webinar slides: Free Monitoring (on Steroids) for MySQL, MariaDB, PostgreSQL ...
Severalnines
 
Webinar slides: How to automate and manage MongoDB & Percona Server for MongoDB
Webinar slides: How to automate and manage MongoDB & Percona Server for MongoDBWebinar slides: How to automate and manage MongoDB & Percona Server for MongoDB
Webinar slides: How to automate and manage MongoDB & Percona Server for MongoDB
Severalnines
 
Cognos Analytics August 2017 Enhancements: 11.0.7 Demos and Q&A with IBM Prod...
Cognos Analytics August 2017 Enhancements: 11.0.7 Demos and Q&A with IBM Prod...Cognos Analytics August 2017 Enhancements: 11.0.7 Demos and Q&A with IBM Prod...
Cognos Analytics August 2017 Enhancements: 11.0.7 Demos and Q&A with IBM Prod...
Senturus
 
OSMC 2017 | Building a Monitoring solution for modern applications by Martin ...
OSMC 2017 | Building a Monitoring solution for modern applications by Martin ...OSMC 2017 | Building a Monitoring solution for modern applications by Martin ...
OSMC 2017 | Building a Monitoring solution for modern applications by Martin ...
NETWAYS
 
DevOps for the DBA- Jax Style!
DevOps for the DBA-  Jax Style!DevOps for the DBA-  Jax Style!
DevOps for the DBA- Jax Style!
Kellyn Pot'Vin-Gorman
 
Implement DevOps Like a Unicorn—Even If You’re Not One
Implement DevOps Like a Unicorn—Even If You’re Not OneImplement DevOps Like a Unicorn—Even If You’re Not One
Implement DevOps Like a Unicorn—Even If You’re Not One
TechWell
 
Cloud Native Applications on Kubernetes: a DevOps Approach
Cloud Native Applications on Kubernetes: a DevOps ApproachCloud Native Applications on Kubernetes: a DevOps Approach
Cloud Native Applications on Kubernetes: a DevOps Approach
Nicola Ferraro
 
Introduction to Azure Functions
Introduction to Azure FunctionsIntroduction to Azure Functions
Introduction to Azure Functions
Marco Parenzan
 
Mongo DB Monitoring - Become a MongoDB DBA
Mongo DB Monitoring - Become a MongoDB DBAMongo DB Monitoring - Become a MongoDB DBA
Mongo DB Monitoring - Become a MongoDB DBA
Severalnines
 
Data Science in Production: Technologies That Drive Adoption of Data Science ...
Data Science in Production: Technologies That Drive Adoption of Data Science ...Data Science in Production: Technologies That Drive Adoption of Data Science ...
Data Science in Production: Technologies That Drive Adoption of Data Science ...
Nir Yungster
 
Continuous Database Delivery - 7/12/2018
Continuous Database Delivery - 7/12/2018Continuous Database Delivery - 7/12/2018
Continuous Database Delivery - 7/12/2018
David P. Moore
 
451 Research: Data Is the Key to Friction in DevOps
451 Research: Data Is the Key to Friction in DevOps451 Research: Data Is the Key to Friction in DevOps
451 Research: Data Is the Key to Friction in DevOps
Delphix
 
Snowflake Automated Deployments / CI/CD Pipelines
Snowflake Automated Deployments / CI/CD PipelinesSnowflake Automated Deployments / CI/CD Pipelines
Snowflake Automated Deployments / CI/CD Pipelines
Drew Hansen
 
#lspe Building a Monitoring Framework using DTrace and MongoDB
#lspe Building a Monitoring Framework using DTrace and MongoDB#lspe Building a Monitoring Framework using DTrace and MongoDB
#lspe Building a Monitoring Framework using DTrace and MongoDB
dan-p-kimmel
 
Should you upgrade your Drupal 7 website or migrate to Drupal 8?
Should you upgrade  your Drupal 7 website or  migrate to Drupal 8? Should you upgrade  your Drupal 7 website or  migrate to Drupal 8?
Should you upgrade your Drupal 7 website or migrate to Drupal 8?
Symetris
 
How to maintain, evolve and maximize the return on your Drupal website invest...
How to maintain, evolve and maximize the return on your Drupal website invest...How to maintain, evolve and maximize the return on your Drupal website invest...
How to maintain, evolve and maximize the return on your Drupal website invest...
Symetris
 
Perforce webinar clear-case_jb[2]
Perforce webinar clear-case_jb[2]Perforce webinar clear-case_jb[2]
Perforce webinar clear-case_jb[2]
Perforce
 
Deep Dive: What's New in NetBackup Appliances 3.1
Deep Dive: What's New in NetBackup Appliances 3.1Deep Dive: What's New in NetBackup Appliances 3.1
Deep Dive: What's New in NetBackup Appliances 3.1
Veritas Technologies LLC
 
Cognos Analytics November 2017 Enhancements: 11.0.8 Demos and Q&A with the IB...
Cognos Analytics November 2017 Enhancements: 11.0.8 Demos and Q&A with the IB...Cognos Analytics November 2017 Enhancements: 11.0.8 Demos and Q&A with the IB...
Cognos Analytics November 2017 Enhancements: 11.0.8 Demos and Q&A with the IB...
Senturus
 
Webinar slides: How to Achieve PCI Compliance for MySQL & MariaDB with Cluste...
Webinar slides: How to Achieve PCI Compliance for MySQL & MariaDB with Cluste...Webinar slides: How to Achieve PCI Compliance for MySQL & MariaDB with Cluste...
Webinar slides: How to Achieve PCI Compliance for MySQL & MariaDB with Cluste...
Severalnines
 

Similar to Webinar slides: DevOps Tutorial: how to automate your database infrastructure (20)

Webinar slides: Free Monitoring (on Steroids) for MySQL, MariaDB, PostgreSQL ...
Webinar slides: Free Monitoring (on Steroids) for MySQL, MariaDB, PostgreSQL ...Webinar slides: Free Monitoring (on Steroids) for MySQL, MariaDB, PostgreSQL ...
Webinar slides: Free Monitoring (on Steroids) for MySQL, MariaDB, PostgreSQL ...
 
Webinar slides: How to automate and manage MongoDB & Percona Server for MongoDB
Webinar slides: How to automate and manage MongoDB & Percona Server for MongoDBWebinar slides: How to automate and manage MongoDB & Percona Server for MongoDB
Webinar slides: How to automate and manage MongoDB & Percona Server for MongoDB
 
Cognos Analytics August 2017 Enhancements: 11.0.7 Demos and Q&A with IBM Prod...
Cognos Analytics August 2017 Enhancements: 11.0.7 Demos and Q&A with IBM Prod...Cognos Analytics August 2017 Enhancements: 11.0.7 Demos and Q&A with IBM Prod...
Cognos Analytics August 2017 Enhancements: 11.0.7 Demos and Q&A with IBM Prod...
 
OSMC 2017 | Building a Monitoring solution for modern applications by Martin ...
OSMC 2017 | Building a Monitoring solution for modern applications by Martin ...OSMC 2017 | Building a Monitoring solution for modern applications by Martin ...
OSMC 2017 | Building a Monitoring solution for modern applications by Martin ...
 
DevOps for the DBA- Jax Style!
DevOps for the DBA-  Jax Style!DevOps for the DBA-  Jax Style!
DevOps for the DBA- Jax Style!
 
Implement DevOps Like a Unicorn—Even If You’re Not One
Implement DevOps Like a Unicorn—Even If You’re Not OneImplement DevOps Like a Unicorn—Even If You’re Not One
Implement DevOps Like a Unicorn—Even If You’re Not One
 
Cloud Native Applications on Kubernetes: a DevOps Approach
Cloud Native Applications on Kubernetes: a DevOps ApproachCloud Native Applications on Kubernetes: a DevOps Approach
Cloud Native Applications on Kubernetes: a DevOps Approach
 
Introduction to Azure Functions
Introduction to Azure FunctionsIntroduction to Azure Functions
Introduction to Azure Functions
 
Mongo DB Monitoring - Become a MongoDB DBA
Mongo DB Monitoring - Become a MongoDB DBAMongo DB Monitoring - Become a MongoDB DBA
Mongo DB Monitoring - Become a MongoDB DBA
 
Data Science in Production: Technologies That Drive Adoption of Data Science ...
Data Science in Production: Technologies That Drive Adoption of Data Science ...Data Science in Production: Technologies That Drive Adoption of Data Science ...
Data Science in Production: Technologies That Drive Adoption of Data Science ...
 
Continuous Database Delivery - 7/12/2018
Continuous Database Delivery - 7/12/2018Continuous Database Delivery - 7/12/2018
Continuous Database Delivery - 7/12/2018
 
451 Research: Data Is the Key to Friction in DevOps
451 Research: Data Is the Key to Friction in DevOps451 Research: Data Is the Key to Friction in DevOps
451 Research: Data Is the Key to Friction in DevOps
 
Snowflake Automated Deployments / CI/CD Pipelines
Snowflake Automated Deployments / CI/CD PipelinesSnowflake Automated Deployments / CI/CD Pipelines
Snowflake Automated Deployments / CI/CD Pipelines
 
#lspe Building a Monitoring Framework using DTrace and MongoDB
#lspe Building a Monitoring Framework using DTrace and MongoDB#lspe Building a Monitoring Framework using DTrace and MongoDB
#lspe Building a Monitoring Framework using DTrace and MongoDB
 
Should you upgrade your Drupal 7 website or migrate to Drupal 8?
Should you upgrade  your Drupal 7 website or  migrate to Drupal 8? Should you upgrade  your Drupal 7 website or  migrate to Drupal 8?
Should you upgrade your Drupal 7 website or migrate to Drupal 8?
 
How to maintain, evolve and maximize the return on your Drupal website invest...
How to maintain, evolve and maximize the return on your Drupal website invest...How to maintain, evolve and maximize the return on your Drupal website invest...
How to maintain, evolve and maximize the return on your Drupal website invest...
 
Perforce webinar clear-case_jb[2]
Perforce webinar clear-case_jb[2]Perforce webinar clear-case_jb[2]
Perforce webinar clear-case_jb[2]
 
Deep Dive: What's New in NetBackup Appliances 3.1
Deep Dive: What's New in NetBackup Appliances 3.1Deep Dive: What's New in NetBackup Appliances 3.1
Deep Dive: What's New in NetBackup Appliances 3.1
 
Cognos Analytics November 2017 Enhancements: 11.0.8 Demos and Q&A with the IB...
Cognos Analytics November 2017 Enhancements: 11.0.8 Demos and Q&A with the IB...Cognos Analytics November 2017 Enhancements: 11.0.8 Demos and Q&A with the IB...
Cognos Analytics November 2017 Enhancements: 11.0.8 Demos and Q&A with the IB...
 
Webinar slides: How to Achieve PCI Compliance for MySQL & MariaDB with Cluste...
Webinar slides: How to Achieve PCI Compliance for MySQL & MariaDB with Cluste...Webinar slides: How to Achieve PCI Compliance for MySQL & MariaDB with Cluste...
Webinar slides: How to Achieve PCI Compliance for MySQL & MariaDB with Cluste...
 

More from Severalnines

Kubernetes at Scale: Going Multi-Cluster with Istio
Kubernetes at Scale:  Going Multi-Cluster  with IstioKubernetes at Scale:  Going Multi-Cluster  with Istio
Kubernetes at Scale: Going Multi-Cluster with Istio
Severalnines
 
DIY DBaaS: A guide to building your own full-featured DBaaS
DIY DBaaS: A guide to building your own full-featured DBaaSDIY DBaaS: A guide to building your own full-featured DBaaS
DIY DBaaS: A guide to building your own full-featured DBaaS
Severalnines
 
Cloud's future runs through Sovereign DBaaS
Cloud's future runs through Sovereign DBaaSCloud's future runs through Sovereign DBaaS
Cloud's future runs through Sovereign DBaaS
Severalnines
 
Tips to drive maria db cluster performance for nextcloud
Tips to drive maria db cluster performance for nextcloudTips to drive maria db cluster performance for nextcloud
Tips to drive maria db cluster performance for nextcloud
Severalnines
 
Working with the Moodle Database: The Basics
Working with the Moodle Database: The BasicsWorking with the Moodle Database: The Basics
Working with the Moodle Database: The Basics
Severalnines
 
SysAdmin Working from Home? Tips to Automate MySQL, MariaDB, Postgres & MongoDB
SysAdmin Working from Home? Tips to Automate MySQL, MariaDB, Postgres & MongoDBSysAdmin Working from Home? Tips to Automate MySQL, MariaDB, Postgres & MongoDB
SysAdmin Working from Home? Tips to Automate MySQL, MariaDB, Postgres & MongoDB
Severalnines
 
(slides) Polyglot persistence: utilizing open source databases as a Swiss poc...
(slides) Polyglot persistence: utilizing open source databases as a Swiss poc...(slides) Polyglot persistence: utilizing open source databases as a Swiss poc...
(slides) Polyglot persistence: utilizing open source databases as a Swiss poc...
Severalnines
 
Webinar slides: How to Migrate from Oracle DB to MariaDB
Webinar slides: How to Migrate from Oracle DB to MariaDBWebinar slides: How to Migrate from Oracle DB to MariaDB
Webinar slides: How to Migrate from Oracle DB to MariaDB
Severalnines
 
Webinar slides: How to Automate & Manage PostgreSQL with ClusterControl
Webinar slides: How to Automate & Manage PostgreSQL with ClusterControlWebinar slides: How to Automate & Manage PostgreSQL with ClusterControl
Webinar slides: How to Automate & Manage PostgreSQL with ClusterControl
Severalnines
 
Webinar slides: How to Manage Replication Failover Processes for MySQL, Maria...
Webinar slides: How to Manage Replication Failover Processes for MySQL, Maria...Webinar slides: How to Manage Replication Failover Processes for MySQL, Maria...
Webinar slides: How to Manage Replication Failover Processes for MySQL, Maria...
Severalnines
 
Webinar slides: Backup Management for MySQL, MariaDB, PostgreSQL & MongoDB wi...
Webinar slides: Backup Management for MySQL, MariaDB, PostgreSQL & MongoDB wi...Webinar slides: Backup Management for MySQL, MariaDB, PostgreSQL & MongoDB wi...
Webinar slides: Backup Management for MySQL, MariaDB, PostgreSQL & MongoDB wi...
Severalnines
 
Disaster Recovery Planning for MySQL & MariaDB
Disaster Recovery Planning for MySQL & MariaDBDisaster Recovery Planning for MySQL & MariaDB
Disaster Recovery Planning for MySQL & MariaDB
Severalnines
 
MariaDB Performance Tuning Crash Course
MariaDB Performance Tuning Crash CourseMariaDB Performance Tuning Crash Course
MariaDB Performance Tuning Crash Course
Severalnines
 
Performance Tuning Cheat Sheet for MongoDB
Performance Tuning Cheat Sheet for MongoDBPerformance Tuning Cheat Sheet for MongoDB
Performance Tuning Cheat Sheet for MongoDB
Severalnines
 
Advanced MySql Data-at-Rest Encryption in Percona Server
Advanced MySql Data-at-Rest Encryption in Percona ServerAdvanced MySql Data-at-Rest Encryption in Percona Server
Advanced MySql Data-at-Rest Encryption in Percona Server
Severalnines
 
Polyglot Persistence Utilizing Open Source Databases as a Swiss Pocket Knife
Polyglot Persistence Utilizing Open Source Databases as a Swiss Pocket KnifePolyglot Persistence Utilizing Open Source Databases as a Swiss Pocket Knife
Polyglot Persistence Utilizing Open Source Databases as a Swiss Pocket Knife
Severalnines
 
Webinar slides: An Introduction to Performance Monitoring for PostgreSQL
Webinar slides: An Introduction to Performance Monitoring for PostgreSQLWebinar slides: An Introduction to Performance Monitoring for PostgreSQL
Webinar slides: An Introduction to Performance Monitoring for PostgreSQL
Severalnines
 
Webinar slides: Our Guide to MySQL & MariaDB Performance Tuning
Webinar slides: Our Guide to MySQL & MariaDB Performance TuningWebinar slides: Our Guide to MySQL & MariaDB Performance Tuning
Webinar slides: Our Guide to MySQL & MariaDB Performance Tuning
Severalnines
 
Webinar slides: Migrating to Galera Cluster for MySQL and MariaDB
Webinar slides: Migrating to Galera Cluster for MySQL and MariaDBWebinar slides: Migrating to Galera Cluster for MySQL and MariaDB
Webinar slides: Migrating to Galera Cluster for MySQL and MariaDB
Severalnines
 
Webinar slides: How to Measure Database Availability?
Webinar slides: How to Measure Database Availability?Webinar slides: How to Measure Database Availability?
Webinar slides: How to Measure Database Availability?
Severalnines
 

More from Severalnines (20)

Kubernetes at Scale: Going Multi-Cluster with Istio
Kubernetes at Scale:  Going Multi-Cluster  with IstioKubernetes at Scale:  Going Multi-Cluster  with Istio
Kubernetes at Scale: Going Multi-Cluster with Istio
 
DIY DBaaS: A guide to building your own full-featured DBaaS
DIY DBaaS: A guide to building your own full-featured DBaaSDIY DBaaS: A guide to building your own full-featured DBaaS
DIY DBaaS: A guide to building your own full-featured DBaaS
 
Cloud's future runs through Sovereign DBaaS
Cloud's future runs through Sovereign DBaaSCloud's future runs through Sovereign DBaaS
Cloud's future runs through Sovereign DBaaS
 
Tips to drive maria db cluster performance for nextcloud
Tips to drive maria db cluster performance for nextcloudTips to drive maria db cluster performance for nextcloud
Tips to drive maria db cluster performance for nextcloud
 
Working with the Moodle Database: The Basics
Working with the Moodle Database: The BasicsWorking with the Moodle Database: The Basics
Working with the Moodle Database: The Basics
 
SysAdmin Working from Home? Tips to Automate MySQL, MariaDB, Postgres & MongoDB
SysAdmin Working from Home? Tips to Automate MySQL, MariaDB, Postgres & MongoDBSysAdmin Working from Home? Tips to Automate MySQL, MariaDB, Postgres & MongoDB
SysAdmin Working from Home? Tips to Automate MySQL, MariaDB, Postgres & MongoDB
 
(slides) Polyglot persistence: utilizing open source databases as a Swiss poc...
(slides) Polyglot persistence: utilizing open source databases as a Swiss poc...(slides) Polyglot persistence: utilizing open source databases as a Swiss poc...
(slides) Polyglot persistence: utilizing open source databases as a Swiss poc...
 
Webinar slides: How to Migrate from Oracle DB to MariaDB
Webinar slides: How to Migrate from Oracle DB to MariaDBWebinar slides: How to Migrate from Oracle DB to MariaDB
Webinar slides: How to Migrate from Oracle DB to MariaDB
 
Webinar slides: How to Automate & Manage PostgreSQL with ClusterControl
Webinar slides: How to Automate & Manage PostgreSQL with ClusterControlWebinar slides: How to Automate & Manage PostgreSQL with ClusterControl
Webinar slides: How to Automate & Manage PostgreSQL with ClusterControl
 
Webinar slides: How to Manage Replication Failover Processes for MySQL, Maria...
Webinar slides: How to Manage Replication Failover Processes for MySQL, Maria...Webinar slides: How to Manage Replication Failover Processes for MySQL, Maria...
Webinar slides: How to Manage Replication Failover Processes for MySQL, Maria...
 
Webinar slides: Backup Management for MySQL, MariaDB, PostgreSQL & MongoDB wi...
Webinar slides: Backup Management for MySQL, MariaDB, PostgreSQL & MongoDB wi...Webinar slides: Backup Management for MySQL, MariaDB, PostgreSQL & MongoDB wi...
Webinar slides: Backup Management for MySQL, MariaDB, PostgreSQL & MongoDB wi...
 
Disaster Recovery Planning for MySQL & MariaDB
Disaster Recovery Planning for MySQL & MariaDBDisaster Recovery Planning for MySQL & MariaDB
Disaster Recovery Planning for MySQL & MariaDB
 
MariaDB Performance Tuning Crash Course
MariaDB Performance Tuning Crash CourseMariaDB Performance Tuning Crash Course
MariaDB Performance Tuning Crash Course
 
Performance Tuning Cheat Sheet for MongoDB
Performance Tuning Cheat Sheet for MongoDBPerformance Tuning Cheat Sheet for MongoDB
Performance Tuning Cheat Sheet for MongoDB
 
Advanced MySql Data-at-Rest Encryption in Percona Server
Advanced MySql Data-at-Rest Encryption in Percona ServerAdvanced MySql Data-at-Rest Encryption in Percona Server
Advanced MySql Data-at-Rest Encryption in Percona Server
 
Polyglot Persistence Utilizing Open Source Databases as a Swiss Pocket Knife
Polyglot Persistence Utilizing Open Source Databases as a Swiss Pocket KnifePolyglot Persistence Utilizing Open Source Databases as a Swiss Pocket Knife
Polyglot Persistence Utilizing Open Source Databases as a Swiss Pocket Knife
 
Webinar slides: An Introduction to Performance Monitoring for PostgreSQL
Webinar slides: An Introduction to Performance Monitoring for PostgreSQLWebinar slides: An Introduction to Performance Monitoring for PostgreSQL
Webinar slides: An Introduction to Performance Monitoring for PostgreSQL
 
Webinar slides: Our Guide to MySQL & MariaDB Performance Tuning
Webinar slides: Our Guide to MySQL & MariaDB Performance TuningWebinar slides: Our Guide to MySQL & MariaDB Performance Tuning
Webinar slides: Our Guide to MySQL & MariaDB Performance Tuning
 
Webinar slides: Migrating to Galera Cluster for MySQL and MariaDB
Webinar slides: Migrating to Galera Cluster for MySQL and MariaDBWebinar slides: Migrating to Galera Cluster for MySQL and MariaDB
Webinar slides: Migrating to Galera Cluster for MySQL and MariaDB
 
Webinar slides: How to Measure Database Availability?
Webinar slides: How to Measure Database Availability?Webinar slides: How to Measure Database Availability?
Webinar slides: How to Measure Database Availability?
 

Recently uploaded

假文凭国外(Adelaide毕业证)澳大利亚国立大学毕业证成绩单办理
假文凭国外(Adelaide毕业证)澳大利亚国立大学毕业证成绩单办理假文凭国外(Adelaide毕业证)澳大利亚国立大学毕业证成绩单办理
假文凭国外(Adelaide毕业证)澳大利亚国立大学毕业证成绩单办理
cuobya
 
Should Repositories Participate in the Fediverse?
Should Repositories Participate in the Fediverse?Should Repositories Participate in the Fediverse?
Should Repositories Participate in the Fediverse?
Paul Walk
 
Ready to Unlock the Power of Blockchain!
Ready to Unlock the Power of Blockchain!Ready to Unlock the Power of Blockchain!
Ready to Unlock the Power of Blockchain!
Toptal Tech
 
Search Result Showing My Post is Now Buried
Search Result Showing My Post is Now BuriedSearch Result Showing My Post is Now Buried
Search Result Showing My Post is Now Buried
Trish Parr
 
办理新西兰奥克兰大学毕业证学位证书范本原版一模一样
办理新西兰奥克兰大学毕业证学位证书范本原版一模一样办理新西兰奥克兰大学毕业证学位证书范本原版一模一样
办理新西兰奥克兰大学毕业证学位证书范本原版一模一样
xjq03c34
 
HijackLoader Evolution: Interactive Process Hollowing
HijackLoader Evolution: Interactive Process HollowingHijackLoader Evolution: Interactive Process Hollowing
HijackLoader Evolution: Interactive Process Hollowing
Donato Onofri
 
办理毕业证(UPenn毕业证)宾夕法尼亚大学毕业证成绩单快速办理
办理毕业证(UPenn毕业证)宾夕法尼亚大学毕业证成绩单快速办理办理毕业证(UPenn毕业证)宾夕法尼亚大学毕业证成绩单快速办理
办理毕业证(UPenn毕业证)宾夕法尼亚大学毕业证成绩单快速办理
uehowe
 
国外证书(Lincoln毕业证)新西兰林肯大学毕业证成绩单不能毕业办理
国外证书(Lincoln毕业证)新西兰林肯大学毕业证成绩单不能毕业办理国外证书(Lincoln毕业证)新西兰林肯大学毕业证成绩单不能毕业办理
国外证书(Lincoln毕业证)新西兰林肯大学毕业证成绩单不能毕业办理
zoowe
 
Gen Z and the marketplaces - let's translate their needs
Gen Z and the marketplaces - let's translate their needsGen Z and the marketplaces - let's translate their needs
Gen Z and the marketplaces - let's translate their needs
Laura Szabó
 
可查真实(Monash毕业证)西澳大学毕业证成绩单退学买
可查真实(Monash毕业证)西澳大学毕业证成绩单退学买可查真实(Monash毕业证)西澳大学毕业证成绩单退学买
可查真实(Monash毕业证)西澳大学毕业证成绩单退学买
cuobya
 
存档可查的(USC毕业证)南加利福尼亚大学毕业证成绩单制做办理
存档可查的(USC毕业证)南加利福尼亚大学毕业证成绩单制做办理存档可查的(USC毕业证)南加利福尼亚大学毕业证成绩单制做办理
存档可查的(USC毕业证)南加利福尼亚大学毕业证成绩单制做办理
fovkoyb
 
快速办理(新加坡SMU毕业证书)新加坡管理大学毕业证文凭证书一模一样
快速办理(新加坡SMU毕业证书)新加坡管理大学毕业证文凭证书一模一样快速办理(新加坡SMU毕业证书)新加坡管理大学毕业证文凭证书一模一样
快速办理(新加坡SMU毕业证书)新加坡管理大学毕业证文凭证书一模一样
3a0sd7z3
 
办理毕业证(NYU毕业证)纽约大学毕业证成绩单官方原版办理
办理毕业证(NYU毕业证)纽约大学毕业证成绩单官方原版办理办理毕业证(NYU毕业证)纽约大学毕业证成绩单官方原版办理
办理毕业证(NYU毕业证)纽约大学毕业证成绩单官方原版办理
uehowe
 
留学学历(UoA毕业证)奥克兰大学毕业证成绩单官方原版办理
留学学历(UoA毕业证)奥克兰大学毕业证成绩单官方原版办理留学学历(UoA毕业证)奥克兰大学毕业证成绩单官方原版办理
留学学历(UoA毕业证)奥克兰大学毕业证成绩单官方原版办理
bseovas
 
Discover the benefits of outsourcing SEO to India
Discover the benefits of outsourcing SEO to IndiaDiscover the benefits of outsourcing SEO to India
Discover the benefits of outsourcing SEO to India
davidjhones387
 
一比一原版(USYD毕业证)悉尼大学毕业证如何办理
一比一原版(USYD毕业证)悉尼大学毕业证如何办理一比一原版(USYD毕业证)悉尼大学毕业证如何办理
一比一原版(USYD毕业证)悉尼大学毕业证如何办理
k4ncd0z
 
[HUN][hackersuli] Red Teaming alapok 2024
[HUN][hackersuli] Red Teaming alapok 2024[HUN][hackersuli] Red Teaming alapok 2024
[HUN][hackersuli] Red Teaming alapok 2024
hackersuli
 
不能毕业如何获得(USYD毕业证)悉尼大学毕业证成绩单一比一原版制作
不能毕业如何获得(USYD毕业证)悉尼大学毕业证成绩单一比一原版制作不能毕业如何获得(USYD毕业证)悉尼大学毕业证成绩单一比一原版制作
不能毕业如何获得(USYD毕业证)悉尼大学毕业证成绩单一比一原版制作
bseovas
 
重新申请毕业证书(RMIT毕业证)皇家墨尔本理工大学毕业证成绩单精仿办理
重新申请毕业证书(RMIT毕业证)皇家墨尔本理工大学毕业证成绩单精仿办理重新申请毕业证书(RMIT毕业证)皇家墨尔本理工大学毕业证成绩单精仿办理
重新申请毕业证书(RMIT毕业证)皇家墨尔本理工大学毕业证成绩单精仿办理
vmemo1
 
7 Best Cloud Hosting Services to Try Out in 2024
7 Best Cloud Hosting Services to Try Out in 20247 Best Cloud Hosting Services to Try Out in 2024
7 Best Cloud Hosting Services to Try Out in 2024
Danica Gill
 

Recently uploaded (20)

假文凭国外(Adelaide毕业证)澳大利亚国立大学毕业证成绩单办理
假文凭国外(Adelaide毕业证)澳大利亚国立大学毕业证成绩单办理假文凭国外(Adelaide毕业证)澳大利亚国立大学毕业证成绩单办理
假文凭国外(Adelaide毕业证)澳大利亚国立大学毕业证成绩单办理
 
Should Repositories Participate in the Fediverse?
Should Repositories Participate in the Fediverse?Should Repositories Participate in the Fediverse?
Should Repositories Participate in the Fediverse?
 
Ready to Unlock the Power of Blockchain!
Ready to Unlock the Power of Blockchain!Ready to Unlock the Power of Blockchain!
Ready to Unlock the Power of Blockchain!
 
Search Result Showing My Post is Now Buried
Search Result Showing My Post is Now BuriedSearch Result Showing My Post is Now Buried
Search Result Showing My Post is Now Buried
 
办理新西兰奥克兰大学毕业证学位证书范本原版一模一样
办理新西兰奥克兰大学毕业证学位证书范本原版一模一样办理新西兰奥克兰大学毕业证学位证书范本原版一模一样
办理新西兰奥克兰大学毕业证学位证书范本原版一模一样
 
HijackLoader Evolution: Interactive Process Hollowing
HijackLoader Evolution: Interactive Process HollowingHijackLoader Evolution: Interactive Process Hollowing
HijackLoader Evolution: Interactive Process Hollowing
 
办理毕业证(UPenn毕业证)宾夕法尼亚大学毕业证成绩单快速办理
办理毕业证(UPenn毕业证)宾夕法尼亚大学毕业证成绩单快速办理办理毕业证(UPenn毕业证)宾夕法尼亚大学毕业证成绩单快速办理
办理毕业证(UPenn毕业证)宾夕法尼亚大学毕业证成绩单快速办理
 
国外证书(Lincoln毕业证)新西兰林肯大学毕业证成绩单不能毕业办理
国外证书(Lincoln毕业证)新西兰林肯大学毕业证成绩单不能毕业办理国外证书(Lincoln毕业证)新西兰林肯大学毕业证成绩单不能毕业办理
国外证书(Lincoln毕业证)新西兰林肯大学毕业证成绩单不能毕业办理
 
Gen Z and the marketplaces - let's translate their needs
Gen Z and the marketplaces - let's translate their needsGen Z and the marketplaces - let's translate their needs
Gen Z and the marketplaces - let's translate their needs
 
可查真实(Monash毕业证)西澳大学毕业证成绩单退学买
可查真实(Monash毕业证)西澳大学毕业证成绩单退学买可查真实(Monash毕业证)西澳大学毕业证成绩单退学买
可查真实(Monash毕业证)西澳大学毕业证成绩单退学买
 
存档可查的(USC毕业证)南加利福尼亚大学毕业证成绩单制做办理
存档可查的(USC毕业证)南加利福尼亚大学毕业证成绩单制做办理存档可查的(USC毕业证)南加利福尼亚大学毕业证成绩单制做办理
存档可查的(USC毕业证)南加利福尼亚大学毕业证成绩单制做办理
 
快速办理(新加坡SMU毕业证书)新加坡管理大学毕业证文凭证书一模一样
快速办理(新加坡SMU毕业证书)新加坡管理大学毕业证文凭证书一模一样快速办理(新加坡SMU毕业证书)新加坡管理大学毕业证文凭证书一模一样
快速办理(新加坡SMU毕业证书)新加坡管理大学毕业证文凭证书一模一样
 
办理毕业证(NYU毕业证)纽约大学毕业证成绩单官方原版办理
办理毕业证(NYU毕业证)纽约大学毕业证成绩单官方原版办理办理毕业证(NYU毕业证)纽约大学毕业证成绩单官方原版办理
办理毕业证(NYU毕业证)纽约大学毕业证成绩单官方原版办理
 
留学学历(UoA毕业证)奥克兰大学毕业证成绩单官方原版办理
留学学历(UoA毕业证)奥克兰大学毕业证成绩单官方原版办理留学学历(UoA毕业证)奥克兰大学毕业证成绩单官方原版办理
留学学历(UoA毕业证)奥克兰大学毕业证成绩单官方原版办理
 
Discover the benefits of outsourcing SEO to India
Discover the benefits of outsourcing SEO to IndiaDiscover the benefits of outsourcing SEO to India
Discover the benefits of outsourcing SEO to India
 
一比一原版(USYD毕业证)悉尼大学毕业证如何办理
一比一原版(USYD毕业证)悉尼大学毕业证如何办理一比一原版(USYD毕业证)悉尼大学毕业证如何办理
一比一原版(USYD毕业证)悉尼大学毕业证如何办理
 
[HUN][hackersuli] Red Teaming alapok 2024
[HUN][hackersuli] Red Teaming alapok 2024[HUN][hackersuli] Red Teaming alapok 2024
[HUN][hackersuli] Red Teaming alapok 2024
 
不能毕业如何获得(USYD毕业证)悉尼大学毕业证成绩单一比一原版制作
不能毕业如何获得(USYD毕业证)悉尼大学毕业证成绩单一比一原版制作不能毕业如何获得(USYD毕业证)悉尼大学毕业证成绩单一比一原版制作
不能毕业如何获得(USYD毕业证)悉尼大学毕业证成绩单一比一原版制作
 
重新申请毕业证书(RMIT毕业证)皇家墨尔本理工大学毕业证成绩单精仿办理
重新申请毕业证书(RMIT毕业证)皇家墨尔本理工大学毕业证成绩单精仿办理重新申请毕业证书(RMIT毕业证)皇家墨尔本理工大学毕业证成绩单精仿办理
重新申请毕业证书(RMIT毕业证)皇家墨尔本理工大学毕业证成绩单精仿办理
 
7 Best Cloud Hosting Services to Try Out in 2024
7 Best Cloud Hosting Services to Try Out in 20247 Best Cloud Hosting Services to Try Out in 2024
7 Best Cloud Hosting Services to Try Out in 2024
 

Webinar slides: DevOps Tutorial: how to automate your database infrastructure

  • 1. Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB I'm Jean-Jérôme from the Severalnines Team and I'm your host for today's webinar! Feel free to ask any questions in the Questions section of this application or via the Chat box. You can also contact me directly via the chat box or via email: jj@severalnines.com during or after the webinar. Your host & some logistics
  • 2. Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB About Severalnines and ClusterControl
  • 3. Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB What we do Manage Scale MonitorDeploy
  • 4. Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB ● Provisioning ○ Deploy a cluster in minutes ○ On-premises or in the cloud (AWS) ● Monitoring ○ Systems view ○ 1sec resolution ○ DB / OS stats & performance advisors ○ Configurable dashboards ○ Query Analyzer ○ Real-time / historical ClusterControl Automation & Management ● Management ○ Multi cluster/data-center ○ Automate repair/recovery ○ Database upgrades ○ Backups ○ Configuration management ○ Cloning ○ One-click scaling
  • 5. Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB Supported Databases
  • 6. Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB Customers
  • 7. Copyright 2017 Severalnines AB DevOps Tutorial July, 18th 2017 ‘How to Automate Your Database Infrastructure’ Riaan Nolan, Devops Lead @Mukuru.com Presenter riaan@mukuru.com Art van Scheppingen, Senior Support Engineer @Severalnines Presenter art@severalnines.com
  • 8. Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB ● DevOps and databases - what are the challenges ● Managing databases in a DevOps environment ● Data distribution ● Cloud Automation on AWS ● Demo of DevOps features in ClusterControl Agenda
  • 9. Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB Devops and Databases - What are the Challenges?
  • 10. Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB ● Collaboration and communication between Dev and Ops ○ Change in culture and environment ○ Work closely together ● More (frequent) development cycles A different approach to Development and Ops
  • 11. Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB ● RDBMS databases are mostly built around securing the integrity of the data ○ Schema changes are slow and will create locks ○ Frequent changes will inevitably cause production issues ● NoSQL databases have schemaless design ○ Trade off of flexibility over consistency How do databases fit in DevOps?
  • 12. Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB ● DevOps roles are less clearly defined ○ Developer is now involved in operations ○ Ops is now actively involved in development release cycles ○ The whole team shares responsibility over the application ● A DBA is a too specialized role ○ Collaborative role between developers and ops ○ Developer will drive initiative, changes and performance ○ Ops will handle consistency and security Where does the DBA fit in DevOps?
  • 13. Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB ● Deployment automation for frequent release cycles ○ Continuous deployment needs quick environment deployments ○ Full environment also requires database copies ● Incompatibility between databases and microservices ○ Microservices have a shared nothing architecture ○ Databases generally have a relational schema ● Collaboration ○ Communication is key ○ Every team member needs to be up to date at all times ○ Collaboration tools can help What challenges are there for Databases and DevOps?
  • 14. Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB ● Get all credentials in code, whether you manage the resource or not. - Start by getting access to the resources your are to manage. - Store these details encrypted. - Share/Transfer/Make available these credentials securely ● Weird code being deployed, causing outages or undesired performance degradation. - Developers can push code that cause outages and performance degradation, I use Newrelic, Cloudwatch, Kibana for high level performance dashboards. ● Once you do have this resource under DevOps control, how do you present it to the app? - Capistrano, Puppet and Composer for example can write config files, I use a combination of Capistrano executing Composer that use DotEnv https://github.com/vlucas/phpdotenv ● Alerting, who’s responsible (and able) to get up at 3am and solve a complex outage, caused by code, you have no knowledge of, pending on application versions you have no authority to deploy or commit to? Feedback loops? - Slack, Collectd, Kibana, New Relic, Cloudwatch What are the challenges
  • 15. Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB Managing Databases in a DevOps environment
  • 16. Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB ● Microservices are very popular among DevOps ○ Easy to deploy ○ Strong cohesion ○ Loose coupling ● Shared-nothing databases ○ Simple schema designs ○ Interchangeable with any other storage system ● How to join data between microservices? The impact of microservice architectures
  • 17. Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB ● Direct querying creates a dependency between them ○ Any change to the schema could make the depending microservice to fail ○ Any infrastructural change needs to be propagated to the depending mircoservice ○ Duplicated configurations can get out of sync How to join data between microservices?
  • 18. Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB ● The only proper way would be by making a request to the API ○ In case of a slow response or error the microservice should be resilient ○ Generic error handling can be used for multiple (depending) microservices ○ This creates data layer abstraction ● Microservices can now be independently changed ○ Non-standard datastores can be used ○ Migrations are much easier How to join data between microservices?
  • 19. Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB ● Full environment deployments ○ Release development/testing ○ Disaster recovery (testing) ● Automatic database deployments ○ Restore/copy (production) data sets ○ Install necessary packages and helper software ○ Create necessary (application users) ○ Setup load balancers ● Automation frameworks ○ Puppet ○ Chef ○ Ansible Automated deployments
  • 20. Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB ● Make sure insights are available for anyone in the team ● Create dashboards around application / services ● Incorporate existing application / service metrics with (detailed) database metrics ○ Correlation of these metrics can help in tracing problems ○ Pre-emptive troubleshooting when (application) latency increases ● Application performance monitoring systems lack database performance metrics ○ No insight in what happens inside the database ○ Only insight from the application point of view Performance monitoring
  • 21. Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB ● Rapid and continuous development may lead to many schema changes ● Adding new columns and tables is no problem ○ Altering existing columns will create structural changes ● ORMs are known to generate frequent schema changes ● Not all ORMs can properly handle schema changes in production ○ Requires create / alter rights ○ Applies changes directly to any connection ● Automate using available tools ○ Percona Online Schema Change ○ Gh-ost Schema changes
  • 22. Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB ● New versions contain (important) bug fixes and resolve vulnerabilities ○ Upgrade regularly ● Minor version vs major versions ○ Minor versions are in-place replacements ○ Major versions (may) require dumping/loading of data ● Upgrades are routine for sysadmins and DBAs ○ DevOps may not be that experienced ○ Automate as much as possible ● Retain high availability ○ Upgrade slaves first and then promote an upgraded slave to become master ○ Use a proxy to divert traffic from nodes that get upgraded ● Test scenarios through Version upgrades
  • 23. Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB ● Microservices should be made resilient against failure ● Topology changes should not result in failure ● Master node fails ○ Slave promotion necessary ○ This may take up to 20 seconds to happen ● Failover handling ○ Configfile: topology discovery and failover has to be handled by the application ○ Resource manager: provides topology to the application, (may) handle failover ○ Load Balancer / Proxy: provides connections to the application and handles failover Automated failover
  • 24. Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB ● One of the most important aspects of DevOps is the communication between members ● Improve communication ○ Put people physically in a team? ○ Distributed teams? ○ Enrich communication channels ● ChatOps ○ Integrate (vital) information as metrics, alerts and status ○ Add database commands ○ Pre-deployment backups ○ Schema changes Chatops integrations
  • 25. Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB Data distribution
  • 26. Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB ● Not all data may be in the same location ○ Multi data center topologies ○ Disaster recovery ○ Uneven (storage) usage ● Sharding will separate data ○ Functional sharding by service separation ○ Horizontal sharding by every growing data Data locality
  • 27. Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB ● Microservices abstract (database) complexity away from the application ● Microservices increases complexity on infrastructure level ○ Data locality ○ Sharding ○ Schema changes ● Load balancer / proxy will abstract the infrastructure complexity away ○ Help with maintenance ○ Automatic scaling Managing data flows
  • 28. Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB Cloud Automation on AWS
  • 29. Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB Atom is a great IDE for DevOps, developed by https://github.com https://atom.io https://atom.io/packages/hiera-eyaml Using Hiera EYAML, you can encrypt credentials, and store this under version control Mailvelope is an easy to use PGP client for popular browsers and email provider to send secure emails https://www.mailvelope.com/en/ Store and Share credentials Securely
  • 30. Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB DotEnv to Autoload credentials, developed by https://github.com/vlucas/phpdotenv Store and Share credentials Securely continued..
  • 31. Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB https://gist.github.com/star3am/d5c84ba4a6a00f6abdb57d1d0a50fac3 Managing DBs in a DevOps environment
  • 32. Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB # Hiera hash profile_mysql::servers: company-stack-env-role: endpoint: 'company-stack-env-role.private.vpc' user: 'root' password: ENC[PKCS7,MIIBi..==] # Hiera Eyaml - https://puppet.com/blog/encrypt-your-data-using-hiera-eyaml databases: database_env: 'present' test_database_env: 'absent' # Set .my.cnf in root with above hira details so we can manage the resources $servers = hiera_hash('profile_mysql::servers', {}) file { '/root/.my.cnf': content => template("profile_mysql/root/.my.cnf"), } Managing DBs in a DevOps environment
  • 33. Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB # Call the defined type to create the DBs create_resources('profile_mysql::databases', $servers) # Puppet ERB template profile_mysql/root/.my.cnf <% @servers.each_pair do |key, value_hash| %> # use on the command line: mysql --defaults-group-suffix=<%= key %> [client<%= key %>] user=<%= value_hash['user'] %> host=<%= value_hash['endpoint'] %> password=<%= value_hash['password'] %> connect_timeout=2 <% end %> Managing DBs in a DevOps environment
  • 34. Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB define profile_mysql::databases ( $profile = $name, $endpoint, $user, $password, $databases, ) { $databases.each |$database_data| { $database = $database_data[0] $ensure = $database_data[1] if $ensure == 'present' { exec { "${ensure}-${profile}-${database}": unless => "/usr/bin/mysql --defaults-file=/root/.my.cnf --defaults-group-suffix=${profile} -e "show databases;" | grep -q "${database}" 2>/dev/null", command => "/usr/bin/mysql --defaults-file=/root/.my.cnf --defaults-group-suffix=${profile} -e "create database ${database};"", require => Class['mysql::client'], } } Managing DBs in a DevOps environment..
  • 35. Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB Demo of DevOps features in ClusterControl
  • 36. Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB Q & A
  • 37. Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB ● Riaan Nolan’s blog on DevOps http://www.riaannolan.com ● DevOps whitepaper https://severalnines.com/resources/whitepapers#download_whitepaper/5073 ● DevOps @ Severalnines blog https://severalnines.com/blog?categories=306 ● ClusterControl Command Line Interface (CLI) https://severalnines.com/product/clustercontrol/command-line-client-cli Additional resources