 Tako, možemo vrštiti na tvoj izgledanj prezentacij. Mi je Giuseppe Magija. Mi je tvoj izgledan datacjarm. Mi je vsem v VMWare. Mi je vsem vsečen komeunitivno. Mi je blog in tvoj tvoj datacjarm. Zazve originally I want make sure that you understand what I do here has nothing to do with my company and I don't work for Oracle. So don't blame Oracle, don't blame VMware, it's all my fault. Once upon a time was one tool named MySQL Sunbox. To je nekaj utilitiv, da je bilo mene vseh vseh in vseh spasih. Zvom, da je bilo nekaj vseh, da je bilo vseh. To je bilo vseh, da je bilo vseh, da je bilo vseh, da je bilo vseh, da je bilo vseh. Iga se bilo zelo v שלjeg, da jaz ovo silne več, in potem zelo. Zelo je zelo, da je ovo vseh, jaz ovo vseh vseh vseh, in ultimetno je to je vseh in možda, in demaknila se umožati. Odahvorila najdušku, da moždim mushrooms vseh. in je to početno, da je zelo. Moj skor začel, da se početno. Zato sem da, da se početno v Python. Ne, ne, da je v Ruby, ne, da je v C++, v Java, početno v javlji, v javascript, nekaj ne, in zato sem početno v go, da se početno, da se početno. Počekaj. DbD plojer je tkd. Maskial sum box, rečen od scratch in go. Zato, da ne zelo perl 6, Python, Ruby, C++. Prešliš, čekaj, perl 6. Taj, da počekaj s Sysadmi in Python 2.6, 2.7, 3. In vse zelo tako. Ruby tudi je vse začala. Vse počutimo C++, ali je to vsezve problem, kaj je vsezve vsezve. Zato, da se si vsezve, se dobro vsezve. Vsezve vsezve je problem za vsezve, da se načinuje vsezve aplikacije, basite na Perl, Python, Ruby, C++ in so on. So, why go, because the problem of dependencies is on me. I solve it, and then I give it to the user and they don't have to solve anything. They just take the executable and it works. The only dependency that the users have is to have a place where mySQL can run. Also, it's quick to develop, and there is an amazing community that helps me whenever I have a problem. So, what is it? It's a command line tool, no dependencies like we said before. The interface is familiar because it looks like a git or docker, and it's fast. It can run single database replication, group replication, multiple deployments without replication, multi-source replication. It has an integrated help, and then it is easy to extend. What can you do? You can install a single sandbox, for example. So, it's a MySQL server isolated from any existing MySQL server in the same machine, completely in user space, so you need root for that. It's reasonably isolated, meaning that it tries its best not to step on somebody else's toes, and it's easy to use. Using the same system, you can install a group of sandboxes, meaning that many sandboxes of the same version isolated from each other that you can use for testing strange things that you can do with sandboxes, not in replication. Or you can install replication directly. So, you say, I want one master and two slaves, and they just pop up immediately. With replication enabled, optional with GTID, and easy tools to run replication. Or you can have group replication directly in your laptop, three or more nodes, single primary or multi primary. It just gets installed for you. If you try to install group replication in the same machine manually, you know that you will fail, because it's quite a complicated operation that is not meant to be done by humans. You can also install multi-source replication in MySQL 5.7 or 8.0, three or more nodes using fan-in or all-master stopology. What else can you do? You can administer sandboxes, list the available binaries, list installed sandboxes. You can start, restart, check the status, test and delete them. You can also customize sandboxes. So, you can customize the initialization and the database start, because the bit deployer has a template for every operation that offers to the user. So, you can just download the template, change it, re-put it back into the bit deployer and then you have something different using the same engine. You can also change the sandbox in such a way that they cannot be deleted. So, you can make permanent and play with that and the bit deployer will honor that and don't delete it. Another thing for which the bit deployer is different from the previous implementation is that it can find three ports automatically. So, if there is a conflict with something that is already installed, the bit deployer will find it and give you different ports for that sandbox that you are trying to install. You can expose MySQL 8 dictionary tables. This is something that MySQL team doesn't want you to do, but you can do it because you are curious. Actually, I am curious and I guess that many geeks share the same sentiment. And for this, you can just say the bit deployer gives me that data dictionary in the clear and you have it. You can use a semi synchronous replication and run MySQL commands before and after the server initialization. How do you install it? You just go to the bit deployer website, find releases, download the binary for your operating system, meaning either macOSX or Linux, put the binary in the directory in your path and run it. This is an example. Go to releases, find the release and get the binaries for your operating system. How do you use it? You need the MySQL binary tarbol. Binary tarbol is a tarGZ or tarXZ that has the binaries inside, not source code. You tell the bit deployer to expand it and then you start creating some boxes. For example, here you choose the tarGZ for macOS or the tarGZ for Linux. Once you download, this is how it works. You get the binaries, the tarbol, you tell the bit deployer to unpack it and by default it will go in a directory named OPT MySQL and expand this tarbol with a directory that is named after the version of the tarbol. From that moment on, you can start deploying. Say, the bit deployer deploys single and you create a single sandbox. Or the bit deployer deploys multiple and you create multiple sandbox. So the principle is you unpack once and then use forever or until you get tired of using it. This is a complete example. You see the bit deployer unpack and the full name of the tarbol. And then you can run the bit deployer available. And available tells you which versions have been expanded already. And then you can say the bit deployer deploys single and you refer to that large tarbol that was expanded. Just by the version number. So you say, the bit deployer deploys single 8011. There is a help that gives you a lot of all the commands that are available. So unpack we mentioned. After unpack, you just run versions with alias for available and you can deploy. Then you can run sandboxes that show you what you have already installed. And there is a common usage that tells you how to use the sandboxes that you have already installed. There is also a global command that allows you to give a command to all the sandboxes that are installed. And delete. So once you are finished, you are finished used in the sandbox, you can get rid of them. The defaults are all the information related to the bit deployer composition. For example, the templates that I mentioned before, that you can use to customize the program. And finally admin allows you to deal with the sandboxes, for example, to make them permanent or remove the protection. So these are just screenshots of the help for the various commands. And you see that there are a lot of options that allow you to do almost everything that you have ever dreamed of related to installing my scale databases. In regard in replication, one thing that you should know is that you can install replication with different topology. So topology could be master slave, which is the default, orthopology group. And then you can add group, single primary, topology, all masters, orthopology equal fan in. When you do usage, it shows you what is inside a sandbox. So in every single sandbox, you will find commands like start, start, restart and stop. So you can start the server, restart the server. For example, you can restart the server with an option that changes the configuration of the server. You can have the command use that will just give you the MySQL client for that version inside that sandbox and more. And the same thing happens for multiple sandboxes. So you don't have to remember which port you should call and which socket. It just go inside the sandbox and say M to call the master, S1 to call the first slave, S2 to the second slave. Or if you have something that is not master slave, you will have N1, N2, N3 and so on. One thing that happened just last month, I have remote sandboxes. So instead of doing all things that I showed you before, that you go to the MySQL website and download the binaries, you can use the dbDeployer remote list so you see what is available. For example, for MySQL 80, there is 8012 and 8013. And then you say dbDeployer remote get 8013. And it will deploy one file named 8013.xz in your local directory. And then you can use it like anything that you have downloaded from MySQL. So the good news is that Oracle will publish a repository of minimal tadballs just like that. They say soon, actually they say soon one year ago. So everyone who needs this kind of remote sandboxes, please remind the MySQL team at Oracle to do that. Or use Twitter right now to ask where are the tadballs. Don't forget to put the thread in that Twitter so somebody will do something. So live demo. So the thing that I'm going to do, I'm going to deploy three single sandboxes and several replication sandboxes. And I just run this one and let it run. So you see it starts by showing what is available. And see, these are all the versions installed in my laptop. And then it installs the first single. Then it show the sandboxes. And you see you have a MySQL 5641, it's single. And this is the port that is used by this single installation. Then install 5724 and then 8014. And you see there are more ports. Notice that 8014 has two ports instead of one. Because one port is for the MySQL server and one port is for MySQL X. Then installs replication. And you see that, actually no, this is multi without replication. And you see that there are three ports used. After that we have replication, this one with three ports occupied. Soon after that there is an installation of MySQL group replication. And in the end it says, you see you have more ports for group replication. Because every group replication needs to have per server two ports. One for the server itself and one for the group replication. When we reach the point, when we install group replication with MySQL 80, you will see that instead of six, you will have nine ports occupied. Here it's installing the replication. And notice that all these sandboxes are not clashing with each other. So they stay all happily in my laptop, they don't disturb each other. And you can run tests on each one of those without risk of intruding in some other place. Here is coming group replication with 80, initialization is running. And you see here you have nine ports instead of six. How much time do we have? It's a one or a minute or two and then we have to leave the room. So it's finished. And one thing that I want to show you immediately is the bit deployer global use. So I say for each server there, run select port server ID, server UUID. So it just goes to each sandbox and ask what do you have there, and you get the answer here. This is very useful if you want to run something in every sandbox and you don't want to retype everything for each node. So one thing that is important to know is the bit deployer uses semantic versioning. What does it mean? It means that if I do a bug fix, you will see that the last number will change. So from 123 to 121.4. If I do a new version, sorry, a new feature, you will see that the middle number will change. So you will know that there is something new, but you should not be worried that it will break your work. If you see a change that goes from one something to two, it means that I am breaking compatibility and this means that you cannot use the same version with your current applications. There are many things that I want to do. The remote tarbol I just did it. Somebody suggests that I do an unpack command that has leaned down the tarbol, but since Oracle is going to publish those, so I am not going to do that. And another thing that I am thinking of is install docker containers the same way I install sandboxes. So you can use containers with the same commands that you use for sandboxes. DbDeployer is open source. You are welcome to contribute. You can just go to the GitHub data chairman DbDeployer and see the contributing file that explains how to do it. The slides are already available at slideshare.net. And the data charmer. Questions? Yes? You? I know why you don't prefixed with MySQL. We deployered, we have... To expand to... So the question is, do I have plans to expand DbDeployer to auto database systems? If you mean Percona and MariaDB, it already works. If you mean PostgreSQL or other thing, not really. Unless somebody is really interested and helps me. You want to know what was that installed or what ran? Yes, I just wrote a script that called DbDeployer 20 times. Ah, the load. I mean, the databases are just being installed. And you have seen that installing all those databases that are 52 in total and it took something like three minutes. Yes, I mean this... It's a regular Mac, yes. And this is the reason why I prefer using Sunbox rather than virtual machines, because with the Sunbox the database runs directly in the hardware. OK, thank you and let's get rid of the flood.