Blog

Deploying High-Performing Stateful Apps in GKE

When it comes to cloud-native application development, we have reached a point where you can simply ask for a Kubernetes cluster, declare the state you need, and get one running in a few minutes. With production-grade hosted Kubernetes services like Google Kubernetes Engine (GKE), you can address containerized application management at scale, without having to worry about installing, managing and maintaining your own clusters.

Although you can deploy a wide variety of stateless applications,we’ve recently seen a huge wave of stateful applications (such as databases) and application backends that are targeted for containerized development and deployment.  These application transitions to the cloud  are largely possible because of the advent of Kubernetes volumes and the   But the volumes need to be manually pre-provisioned and managed before they can be consumed, which makes things cumbersome at production scale.

Whether you’re an operator or a developer, the reality with any robust system design is that,without a well-planned network and storage layer, you won’t be able to get very far with production deployments. The same agility that GKE provides for the compute layer is needed in the data layer. You should be able to  guarantee that the data will be available  and portable when needed; the data layer itself should allow for agile operations , in line with the declarative nature of Kubernetes

NetApp has a two-prong approach to building a reliable and scalable data layer for containerized applications: NetApp Cloud Volumes Service and NetApp Trident.

NetApp Cloud Volumes Service is the fastest storage offering on Google Cloud, and it is fully managed, just like Google’s own GKE. Cloud Volumes Service’s snapshot capabilities allow developers to quickly spin up complete environments as needed, and take them back down as quickly as they were created. Because you can spin up as many environments as you like for dev/test, your devops team can work faster.

Netapp Trident is an open-source storage provisioner for Kubernetes, built from the ground up and maintained by NetApp. Due to its dynamic nature and built-in automation, Trident will detect a persistent volume claim request in the cluster and automatically create the persistent volume in response to the request. It makes managing storage  persistence  for stateful applications much easier  and also includes powerful enterprise capabilities like snapshots, copies, and dynamic service levels to match the  application requirements.

Check Out the Webinar on Cloud-Based App Development

To learn more about all the features and benefits, please join me in a webinar on Dec. 11 2019, where we will discuss use cases in detail and go through a live demonstration.

Reference Architecture

The following diagram illustrates a high-level architecture of NetApp Cloud Volumes Service and Trident provisioner in a Kubernetes environment.

Cluster Kubernetes Engine

NetApp Cloud Volumes Service and Trident offer a perfect solution for scaling stateful applications. By automating persistent  storage provisioning, you can dramatically reduce the lead time for your application builds, and quickly respond to changes in the business process. For customers that are looking to deploy their apps in CI/ CD pipelines, using dynamic storage classes to provision your Kubernetes persistent volumes allows you to automate the storage layer . You don’t want to just think about initial provisioning here--you also want to think about rapid provisioning at the scale, as well as cleanup and de-provisioning when the storage resources are no longer required.  

Using simple triggers in your workflow should be able to accomplish this, in response to a change in the business process. Kubernetes doesn't necessarily think about or manage this data layer inherently. It largely depends on you. the storage layer means even faster CI/CD pipelines, app delivery, and operational efficiencies. But storage layer automation is just one area where NetApp can help you design the storage layer for persistent apps in a Kubernetes environment.

Signup for the webinar

-