ISSN 2348-1196 (print) International Journal of Computer Science and Information Technology Research ISSN 2348-120X (online) Vol. 9, Issue 2, pp: (34-42), Month: April - June 2021, Available at: www.researchpublish.com
Persistent Storage Options for Stateful Containerized Applications Bilal Homsi1, Mohamed Sierafi2 1,2
Dhahran, Saudi Arabia
Abstract: There has been a major shift towards building stateless applications using containers due to added benefits in terms of portability, agility and resilience containers provide to the application runtime. With the added growth of container adoption, a breed of new applications stateful in nature are being built which would necessitate the need for persistent storage for containers. This paper examines the architecture requirements for stateful applications in a containerized environment and discusses the different persistent storage options available and needed for stateful applications using containers. Keywords: Containers, File Storage, Block Storage, MySQL, Postgres, Windows, Linux, HA Clustering, CI/CD, HPC, ML, SLA, CNS, NAS, SAN, HCIS, SDS.
I. INTRODUCTION Application container technology provides the basic standards based packaging and runtime management of the underlying application modules. Containers are quick to deploy optimizing use of system resources. With containers, developers benefit from application portability, programmable image management. IT operations leverage a standard runtime environment for deployment and management. With all these benefits, a common misperception still exists that containers are good only for stateless applications and it is not doable to containerize stateful applications.
II. STATEFUL CONTAINERIZED APPLICATIONS TYPES Persisting application state is about preserving the state across application restarts and outages. This type of state is usually stored in a redundant database tier with regular backup performed on it. Stateful applications suitable for containerization can be categorized into the following classes, each of which has different clustering characteristics: A. SQL Databases Open-source database servers (MySQL, PostgreSQL) are popular with developers of cloud-native applications. Commercially supported versions of these databases (Microsoft SQL) are available for deployment in container environment in both Windows and Linux environment. The Linux container images are suitable for production use, while the Windows container images are provided only for development and testing use cases. When High Availability (HA) Clustering is deployed in Containers, it is possible to use the container orchestrator to automatically restart a failed database server instance — as long as the container is reconnected with its original storage after failover. Several vendors provide SQL databases that are designed to scale out performance in clusters and that can be deployed in containers. When these database servers are containerized, the container orchestrator can be used to schedule multiple parallel instances of their server applications. B. NoSQL Databases NoSQL databases are architected for expected performance on large big data lakes. This capability requires support for scaling out multiple instances in a cluster. Their components can be deployed in containers that can be managed with an orchestrator. Some of them use data replication to make sure that copies of data remain available if an instance of a component fails.
Page | 34 Research Publish Journals