Anthony Dutra – Kubernetes Data Protection 101
This session will teach the basics of data protection for Kubernetes and why it is so important, now more than ever, to tailor your organization’s data protection strategy to include these stateless applications. This session touches on containerized application adoption drivers and how Kubernetes has become the de facto container orchestration tool. We will clearly define the differences between disaster recovery, fault tolerance and high availability, and explain why data protection and migration are challenging in Kubernetes. Finally, you’ll learn key considerations for a next-generation disaster recovery solution.
Transcript
Hello everybody. My name is Anthony Dutra. I'm a technical marketing engineer here at Certo.
I'm extremely excited to be presenting to you all today kubernetes data protection 101. So it's a topic near and dare to my heart because it's very much an industry that I've been a part of and have you evolved with and that's kind of how I like to start this presentation is taking a step back and understanding you know, where we have we been sort of how it is evolving. And what is this new need to protect these kubernetes applications?
And why is this a thing? So in the past right like the sort of set the stage and say it was basically revolved around the data center itself, and it was really centralized a much around the hardware overall. So every time you had a new application, you have to call up a hardware provider order some more discs or servers.
Storage have them shipped over and then finally get your developers to spin everything up within the sort of waterfall methodology in order to create applications that were, you know, sort of mission critical to your business this whole sort of process develop new apps and kind of build new ideas was very manual and it was very again monolithic in terms of the way. We developed apps overall. incoming virtualization and you know virtualized Technologies and really We now step into a realm of decoupling much of the hardware that these apps are running on and really more focusing on the applications themselves and maybe them much more flexible.
So, you know VMware move to sort of cloud-based services like Azure stack really allowed for this new realm of more hosted based applications and is really shifting more towards left into the power of developers in order to quickly and in an agile manner build applications that are not only effective to the business, but can release new features in a very quick manner in order to provide that value. And this is really where we're seeing the adoption of containers and kubernetes come into play because now it's completely shifted all the way to the left with Cloud Technologies sort of exploding and developers are now sort of taking the reins of this new decentralized way that we provision our application infrastructure as well as the applications themselves because everything is now code so we would like to basically just take our developers code run it on whatever can basically, you know, survive the process of running this container and now we have our infrastructure just lines of code and can be provisioned everywhere. So this is how it overall is evolving and businesses are really trying to catch up in a recent.
Sort of report findings study that I was in we found that 75% of businesses today 65% of businesses today are actually taking their production applications and refactoring them into sort of container based applications. What they're finding overall is that in doing so they're not really ready for the amount of security or the data protection required in order to ensure that these applications are surviving have the proper uptime or being backed up to a point that is valuable to them. So what they're seeing is they're having a very very hard time managing this new sort of way to create applications and their concerns are very much still within the data protection and security domains.
Well, it's kind of. Try to get a better understanding of what containers are and what kubernetes is. So to do so, we'll press understand their value through the business as I mentioned before it is evolving into this everything as code sort of approach where our infrastructure now all that needs to do is be there and be able to run whatever code our developers send it.
So what we're doing by adapting these new forms of application development is minimizing the overhead and really increasing the portability and Agility of our applications because again, it's just code running on whatever it needs to. This allows for consistency as well as an accelerated development of new feature sets or just new sort of capabilities within these applications because it is again standardized across much of the hardware themselves and is all software based. So it's significantly much more portable.
Businesses from this are just seeing the efficiency the whole scalability as well as agility of these new container and kubernetes based applications and they're quickly as we saw before definitely trying to take advantage of it. so what is the container container at a simple sort of state is a really packaged format of code that runs a very specific unique form of software that isolates itself from other processes running on that same Hardware in either the same Computing environment or in a different one. So this is great because again, it really really isolates that application's process.
Whatever that is. Like it might be like logging in to that specific container and it keeps all of the other processes that my interrupted away from just performing that one task now managing that single container itself might be easy. But as you can imagine and what a lot of businesses are running into as you sort of create these many different containers to create these many different processes which make up an application what you find is that they become extremely difficult to manage at scale.
And this is where kubernetes is becoming pretty much that the facto orchestration system for automating the sort of deployment scaling monitoring of these many different containers, which make up a microservice based application, right everything from that infrastructure is code. We're seeing it evolve to we're now leveraging kubernetes in containers to sort of create that in a much more decentralized format. So what kubernetes does is basically give the developer the power to orchestrate automate deploy load balance and scale their containerized applications as a sort of much more single cohesive unit and manage what you would of in the past from a data center perspective at that granular level.
So you including things like storage and it's networking Services overall. However, kubernetes full short in this realm is while it allows for this sort of orchestration and making sure all those container pieces work nicely together. It really doesn't have anything built in that allows for Disaster Recovery back up even data Mobility or application Mobility when it comes to having to move these containerize the applications in case of disaster or just needs to back up in case of Regulatory Compliance.
problems So you might say well Anthony don't we have high availability already kind of built into kubernetes itself and I would say yet we do from a sort of technical perspective. It's benefits of all mainly within a single cluster itself of you know, different containers. So it basically ensures that okay these containers running on this specific Hardware cluster can stay online and let's make sure that we you know provision enough resources to do so, but it's not keeping it alive in case with failure is keeping it alive in case there is an increase the man on that application itself.
So therefore it needs to sort of scale out these many different resources. So that's where opportunity kubernetes High availability comes in where kind of has some drawbacks and how it differs from a sort of data protection strategy. The fact that a it is resource intensive and as you're having to deploy these multiple different sort of copies or pieces of the components that make up your cluster inside of that again, that's been a little Hardware platform you're going to have performance issues, especially if you're looking to store data as it doesn't really work with shared storage well, and this is a problem particularly.
Let's say if you're building or managing a microservices application like Netflix because the stateful parts of that application do things like remember what you want to recommend that customer based off their previous views. So again kubernetes High availability isn't necessarily good to protect sort of the stateful data that comes from me like a lot of these Enterprise grade applications, and then there is no really orchestrated recovery when A cluster goes down, right if you're basically spinning up a kubernetes cluster that is all of bad code and you know, it keeps trying to become highly available. You're not going to want that state to be online.
Anyways, so you sort of just, you know, get yourself into a little bit of a Rat Hole there. You need something that is much more orchestrated and can bring you back to bring that application back to a state all those many different containers back to a state that is again valuable back to the business and service and what's supposed to do this really where data protection for kubernetes comes in. So it's more of a disaster recovery base approach to kubernetes where a lot of software is do this exact sort of a maybe like replication of a kubernetes cluster ensuring that the application sla's as well as the data that it hosts is Been available to the required times meeting for me, you know needed for your customers and then ensuring application consistency across many different vendors of these kubernetes services.
So you don't just run kubernetes on premise in us as you're a lot of public Cloud providers have these kubernetes Based Services, which you should be able to protect these clusters in and to and then backups overall, right? It's about keeping the full state of the application alive Beyond just sort of different versions of the code that make up the application inside of game. So data protection for kubernetes kind of takes it a step further than what you know, traditional kubernetes has already built into it.
So when we're thinking about these applications, right? There's a lot of stuff that can come and sort of bring them offline and just because it's running in this new sort of containerized format doesn't mean that it's not subject to any of these potential disasters. So again, the ransomware itself very big issue projected the cost billions of dollars for a lot of Industries in the coming years on natural disasters are still very much a high occurrence and things like bad code or just developer experience level sort of deploying code that isn't necessarily production ready or breaks a lot of other features within the application itself can be quite a problem.
If you don't have a data protection solution to guard kubernetes in a much more sort of consistent format and do so very rapidly to be able to recover very rapidly then Are sort of stuck with some of the poor. Performing applications that you know could be created in that process. So really the challenges that kubernetes in businesses that are adopting kubernetes or containers are facing today is that they can't really use traditional backup when it comes to protecting these applications overall.
There's a lot of again built in features to kubernetes that make it highly available natively, but it's limited when it comes to being able to protect that application at a secondary site or migrated to another service call provider. There's just not the same flexibility built in inherently to kubernetes to give it that sort of scalability. Out there in the industry.
There's a lack of purpose built protection particularly when it comes from doing things like taking snapshots and shipping them off to be backups those sort of our or day increments of protecting these applications really isn't good enough because it needs to be down to the second as to when you can recover, you know, two when you should recover too and recover from because the developers are constantly making pushes and changes to the application feature sets itself in order to again deliver that value back to the business and it's very hard for businesses to find a good data protection for kubernetes that not only takes into account the notes that the kubernetes cluster is running on but the application itself in making sure that if it does fail again, it feels back to a very specific point in time that keeps the SLA is an uptime of the app. You know in compliance with what the business requires. So what are there things to look for when you are out there shopping for a data protection?
Strategy for your kubernetes based apps. The first thing to think of is something that is on kubernetes for kubernetes. So you don't want anything that's gonna have you log into a GUI or sign up for another, you know subscription in order to have interoperate with you know, whatever storage you are hosting these containerized based applications on you want something that's just, you know written in the CLI easy for your developers to use and easy for them to integrate into their you know, continuous integration, you know CDC ICD workflows overall themselves.
It was really important to look for something that also has and supports a multi-cloud strategy just from a disaster recovery standpoint being able to replicate from one on premise to a public cloud provider is extremely huge because you're being able to instantly take advantage of the resources that that cloud provider is hosting but from a data Mobility standpoint or application Mobility standpoint, you're really avoiding a lot of vendor lock-in because since everybody's running this kubernetes Based Services on their platforms, why not just replicate the Clusters themselves between them. So it really gives you as the developer the you know, the it manager in charge that flexibility to move these apps seamlessly across multiple providers, and of course this comes with scalability as well as performance and reliability you want to be able to scale this as well as perform a recovery in case something does happen with minimal downtime and logs continuing on what to look for. I think we just talked about this in very high level but drilling down again something that incorporates data protection right into the CLI is extremely important because you're able to just to back up and perform Dr.
Tasks. Just with the few command lines making sure that a it's also application Centric. So you're making sure that everything is protected.
But again being able to orchestrate a fail over or practice sort of a point in time restore your test. It is a very simple and easy thing to look for and should be available in a lot of sort of kubernetes data protection softwares themselves. I've touched on making sure things are flexible for both the multi-cloud in hybrid Cloud environments again, pretty much any public cloud provider runs a kubernetes based service.
You should be able to replicate between An on-prem to them or between the multiple Services themselves and just a few other nice things that would help with a really good data protection kubernetes platform is this idea of deep analytics. So having a tool within it that will show you the, you know recovery Point objectives or time to recover at a very sort of digestible format. So you can again show the business value back to the business as to how well this Disaster Recovery strategy is performing in case something does go wrong.
So important to remember what should be protected when we are talking about kubernetes. applications we not only do we think that the pods and the you know persistent volumes the data that makes up the application itself needs to be protected. But also every other thing that makes up the configuration itself.
So the configuration Maps they sort of secret. Configuration files that are a part of the stateful kubernetes application itself. There are a lot of different layers to a K-8 app and you want to be sure that your data protection strategy meets them at all these different layers.
But in summary, what did we talk about in this presentation overall? We started at a very high level talking about the rapid change and evolution of it from a centralized on premise environment to one that is much more decentralized and all about sort of containers and microservices and being able to adapt code to meet your sort of Hardware. Well, you're new demands for your business applications.
And what we're seeing is that security as well as data protection is the number one concern that we see for many of these businesses that are trying to adopt this new realm of sort of it applications kubernetes is obviously the fact of standard for orchestrating much of these, you know, containerized based apps, but it's still lacks. Very basic data protection capabilities that let's say hi availability itself. In kubernetes cannot fix or make up for and really you should think about a DNA protection strategy or software that specializes in kubernetes.
Oh and really see how that takes off compared to trying to protect an environment the sort of traditional way of backups and snapshots because they are lacking when it comes to this new sort of dynamic way. We are provisioning our application overall. And finally we wrapped up with talking about what's to look for in a kubernetes data protection software or strategy.
We touched on everything from data protection as code making sure that it's integrated right into the CLI. It doesn't have any sort of soft hard. Excuse me any UI or graphical interfaces that might interrupt this process or to manage it through and this is because you really want to make Disaster Recovery part of your develop.
First workflow and not so much the it infrastructure any longer. So thank you very much for taking the time to come to this presentation, and I hope you all have a great day.





