Why do we need devops team?
… karena programmer dan sysadmin harus kerja bareng
Di beberapa IT Company (terutama startup), banyak yang selalu men-salah artikan mengenai arti dari System Administrator (SysAdmin) dan Engineers (Programmer). Salah satunya adalah sering meletakkan posisi SysAdmin pada Engineers. Ngga salah kok, tapi ‘ngga bener juga.
Lalu yang lebih tepatnya bagaimana?
Sebenarnya sysadmin dan engineers itu adalah satu kesatuan, di dalam dunia teknologi, sering disebut devops (development & operations). Hal tersebut tidak bisa dipisahkan satu dengan yang lainnya.
Engineers ! = BOS
Di renungkan baik-baik, bahwa Engineers adalah tidak sama dengan BOS, tidak semua permintaan engineers harus di penuhi oleh sysadmin. Salah satu contoh kasus-nya adalah bahasa pemrograman Python. Python bisa berjalan di semua level platform (Windows, Mac OS X, *NIX, Linux).
Jadi, jangan beranggapan bahwa Python tidak bisa berjalan pada beberapa distribusi linux tertentu dan tidak diharuskan menggunakan patokan operating system yang standar. Standar dalam artian adalah permintaan dari developer. Engineers juga harus legowo apabila operating system yang dipilih dan dipergunakan oleh sysadmin tidak sesuai dengan kehendak developers (bukan ego sysadmin ya!).
SysAdmin == Engineers
Yeah! Di sini, kedudukan Engineers tidak lebih tinggi daripada SysAdmin, begitu pula sebaliknya. But, we are team!
Kalo ‘ngga pakai distribusi Linux X, coding aja sendiri!
It’s not a solution, but Engineers ego. Pernah mendapat kata-kata di atas? Kasihan banget berarti hidup lo! Solusinya adalah membicarakan dependencies (kebutuhan) yang akan dipergunakan dan apa saja yang diperlukan. Misalkan, Engineers mau menggunakan tweepy dalam salah satu framework-nya, sysadmin bertugas untuk menyiapkan infrastruktur tersebut.
Apapun distribusi yang dipilih oleh SysAdmin, berarti mereka paham benar apa yang dikerjakannya. Kalau ada troubleshoot di sisi system apakah Engineers siap membantu untuk forensik? Forensik dalam artian bukan melakukan code review saja, melainkan melakukan system dan backend review di layer operating system.
Apa yang perlu kalian lakukan kalau sedang mendapatkan masalah seperti tersebut di atas? Ada 4 tahap uraian minimal yang bisa dilaksanakan, misalnya :
- Pelajari kebutuhan yang di utarakan oleh Engineers (research and read the fine manual)
- Membutuhkan waktu berapa lama infrastruktur tersebut akan siap digunakan
- Lakukan internal system testing (Engineers Test & SysAdmin Test)
- Jika terjadi error, pelajari error-nya. Belum paham dengan error yang ada? Baca kembali manual dari backend yang digunakan, kalau masih belum menemukan, mailing list dan IRC adalah tempat belajar yang bagus. ☺
Apakah hanya di sisi software development saja? Tentu saja ‘ngga. Kita juga perlu diskusi mengenai infrastruktur apa saja yang perlu disiapkan jika ada permintaan dari Engineers.
Dari tahapan di atas, alangkah baiknya kita mempunyai tim yang bisa bekerja sama, baik untuk diskusi dan implementasi. Sehingga tidak ada lagi saling menyalahkan dan mencari pembenaran.
Intinya, SysAdmin tanpa Engineers, juga ‘ngga ada yang dikerjakan, begitu pula Engineers tanpa SysAdmin juga belum tentu bisa kerja (coding-nya saja belum tentu selesai tepat waktu, mau ngerjain pekerjaan sysadmin?). Alangkah baiknya kalau bekerja sama bukan?
Lalu, bagimana dengan kalian para Engineers dan SysAdmin di luar sana?