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.

Figure 3: Choices for container orchestration.

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

  1. Docker: http://www.docker.com
  2. rkt: http://coreos.com/rkt/
  3. LXC: https://linuxcontainers.org
  4. Relational databases: https://en.wikipedia.org/wiki/Relational_database
  5. Oracle: http://www.oracle.com
  6. MySQL: http://www.mysql.com
  7. MariaDB: http://mariadb.com
  8. PostgreSQL: http://www.postgresql.org
  9. NoSQL: https://en.wikipedia.org/wiki/NoSQL
  10. In-memory database: https://en.wikipedia.org/wiki/In-memory_database
  11. Database ranking: http://db-engines.com/en/ranking
  12. Shifter: http://github.com/NERSC/shifter
  13. Singularity: http://github.com/singularityware/singularity
  14. OCI: https://www.opencontainers.org
  15. Windows Server: http://docs.microsoft.com/en-us/virtualization/windowscontainers/quick-start/quick-start-windows-server
  16. Docker And Windows Server: http://blog.docker.com/2016/09/build-your-first-docker-windows-server-container/
  17. Data volumes: http://docs.docker.com/engine/tutorials/dockervolumes/
  18. Plugin infrastructure: http://docs.docker.com/engine/extend/plugins_volume/
  19. NFS: https://en.wikipedia.org/wiki/Network_File_System
  20. GlusterFS: http://www.gluster.org
  21. Ceph: http://ceph.com
  22. GFS2: http://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Global_File_System_2/index.html
  23. OCFS2: http://oss.oracle.com/projects/ocfs2/
  24. Flocker: http://clusterhq.com/flocker/
  25. Ceph at Red Hat: https://www.redhat.com/en/technologies/storage/ceph
  26. Ceph blog post: http://ceph.com/geen-categorie/getting-started-with-the-docker-rbd-volume-plugin/
  27. REX-Ray documentation: http://rexray.readthedocs.io/en/stable/
  28. REX-Ray code: http://github.com/codedellemc/rexray
  29. NFS: http://github.com/SvenDowideit/docker-volumes-nfs
  30. GlusterFS: https://www.redhat.com/en/technologies/storage/gluster
  31. GlusterFS Docker volume: http://github.com/calavera/docker-volume-glusterfs
  32. Plugin helpers: http://github.com/docker/go-plugins-helpers
  33. Docker Swarm: http://www.docker.com/products/docker-swarm
  34. Docker Compose: http://docs.docker.com/compose/
  35. Documentation on database support: http://github.com/docker-library/docs
  36. PostgreSQL support: http://www.postgresql.org/support/
  37. Docker support at Oracle: http://support.oracle.com/epmos/faces/DocumentDisplay?id=2216342.1
  38. Oracle containers: http://github.com/oracle/docker-images/tree/master/OracleDatabase
  39. Blog post on Docker: http://blogs.oracle.com/developer/entry/creating_and_oracle_database_docker
  40. SAN: https://en.wikipedia.org/wiki/Storage_Area_Network
  41. NAS: https://en.wikipedia.org/wiki/Network-attached_storage
  42. Kubernetes: http://kubernetes.io
  43. Apache Mesos: http://mesos.apache.org
  44. Fleet: http://coreos.com/using-coreos/clustering/
  45. "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

Buy this article as PDF

Express-Checkout as PDF
Price $2.95
(incl. VAT)

Buy ADMIN Magazine

SINGLE ISSUES
 
SUBSCRIPTIONS
 
TABLET & SMARTPHONE APPS
Get it on Google Play

US / Canada

Get it on Google Play

UK / Australia

Related content

comments powered by Disqus