 Felly i chi'n gwneud i'r wneud ag y bydd y byddwn a'i'r tynnu addysg o dda'n amser i chi'n gwinio. First thing morning, dwi'n arglwunol i'r ffordd bod Diogel eich phoes a'n ffordd a'r dysgu'r ddymarfod hynny. Dwi'n amser yma eich ynser am gyfan, ond y pethau yn eich ganhau ymddangos dyma, mae ydych chi'n olygu'n cymdeithas i ond ar ddiogel when it comes to running cloud native databases, which is a good thing, freedom of choice and all of that good stuff. But it's also an overwhelming freedom of choice as well. So what we want to do here is talk about some of the good, the bad and the unknowns about how that journey is gone to get to where we are today in regards to what options we have. First of all, I'm Michael Cade. I work for a company called Veeam Software. We focus on protecting workloads. Felly, rydyn ni'n ffocws yn amser bydd, rydyn ni'n gyfnwys ar y strobodd. A rydyn ni'n rhaid i'r cyf Lovelyll Cymru, rydyn ni'n ffordd gyntaf cymunedau ddechreuol yma. Mae'r cyfloteid, mae'r cyfloteid i gydfod meddwl y ddiwyddiad cymunedau, a'r cyfloteid cael ei bod yna ysgwrthod o'r cyfloteid. Rydyn ni'n gweithio'n gweld arall, bo booddan wedi gweld iawn i gwybodd iddi sut wedyn ni'n arfer ochr llai ar ôl. Ond yna'n fyddi'r gwneudio dda i'r clywed gyda gandangodaf ar gyfer gweithio. Gwed hyn, gawn am hyn, bydd y cymrydau ymgyllud Argyrchedeg Phaercaf, bydd yoedd yn erioed yn cael ei gweithio, a dwi'n dechrau ychydig symud ymlaen y gwirgyffordeb yw gyda'u gwirgyffordd ymddans. Wel mae'r ymgylchedeg ym amser yn andeithol... ...od ymgylchedeg a hynny'n gweithio eu gwirgyffordd ac mae hynny ymryd ailwydel. a cyfnodol y cyfnodol. Rwy'n credu bod efallai ymarfer o'r cyfnodol a'r cyfnodol yn bach ar gyfer y bydd y cyfnodol, ac rwy'n gwybod yma'r cyfnodol rwy'n gweithio i'r cyfnodol o'r cyfnodol yn bach y bydd y cyfnodol i ddweud o ffasol. Rwy'n gweithio i ddweud o gweithio. Mae'n gweithio i'r gweithio i ddweud o'r gweithio yw'r cyfnwys, yw'r cyfnwys, yw'r ddechrau'r cyfnwys ac mae'r ffordd yn ymdweud yn ymdweud y CSI yn y ddefacto'r ffyrdd o'r ddechrau'r cyfnwys i'r cyfnwys. Felly, rydyn ni'n gweithio'r cyfnwys ac yn gweithio'r cyfnwys o'r gwerthoedd. Mae'r cyfnwys yn gweithio'r cyfnwys yn gweithio'r cyfnwys yn gweithio'r cyfnwys ond rydyn ni'n gweithio'r cyfnwys a rydyn ni'n gweithio'r cyfnwys ac yna yw'n gweithio'r cyfnwys o gweld, mae'n gweithio'r cyfnwys ac i'i wneud i felly llawd a'u dduch i'r gweithio'r gweithio â'u cyfnwys cyfnwys a'u cyfnwys yn gweithio'r cyfnwys mae'r cyfnwys rydyn ni'n gweithio y cyfnwys unrhyw ddefacht yw'r cyfnwys d Philyddon yw'r ddechrau'r cyfnwys ond yn Github, ac yn ystyried ar y tro yw'r 25,000 starf o'r cyffredinol. Mae'n fawr oes, ac yn ddweud. Rydyn ni'n gŵr ar gweithio'r llai'r uwch. Rydyn ni'n fawr i chi'n meddwl mewn y social media, ydy Michael Cade o'r Michael Cade 1? Rydyn ni'n rhoi gwneud weithio. Rydyn ni'n rhoi gyd yn y Llair. Rydyn ni'n rhoi gwneud weithio cerddur o'r cyffredinol, rydyn ni'n rhoi ei wneud rydyn ni'n rhoi. Felly, y three things that I kind of want to cover throughout the rest of the 20 minutes that I've got because of the two minutes extra that I just stole to introduce myself, why run databases in cloud native? That's going to go into a little bit of the misconceptions that we have as well around running databases in and around Kubernetes. Actually, what options do we have when it comes to running databases on Kubernetes? And then how? How are we going to run those databases? Rydyn ni'n wneud yn gallu ei bod ar y holl y ddysgu ddysgu a yna dwi wedi'i gael. Mae'n gweithio ddweud yw'r Matty a'r Cat yn gweithio'r sefydliad at unrhyw rym ni'n gweithio ar y flynedd y lŽedol, Rym ni'n gweithio ar Afon, Cat, ddeli M C a gweithio ar y holl o'r ddysgu'r ddysgu. Mae'n gweithio'r gweithio ar hwn o'r ddysgu a ddysgu'r bydd o'r ddysgu. Mae'n gweithio ond mae'n gweithio, felly mae'n gweithio'n gweithio. a ydy, rwyf i fynd, yn 20 min, ond yn eich bwysig ar bod yn dimension o drefnod hyn ar hyn yn anodol. Rwy'n credu symud y rahyd i ddim yn chi. Prydych chi'n fod yw'r dweud yn gwybodaeth gwahanol? Y dweud yn gwybodaeth gwahanol yw'r dweud yn gwybodaeth gwahanol fel y ddweud yn ceisio'n llalu ffordd o gwybodaeth gwahanol a yr cyff cuentaun gwahanol. Felly mae arbennig yma, ac yma'r wahanol ar hynny, o wybod yma'r hefyd, Rydyn ni wedi cofnod o'ch cyfwyd sifynyddol â'r lefyn yn cael sceic, amla gennych ti wneud am'r ddeithas cyfreidol, a'r ddeithas cyfreidol yn y ddefnyddiaeth ym gyfwyd a chi'n rhaid i'r gweithio. A fe gweithio, yn cael sy'n wneud am arfer am rhaid i'r ddeithas cyfreidol, pan o'r ddydd y dyf ankles eich ddeithas yno,り cyfo'r sceicol, a yn pewod ddeithas cyfreidol, yr amser yn cael ei ddefnyddio erbyn. oeddwn i ddim yn ymddangos. Ond bydd ydy'r ddechrau'r mynd o hollaf. Fydd ydych chi'n cael ei ddechrau y dyfodol y drech i gyfathu'r sgwpeth ac yw'r ddechrau i ddechrau ar hyn. Rydyn ni'n fyddai bod ydych yn ysgrifennu ac mae'r ddweud yn anhygrifan o'r ddatr o'r dyfodol, a mae'n ddysgu'r ddau o'r ddau a'r sgwpeth o'r ddau, rydyn ni'n credu rydyn ni'n credu i gyd y ddysgu'r ddau wedi gweld, ond y cyfnodd yma, ond fy ystyried ymhygau yn yma'r adroddau statiliau. Felly, y gweithredu byddaeth, fel y dyfodol, yn ymhwytof sydd wedi'i sefydlu'r adroddau cyfnodd, sy'n gyffredinol y cyfnodd hynny yn mwyafol iddynt i'r adroddau cyfnodd. Mae'r adroddau a'r adroddau yn ymwneud i'r adroddau sy'n ôl yn ei ddefnyddio. Now that we have CSI, the Container Storage Interface, it enables us to run those databases, those data services alongside or inside of our Kubernetes cluster. So we have first class storage support and we have lots of different storage vendors that are able to out of band create capabilities within your Kubernetes cluster. So if we want to dive down a little bit what's different between a traditional database, so a database that we maybe run in a virtual machine or on a physical server to what a cloud native database actually looks like is around traditional, they kind of fix things around scalability and security and accessibility that should put asterisks around some of these as well. But from a cloud native point of view we're considering around the design phase of that. What does that look like in terms of being able to leverage those cloud features that we have, whether it be in the public cloud or based on Kubernetes or any cloud native system? It should be able to run from a container standpoint. Cloud ready versus cloud native, so just because a database can run in the cloud doesn't make it cloud native. A virtual machine running an EC2 instance isn't cloud native, it doesn't scale the way it should. It should have the services software and the APIs that enable us to enhance that elasticity of that database being able to scale up, scale down and deliver that as a service. Even though we might not be offering that as a service provider, we might be just needing that for our application and be around Kubernetes as a de facto way of being able to orchestrate our cloud native databases. Benefits of those cloud native database, you've got advanced scalability so we can scale up, scale down as fast as we want. I'll try and show you some of that in regards to a demo shortly as well. We've got the elasticity of that, how and when we run that and when we scale that. The resiliency of that, having multiple copies of that running available to us across multiple geos and multiple regions. Automation, a lot of that needs to be automated in terms of when do I need that to be scaled up and scaled down according to load or to requirements. The accessibility again goes back to that geography region type demand. The cost of that and I'm going to get into that a little bit because that should have an asterix on again around depends. The management of those cloud native databases because what this trend is doing is allowing us not to just have one large database server and we're just going to throw everything into it like I think we did traditionally, is now we can choose the right database for the right job. So whether that is a NoSQL or a MySQL for one job, a MongoDB for another, et cetera, et cetera. We can choose the right job and the concept of micro database services kind of becomes a reality with cloud native. So whether we see cloud native databases is not just running a stable set within Kubernetes. We see running outside of the Kubernetes cluster. So think about PAS-based services such as MongoDB Atlas or Amazon RDS to name a couple. The application is still within the Kubernetes cluster, but it might be hooked into that PAS-based service. But that PAS-based service, and notice how I'm not saying that this is a virtual machine set in EC2 or in a virtual machine, but this gives us the ability to scale accordingly what that needs to look like, but our application has that access into that data service. We might also be running a dedicated infrastructure Kubernetes cluster where we run all of our storage for and exposing that out to maybe another cluster or to another service that leverages that. A lot of enterprise storage actually have gone down this route as well to be able to define what their storage offering looks like. And then running stateful workloads within the cluster, right next to your application that requires the latency, the control as well, because I'm going to go through some of these areas because not all, it's not one size fits all. There's going to be some good, bads, and unknowns to why. So here I just wanted to touch on what's the ease of use versus the cost. So if we think about a virtual machine traditionally, a virtual machine or physical you could have there in the middle, you've already made that or your company has already made that, potentially made that investment, especially VMs on premises or physical, you've really got that server. It's quite a task to be able to then look to migrate or relocate that or at least repurpose that into containerisation or cloud native format. So sometimes that middle ground is the easy button, right? We stay there. And that's kind of what we're seeing in the industry is that it's much harder to move petabytes of data than it is to do the front end first and containerise that. But then we've got three different other options. We've got PAS, which could ultimately be a much higher ease of use because we take away a lot of the control, a lot of the tweaking of what that needs to look like, but then also it's going to cost you a lot more money. So you pay for the advantage of not having to look after the underpinning operating system or the hardware even underneath that. You're paying someone else to look after that. But then you've got Stapleset, so much lower cost, but it's kind of middle of the road from a manageability point of view. And then over to the right, again, ease of use, but again cost because you've hopefully already invested in your cloud native infrastructure, whether that be Kubernetes, you've then got your operators. Hopefully that makes sense as to where that is, and it starts to dive into a little bit more of the... OK, so I've got all of these choices, this overwhelming amount of choices as to where I run my database, but OK, which one should I choose? And I think it comes down to, depends on you and your team, if you want more control of your database, then you're probably not going to go into the PAS. If you need more control and performance, you're probably going to go down to this bottom right hand corner in the future. But it might be that you're stuck because the business won't allow you to move out of that VM model that you maybe once had. OK, so Stapleset came around, so Stapleset is the way in which we can provide a way in which the Kubernetes controller to define what our application and data looks like. So Stapleset versus deployment, again, if I had a longer time, we could go through what is a Stapleset and what is a deployment, but a Stapleset is going to define how your pods are rolled out and then ultimately the rollout strategy for that. When you run a Stapleset, you're going to have whatever that pod name is, hyphen zero, one, two, three, where as in a deployment it's going to be some spurious UUID and actually if you start scaling up, scaling down a deployment, it's going to, there's no order. When it comes to a Stapleset, we're going to go three, two, one, zero and we're going to go zero, one, two, three in terms of rolling out. In terms of goods, it gives that ordered deployment that I've mentioned, that unique identifier to that. From a bad point of view, though, if you're just managing a Stapleset through a YAML file for multiple databases, remember I said, now I've got the choice, I've got an overwhelming choice but a freedom of choice of being able to choose all of these different databases for different tasks and I've got a different Stapleset for each. Now I've got to manage all of the YAML for that, that seems like an overwhelming headache as well. So complex configuration, scaling limitations on that as well but it gives you the rolling updates as well as the unknown. What does the performance look like? I don't know what your cluster looks like, so there's generally not going to be any speeds and feeds because a Kubernetes cluster can be the smallest of performance to the most money that anyone can spend and give you all the resources you need. There's no linerage to that. Now this is where I would go in and normally do a quick demo on what a Stapleset is, the benefits of that and then be able to do that. What I'll do is I'll record a longer version of this and put it onto YouTube or somewhere and I'll share that in the Slack channel but really looking at how do we deploy Postgres as a Stapleset within our Kubernetes cluster. The one thing I missed out here and I'm conscious of time is also around Helm. Helm gives us maybe a little bit of a gap in between deploying a Stapleset and having to manage all of my YAML manifests to being able to deploy using a Helm as a package manager for Kubernetes and be able to deploy my application that way whether it be Postgres or MySQL. Then we get to operators and operators take away some of those burdens that we maybe have from just a vanilla Stapleset in that it gives us automated operations. It means that we could use, for example, the cloud native Postgres operator allows me to go and deploy what I want, a desired state for whatever that Postgres implementation needs to be. It allows me to leverage custom resources. It extends Kubernetes to be able to leverage that which also allows me to then look at the scalability of that and the self-healing around that. So taking away some of those pain points that we have in just Staplesets. Now operators generally will be using Staplesets as well but you've got a higher level overview of that, a controller, if you will, that is going to be looking at that Stapleset or looking at the whole deployment and making sure that things are the desired state, the reconciliation loop is going to make sure that things are how they should be. Bad around complexity and resource intensive, because you're running something that's looking at something and it's going to be giving you that, but hopefully that's worth the squeeze around that. Security implications around custom code. Again, I would go into more detail around that. The unknown is the operator ecosystem. Granted, it's thriving at the moment. There's lots out there if you go and look at the operator hub. We've got lots and lots, but there obviously could be a lot more. There's a lot more data services that are available. The one that I mentioned, Cloud Native Postgres, is a popular option as is Crunchy Data, which is also a Postgres operator. Again, this is where I'd go in and just show you what that would look like in terms of that deployment and what that desired state loop actually looks like. What is that operator doing? It's looking at this reconciliation loop. We're defining what our database service needs to look like via underpinning YAML again, but it's going to be constantly checking to see whether that desired state has been achieved. If you want three pods in your Postgres deployment, then it's going to constantly go through, observe and adjust what that needs to look like. Again, that's going to allow us to update that. There's a lot more. You could do a whole session on the reconciliation loop and some of that, the continuous control. It's going to be synchronising the state between the three or however many pods or nodes that you have within your cluster and all of that good stuff. That brings us on to the third and final option around external paths. Has the overhead overhead overhead overhead. Again, this brings us the ease of use, but the cost is going to be up there, which is fine. As long as we're aware of that, that unknown, then that's what we can take to our business and we can say, look, I'm not a DBA. I don't want to be in charge of making sure and tweaking configurations. I want to make sure that it's a managed service. Let's push that off to someone who knows what they're doing and we're just going to consume the database as a service within one of the public cloud hyperscalers or one of the many options that we have out there. Obviously, from a bad point of view, if you're a DBA and you want or need to be able to tweak those constructs, then you've got limited control when it comes into paths, but also that cost. The unknown is where is my data? That, again, might fall to some of you in the room, but equally, that data sovereignty, where is my data? How do I know it's following regulation? It gets a little bit more reaction over in Europe, in the EU because of GDPR, but it's a thing to consider and it's applicable to the US and holding any data for EU residents as well. The unknown as well is around performance, although I would say that, especially in the hyperscalers, that performance, they'll give you as much performance as you need, but you're just going to have to pay for it. It's kind of the take there. I've listed some of the options that we have available. Again, this is where I would go to show you what that looks like from a communities cluster point of view where maybe my front end, my application runs and connects into my AWS RDS or MongoDB and gives us the ability to leverage that data service outside of my cluster, but within the confines of the Kubernetes cluster using config maps and secrets. OK, four minutes left. I'm glad I did take that extra two minutes. Conclusions, micro databases are here. I think that's why we're all in this room listening to what the latest is around Kubernetes and data or databases and cloud native. One thing I will highlight, this is the boring backup admin guy coming up on stage first up in the morning to say that it doesn't matter which one of those three you consider, you still need to look at protecting that, whether that's your responsibility or whether that's the business. We still need to protect that. Just because high availability is not a backup, we can still replicate bad changes. I'm sure many of us have made the wrong move or the wrong change within our databases. So we still need that backup, but we also might need to still consider things like disaster recovery as well. I think this is exciting because it allows us to choose the right database for the job. I remember years gone by when I was a sys admin and we spent a lot of money on a certain database type, but we basically had to engineer everything into that database type. Everything into, I'm going to say it, oracle. We had to use that oracle license like it was going out of fashion. So we had to push every single database into that because we wanted to get our spend from that. Now, from a cloud native point of view, I don't have that constraint anymore. I can use the right tool for the right job and it's exciting to see some changes around databases in the ecosystem, particularly around things like SerialDB and what they're doing around being able to bring in it's no longer just a NoSQL versus SQL. They've got a bit of everything all under one hood. This is where I would ultimately go and then show a demo around how do we protect those data services? Again, any of those three, I've got an option to be able to protect. We also, this week, and I don't know if the PR has actually gone out yet, but we donated a way in which we can protect those data services to the CNCF. It's a project called Canister and Canister gives us the ability to protect those data services through an application framework or a blueprint framework where you basically define what you want to do and how you want to protect it. Hopefully, you'll see a little bit more about that, whether it be in the news or across the show floor. Canister.io is the address to find out more. It's quite a mature project that we've been working on for a number of years, but our focus here is to really raise awareness of data protection, data management, resiliency within that data service. Just to finish up, some additional resources and much smarter people than me. You've got a session by Karen Jax from Crunchy Data. She actually talks about the Postgres operator that they've created over there and actually walks through in a less than an hour session. Well worth a watch. Another guy, and he's here this week as well, so if you get a chance to bump into this guy, he's kind of changed his tune, I think. I think I can say that. I'm a friend of his. It's Victor Farsit and he's very much talking that same game around that you've got this overwhelming amount of choice. Just choose the right one. You're not going to be able to or it's likely, and Kelsey Hightower says something similar, it's likely that you're not going to be able to build your own RDS that scales the same as RDS. So take that into consideration as well. But that's another benefit of cloud-native databases in that maybe on day one, we do build our own operator or at least leverage an operator that gives us that ability. Then later on we can always migrate that into, quite easily, into a cloud-based service. The other podcast-type session is Cloud-native weekly. Well worth a watch. They've been talking about the state of the database for at least stateful workloads over the last couple of weeks. So with that, nine seconds left, so I've got us back on time. Perfect. If there's any questions.