Backup isn't merely about safeguarding bytes of data, it's about preserving the application's state, configuration and associated metadata driving the desired outcome. Similarly, disaster recovery isn't just about restoring data, but it is also about ensuring that the application, along with its data, is resurrected in a coherent, consistent and instantaneously usable state.
Kubernetes has proven to be the north star of orchestration for containerized applications. However, this container agility comes with complexity under the layers, when it comes to storage. There can be 100s or 1,000s of micro-serviced containers, per network function, each with its own relationship to the data. Fortunately, when one applies Kubernetes principles to the problem, one can unify and supercharge the relationship between application lifecycle management and storage management.
Leveraging the principles of containerization, applications are bundled with their environments and all associated dependencies, making them intrinsically geared for easy portability, scalable deployment, and consistent replication. This evolution in application design and deployment necessitates a fresh perspective regarding existing storage models. Containers and Kubernetes usher in a new paradigm where storage is no longer an isolated, unchanging component. Instead, storage can be transformed into a vital, fluid component of improving the application’s lifecycle outcomes.
Seamlessness is crucial, given the inherently dynamic nature of containers. Unlike monolithic applications or virtual machines, one of the main advances brought on by containers is their ephemeral nature designed for rapid spin-ups, teardowns, and overall scalability. This agility demands a similarly agile storage system, one that can provision resources on the fly, scale in tandem with application needs, and reclaim resources when no longer required, including persistent storage resources.
Legacy IT infrastructure and deployment models typically mandated distinct silos for application deployment and storage provisioning. In these environments, storage was managed independently, requiring manual intervention for allocation, scaling, and disaster recovery. Recognizing the challenges and inefficiencies of this application-storage bifurcation, Rakuten Cloud, a Rakuten Symphony division, embarked on a journey to seamlessly integrate storage management into its application-centric solution. The result is an intuitive system where storage needs defined by the application drive the provisioning and lifecycle of storage resources.
Developers and support teams have long struggled with the “it works in my lab” predicament, where applications behave unpredictably across different environments. Containers sought to mitigate this by encapsulating both the application and its environment, ensuring uniform behavior irrespective of the deployment target. Similarly, the Kubernetes promise must extend to storage as well. Whether an application is deployed on a local development machine, a test environment, or a production cluster spanning multiple geographies, its interaction with storage must span all scaling and disaster recovery scenarios.
A cloud-native storage solution must enforce uniformity, shielding operators and developers from potential storage-to-application anomalies and ensure that applications always have a predictable storage experience.
A significant benefit of the software-defined storage provided by Rakuten Cloud-Native Storage (CNS) (formerly Symcloud Storage) is in the abstraction it introduces, distancing applications from the underlying infrastructure's complexities. Rakuten CNS unifies application-to-storage lifecycle management and automation.
Historically, interfacing with storage systems involved intricate knowledge of the underlying hardware, network configurations, and vendor-specific protocols. Kubernetes sought to unify this experience by introducing abstractions, such as Persistent Volume (PV) and Persistent Volume Claim (PVC), allowing developers to declare their storage needs without drowning in the minutiae of infrastructure specifics. But the Kubernetes Container Storage Interface (CSI), on its own, provides minimal functionality for stateful applications and volume persistency.
With Rakuten CNS, we go beyond the mere provisioning of storage. Our design philosophy and user experience take into account the holistic lifecycle of applications and their data. Consider scenarios like backup, snapshot, clone, disaster recovery, and data migration, with application-to-storage consistency. In traditional setups, these were often storage-centric operations, disjoined from the application’s lifecycle. There was no application-awareness to the storage.
These abstractions don't dilute the power and flexibility of Rakuten CNS. On the contrary, they empower developers and operators by offering enhanced vanilla Kubernetes features like Storage Classes, which describe and categorize storage types based on various attributes, like storage performance policies, placement policies, resiliency metrics, and backup policies. Applications can thus be paired with storage solutions that precisely match their requirements, in a multi-organizational environment, ensuring optimal performance and cost efficiency.
By leveraging existing Kubernetes constructs like PVs, PVCs and Storage Classes, and combining them with application awareness, environmental awareness and intuitive automation, Rakuten CNS guarantees that applications receive the appropriate storage based on their declared needs, irrespective of the underlying infrastructure or storage backend. This consistent storage experience, from edge to core to the public cloud aids in maintaining the application state, performance, and data resilience across different environments. From development to production and for any lifecycle event, developers and operators can predict how applications will interact with storage, allowing for better performance tuning, troubleshooting, and scaling decisions.
While some Kubernetes solutions enable self-service, they still require a lot of command-line coding and developer expertise. This is also addressed with Rakuten CNS. Anybody can wield its application-to-storage constructs across any number of desired lifecycle outcomes, without being an expert. True self-service is now at your fingertips with no expertise required, delivering application portability, allowing one to migrate across clusters, cloud providers, or even hybrid environments, with full, easy-to-use, automation.
Our approach to storage is a profound departure from traditional paradigms. We are breaking away from the status quo of storage as a detached, static entity and embracing it as an intrinsic, dynamic component of the application ecosystem. Rakuten CNS heralds a new era of cohesive, agile, and efficient application deployment and management. This fusion of application and storage architecture underscores our mission to empower operators and developers by streamlining operations, and ensuring that applications, along with their data, thrive in a harmonious, resilient, and scalable environment.
Interested to know more about Rakuten Cloud-Native Storage? Visit https://symphony.rakuten.com/cloud/products/cloud-native-storage
Rakuten Cloud continues to garner numerous awards and widespread recognition within the industry. The 2023 GigaOm Radar for Cloud-Native Kubernetes Data Storage named Rakuten Cloud-Native Storage “Leader and Outperformer” for the fourth consecutive year. Access your complimentary copy of the full report here.