 Okay, so I think we can start Hello, everyone. This is Project update for open stack trove. My name is Bartosz Urkowski. I am cloud and big data engineer at Samsung R&D Institute, Poland I'm also core contributor in trove I'm very glad to invite you to this session and I'm happy to see so many of you wanting to know about the project and Maybe wanting to help This is the outline. Firstly, I will say a few words about trove mission about it core features Then I will show you deployment stats how a trove is deployed in production Then I will highlight rocky release. I will discuss Stein goals and finally I will give you information about current community state Trove is database as a service for open stack. It provides you full data with full database life cycle management, including provisioning configuration management, backups, scaling, resizing And its main mission is to offload database administrators from the burden of administering databases Because on a daily basis, we desire rapid access to new database instances to Handle increasing data workloads However, delivering fully functional production grade database instances to our developers and users is troublesome and requires accomplishing many steps including provisioning virtual resources Installing database software applying configuration hardening software upgrades Performing backup scaling replication clustering on top of all of these activities. There are also tasks that differentiate our products that give us value tasks such as optimizing applications at tuning database performance managing database schema so trove mission is to automate these activities and Enable administrators to focus on this important task and engage the potential Trove currently supports 11 database engines relational and non relational in both single instance and cluster deployments And it has the complexity of managing each of them behind unified interface by unified interface I understand that you have single command to create instance of MariaDB, Radis or Cassandra Single command to perform backups on all of these instances single command to apply a configuration and and so on and Finally trove is built entirely on OpenStack. It fully utilizes OpenStack infrastructure ecosystem It is a great synergy of services such as Nova, Cinder, Swift, Glance and Neutron Let me briefly introduce you to the core features provided by our project Obviously the most fundamental feature provided by trove is provisioning database instances Trove allows you to create database instances of almost any type available on the market You only have to specify data store type. So whether it's MariaDB, Radis or Cassandra version of data store the capacity Flavor and network in which your database should be running and after launching the instance Trove will deliver you with a functional database instance to connect to and start performing queries After you create the instance, you are able to dynamically change its capacity and computational power by resizing volumes and flavors You also have database and user management API. So you are able to create databases and users on running instances in an abstract way Trove helps you keep configurations consistent between database deployments and allows you to manage configuration on a massive scale It provides a concept of a configuration group Which is a set of parameters in key value format that may be defined for a given data store After you create this configuration group You are able to attach it to multiple database instances Update configuration on multiple database instances at once as well as restore defaults afterwards So imagine that you have 100 database instances running in an environment Trove allows you to Update configuration on all of these instances at once in a single command Moreover it provides you with a convenient backup management API allows you to perform both full and incremental backups And from a perspective you only have to specify instances on which backup should be performed So you do not have to care about Choosing appropriate back-uping strategy about running dedicated back-uping tool about compression encryption and Storing the backup output in some external storage Trove will handle this all for you And it also allows you to define so-called scheduled backups On a daily basis, we do not want to perform backups once or twice randomly We want to perform backups in a periodical fashion once a day once an hour once a week and trove allows you to do that You only have to specify a cron job for for backup to to execute and trove by integration with Mistral We register periodic cron job to trigger backup periodically It also allows you to upgrade data store services running on your instances both on single instances and cluster deployments in case of clusters it will conduct rolling upgrade and update only One a cluster node at the moment Besides single instance deployment. It also allows you to provision clusters Some of you may know that provisioning clusters and managing their topologies is not a trivial task. It requires activities such as creating nodes electing nodes with nodes with special roles Setting up grossing protocols joining the cluster Trove simplifies this procedure to the bare minimum. You only specify data store type version flavor and capacity specification for each node and you are delivered with Functional cluster to connect to It also allows you to dynamically resize the cluster grow cluster by new cluster nodes or remove the old ones as well as set up replication sets consisting of single replication source and multiple slaves and This is not full feature sets of of trove. It provides much more, but this is what you use most often and And This is the updated data store capability matrix the one that you saw in the documentation Was stale and updated and we managed to update it with all features that were introduced over time As I already said trove supports 11 database engines five relational one key value Two column stores to document stores and one multimodal database Probably joining schema management backup and restore resizing is supported by all these data stores Replication and clustering. This is still work in progress We are slowly filling the gaps and need help from the community to facilitate the process So I have question for you If any one of you did not found a database on the slide that you use Your favorite database, which one is that? Oracle Okay We have that on our mind and maybe we'll introduce this in the future and I have a yes Yeah, it is also not supported Yeah, so SQL server No, so Oracle and SQL server are not currently supported But I have a good news to you Could repeat by trove They may be supported we can implement new new strategies But this is a road map for a further feature future I would like to emphasize that trove is not only database as a service solution It is also a great database automation framework the abstractions that it introduces in its code and architecture Make it very easy to implement strategies for new databases You only have to implement interfaces of several classes prepare Guest image so virtual machine image hosting database service of your choice and you can fully leverage automated database lifecycle management In my opinion, this is a huge advantage of our commercial solutions that in most cases have closed sources Do not allow for contributions in case of commercial solutions We are always limited to the data stores that are offered at the moment and with trove We may implement this support that we that we need This a known diagram showing The results of a survey that was conducted during previous open stack summits And this is percentage usage of each open stack project among 350 cloud deployments that were analyzed during the survey a 5% of this this deployments It gives us around 18 users trove in production 8% is evaluating it for future use in production and 17% is interested in integrating trove into their platform at some point in the future Moving on to highlighting rocky lease It is a well-known fact that trove community is in a bad shape And this is mostly caused by major company contributors living the community so during rocky we were focusing mostly on on Accomplishing open stack wide goals. We managed to enable mutable configuration. So now Trove configuration may be updated in the runtime without restore restarting trove services Also, we removed use of mocks in favor of mocks free for testing because mocks is deprecated It is not actively maintained It doesn't have support for python 3 and since python 3 support is wide goal for open stack future We decided to move all truth projects to mocks free which supports python 3 We also progressed with migrating our trove client to centralized monitoring centralized open stack client We added support for commands in scope of clustering Reptication configuration and executions. This is still work in progress and the etherpad that is linked below Is showing current status of this migration which commands are already migrated and which commands should be migrated soon We also investigated investigated Nova file injection deprecation Nova deprecated personality files that are being used by trove to inject guest config into virtual machines So we prepared a spec which proposes using User data instead this spec already passed our approval process and we are going to implement it in the Stein release We also Enhanced our tempest integration test suit Well, the previous testing suit had many problems. In example, it has very poor test isolation It requires pure creating resources such as users roles Networks and it also is very slow Hard to maintain So our long-term goal long-term goal is to replace all Tests with tempest tempest scenarios We already added tempest job to Zulu CI pipeline as well as we have several API tests that cover basic APIs And these are stats for Rocky 100 commits 11 thousands of Lines of codes 30 contributors 47 Reviewers and core team consisting of 14 people Currently, this is not enough to effectively maintain and develop the project But we hope to to change that in the in the future as I will say in a few slides Regarding Stein Similar to Rocky the first focus is put on open stack wide goals The first one is running under Python free by default We already immigrated most of the project to Python free and this is also Described in ether path linked below And we will support prob grade checks the prob grade check framework is already merged into our mainline and we will enhance the checks We will also progress with immigration to open stack client We will implement the spec for adopting user data instead of Nova personality files We will enhance tempest integration framework for trove by New testing environment and new testing scenarios as well as we will improve documentation because we identified That the main reason why users and operators are not going to use trove is because they don't know how to and The entry level for the project is very high so In example people are trying to build guest images for trove and they are failing and they are not trying to Overcome that Our idea is also to embed building guest images into Dev Stack plugins so that People who want to evaluate the project or develop it We'll be able to specify data store type and version and Dev Stack plugin will automatically build guest image and load it into Trove so right after Installing Dev Stack user will be able to interact with Trove without Troubling with building images or applying some custom configuration And finally we want to introduce a new communication channel between control and data plane. This is for security reasons Currently guest agent is communicating with control plane via the message bus So it has credential and access to the message bus and is able to communicate with any open stack service And you want to prevent that by Applying similar concept to Octavia communicate with control plane directly without interaction with the message broker Now moving on to community update in the middle of rocky release Samsung R&D joined the community They have more than two years of experience. They have many features implemented internally and now They are pushing these changes to the upstream We also introduced three new active contributors to the project as well as we have new a project technical read Darius cruel unfortunately couldn't make it today And finally we have planned for every talization Which is described in this linked pad? Firstly and these are the first steps that you want to conduct we want to evangelize about trough So during open stack summit we have three sessions about trough on boarding session project update and The main session about production use cases We want to understand user requirements We already had great discussions with people at summits about what they need and what are they doubt their doubts doubts about the project? We also will improve through documentation and simplify guest image building since we identified this as the most Common issues when entering the project So I guess this is all from my side We need help if you want to contribute if you want to join our journey Then we invite you to our weekly meetings and our IRC channel To contact us and discuss your ideas and issues any questions I guess currently There's no features to Update guest agents, right? No, there's no no no update. Do you have any ideas about how to do that? Not yet. We this not in our roadmap and we do not have any Specification any blueprint for doing though so I think it's very important to apply trove to production Especially public cloud Yes, this is critical because any time code update happens then we have to know shut down instances and Provision them from scratch. Yeah, this is very important and we may focus on that in the future. Thank you another questions I Wouldn't say that this is our story We know certain aspects of security that are being not handled in trove properly The guest guest agent control plane communication is being a notable example here But we are identifying more and more issues by discussing with with users who are using trove in production and Yes, this should be probably also our major focus in the future. Yes Yes, this is what I mentioned in this slide the new communication channel between Guest agent and control plane. We want to focus on that in the Chinese Yeah, no problem Another questions ideas comments Okay, so Yes, so if anyone is interested in Helping us pushing through forward on or has any ideas or want to discuss some topics then I would gladly in invite you to Approach me during the summit in example after this conference and I can get your emails I can give you my business card and we may start to collaborate We also have another session today about production great use cases with trove. So you are invited. It is around 2 p.m So I think we are out of time. So thank you very much