« Previous 1 2 3
Relational databases as containers
Shippable Data
Who's in Charge?
In a tough production environment, high availability (HA) often plays an important role. Classic databases use either cluster, multimaster, or master-slave concepts. The required technology either is provided by an external application or is part of the RDBMS software itself.
If you are looking to introduce containers, you need to consider HA solutions. The three HA solutions mentioned raise two questions. The first relates to who manages the active instances. The second relates to data synchronization between the components involved. One of these can be a data store accessed by all active instances, often using Storage Area Networks (SANs) [40] or Network Attached Storage (NAS) [41]. An alternative method is data replication of the stake-holding entities.
Earlier, I referred to a similar data storage requirement: data synchronization handled by the data volumes with distributed data storage in the background. The case of different container instances writing data at the same time, though, requires more, and more intensive, reflection.
Taking Up the Baton
In a similar fashion, administrators simply manage the active container instances from the outside. The buzzword here is "container orchestration," and Google was among the first users. The company used Borg, the forerunner of Kubernetes, which was released in 2015 [42], above all to manage thousands of containers. Docker Swarm [33] or Apache Mesos [43] are just some of the other projects that deserve a closer look, seeking to attract new clientele for Docker and Apache at conferences (Figure 3). Originally, Fleet also belonged to this list [44], but CoreOS recently discontinued it in favor of Kubernetes.
Status Quo
Operating classic database systems in containers is no longer a technology problem; rather, the challenges lie in the area of processes and the employees who are responsible for setup, operation, and removal. Docker and other providers shift the focus and responsibility in the technology package upward – into the container. The underlying infrastructure, in particular the hardware, becomes secondary. Topics such as DevOps and lean management play key roles [45].
Because the demand for horizontal scalability and high distribution is growing, it is also questionable how long RDBMS will be able to lead the market, because the NoSQL competitors can "container" significantly better.
Infos
- Docker: http://www.docker.com
- rkt: http://coreos.com/rkt/
- LXC: https://linuxcontainers.org
- Relational databases: https://en.wikipedia.org/wiki/Relational_database
- Oracle: http://www.oracle.com
- MySQL: http://www.mysql.com
- MariaDB: http://mariadb.com
- PostgreSQL: http://www.postgresql.org
- NoSQL: https://en.wikipedia.org/wiki/NoSQL
- In-memory database: https://en.wikipedia.org/wiki/In-memory_database
- Database ranking: http://db-engines.com/en/ranking
- Shifter: http://github.com/NERSC/shifter
- Singularity: http://github.com/singularityware/singularity
- OCI: https://www.opencontainers.org
- Windows Server: http://docs.microsoft.com/en-us/virtualization/windowscontainers/quick-start/quick-start-windows-server
- Docker And Windows Server: http://blog.docker.com/2016/09/build-your-first-docker-windows-server-container/
- Data volumes: http://docs.docker.com/engine/tutorials/dockervolumes/
- Plugin infrastructure: http://docs.docker.com/engine/extend/plugins_volume/
- NFS: https://en.wikipedia.org/wiki/Network_File_System
- GlusterFS: http://www.gluster.org
- Ceph: http://ceph.com
- GFS2: http://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Global_File_System_2/index.html
- OCFS2: http://oss.oracle.com/projects/ocfs2/
- Flocker: http://clusterhq.com/flocker/
- Ceph at Red Hat: https://www.redhat.com/en/technologies/storage/ceph
- Ceph blog post: http://ceph.com/geen-categorie/getting-started-with-the-docker-rbd-volume-plugin/
- REX-Ray documentation: http://rexray.readthedocs.io/en/stable/
- REX-Ray code: http://github.com/codedellemc/rexray
- NFS: http://github.com/SvenDowideit/docker-volumes-nfs
- GlusterFS: https://www.redhat.com/en/technologies/storage/gluster
- GlusterFS Docker volume: http://github.com/calavera/docker-volume-glusterfs
- Plugin helpers: http://github.com/docker/go-plugins-helpers
- Docker Swarm: http://www.docker.com/products/docker-swarm
- Docker Compose: http://docs.docker.com/compose/
- Documentation on database support: http://github.com/docker-library/docs
- PostgreSQL support: http://www.postgresql.org/support/
- Docker support at Oracle: http://support.oracle.com/epmos/faces/DocumentDisplay?id=2216342.1
- Oracle containers: http://github.com/oracle/docker-images/tree/master/OracleDatabase
- Blog post on Docker: http://blogs.oracle.com/developer/entry/creating_and_oracle_database_docker
- SAN: https://en.wikipedia.org/wiki/Storage_Area_Network
- NAS: https://en.wikipedia.org/wiki/Network-attached_storage
- Kubernetes: http://kubernetes.io
- Apache Mesos: http://mesos.apache.org
- Fleet: http://coreos.com/using-coreos/clustering/
- "Organizing for Containers" by Udo Seidel, ADMIN, issue 33, 2016, pg. 34, http://www.admin-magazine.com/Archive/2016/33/Container-technology-and-work-organization
« Previous 1 2 3
Buy this article as PDF
(incl. VAT)