Pengenalan
Revolusi data telah mengubah banyak hal dalam kehidupan kita. Teknologi hadir di mana-mana dalam keseharian kita, menghasilkan data dalam jumlah masif yang harus ditransmisikan. Baik konsumen maupun perusahaan, pengguna akhir mengharapkan pengalaman yang andal. Mereka menginginkan jaringan data yang mampu mengimbangi kebutuhan teknologi mereka dengan gangguan seminimal mungkin. Selama bertahun-tahun, para pengembang perangkat lunak telah menghadapi tantangan serupa dan menciptakan budaya yang dikenal sebagai DevOps. DevOps merupakan perpaduan dari berbagai disiplin ilmu, perangkat, dan budaya perusahaan untuk menjawab tantangan-tantangan tersebut; oleh karena itu, sangatlah wajar jika para profesional TI memanfaatkan keunggulan DevOps dalam bidang Rekayasa Jaringan. Selamat datang di dunia NetDevOps!
Otomatisasi dan *programmability* jaringan merupakan aspek penting dari NetDevOps dan akan menjadi fokus utama kursus ini. Kursus ini mengulas bagaimana pengelolaan perangkat dilakukan di masa lalu serta memberikan gambaran mengenai masa depan operasi jaringan. Selain itu, kursus ini memperkenalkan prinsip, proses, penerapan, dan perangkat DevOps yang dapat dimanfaatkan oleh insinyur jaringan untuk meningkatkan kemampuan mereka dalam memenuhi tuntutan jaringan modern. Anda juga akan mempelajari manfaat otomatisasi jaringan beserta contoh penerapannya di dunia nyata. Terakhir, kursus ini akan membahas berbagai perangkat yang umum digunakan dalam alur kerja (*pipeline*) NetDevOps.
Manajemen Jaringan Tradisional
Selama bertahun-tahun, operasional jaringan sangat bergantung pada interaksi langsung manusia dengan perangkat jaringan. Umumnya, dengan menggunakan penyunting teks (text editor), insinyur jaringan menyusun konfigurasi perangkat satu demi satu. Mereka mungkin menyalin konfigurasi yang sudah ada ke dalam sebuah berkas, lalu melakukan penyesuaian untuk setiap perangkat baru. Setelah metode penyusunan konfigurasi yang tergolong kuno ini selesai, insinyur jaringan akan terhubung ke perangkat menggunakan konsol, Telnet, atau SSH untuk menyalin dan menempelkan (copy-paste) konfigurasi tersebut ke perangkat terkait.
Proses ini menimbulkan beberapa masalah saat menangani jaringan dalam berbagai bentuk dan ukuran. Saat meninjau kembali bagaimana jaringan dikelola selama ini, pertimbangkan hal-hal berikut:
Pertama, CLI dirancang untuk interaksi manusia, sehingga kecepatan konfigurasi dibatasi oleh kecepatan kerja pengguna.
Kedua, konfigurasi manual serta metode salin-tempel (copy-paste) yang umum digunakan sangat rentan terhadap kesalahan, terutama saat mengonfigurasi banyak perangkat.
Ketiga, tugas-tugas tersebut sulit untuk diulang dan menghasilkan alur kerja yang tidak optimal.
Pada akhir tahun 1980-an, industri mengembangkan sebuah antarmuka yang dirancang untuk komunikasi antar-mesin guna mengelola dan memantau jaringan berskala besar secara terstandarisasi. Antarmuka ini disebut *Simple Network Management Protocol* (SNMP). Alih-alih seorang teknisi harus terhubung ke setiap perangkat untuk mendapatkan informasi yang diperlukan, sebuah server—yang merupakan bagian dari sistem manajemen jaringan (NMS)—melakukan fungsi tersebut melalui mekanisme *polling* SNMP. Antarmuka ini memiliki manfaat lain: jika terjadi masalah atau suatu peristiwa tertentu, perangkat akan memberikan pemberitahuan kepada server menggunakan *SNMP trap*. Meskipun SNMP juga dapat digunakan untuk mengonfigurasi perangkat hingga tingkat tertentu, metode tersebut jarang diterapkan dalam lingkungan produksi. SNMP memang memiliki sejumlah kekurangan, namun pengembangannya merupakan langkah ke arah yang tepat.
Meskipun memiliki karakteristik yang beragam, saat ini SNMP paling dikenal dan digunakan untuk sekadar melakukan *polling* terhadap perangkat jaringan guna memantau status operasional—seperti status aktif (*up*) atau tidak aktif (*down*) pada antarmuka, penggunaan memori, penggunaan CPU, penggunaan *bandwidth*, serta berbagai parameter dasar lainnya.
Peningkatan Skala Manajemen Jaringan
Dengan CLI dan SNMP sebagai metode manajemen jaringan yang dominan, berikut adalah contoh bagaimana tim biasanya melakukan peningkatan skala: Apa yang mereka lakukan dan bagaimana mereka beroperasi seiring dengan terus berkembangnya jaringan? Meskipun jaringan tidak selalu meluas dalam hal jumlah router dan switch, dalam beberapa tahun terakhir, penambahan perangkat dan layanan telah meningkatkan ukuran serta kompleksitas jaringan—seperti keamanan, nirkabel, pengendali *network fabric*, *network overlay*, dan IPv6, untuk menyebutkan beberapa contoh saja.
Bayangkan sebuah perusahaan yang memiliki jaringan berskala kecil dengan hanya segelintir insinyur jaringan. Mereka dapat mengelola seluruh *node* dengan mudah hanya dengan menggunakan akses CLI. Seiring berjalannya waktu, perusahaan tersebut berkembang dan menghadapi lebih banyak tantangan dalam operasional jaringan. Kini, jaringan tersebut memiliki lebih banyak perangkat yang membutuhkan lebih banyak staf untuk menanganinya. Saat jaringan berkembang semakin luas, langkah utama yang secara historis diambil adalah merekrut lebih banyak insinyur jaringan.
Meskipun penggunaan CLI semestinya tidak lagi dapat dibenarkan, metode ini telah menjadi praktik umum dalam industri. Namun, ada keuntungan tersendiri dalam merekrut lebih banyak insinyur—hal ini menciptakan keragaman keahlian yang justru semakin menyoroti persoalan tersebut. Sebagai contoh, seorang insinyur baru mungkin mempelajari Python, sementara yang lain mempelajari Ansible. Kendati kedua perangkat ini membantu mengelola banyak perangkat secara bersamaan, keduanya juga menawarkan kemampuan untuk melakukan standardisasi dan meminimalkan kesalahan manusia. Masing-masing insinyur tersebut berhasil meningkatkan kinerja mereka secara individu.
Seiring berjalannya waktu, jaringan terus berkembang dan konfigurasi ditambahkan secara bertahap, sehingga pengelolaan konfigurasi secara manual menjadi semakin sulit. Meskipun pengelolaannya secara manual lebih sulit, setiap anggota tim tetap melakukan apa yang menurut mereka tepat untuk otomatisasi jaringan. Sebagian insinyur menggunakan basis data mereka sendiri, sebagian menggunakan skrip Bash atau Perl, sementara yang lain menjalankan skrip dari server dan menyimpannya di repositori Git.
Meskipun praktik ini umum dilakukan, hal tersebut tidak memberikan keuntungan bagi insinyur jaringan maupun bisnis. Alat-alat ini sebenarnya sangat mumpuni untuk mengelola jaringan, namun tidak ada strategi otomatisasi yang menyeluruh. Pola kerja seperti ini memang memperlihatkan nilai dari otomatisasi dan memungkinkan pengembangan keterampilan tertentu, tetapi sebaiknya hanya diterapkan sebagai bukti konsep (POC). Melakukan otomatisasi di lingkungan produksi memerlukan pengendalian yang tepat sebagai bagian dari strategi manajemen jaringan yang terpadu.

