What is Persistent Storage? – Its Role in Cloud-Native Applications

Gurbir Singh

Dec 13, 2022 / 4 min read

Synopsys Cloud

Unlimited access to EDA software licenses on-demand

Definition

Persistent storage, also known as non-volatile storage, retains data even after the device is powered down. For monolithic applications running on traditional infrastructure, persistence is a given. The application runs on a single host and accesses local disk storage, which is logically and physically persistent. However, persistent storage is a little trickier for cloud-native applications running on containerized hosts. Here we’ll examine strategies for taking advantage of the benefits of cloud-native infrastructure while ensuring persistent storage for applications.

Persistent Storage and Cloud-Native Applications

Cloud-native applications are deployed to elastic container environments, which separate the logical and physical states of storage. A container may have a persistent logical residence, but it’s not attached to any single physical host. This transience is due to the inherently ephemeral nature of containers.

A container is only spun up when its microservice is needed to perform a function within the application. As soon as that function is complete, the container is shut down or deleted until it’s needed again. The next time that container – or an exact copy – is spun up again, it could be on a different physical host.

This feature makes cloud-native applications extremely scalable and elastic, so you only need to manage and pay for resources that are actively in use by your application. Cloud-native apps are also highly resilient because if a particular container or host fails, you can always start up new instances on a different host.

However, since containers are physically transient and ephemeral, they didn’t initially support persistent storage. When a container was powered down or deleted – which happens often – any data created within that container would be destroyed. This scenario is fine for some functions that generate data that doesn’t require maintenance but presents a problem for cloud-native applications that require data retention and sharing.

To get around this issue, you need persistent external storage accessible by containers no matter where they physically reside or how frequently they’re deleted.

How Persistent Storage Works With Cloud-Native Applications

There are three general approaches to persistent storage for cloud-native applications:

  • Named Volume Mapping. A named volume is a storage volume on a host within the container cluster. Any container within the cluster can be mapped to that volume, whether or not it resides on the same physical host. Once a container has that mapping, it can be moved, shut down, or deleted at will, and its data will persist on the named volume. Any new instances of that container will retain the same mapping as well.
  • Kubernetes CSI. Kubernetes is a popular platform for orchestrating cloud-native containers. The Kubernetes Container Storage Interface, or CSI, provides options for linking containers to persistent storage volumes. It uses Persistent Volumes (PVs) or cluster resources that supply storage to pods (groups of containers) in a variation of the named volume approach. Users access persistent volumes using a PersistentVolumeClaim (PVC), which crates a separate pod for PV access.
  • Persistent Storage Tools. There are also various third-party and open-source tools that provide persistent storage-as-a-service (SaaS) for cloud-native applications. This approach is beneficial for hybrid or multi-cloud deployments in which a cloud-native application may run on containers spanning multiple cloud or on-premises environments. Some of these tools make persistent storage volumes appear as container-attached storage resources. Since these storage volumes look like containers, they are easily managed by container orchestration solutions like Kubernetes. These volumes use a similar architecture to Amazon Elastic Block Store (EBS), making this approach well-suited for AWS deployments.

Another approach uses OpenStorage SDK-based plugins that manage and provision persistent storage volumes using multi-host clusters. These plugins adapt the Kubernetes CSI API set, including PV and PVC, so they work well with Kubernetes deployments.

Persistent Storage for Cloud-Native EDA Tools

Electronic design automation (EDA) workflows for chip development require high-performance persistent storage, which is why some organizations hesitate to adopt a cloud-native approach. With the strategies and tools described in this article, you can take advantage of the scalability and resilience of cloud-native infrastructure while ensuring your cloud-native EDA software can retain and share data. Another approach is to use an all-in-one, cloud-native SaaS offering from a vendor who handles all aspects of container management and persistent storage for you, so you can focus all your attention on designing and delivering the best product.

Synopsys, EDA, and the Cloud

Synopsys is the industry’s largest provider of electronic design automation (EDA) technology used in the design and verification of semiconductor devices, or chips. With Synopsys Cloud, we’re taking EDA to new heights, combining the availability of advanced compute and storage infrastructure with unlimited access to EDA software licenses on-demand so you can focus on what you do best – designing chips, faster. Delivering cloud-native EDA tools and pre-optimized hardware platforms, an extremely flexible business model, and a modern customer experience, Synopsys has reimagined the future of chip design on the cloud, without disrupting proven workflows.

 

Take a Test Drive!

Synopsys technology drives innovations that change how people work and play using high-performance silicon chips. Let Synopsys power your innovation journey with cloud-based EDA tools. Sign up to try Synopsys Cloud for free!


About The Author

Gurbir Singh is group director, Cloud Engineering, at Synopsys. He has a demonstrated history of leadership in the software industry. In his current role, he leads the development of the Synopsys Cloud product, which enables customers to do chip design on the cloud using EDA-as-a-Service (SaaS) as well as flexible pay-per-use models. Gurbir has run organizations to develop cloud SaaS products, machine learning applications, AI/ML platforms, enterprise web applications, and high-end customer applications. He is experienced in building world- class technology teams. Gurbir has a master’s degree in computer science, along with patents and contributions to publications.

Continue Reading