![]() |
VOOZH | about |
We’re so glad you’re here. You can expect all the best TNS content to arrive Monday through Friday to keep you on top of the news and at the top of your game.
Check your inbox for a confirmation email where you can adjust your preferences and even join additional groups.
Follow TNS on your favorite social media networks.
Become a TNS follower on LinkedIn.
Check out the latest featured and trending stories while you wait for your first TNS newsletter.
Cloud Native Computing Foundation sponsored this post, in anticipation of the virtual KubeCon + CloudNativeCon North America 2020 – Virtual, Nov. 17-20.
Adopting Kubernetes as your de facto standard for container orchestration will accelerate your data-center orchestration and modernization efforts. Companies across all verticals and segments, from SMB to Large Enterprise, have adopted containers as a way to develop differentiated products built on cloud native foundations. But this accelerated adoption is not without its challenges.
In delivering Kubernetes to the enterprise, DevOps engineers have embraced containers as the new virtual machines and started the migration of stateful applications (i.e. using databases and middleware layers) to containers. With self-service access to provision storage whenever and wherever they need it, DevOps engineers are no longer bound by the delays of traditional IT help desk requests, so container deployments have skyrocketed. The resulting container sprawl and now cluster sprawl is providing the next challenge to understaffed IT teams.
Why are DevOps engineers taking a technology designed for stateless applications and layering stateful applications with all the complexity of persistent volume management? Simple: agility. Kubernetes allows the developer to provision, test, QA and even scale their application, based on business needs or demand. The journey from a traditional monolithic application is multi-phased and step one is the virtual machine to container migration.
Businesses are relearning how to build applications that leverage the on-demand nature and resiliency capabilities of cloud native technologies, to respond to always-on customer demands in a mobile world. We are seeing rapid adoption in the VM to container space, followed by multiple re-factoring phases, followed by adoption of flexible and software-defined storage to simplify storage management at scale. The ideal state is the microservices architecture, which many businesses are striving to achieve.
What is missing in this approach are the underlying tools and automation to deliver end-to-end data management. There have been some initial projects that attempt to move beyond basic scripts (formerly Heptio Ark, formerly Velero, now VMware Tanzu). There is the Kubernetes Storage SIG, and the recently established Data Protection Working Group (WG). But fundamentally there are still some basic challenges that need resolution:
In fact, if we look at the traditional monolithic applications that are actively being migrated to Kubernetes applications, we find another list of challenges. Application consistency must be achieved, without the requirement to insert non-application binaries or agents inside the container. Application consistency is the act of coordinating application state and the protection operation (backup, storage snapshot, etc.).
Storage consistency must be achieved using snapshot mechanisms, to allow for online or ‘live’ protection without impacting the running application. In fact, as businesses adopt a wide variety of storage solutions, the ability to take a cloud native approach to storage management (API-driven, open interface, seamless scalability) is required.
The Container Storage Interface (CSI) provides this cloud native approach today, and while dynamic provisioning, attach/detach, and mount capabilities are stable, snapshot capability is not yet generally available. Large enterprises have come to know and love snapshot-based protection with their traditional enterprise storage array technologies. Snapshot, clone, and consistency group (CG) backups are considered core functionality to permit a wholesale migration of traditional applications to containers. One example is the ability to provision all-flash storage to production environments, but leverage the CSI cloning copy of these snapshots to a more cost effective tier (i.e. dev/test seeding). These capabilities are still under development within the CSI specification.
It should be noted that while the CSI standard provides a way of providing a storage level point-in-time volume snapshot, it does not move that snapshot to alternative storage media. A snapshot is considered a ‘recovery point’ and requires copying to cloud, disk or tape media, to be considered a true ‘backup copy.’ The Data Protection WG is currently working on this challenge.
We have seen a bifurcated approach to application architecture and resiliency. Depending on the development resources available to a business, they may take one of two disaster recovery approaches:
Both approaches are valid, but incur a different level of IT operations resources, application development resources, and associated automation. As recovery events are often a response to an unanticipated event, intelligent automation is required to drive consistent recovery outcomes and meet business recovery time objectives (RTOs).
Kubernetes-based or container-based applications are made up of a number of new data types distributed throughout the organization. At the recent KubeCon Europe, experienced Kubernetes veterans expressed a desire to not “bypass CI/CD, code reviews, and formal release processes.” Bottom-line, for containerization to form a stable building block of the next-generation application landscape, data protection best practices are required.
For example:
When we step back and review these challenges, we must reflect on why we perform data protection and data management.
These challenges require data management capabilities that enterprises already enjoy, including:
Many data protection solutions today rely on capturing application manifests and persistent data. Scheduling of protection occurs on a cluster-by-cluster basis, with little visibility across multiple implementations. Additionally, secure multitenancy best practices and even integration with technologies like Open Policy Agilent (OPA) are yet to mature.
Kubernetes has certainly delivered application mobility, with the orchestration of an application from one cluster to another now possible. Challenges moving forward are going to require policy controls, reporting, alerting and even Kubernetes manifest transformations, to support migration between disparate cluster versions and technologies. A community–developed standard approach for protection, with the ability for the solution to allow the development by third party protection vendors, is urgently needed.
To learn more about Kubernetes and other cloud native technologies, consider coming to KubeCon + CloudNativeCon North America 2020, Nov. 17-20, virtually.
The Cloud Native Computing Foundation is a sponsor of The New Stack.
Feature image via Pixabay.