Apa itu etcd ?
Sederhana nya etcd adalah storage berbasis cluster, yang menggunakan mekanisme key-value untuk menyimpan data secara konsisten.
Secara fungsi etcd bekerja sebagai separate coordination service pada distributed system, etcd di design untuk mempertahankan dan me-manage critical information yang di butuhkan oleh distributed systems untuk berjalan (mempertahankan kondisi cluster).
Critical information yang etcd manage antara lain: configuration data, state data, dan metadata.
Team CoreOS membuat etcd sebagai backbone storage yang di digunakan oleh distributed system. Perlu penulis sampaikan perihal kebanyakan distributed workloads, dimana containerized workload memiliki complex management requirement, yang nanti nya akan semakin complex seiring berkembangnya workload itu sendiri.
Salah satu implementasi etcd adalah penggunaan nya pada Kubernetes (popular container orchestration platform) yang mana etcd di gunakan untuk menyederhanakan process dan memanage semua workload, dengan cara mengkordinasikan semua task (configuration, deployment, service discovery, load balancing, job scheduling, dan healt monitoring) di semua cluster, agar bisa running pada multiple machines dan multiple locations.
Alasan utama Kubernetes menggunakan etcd, dikarenakan etcd memiliki kemampuan data store yang mampu memprovide single, consistent source of the truth untuk melihat status sebuah system — termasuk status pada semua cluster, pods dan application instance di dalam nya — pada waktu tertentu, etcd sebagai data store berguna untuk meng-create dan me-maintan version of the truth (status terkini) dari sebuah system.
Apakah ada storage yang memiliki role yang sama ?
Selain etcd ada juga Cloud Foundry — open source, multicloud Platform-as-a-Service (PaaS) —yang bisa menjadi opsi lain untuk coordinating critical system dan metadata across clusters pada any distributed application.
Fun Fact
Penamaan “etcd” berasal dari naming convention di dalam Struktur Linux Directory : Pada UNIX, semua system configuration files untuk single system tersimpan di dalam folder bernama “/etc;” dan untuk “d” stands for “distributed.”