SlideShare a Scribd company logo
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
Miguel Araújo
Senior Software Developer
Alfredo Kojima
Senior Software Development Manager
MySQL Middleware and Clients
October 24, 2018
MySQL Shell
The DevOps Tool for MySQL
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Safe Harbor Statement
The following is intended to outline our general product direction. It is intended for
information purposes only, and may not be incorporated into any contract. It is not a
commitment to deliver any material, code, or functionality, and should not be relied upon
in making purchasing decisions. The development, release, timing, and pricing of any
features or functionality described for Oracle’s products may change and remains at the
sole discretion of Oracle Corporation.
2
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Program Agenda
introduction to DevOps
MySQL Shell
Development with the Shell - Live demo!
Shell meets continuous automation
MySQL InnoDB Cluster
Shell as the operations frontend of IDC - Live demo!
Summary
1
2
3
4
5
3
6
7
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 4
Who are we?
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
whoami
Miguel Araújo
• MySQL Senior Software Developer
• Lead developer for the AdminAPI at the
MySQL Shell team
• MySQL InnoDB Cluster evangelist
• Living in Portugal
• http://about.me/miguel-araujo
5
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
whoami
Alfredo Kojima
• MySQL Senior Software Development Manager
• Technical lead for MySQL Clients team: X Plugin,
Router, Shell, C Connectors
• MySQL InnoDB Cluster evangelist
• Living in the USA
6
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Program Agenda
Introduction to DevOps
MySQL Shell
Development with the Shell - Live demo!
Shell meets continuous automation
MySQL InnoDB Cluster
Shell as the operations frontend of IDC - Live demo!
Summary
1
3
4
5
7
6
7
2
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 8
DevOps: What is it?
DEVOPS
Software OperationsSoftware Development
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 9
DevOps: What is it?
As simple as:
 Engineers (developers) and operations working together to:
 Get things done faster
 Automate processes
 Share knowledge
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
DevOps: Goals
• Continuous, faster development
• Faster time to deliver
• Lower the failure rate
• Reduce dependency of staff that owns all the knowledge by sharing the
competences to all the team
10
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Program Agenda
Introduction to DevOps
MySQL Shell
Development with the Shell - Live demo!
Shell meets continuous automation
MySQL InnoDB Cluster
Shell as the operations frontend of IDC - Live demo!
Summary
1
3
4
5
11
6
7
2
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
MySQL Shell: Introduction
• Interactive multi-language console interface that supports development
and administration for the MySQL Server
• Can be used to perform data queries or updates, and administration
operations:
 Scriptable “DevOps” APIs
Unified Interface for MySQL Developers and DBAs: one tool!
• Intuitive and easy to use
12
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
1.0
• Supports MySQL Server 5.7
8.0
Supports MySQL Server 5.7 and 8.0
Higly recommended version!
Note: Upgrade to 8.0 right away if
you’re still using 1.0
13
MySQL Shell: Versions
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
MySQL Shell: Goal
• One tool for MySQL development and administrative tasks
• Natural interface for all MySQL related ”DevOps”!
– Unified Interface for Developers and DBAs
• Intuitive, flexible and powerful
• Provides scripting with development and administrative APIs
14
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
MySQL Shell: Features (Dev)
• Multi-language support
– JavaScript, Python and SQL
– Both interactive and batch operations
15
MySQL
Development
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
MySQL Shell: Features (Dev)
• Document and Relational models
– Supports the classic relational model
– Modern fluent API for the MySQL Document Store
• CRUD and Relational
– Supports the traditional Table results, as well
as JSON or Tab separated output
16
MySQL
Development
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
MySQL Shell: Features (Dev)
• Support for scripting in Python and JavaScript
• APIs for MySQL DBs, Document Store, InnoDB cluster, Shell and more
• Import any installed module (in Python)
• Execute scripts from
– Interactive REPL interface (interactive interpreter)
– Directly from the command line
• mysqlsh --py –e "print 'Hello world'"
– From Python, JS, SQL script files
Scripting
17
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
MySQL Shell: Features (Dev)
• session
– Assigned to the DB session when the shell connects to MySQL
– The MySQL session used by the Shell in SQL mode
– Execute queries
Scripting – Globals
18
mysql-js> session.query(“show status”);
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
MySQL Shell: Features (Dev)
Scripting – Examples
19
• Connect to myserver.foo.com
• Execute create_account.js with any extra arguments forwarded to the
script (sys.argv[])
• The script can use the session global variable to execute SQL in the target
server
$ mysqlsh root@myserver.foo.com –f create_account.js appuser@’192.168.%.%’
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
MySQL Shell: Features (Dev)
Scripting – Non interactive execution
20
$ mysqlsh -–no-wizards
• Disables interactive features
– Passwords, confirmations, prompts, etc., disabled
• Implicit when stdout is not a tty
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
MySQL Shell: Features (Dev)
Document Store – X DevAPI
21
• Support for MySQL Document Store API
• Create collections
• Import JSON dumps
• Try out queries and write simple scripts interactively
• X DevAPI CRUD operations
• SQL
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
MySQL Shell: Features (Dev)
Other development APIs
22
• mysql
– mysql.getSession(), etc.
– Connects to MySQL server using classic MySQL protocol
– run SQL queries
– mysqlx for X protocol sessions and X Dev API
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
MySQL Shell: Features (Dev)
Other development APIs
23
• shell
– Programmatic access to most shell features
– Configuration options (option)
– Password Manager API
– Pager API (pager)
– logging
– URI parsing
– Prompting for user input
– Establish connections: shell.connect(‘user@host:port’)
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
MySQL Shell: Features (Ops)
• Administration API: AdminAPI
– Creation and Management of InnoDB Clusters
– Hides the complexity of:
• Configuration
• Provisioning
• Orchestration
– Simple and straight-forward
– Doesn’t require MySQL expertise
– Flexible, powerful and secure
– Available in both JavaScript and Python
24
MySQL
Administration
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
• Deploy and manage MySQL sandboxes:
– dba.deploySandboxInstance()
– dba.stopSandboxInstance()
– dba.startSandboxInstance()
– dba.deleteSandboxInstance()
– dba.killSandboxInstance()
Important: Sandbox instances are only suitable for testing purposes!
MySQL Shell: Features (Ops)
AdminAPI - Sandboxes
25
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
MySQL Shell: Features (Ops)
• Shell Utilities: util object
– Upgrade checker
• Verify whether instances are ready for upgrading to MySQL 8
– Import JSON documents
• From a file or standard input to a MySQL Server
• Supports importing to a collection or relational table
26
mysql-js> util.checkForServerUpgrade(“root@localhost:3306”);
MySQL
Administration
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
MySQL Shell: Features (Ops)
• API Command line integration
– New cmdline syntax to invoke built-in Shell commands
– Requires minimal extra typing, quoting and escaping
– Supported objects: dba, cluster, shell, shell.options
and util
Syntax: mysqlsh [OPTIONS] [URI] -- <object_name> <method_name> [argument_list]
27
$ mysqlsh root@myserver:33060 –- util import-json
~/Downloads/myData/data.json --collections=‘zip codes’ --schema=‘json_test’
MySQL
Administration
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
• Display context information
• Custom/dynamic tags that react to context
– export PRODUCTION_SERVERS=192.168.42.16
MySQL Shell: Features (DBA toolbox)
Customizable Prompts
28
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
• Sample prompt file:
– mysql-shell/share/mysqlsh/prompt/
• Customization instructions:
– mysql-shell/share/mysqlsh/prompt/README
MySQL Shell: Features (DBA toolbox)
Customizable Prompts
29
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
MySQL Shell: Features (DBA toolbox)
Secure Credential Manager
• MySQL server passwords can be queried from a secure password store
• Uses existing OS native password storage APIs
– Keychain (macOS)
– Credential Manager (Windows)
– MySQL login-path encrypted files (all)
• Optionally auto-save typed passwords (default will prompt)
• Or use API to store programmatically
– shell.storeCredential("root@192.168.1.32", "s3cr37!");
• Write your own password store backend
30
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
MySQL Shell: Features (DBA toolbox)
History
• Typed command history
• Persisting disabled by default, enable with
– option history.autoSave=true
• Filter SQL statements that may contain sensitive info
– e.g. SET PASSWORD='my password'
– option history.sql.ignorePattern
31
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
MySQL Shell: Features (DBA toolbox)
Pager
• Pass SQL results through an external screen paging program
– pager less
– show status;
32
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
MySQL Shell: Features (DBA toolbox)
Built-in Help
• Documentation for included APIs, shell commands, SQL, etc.
• help keyword
– (wildcards allowed)
33
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
--cluster
• Prepares the Shell for managing the InnoDB cluster the target server belongs to
• Automatically assigns the cluster global variable
--redirect-primary
• Connects the shell to the primary of the InnoDB cluster group, in case the one we
connect to is a secondary
--redirect-secondary
• Connects the shell to a secondary member of the InnoDB cluster group
MySQL Shell: Features (Ops)
AdminAPI - options
34
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 35
MySQL Shell
Development with the Shell
Live Demo!
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Program Agenda
Introduction to DevOps
MySQL Shell
Development with the Shell - Live demo!
Shell meets continuous automation
MySQL InnoDB Cluster
Shell as the operations frontend of IDC - Live demo!
Summary
1
3
4
5
36
6
7
2
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Shell meets continuous automation
37
• Continuous automation frameworks provide mechanisms for setup,
configuration and management of MySQL Server
• DBA can automate operations by using modules.
• Classic example:
 Ensure MySQL Server deployments use the latest available version
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Shell meets continuous automation
38
• Let’s use as an example:
service { ‘mysql’:
ensure => latest,
enable => true,
require => Package[‘mysql-server-community’],
}
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Shell meets continuous automation
39
What if current is 5.7 and latest is 8.0? Will it break everything?
service { ‘mysql’:
ensure => latest,
enable => true,
require => Package[‘mysql-server-community’],
}
!
• Let’s use as an example:
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Shell meets continuous automation
40
service { ‘mysql’:
ensure => latest,
enable => true,
require => Package[‘mysql-server-community’],
before => Exec [‘upgrade checker’]
}
exec { “upgrade checker”:
command => “mysqlsh -- util check-for-server-upgrade { --user=root --
host=localhost --port=3306} --password=‘myPwd’”
require => Service[“mysqlsh”]
}
• Use MySQL Shell upgrade checker
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Program Agenda
Introduction to DevOps
MySQL Shell
Development with the Shell - Live demo!
Shell meets continuous automation
MySQL InnoDB Cluster
Shell as the operations frontend of IDC - Live demo!
Summary
1
3
4
5
41
6
7
2
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
100%
Virtually all organization require their
most critical systems to be highly
available
42
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 43
• High Availability: critical factor
• Replication as a common
solution
• MySQL has support for:
– Classic master-slave replication
– DRBDS
– Other OS or VM solutions…
MySQL InnoDB Cluster: Background
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
MySQL InnoDB Cluster: Background
44
• High Availability: critical factor
• Replication as a common
solution
• MySQL has support for:
– Classic master-slave replication
– DRBDS
– Other OS or VM solutions…
Group Replication !
• Update-everywhere (m-m)
• Virtually synchronous replication
• Automatic server fail-over
– Distributed recovery
– Group reconfiguration
• Powered by a GCS:
Implementation of Paxos
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
MySQL InnoDB Cluster: Background
• Challenging task
– Not easy to setup and maintain
– Technical knowledge needed
– How to configure the applications?
– How to integrate all the components?
45
? ?
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
MySQL InnoDB Cluster: Vision
46
– Engineering Team
“A single product — MySQL — with high availability and scaling
features baked in; providing an integrated end-to-end solution
that is easy to use.”
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 47
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 48
MySQL Group Replication
InnoDB cluster
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 49
MySQL Group Replication
InnoDB cluster
App Servers with
MySQL Router
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 50
MySQL Group Replication
InnoDB cluster
App Servers with
MySQL Router
MySQL Shell
Setup, Manage,
Orchestrate
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 51
MySQL Group Replication
InnoDB cluster
App Servers with
MySQL Router
MySQL Shell
Setup, Manage,
Orchestrate Clients
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 52
One Product
Full Stack HA
Solution
Easy to use!
InnoDB cluster
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 53
MySQL Shell
Shell as the operations frontend
of InnoDB Cluster
Live Demo!
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Summary
• MySQL Shell brings together developers and DBAs
• Unified interface: one tool!
• Development and Administration APIs and features
• MySQL InnoDB Cluster is THE built-in HA solution for MySQL:
• Full-stack: High Availability out-of-the-box
• Easy to use: usability as a top concern
54
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Resources
• MySQL Shell Userguide:
– https://dev.mysql.com/doc/refman/en/mysql-shell.html
• MySQL InnoDB Cluster Userguide:
– http://dev.mysql.com/doc/refman/en/mysql-innodb-cluster-userguide.html
• APIs Reference manuals
– JavaScript: https://dev.mysql.com/doc/dev/mysqlsh-api-javascript/
– Python: https://dev.mysql.com/doc/dev/mysqlsh-api-python/
• Blogging
– http://mysqlserverteam.com/category/high-availability
55
MySQL Shell: The DevOps Tool for MySQL

More Related Content

What's hot

MySQL 5.7: Focus on Replication
MySQL 5.7: Focus on ReplicationMySQL 5.7: Focus on Replication
MySQL 5.7: Focus on Replication
Mario Beck
 
MySQL InnoDB Cluster - A complete High Availability solution for MySQL
MySQL InnoDB Cluster - A complete High Availability solution for MySQLMySQL InnoDB Cluster - A complete High Availability solution for MySQL
MySQL InnoDB Cluster - A complete High Availability solution for MySQL
Olivier DASINI
 
MySQL Security
MySQL SecurityMySQL Security
MySQL Security
Mario Beck
 
MySQL 5.7: What's New, Nov. 2015
MySQL 5.7: What's New, Nov. 2015MySQL 5.7: What's New, Nov. 2015
MySQL 5.7: What's New, Nov. 2015
Mario Beck
 
MySQL for Software-as-a-Service (SaaS)
MySQL for Software-as-a-Service (SaaS)MySQL for Software-as-a-Service (SaaS)
MySQL for Software-as-a-Service (SaaS)
Mario Beck
 
MySQL 5.7 InnoDB Cluster (Jan 2018)
MySQL 5.7 InnoDB Cluster (Jan 2018)MySQL 5.7 InnoDB Cluster (Jan 2018)
MySQL 5.7 InnoDB Cluster (Jan 2018)
Olivier DASINI
 
MySQL Document Store - A Document Store with all the benefts of a Transactona...
MySQL Document Store - A Document Store with all the benefts of a Transactona...MySQL Document Store - A Document Store with all the benefts of a Transactona...
MySQL Document Store - A Document Store with all the benefts of a Transactona...
Olivier DASINI
 
MySQL Day Paris 2016 - MySQL HA: InnoDB Cluster and NDB Cluster
MySQL Day Paris 2016 - MySQL HA: InnoDB Cluster and NDB ClusterMySQL Day Paris 2016 - MySQL HA: InnoDB Cluster and NDB Cluster
MySQL Day Paris 2016 - MySQL HA: InnoDB Cluster and NDB Cluster
Olivier DASINI
 
MySQL Community and Commercial Edition
MySQL Community and Commercial EditionMySQL Community and Commercial Edition
MySQL Community and Commercial Edition
Mario Beck
 
MySQL Tech Tour 2015 - Alt Intro
MySQL Tech Tour 2015 - Alt IntroMySQL Tech Tour 2015 - Alt Intro
MySQL Tech Tour 2015 - Alt Intro
Mark Swarbrick
 
Why MySQL High Availability Matters
Why MySQL High Availability MattersWhy MySQL High Availability Matters
Why MySQL High Availability Matters
Matt Lord
 
MySQL 5.7 Replication News
MySQL 5.7 Replication News MySQL 5.7 Replication News
MySQL 5.7 Replication News
Ted Wennmark
 
2012 ohiolinuxfest replication
2012 ohiolinuxfest replication2012 ohiolinuxfest replication
2012 ohiolinuxfest replicationsqlhjalp
 
MySQL Intro JSON NoSQL
MySQL Intro JSON NoSQLMySQL Intro JSON NoSQL
MySQL Intro JSON NoSQL
Mark Swarbrick
 
20200613 my sql-ha-deployment
20200613 my sql-ha-deployment20200613 my sql-ha-deployment
20200613 my sql-ha-deployment
Ivan Ma
 
My sql susecon_crashcourse_2012
My sql susecon_crashcourse_2012My sql susecon_crashcourse_2012
My sql susecon_crashcourse_2012
sqlhjalp
 
OpenStack Days East -- MySQL Options in OpenStack
OpenStack Days East -- MySQL Options in OpenStackOpenStack Days East -- MySQL Options in OpenStack
OpenStack Days East -- MySQL Options in OpenStack
Matt Lord
 
MySQL Technology Overview
MySQL Technology OverviewMySQL Technology Overview
MySQL Technology Overview
Keith Hollman
 
MySQL for Oracle DBAs
MySQL for Oracle DBAsMySQL for Oracle DBAs
MySQL for Oracle DBAs
Mario Beck
 
My sql crashcourse_2012
My sql crashcourse_2012My sql crashcourse_2012
My sql crashcourse_2012
sqlhjalp
 

What's hot (20)

MySQL 5.7: Focus on Replication
MySQL 5.7: Focus on ReplicationMySQL 5.7: Focus on Replication
MySQL 5.7: Focus on Replication
 
MySQL InnoDB Cluster - A complete High Availability solution for MySQL
MySQL InnoDB Cluster - A complete High Availability solution for MySQLMySQL InnoDB Cluster - A complete High Availability solution for MySQL
MySQL InnoDB Cluster - A complete High Availability solution for MySQL
 
MySQL Security
MySQL SecurityMySQL Security
MySQL Security
 
MySQL 5.7: What's New, Nov. 2015
MySQL 5.7: What's New, Nov. 2015MySQL 5.7: What's New, Nov. 2015
MySQL 5.7: What's New, Nov. 2015
 
MySQL for Software-as-a-Service (SaaS)
MySQL for Software-as-a-Service (SaaS)MySQL for Software-as-a-Service (SaaS)
MySQL for Software-as-a-Service (SaaS)
 
MySQL 5.7 InnoDB Cluster (Jan 2018)
MySQL 5.7 InnoDB Cluster (Jan 2018)MySQL 5.7 InnoDB Cluster (Jan 2018)
MySQL 5.7 InnoDB Cluster (Jan 2018)
 
MySQL Document Store - A Document Store with all the benefts of a Transactona...
MySQL Document Store - A Document Store with all the benefts of a Transactona...MySQL Document Store - A Document Store with all the benefts of a Transactona...
MySQL Document Store - A Document Store with all the benefts of a Transactona...
 
MySQL Day Paris 2016 - MySQL HA: InnoDB Cluster and NDB Cluster
MySQL Day Paris 2016 - MySQL HA: InnoDB Cluster and NDB ClusterMySQL Day Paris 2016 - MySQL HA: InnoDB Cluster and NDB Cluster
MySQL Day Paris 2016 - MySQL HA: InnoDB Cluster and NDB Cluster
 
MySQL Community and Commercial Edition
MySQL Community and Commercial EditionMySQL Community and Commercial Edition
MySQL Community and Commercial Edition
 
MySQL Tech Tour 2015 - Alt Intro
MySQL Tech Tour 2015 - Alt IntroMySQL Tech Tour 2015 - Alt Intro
MySQL Tech Tour 2015 - Alt Intro
 
Why MySQL High Availability Matters
Why MySQL High Availability MattersWhy MySQL High Availability Matters
Why MySQL High Availability Matters
 
MySQL 5.7 Replication News
MySQL 5.7 Replication News MySQL 5.7 Replication News
MySQL 5.7 Replication News
 
2012 ohiolinuxfest replication
2012 ohiolinuxfest replication2012 ohiolinuxfest replication
2012 ohiolinuxfest replication
 
MySQL Intro JSON NoSQL
MySQL Intro JSON NoSQLMySQL Intro JSON NoSQL
MySQL Intro JSON NoSQL
 
20200613 my sql-ha-deployment
20200613 my sql-ha-deployment20200613 my sql-ha-deployment
20200613 my sql-ha-deployment
 
My sql susecon_crashcourse_2012
My sql susecon_crashcourse_2012My sql susecon_crashcourse_2012
My sql susecon_crashcourse_2012
 
OpenStack Days East -- MySQL Options in OpenStack
OpenStack Days East -- MySQL Options in OpenStackOpenStack Days East -- MySQL Options in OpenStack
OpenStack Days East -- MySQL Options in OpenStack
 
MySQL Technology Overview
MySQL Technology OverviewMySQL Technology Overview
MySQL Technology Overview
 
MySQL for Oracle DBAs
MySQL for Oracle DBAsMySQL for Oracle DBAs
MySQL for Oracle DBAs
 
My sql crashcourse_2012
My sql crashcourse_2012My sql crashcourse_2012
My sql crashcourse_2012
 

Similar to MySQL Shell: The DevOps Tool for MySQL

MySQL Shell: the daily tool for devs and admins. By Vittorio Cioe.
MySQL Shell: the daily tool for devs and admins. By Vittorio Cioe.MySQL Shell: the daily tool for devs and admins. By Vittorio Cioe.
MySQL Shell: the daily tool for devs and admins. By Vittorio Cioe.
Cloud Native Day Tel Aviv
 
MySQL Document Store and Node.JS
MySQL Document Store and Node.JSMySQL Document Store and Node.JS
MySQL Document Store and Node.JS
Reggie Burnett
 
MySQL Day Paris 2018 - What’s New in MySQL 8.0 ?
MySQL Day Paris 2018 - What’s New in MySQL 8.0 ?MySQL Day Paris 2018 - What’s New in MySQL 8.0 ?
MySQL Day Paris 2018 - What’s New in MySQL 8.0 ?
Olivier DASINI
 
MySQL 8.0 - What's New ?
MySQL 8.0 - What's New ?MySQL 8.0 - What's New ?
MySQL 8.0 - What's New ?
Olivier DASINI
 
Connector/J Beyond JDBC: the X DevAPI for Java and MySQL as a Document Store
Connector/J Beyond JDBC: the X DevAPI for Java and MySQL as a Document StoreConnector/J Beyond JDBC: the X DevAPI for Java and MySQL as a Document Store
Connector/J Beyond JDBC: the X DevAPI for Java and MySQL as a Document Store
Filipe Silva
 
2018: State of the Dolphin, MySQL Keynote at Percona Live Europe 2018, Frankf...
2018: State of the Dolphin, MySQL Keynote at Percona Live Europe 2018, Frankf...2018: State of the Dolphin, MySQL Keynote at Percona Live Europe 2018, Frankf...
2018: State of the Dolphin, MySQL Keynote at Percona Live Europe 2018, Frankf...Geir Høydalsvik
 
Node.js and the MySQL Document Store
Node.js and the MySQL Document StoreNode.js and the MySQL Document Store
Node.js and the MySQL Document Store
Rui Quelhas
 
MySQL 8.0, what's new ? - Forum PHP 2018
MySQL 8.0, what's new ? - Forum PHP 2018MySQL 8.0, what's new ? - Forum PHP 2018
MySQL 8.0, what's new ? - Forum PHP 2018
Olivier DASINI
 
MySQL as a Document Store
MySQL as a Document StoreMySQL as a Document Store
MySQL as a Document Store
Ted Wennmark
 
MySQL Document Store (Oracle Code Warsaw 2018)
MySQL Document Store (Oracle Code Warsaw 2018)MySQL Document Store (Oracle Code Warsaw 2018)
MySQL Document Store (Oracle Code Warsaw 2018)
Vittorio Cioe
 
My sql8 innodb_cluster
My sql8 innodb_clusterMy sql8 innodb_cluster
My sql8 innodb_cluster
Mysql User Camp
 
MySQL Connector/Node.js and the X DevAPI
MySQL Connector/Node.js and the X DevAPIMySQL Connector/Node.js and the X DevAPI
MySQL Connector/Node.js and the X DevAPI
Rui Quelhas
 
MySQL 8 loves JavaScript
MySQL 8 loves JavaScript MySQL 8 loves JavaScript
MySQL 8 loves JavaScript
Sanjay Manwani
 
MySQL Day Paris 2016 - State Of The Dolphin
MySQL Day Paris 2016 - State Of The DolphinMySQL Day Paris 2016 - State Of The Dolphin
MySQL Day Paris 2016 - State Of The Dolphin
Olivier DASINI
 
MySQL 20 años: pasado, presente y futuro; conoce las nuevas características d...
MySQL 20 años: pasado, presente y futuro; conoce las nuevas características d...MySQL 20 años: pasado, presente y futuro; conoce las nuevas características d...
MySQL 20 años: pasado, presente y futuro; conoce las nuevas características d...
GeneXus
 
MySQL InnoDB Cluster and NDB Cluster
MySQL InnoDB Cluster and NDB ClusterMySQL InnoDB Cluster and NDB Cluster
MySQL InnoDB Cluster and NDB Cluster
Mario Beck
 
MySQL Document Store
MySQL Document StoreMySQL Document Store
MySQL Document Store
Mario Beck
 
BGOUG 2014: Developing Using MySQL
BGOUG 2014: Developing Using MySQLBGOUG 2014: Developing Using MySQL
BGOUG 2014: Developing Using MySQL
Georgi Kodinov
 
Simplifying MySQL, Pre-FOSDEM MySQL Days, Brussels, January 30, 2020.
Simplifying MySQL, Pre-FOSDEM MySQL Days, Brussels, January 30, 2020.Simplifying MySQL, Pre-FOSDEM MySQL Days, Brussels, January 30, 2020.
Simplifying MySQL, Pre-FOSDEM MySQL Days, Brussels, January 30, 2020.Geir Høydalsvik
 
MySQL 5.7 como Document Store
MySQL 5.7 como Document StoreMySQL 5.7 como Document Store
MySQL 5.7 como Document Store
MySQL Brasil
 

Similar to MySQL Shell: The DevOps Tool for MySQL (20)

MySQL Shell: the daily tool for devs and admins. By Vittorio Cioe.
MySQL Shell: the daily tool for devs and admins. By Vittorio Cioe.MySQL Shell: the daily tool for devs and admins. By Vittorio Cioe.
MySQL Shell: the daily tool for devs and admins. By Vittorio Cioe.
 
MySQL Document Store and Node.JS
MySQL Document Store and Node.JSMySQL Document Store and Node.JS
MySQL Document Store and Node.JS
 
MySQL Day Paris 2018 - What’s New in MySQL 8.0 ?
MySQL Day Paris 2018 - What’s New in MySQL 8.0 ?MySQL Day Paris 2018 - What’s New in MySQL 8.0 ?
MySQL Day Paris 2018 - What’s New in MySQL 8.0 ?
 
MySQL 8.0 - What's New ?
MySQL 8.0 - What's New ?MySQL 8.0 - What's New ?
MySQL 8.0 - What's New ?
 
Connector/J Beyond JDBC: the X DevAPI for Java and MySQL as a Document Store
Connector/J Beyond JDBC: the X DevAPI for Java and MySQL as a Document StoreConnector/J Beyond JDBC: the X DevAPI for Java and MySQL as a Document Store
Connector/J Beyond JDBC: the X DevAPI for Java and MySQL as a Document Store
 
2018: State of the Dolphin, MySQL Keynote at Percona Live Europe 2018, Frankf...
2018: State of the Dolphin, MySQL Keynote at Percona Live Europe 2018, Frankf...2018: State of the Dolphin, MySQL Keynote at Percona Live Europe 2018, Frankf...
2018: State of the Dolphin, MySQL Keynote at Percona Live Europe 2018, Frankf...
 
Node.js and the MySQL Document Store
Node.js and the MySQL Document StoreNode.js and the MySQL Document Store
Node.js and the MySQL Document Store
 
MySQL 8.0, what's new ? - Forum PHP 2018
MySQL 8.0, what's new ? - Forum PHP 2018MySQL 8.0, what's new ? - Forum PHP 2018
MySQL 8.0, what's new ? - Forum PHP 2018
 
MySQL as a Document Store
MySQL as a Document StoreMySQL as a Document Store
MySQL as a Document Store
 
MySQL Document Store (Oracle Code Warsaw 2018)
MySQL Document Store (Oracle Code Warsaw 2018)MySQL Document Store (Oracle Code Warsaw 2018)
MySQL Document Store (Oracle Code Warsaw 2018)
 
My sql8 innodb_cluster
My sql8 innodb_clusterMy sql8 innodb_cluster
My sql8 innodb_cluster
 
MySQL Connector/Node.js and the X DevAPI
MySQL Connector/Node.js and the X DevAPIMySQL Connector/Node.js and the X DevAPI
MySQL Connector/Node.js and the X DevAPI
 
MySQL 8 loves JavaScript
MySQL 8 loves JavaScript MySQL 8 loves JavaScript
MySQL 8 loves JavaScript
 
MySQL Day Paris 2016 - State Of The Dolphin
MySQL Day Paris 2016 - State Of The DolphinMySQL Day Paris 2016 - State Of The Dolphin
MySQL Day Paris 2016 - State Of The Dolphin
 
MySQL 20 años: pasado, presente y futuro; conoce las nuevas características d...
MySQL 20 años: pasado, presente y futuro; conoce las nuevas características d...MySQL 20 años: pasado, presente y futuro; conoce las nuevas características d...
MySQL 20 años: pasado, presente y futuro; conoce las nuevas características d...
 
MySQL InnoDB Cluster and NDB Cluster
MySQL InnoDB Cluster and NDB ClusterMySQL InnoDB Cluster and NDB Cluster
MySQL InnoDB Cluster and NDB Cluster
 
MySQL Document Store
MySQL Document StoreMySQL Document Store
MySQL Document Store
 
BGOUG 2014: Developing Using MySQL
BGOUG 2014: Developing Using MySQLBGOUG 2014: Developing Using MySQL
BGOUG 2014: Developing Using MySQL
 
Simplifying MySQL, Pre-FOSDEM MySQL Days, Brussels, January 30, 2020.
Simplifying MySQL, Pre-FOSDEM MySQL Days, Brussels, January 30, 2020.Simplifying MySQL, Pre-FOSDEM MySQL Days, Brussels, January 30, 2020.
Simplifying MySQL, Pre-FOSDEM MySQL Days, Brussels, January 30, 2020.
 
MySQL 5.7 como Document Store
MySQL 5.7 como Document StoreMySQL 5.7 como Document Store
MySQL 5.7 como Document Store
 

More from Miguel Araújo

Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Miguel Araújo
 
MySQL Router - Explore The Secrets (MySQL Belgian Days 2024)
MySQL Router - Explore The Secrets (MySQL Belgian Days 2024)MySQL Router - Explore The Secrets (MySQL Belgian Days 2024)
MySQL Router - Explore The Secrets (MySQL Belgian Days 2024)
Miguel Araújo
 
MySQL Shell/AdminAPI - MySQL Architectures Made Easy For All!
MySQL Shell/AdminAPI - MySQL Architectures Made Easy For All!MySQL Shell/AdminAPI - MySQL Architectures Made Easy For All!
MySQL Shell/AdminAPI - MySQL Architectures Made Easy For All!
Miguel Araújo
 
Deep Dive into MySQL InnoDB Cluster Read Scale-out Capabilities.pdf
Deep Dive into MySQL InnoDB Cluster Read Scale-out Capabilities.pdfDeep Dive into MySQL InnoDB Cluster Read Scale-out Capabilities.pdf
Deep Dive into MySQL InnoDB Cluster Read Scale-out Capabilities.pdf
Miguel Araújo
 
MySQL Database Architectures - High Availability and Disaster Recovery Solution
MySQL Database Architectures - High Availability and Disaster Recovery SolutionMySQL Database Architectures - High Availability and Disaster Recovery Solution
MySQL Database Architectures - High Availability and Disaster Recovery Solution
Miguel Araújo
 
MySQL InnoDB Cluster / ReplicaSet - Tutorial
MySQL InnoDB Cluster / ReplicaSet - TutorialMySQL InnoDB Cluster / ReplicaSet - Tutorial
MySQL InnoDB Cluster / ReplicaSet - Tutorial
Miguel Araújo
 
FOSDEM'18: MySQL InnoDB Cluster - MySQL HA Made Easy!
FOSDEM'18: MySQL InnoDB Cluster - MySQL HA Made Easy!FOSDEM'18: MySQL InnoDB Cluster - MySQL HA Made Easy!
FOSDEM'18: MySQL InnoDB Cluster - MySQL HA Made Easy!
Miguel Araújo
 
MySQL Shell - The DevOps Tool for MySQL
MySQL Shell - The DevOps Tool for MySQLMySQL Shell - The DevOps Tool for MySQL
MySQL Shell - The DevOps Tool for MySQL
Miguel Araújo
 
MySQL Proxy. A powerful, flexible MySQL toolbox.
MySQL Proxy. A powerful, flexible MySQL toolbox.MySQL Proxy. A powerful, flexible MySQL toolbox.
MySQL Proxy. A powerful, flexible MySQL toolbox.
Miguel Araújo
 
SLQ vs NOSQL - friends or foes
SLQ vs NOSQL - friends or foesSLQ vs NOSQL - friends or foes
SLQ vs NOSQL - friends or foes
Miguel Araújo
 
Asynchronous Replication of Databases
Asynchronous Replication of DatabasesAsynchronous Replication of Databases
Asynchronous Replication of Databases
Miguel Araújo
 
Evaluating Data Freshness in Large Scale Replicated Databases
Evaluating Data Freshness in Large Scale Replicated DatabasesEvaluating Data Freshness in Large Scale Replicated Databases
Evaluating Data Freshness in Large Scale Replicated Databases
Miguel Araújo
 

More from Miguel Araújo (12)

Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
MySQL Router - Explore The Secrets (MySQL Belgian Days 2024)
MySQL Router - Explore The Secrets (MySQL Belgian Days 2024)MySQL Router - Explore The Secrets (MySQL Belgian Days 2024)
MySQL Router - Explore The Secrets (MySQL Belgian Days 2024)
 
MySQL Shell/AdminAPI - MySQL Architectures Made Easy For All!
MySQL Shell/AdminAPI - MySQL Architectures Made Easy For All!MySQL Shell/AdminAPI - MySQL Architectures Made Easy For All!
MySQL Shell/AdminAPI - MySQL Architectures Made Easy For All!
 
Deep Dive into MySQL InnoDB Cluster Read Scale-out Capabilities.pdf
Deep Dive into MySQL InnoDB Cluster Read Scale-out Capabilities.pdfDeep Dive into MySQL InnoDB Cluster Read Scale-out Capabilities.pdf
Deep Dive into MySQL InnoDB Cluster Read Scale-out Capabilities.pdf
 
MySQL Database Architectures - High Availability and Disaster Recovery Solution
MySQL Database Architectures - High Availability and Disaster Recovery SolutionMySQL Database Architectures - High Availability and Disaster Recovery Solution
MySQL Database Architectures - High Availability and Disaster Recovery Solution
 
MySQL InnoDB Cluster / ReplicaSet - Tutorial
MySQL InnoDB Cluster / ReplicaSet - TutorialMySQL InnoDB Cluster / ReplicaSet - Tutorial
MySQL InnoDB Cluster / ReplicaSet - Tutorial
 
FOSDEM'18: MySQL InnoDB Cluster - MySQL HA Made Easy!
FOSDEM'18: MySQL InnoDB Cluster - MySQL HA Made Easy!FOSDEM'18: MySQL InnoDB Cluster - MySQL HA Made Easy!
FOSDEM'18: MySQL InnoDB Cluster - MySQL HA Made Easy!
 
MySQL Shell - The DevOps Tool for MySQL
MySQL Shell - The DevOps Tool for MySQLMySQL Shell - The DevOps Tool for MySQL
MySQL Shell - The DevOps Tool for MySQL
 
MySQL Proxy. A powerful, flexible MySQL toolbox.
MySQL Proxy. A powerful, flexible MySQL toolbox.MySQL Proxy. A powerful, flexible MySQL toolbox.
MySQL Proxy. A powerful, flexible MySQL toolbox.
 
SLQ vs NOSQL - friends or foes
SLQ vs NOSQL - friends or foesSLQ vs NOSQL - friends or foes
SLQ vs NOSQL - friends or foes
 
Asynchronous Replication of Databases
Asynchronous Replication of DatabasesAsynchronous Replication of Databases
Asynchronous Replication of Databases
 
Evaluating Data Freshness in Large Scale Replicated Databases
Evaluating Data Freshness in Large Scale Replicated DatabasesEvaluating Data Freshness in Large Scale Replicated Databases
Evaluating Data Freshness in Large Scale Replicated Databases
 

Recently uploaded

Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
Paco van Beckhoven
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus
 
Advanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should KnowAdvanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should Know
Peter Caitens
 
Visitor Management System in India- Vizman.app
Visitor Management System in India- Vizman.appVisitor Management System in India- Vizman.app
Visitor Management System in India- Vizman.app
NaapbooksPrivateLimi
 
Designing for Privacy in Amazon Web Services
Designing for Privacy in Amazon Web ServicesDesigning for Privacy in Amazon Web Services
Designing for Privacy in Amazon Web Services
KrzysztofKkol1
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Globus
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Globus
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns
 
Corporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMSCorporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMS
Tendenci - The Open Source AMS (Association Management Software)
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
Globus
 
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
Tier1 app
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
Georgi Kodinov
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
abdulrafaychaudhry
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
Juraj Vysvader
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
XfilesPro
 
A Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdfA Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdf
kalichargn70th171
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Natan Silnitsky
 
Software Testing Exam imp Ques Notes.pdf
Software Testing Exam imp Ques Notes.pdfSoftware Testing Exam imp Ques Notes.pdf
Software Testing Exam imp Ques Notes.pdf
MayankTawar1
 
Accelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with PlatformlessAccelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with Platformless
WSO2
 

Recently uploaded (20)

Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
 
Advanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should KnowAdvanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should Know
 
Visitor Management System in India- Vizman.app
Visitor Management System in India- Vizman.appVisitor Management System in India- Vizman.app
Visitor Management System in India- Vizman.app
 
Designing for Privacy in Amazon Web Services
Designing for Privacy in Amazon Web ServicesDesigning for Privacy in Amazon Web Services
Designing for Privacy in Amazon Web Services
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
 
Corporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMSCorporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMS
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
 
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
 
A Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdfA Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdf
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
 
Software Testing Exam imp Ques Notes.pdf
Software Testing Exam imp Ques Notes.pdfSoftware Testing Exam imp Ques Notes.pdf
Software Testing Exam imp Ques Notes.pdf
 
Accelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with PlatformlessAccelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with Platformless
 

MySQL Shell: The DevOps Tool for MySQL

  • 1. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | Copyright © 2018, Oracle and/or its affiliates. All rights reserved. Miguel Araújo Senior Software Developer Alfredo Kojima Senior Software Development Manager MySQL Middleware and Clients October 24, 2018 MySQL Shell The DevOps Tool for MySQL
  • 2. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | Safe Harbor Statement The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, timing, and pricing of any features or functionality described for Oracle’s products may change and remains at the sole discretion of Oracle Corporation. 2
  • 3. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | Program Agenda introduction to DevOps MySQL Shell Development with the Shell - Live demo! Shell meets continuous automation MySQL InnoDB Cluster Shell as the operations frontend of IDC - Live demo! Summary 1 2 3 4 5 3 6 7
  • 4. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 4 Who are we?
  • 5. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | whoami Miguel Araújo • MySQL Senior Software Developer • Lead developer for the AdminAPI at the MySQL Shell team • MySQL InnoDB Cluster evangelist • Living in Portugal • http://about.me/miguel-araujo 5
  • 6. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | whoami Alfredo Kojima • MySQL Senior Software Development Manager • Technical lead for MySQL Clients team: X Plugin, Router, Shell, C Connectors • MySQL InnoDB Cluster evangelist • Living in the USA 6
  • 7. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | Program Agenda Introduction to DevOps MySQL Shell Development with the Shell - Live demo! Shell meets continuous automation MySQL InnoDB Cluster Shell as the operations frontend of IDC - Live demo! Summary 1 3 4 5 7 6 7 2
  • 8. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 8 DevOps: What is it? DEVOPS Software OperationsSoftware Development
  • 9. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 9 DevOps: What is it? As simple as:  Engineers (developers) and operations working together to:  Get things done faster  Automate processes  Share knowledge
  • 10. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | DevOps: Goals • Continuous, faster development • Faster time to deliver • Lower the failure rate • Reduce dependency of staff that owns all the knowledge by sharing the competences to all the team 10
  • 11. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | Program Agenda Introduction to DevOps MySQL Shell Development with the Shell - Live demo! Shell meets continuous automation MySQL InnoDB Cluster Shell as the operations frontend of IDC - Live demo! Summary 1 3 4 5 11 6 7 2
  • 12. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | MySQL Shell: Introduction • Interactive multi-language console interface that supports development and administration for the MySQL Server • Can be used to perform data queries or updates, and administration operations:  Scriptable “DevOps” APIs Unified Interface for MySQL Developers and DBAs: one tool! • Intuitive and easy to use 12
  • 13. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 1.0 • Supports MySQL Server 5.7 8.0 Supports MySQL Server 5.7 and 8.0 Higly recommended version! Note: Upgrade to 8.0 right away if you’re still using 1.0 13 MySQL Shell: Versions
  • 14. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | MySQL Shell: Goal • One tool for MySQL development and administrative tasks • Natural interface for all MySQL related ”DevOps”! – Unified Interface for Developers and DBAs • Intuitive, flexible and powerful • Provides scripting with development and administrative APIs 14
  • 15. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | MySQL Shell: Features (Dev) • Multi-language support – JavaScript, Python and SQL – Both interactive and batch operations 15 MySQL Development
  • 16. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | MySQL Shell: Features (Dev) • Document and Relational models – Supports the classic relational model – Modern fluent API for the MySQL Document Store • CRUD and Relational – Supports the traditional Table results, as well as JSON or Tab separated output 16 MySQL Development
  • 17. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | MySQL Shell: Features (Dev) • Support for scripting in Python and JavaScript • APIs for MySQL DBs, Document Store, InnoDB cluster, Shell and more • Import any installed module (in Python) • Execute scripts from – Interactive REPL interface (interactive interpreter) – Directly from the command line • mysqlsh --py –e "print 'Hello world'" – From Python, JS, SQL script files Scripting 17
  • 18. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | MySQL Shell: Features (Dev) • session – Assigned to the DB session when the shell connects to MySQL – The MySQL session used by the Shell in SQL mode – Execute queries Scripting – Globals 18 mysql-js> session.query(“show status”);
  • 19. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | MySQL Shell: Features (Dev) Scripting – Examples 19 • Connect to myserver.foo.com • Execute create_account.js with any extra arguments forwarded to the script (sys.argv[]) • The script can use the session global variable to execute SQL in the target server $ mysqlsh root@myserver.foo.com –f create_account.js appuser@’192.168.%.%’
  • 20. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | MySQL Shell: Features (Dev) Scripting – Non interactive execution 20 $ mysqlsh -–no-wizards • Disables interactive features – Passwords, confirmations, prompts, etc., disabled • Implicit when stdout is not a tty
  • 21. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | MySQL Shell: Features (Dev) Document Store – X DevAPI 21 • Support for MySQL Document Store API • Create collections • Import JSON dumps • Try out queries and write simple scripts interactively • X DevAPI CRUD operations • SQL
  • 22. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | MySQL Shell: Features (Dev) Other development APIs 22 • mysql – mysql.getSession(), etc. – Connects to MySQL server using classic MySQL protocol – run SQL queries – mysqlx for X protocol sessions and X Dev API
  • 23. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | MySQL Shell: Features (Dev) Other development APIs 23 • shell – Programmatic access to most shell features – Configuration options (option) – Password Manager API – Pager API (pager) – logging – URI parsing – Prompting for user input – Establish connections: shell.connect(‘user@host:port’)
  • 24. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | MySQL Shell: Features (Ops) • Administration API: AdminAPI – Creation and Management of InnoDB Clusters – Hides the complexity of: • Configuration • Provisioning • Orchestration – Simple and straight-forward – Doesn’t require MySQL expertise – Flexible, powerful and secure – Available in both JavaScript and Python 24 MySQL Administration
  • 25. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | • Deploy and manage MySQL sandboxes: – dba.deploySandboxInstance() – dba.stopSandboxInstance() – dba.startSandboxInstance() – dba.deleteSandboxInstance() – dba.killSandboxInstance() Important: Sandbox instances are only suitable for testing purposes! MySQL Shell: Features (Ops) AdminAPI - Sandboxes 25
  • 26. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | MySQL Shell: Features (Ops) • Shell Utilities: util object – Upgrade checker • Verify whether instances are ready for upgrading to MySQL 8 – Import JSON documents • From a file or standard input to a MySQL Server • Supports importing to a collection or relational table 26 mysql-js> util.checkForServerUpgrade(“root@localhost:3306”); MySQL Administration
  • 27. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | MySQL Shell: Features (Ops) • API Command line integration – New cmdline syntax to invoke built-in Shell commands – Requires minimal extra typing, quoting and escaping – Supported objects: dba, cluster, shell, shell.options and util Syntax: mysqlsh [OPTIONS] [URI] -- <object_name> <method_name> [argument_list] 27 $ mysqlsh root@myserver:33060 –- util import-json ~/Downloads/myData/data.json --collections=‘zip codes’ --schema=‘json_test’ MySQL Administration
  • 28. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | • Display context information • Custom/dynamic tags that react to context – export PRODUCTION_SERVERS=192.168.42.16 MySQL Shell: Features (DBA toolbox) Customizable Prompts 28
  • 29. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | • Sample prompt file: – mysql-shell/share/mysqlsh/prompt/ • Customization instructions: – mysql-shell/share/mysqlsh/prompt/README MySQL Shell: Features (DBA toolbox) Customizable Prompts 29
  • 30. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | MySQL Shell: Features (DBA toolbox) Secure Credential Manager • MySQL server passwords can be queried from a secure password store • Uses existing OS native password storage APIs – Keychain (macOS) – Credential Manager (Windows) – MySQL login-path encrypted files (all) • Optionally auto-save typed passwords (default will prompt) • Or use API to store programmatically – shell.storeCredential("root@192.168.1.32", "s3cr37!"); • Write your own password store backend 30
  • 31. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | MySQL Shell: Features (DBA toolbox) History • Typed command history • Persisting disabled by default, enable with – option history.autoSave=true • Filter SQL statements that may contain sensitive info – e.g. SET PASSWORD='my password' – option history.sql.ignorePattern 31
  • 32. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | MySQL Shell: Features (DBA toolbox) Pager • Pass SQL results through an external screen paging program – pager less – show status; 32
  • 33. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | MySQL Shell: Features (DBA toolbox) Built-in Help • Documentation for included APIs, shell commands, SQL, etc. • help keyword – (wildcards allowed) 33
  • 34. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | --cluster • Prepares the Shell for managing the InnoDB cluster the target server belongs to • Automatically assigns the cluster global variable --redirect-primary • Connects the shell to the primary of the InnoDB cluster group, in case the one we connect to is a secondary --redirect-secondary • Connects the shell to a secondary member of the InnoDB cluster group MySQL Shell: Features (Ops) AdminAPI - options 34
  • 35. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 35 MySQL Shell Development with the Shell Live Demo!
  • 36. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | Program Agenda Introduction to DevOps MySQL Shell Development with the Shell - Live demo! Shell meets continuous automation MySQL InnoDB Cluster Shell as the operations frontend of IDC - Live demo! Summary 1 3 4 5 36 6 7 2
  • 37. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | Shell meets continuous automation 37 • Continuous automation frameworks provide mechanisms for setup, configuration and management of MySQL Server • DBA can automate operations by using modules. • Classic example:  Ensure MySQL Server deployments use the latest available version
  • 38. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | Shell meets continuous automation 38 • Let’s use as an example: service { ‘mysql’: ensure => latest, enable => true, require => Package[‘mysql-server-community’], }
  • 39. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | Shell meets continuous automation 39 What if current is 5.7 and latest is 8.0? Will it break everything? service { ‘mysql’: ensure => latest, enable => true, require => Package[‘mysql-server-community’], } ! • Let’s use as an example:
  • 40. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | Shell meets continuous automation 40 service { ‘mysql’: ensure => latest, enable => true, require => Package[‘mysql-server-community’], before => Exec [‘upgrade checker’] } exec { “upgrade checker”: command => “mysqlsh -- util check-for-server-upgrade { --user=root -- host=localhost --port=3306} --password=‘myPwd’” require => Service[“mysqlsh”] } • Use MySQL Shell upgrade checker
  • 41. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | Program Agenda Introduction to DevOps MySQL Shell Development with the Shell - Live demo! Shell meets continuous automation MySQL InnoDB Cluster Shell as the operations frontend of IDC - Live demo! Summary 1 3 4 5 41 6 7 2
  • 42. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 100% Virtually all organization require their most critical systems to be highly available 42
  • 43. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 43 • High Availability: critical factor • Replication as a common solution • MySQL has support for: – Classic master-slave replication – DRBDS – Other OS or VM solutions… MySQL InnoDB Cluster: Background
  • 44. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | MySQL InnoDB Cluster: Background 44 • High Availability: critical factor • Replication as a common solution • MySQL has support for: – Classic master-slave replication – DRBDS – Other OS or VM solutions… Group Replication ! • Update-everywhere (m-m) • Virtually synchronous replication • Automatic server fail-over – Distributed recovery – Group reconfiguration • Powered by a GCS: Implementation of Paxos
  • 45. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | MySQL InnoDB Cluster: Background • Challenging task – Not easy to setup and maintain – Technical knowledge needed – How to configure the applications? – How to integrate all the components? 45 ? ?
  • 46. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | MySQL InnoDB Cluster: Vision 46 – Engineering Team “A single product — MySQL — with high availability and scaling features baked in; providing an integrated end-to-end solution that is easy to use.”
  • 47. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 47
  • 48. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 48 MySQL Group Replication InnoDB cluster
  • 49. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 49 MySQL Group Replication InnoDB cluster App Servers with MySQL Router
  • 50. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 50 MySQL Group Replication InnoDB cluster App Servers with MySQL Router MySQL Shell Setup, Manage, Orchestrate
  • 51. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 51 MySQL Group Replication InnoDB cluster App Servers with MySQL Router MySQL Shell Setup, Manage, Orchestrate Clients
  • 52. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 52 One Product Full Stack HA Solution Easy to use! InnoDB cluster
  • 53. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 53 MySQL Shell Shell as the operations frontend of InnoDB Cluster Live Demo!
  • 54. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | Summary • MySQL Shell brings together developers and DBAs • Unified interface: one tool! • Development and Administration APIs and features • MySQL InnoDB Cluster is THE built-in HA solution for MySQL: • Full-stack: High Availability out-of-the-box • Easy to use: usability as a top concern 54
  • 55. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | Resources • MySQL Shell Userguide: – https://dev.mysql.com/doc/refman/en/mysql-shell.html • MySQL InnoDB Cluster Userguide: – http://dev.mysql.com/doc/refman/en/mysql-innodb-cluster-userguide.html • APIs Reference manuals – JavaScript: https://dev.mysql.com/doc/dev/mysqlsh-api-javascript/ – Python: https://dev.mysql.com/doc/dev/mysqlsh-api-python/ • Blogging – http://mysqlserverteam.com/category/high-availability 55