Linux terasa lebih cocok dan nyaman untuk banyak pekerjaan DevOps karena lingkungan production modern sangat sering berhubungan dengan Linux. Server, container, Kubernetes node, CI runner, image Docker, dan banyak tooling infrastructure lahir atau berjalan sangat alami di ekosistem Linux.
Red Hat menjelaskan Linux sebagai sistem operasi open source yang menjadi fondasi penting untuk modern IT stack, termasuk bare metal, virtualisasi, cloud, dan containerized environment. Artinya, ketika seorang DevOps Engineer memahami Linux, ia sedang memahami banyak lapisan yang benar-benar dipakai di production.
Dekat dengan lingkungan production
Alasan pertama Linux nyaman untuk DevOps adalah karena ia dekat dengan target environment. Banyak aplikasi backend tidak berjalan di desktop pengguna, tetapi di server, VM, container, atau cluster Kubernetes. Lingkungan seperti ini sangat sering berbasis Linux.
Karena itu, pemahaman Linux membantu saat membaca gejala sistem:
- kenapa service tidak bisa start;
- kenapa aplikasi tidak bisa menulis file;
- kenapa port tidak terbuka;
- kenapa container langsung exit;
- kenapa disk penuh;
- kenapa proses memakai CPU atau memory terlalu besar;
- kenapa permission atau ownership file menyebabkan error.
Masalah-masalah tersebut jarang bisa diselesaikan hanya dengan memahami bahasa pemrograman. DevOps Engineer perlu memahami sistem tempat aplikasi berjalan.
CLI membuat otomasi lebih natural
Linux sangat kuat di command line. Banyak pekerjaan DevOps memang dilakukan lewat CLI: SSH ke server, membaca log, menjalankan script, memakai package manager, mengecek process, mengatur service, atau menjalankan tool cloud dan Kubernetes.
Contoh aktivitas yang terasa natural di Linux:
- memeriksa process dengan
ps,top, atauhtop; - membaca log dengan
journalctl,tail, ataugrep; - mengecek koneksi jaringan dengan
curl,ss,dig, atautraceroute; - mengatur service dengan
systemctl; - membuat script otomasi dengan shell;
- mengelola file permission dengan
chmoddanchown.
Command line bukan sekadar gaya kerja, tetapi interface yang mudah diotomasi. Hal ini cocok dengan prinsip DevOps yang mendorong otomasi proses manual.
Container dan Linux punya hubungan dekat
Docker menjelaskan container sebagai unit software yang membungkus code dan dependency agar aplikasi berjalan konsisten di berbagai environment. Docker juga menekankan bahwa container memanfaatkan konsep di dunia Linux seperti cgroups dan namespaces.
Dua konsep ini penting untuk memahami kenapa container ringan:
namespacesmembantu memberi isolasi pada process, network, mount, user, dan resource lain;cgroupsmembantu membatasi dan mengelola resource seperti CPU dan memory.
Karena container berbagi kernel OS, memahami Linux membantu DevOps Engineer memahami kenapa container berbeda dari virtual machine, kenapa image bisa kecil, kenapa permission di dalam container bisa bermasalah, dan kenapa proses utama container sangat penting.
Kubernetes juga menguatkan kebutuhan memahami Linux
Kubernetes adalah platform open source untuk mengelola workload dan service berbasis container. Dokumentasi Kubernetes menjelaskan bahwa Kubernetes membantu menjalankan sistem terdistribusi secara lebih resilien melalui fitur seperti service discovery, load balancing, self-healing, rollout, rollback, scheduling, dan scaling.
Walaupun Kubernetes memberi abstraksi tingkat tinggi, node yang menjalankan workload tetap memiliki realitas sistem operasi: process, network, filesystem, storage, DNS, certificate, resource CPU/memory, dan log. Saat terjadi masalah, abstraksi Kubernetes sering perlu ditelusuri sampai ke level Linux.
Contoh kasus:
- pod
CrashLoopBackOffbisa berkaitan dengan command, permission, config, atau dependency; - service tidak bisa diakses bisa berkaitan dengan DNS, port, firewall, atau network policy;
- node
NotReadybisa berkaitan dengan disk pressure, memory pressure, kubelet, atau container runtime; - aplikasi lambat bisa berkaitan dengan limit CPU, I/O, atau koneksi jaringan.
Pemahaman Linux membuat troubleshooting Kubernetes lebih masuk akal karena engineer tidak hanya melihat YAML, tetapi juga memahami runtime di bawahnya.
Apakah DevOps Engineer wajib memakai Linux sebagai desktop?
Tidak selalu. macOS umum dipakai karena sama-sama Unix-like dan nyaman untuk tooling developer. Windows juga semakin layak karena WSL membuat pengalaman Linux di Windows jauh lebih baik.
Yang lebih penting bukan desktop-nya, tetapi kemampuan memahami Linux sebagai environment production. Seorang DevOps Engineer boleh memakai macOS atau Windows, tetapi tetap perlu nyaman membaca log Linux, memakai shell, memahami permission, mengelola process, dan men-debug service di server atau container.
Kesimpulan
Linux nyaman untuk DevOps Engineer karena ia memberi mental model yang dekat dengan production. Banyak konsep penting DevOps seperti otomasi, deployment, container, observability, CI/CD runner, dan Kubernetes menjadi lebih mudah dipahami jika fondasi Linux kuat.
Kalimat ringkasnya: Linux bukan satu-satunya OS yang bisa dipakai DevOps Engineer, tetapi Linux adalah bahasa operasional yang sangat sering dipakai oleh sistem production modern.