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.
Otomatisasi dan Pemrograman Jaringan
Saat ini, industri sedang mengalami pergeseran besar yang menjauhi penggunaan CLI sebagai metode utama untuk berinteraksi dengan perangkat jaringan. Otomatisasi jaringan mulai terbentuk seiring dengan munculnya *application programming interface* (API) pada perangkat jaringan dan pengontrol *software-defined network* (SDN). Meskipun terdapat semboyan "API adalah CLI yang baru," kenyataannya penggunaan GUI pun turut berkurang seiring dengan meningkatnya penggunaan API dan otomatisasi.
Beberapa API dan teknologi penting digunakan untuk membuat antarmuka terprogram yang tangguh bagi perangkat jaringan:
API Representational State Transfer (REST)
Network Configuration Protocol (NETCONF)
REST Configuration Protocol (RESTCONF)
Model "Yet Another Next Generation" (YANG) (bukan API, melainkan bahasa pemodelan untuk membuat model yang digunakan oleh API tersebut)
Remote procedure call gRPC
Perangkat jaringan merupakan bagian terakhir dari teka-teki ini. Agar dapat diadopsi dengan mudah, perangkat-perangkat tersebut harus mendukung satu atau lebih metode yang telah disebutkan. Cisco saat ini sedang menjalankan misi untuk memastikan setiap perangkat di seluruh lini produknya memiliki kemampuan API. Saat ini, API telah tersedia pada perangkat jaringan Cisco seperti Nexus 9000 atau platform pengendali (*controller*) seperti Cisco Application Policy Infrastructure Controller (APIC) dan Cisco DNA Center (DNAC), dan sebagainya.
CLI tidak akan hilang dalam waktu dekat. CLI merupakan metode yang andal untuk berinteraksi dengan perangkat jaringan, dan penggunaan CLI melalui SSH atau konsol serial diperlukan untuk pemecahan masalah tingkat lanjut. Selain itu, sistem otomatisasi jaringan dapat menggunakan SSH untuk berkomunikasi dengan perangkat jaringan, terutama jika perangkat tersebut merupakan model lama atau jika perangkat lunak otomatisasi itu sendiri belum diperbarui untuk memanfaatkan API perangkat.
Melampaui API
Penting untuk dipahami bahwa API hanyalah sarana pendukung. Meskipun API menjadi fondasi bagi otomatisasi generasi mendatang, kita perlu memiliki pandangan menyeluruh mengenai operasional serta cara memanfaatkan API perangkat tersebut dalam siklus hidup jaringan itu sendiri.
Beberapa tren utama sedang muncul dalam industri jaringan, termasuk *Development and Operations* (DevOps), *Open Source*, dan berkembangnya infrastruktur pengujian yang dapat diotomatisasi.
DevOps: DevOps adalah tren budaya yang mendorong dan mengembangkan metode untuk meningkatkan kecepatan serta kelincahan dalam penerapan (*deployment*), pemeliharaan, dan peningkatan berkelanjutan terhadap sistem dan infrastruktur. Tren budaya ini mendorong terciptanya alat konfigurasi dan otomatisasi yang lebih baik bagi para insinyur jaringan. Melalui gerakan DevOps, para profesional jaringan dapat mempelajari bagaimana pengembang menggunakan berbagai perangkat DevOps—seperti Git, Docker, dan Ansible—dalam pekerjaan mereka.
Open Source: Dalam gerakan DevOps, banyak perangkat yang bersifat *open source* (sumber terbuka). Namun, perusahaan yang mendukung proyek *open source* tersebut mungkin juga menawarkan versi komersial atau layanan dukungan untuk perangkat lunak itu. Sebagai contoh, Git bersifat *open source*, tetapi terdapat layanan komersial seperti GitHub, BitBucket, dan GitLab. Kombinasi yang saling menguntungkan antara *open source* dan DevOps sebagai landasan operasi generasi mendatang ini menurunkan hambatan bagi pengembang dan insinyur jaringan untuk mulai menggunakan perangkat lunak *open source*.
Infrastruktur Pengujian: Cisco Modeling Labs (CML) merupakan komponen fundamental dalam otomatisasi karena dapat digunakan untuk keperluan QA (*Quality Assurance*) dan pengujian. Meskipun memiliki laboratorium fisik khusus adalah hal yang ideal, biayanya terkadang terlalu tinggi. Cisco Modeling Labs memungkinkan Anda membuat perangkat jaringan virtual untuk melakukan pengujian otomatis sebelum menerapkan sistem ke lingkungan produksi. CML dapat diintegrasikan ke dalam alur kerja (*pipeline*) otomatisasi karena perangkat ini juga berfungsi sebagai pustaka API.
Seiring Anda melangkah lebih jauh dalam perjalanan otomatisasi jaringan, ingatlah bahwa cakupannya lebih luas daripada sekadar API atau satu perangkat (tool) tertentu. Mempelajari DevOps membuka peluang untuk meninjau kembali operasi jaringan secara menyeluruh (end-to-end). Pembahasan ini akan membantu Anda melihat berbagai kemungkinan baru serta bagaimana insinyur jaringan dapat menerapkan prinsip DevOps dalam Operasi Jaringan. Saatnya bagi Network DevOps telah tiba, dan sungguh menarik untuk membayangkan bagaimana DevOps akan mengubah masa depan rekayasa jaringan di tahun-tahun mendatang.
Otomatisasi dan Pemrograman Jaringan Cisco
Cisco memiliki portofolio produk yang luas, mulai dari jaringan inti, pusat data, dan cloud, hingga keamanan, kolaborasi, dan Internet of Things (IoT).
Selama bertahun-tahun, Cisco telah berupaya memastikan bahwa setiap platform dan produk memiliki API untuk memungkinkan kemampuan pemrograman dan otomatisasi.
Saat Anda terus melangkah dalam perjalanan otomatisasi jaringan, sangatlah penting untuk mengenali alur kerja bernilai tinggi yang dapat diotomatisasi lintas silo teknologi dan platform. Di perusahaan, setiap bidang teknologi sering kali memiliki tim atau silo khusus, namun alur kerja dan tugas-tugasnya melibatkan berbagai tim yang terpisah dalam silo tersebut. Meskipun Anda mungkin tidak mengelola firewall ataupun sistem suara dan kolaborasi, penting untuk mempertimbangkan dampak otomatisasi sistem-sistem tersebut saat berinteraksi dengan tim keamanan dan kolaborasi, karena mereka mungkin belum siap menghadapinya. Perubahan alur kerja dan penerapan otomatisasi jaringan harus dilakukan secara cermat dan terencana dengan baik, disertai komunikasi yang efektif antar-tim yang terpisah dalam silo. Budaya DevOps akan mendorong Anda untuk meninjau kembali cara Anda menangani komunikasi dan kolaborasi antar-tim.
Kasus Penggunaan Automasi Jaringan
Otomatisasi jaringan memiliki cakupan kasus penggunaan yang kian berkembang. Otomatisasi bukan sekadar penggunaan API dan perangkat otomatisasi untuk mengonfigurasi sejumlah perangkat jaringan; hal ini mencakup penentuan kasus penggunaan jangka pendek maupun jangka panjang yang secara tepat menjawab kebutuhan bisnis organisasi Anda.
Berikut adalah beberapa kasus penggunaan utama untuk otomatisasi jaringan:
Cadangan otomatis: Bayangkan sebuah infrastruktur dengan puluhan, ratusan, atau ribuan node yang memerlukan pencadangan harian atas konfigurasi setiap node. Persyaratan ini semestinya berlaku bagi semua tim, namun kenyataannya, hal tersebut tidak selalu terlaksana. Tanpa perangkat yang memadai, tugas ini bersifat repetitif dan bisa memakan waktu berjam-jam hingga berhari-hari untuk diselesaikan—sebuah pemborosan waktu dan sumber daya yang nyata. Solusinya adalah menggunakan perangkat atau sistem otomatisasi yang dapat dijadwalkan untuk berjalan setiap hari. Selain itu, pendekatan ini memungkinkan pelacakan riwayat perubahan demi keperluan kepatuhan dan audit.
Validasi pra- dan pasca-perubahan: *Method of Procedure* (MOP) adalah dokumen terperinci—dan terkadang kompleks—yang menguraikan prosedur langkah demi langkah untuk menyelesaikan perubahan jaringan tertentu. Dokumen ini biasanya memuat informasi yang harus dikumpulkan sebelum dan sesudah setiap perubahan—seperti data status perangkat (misalnya, antarmuka, *Border Gateway Protocol* [BGP], atau versi sistem operasi)—untuk tujuan validasi. Informasi ini memberikan kepastian bahwa perubahan telah berjalan sesuai harapan. Mengingat perubahan serta perintah verifikasi pra- dan pasca-perubahan biasanya dijalankan oleh manusia, setiap insinyur harus melakukan tugas ini. Jika perubahan dilakukan pada larut malam, ada risiko perintah terlewat atau validasi dilakukan secara keliru. Situasi ini merupakan contoh penerapan yang sangat tepat untuk otomatisasi, meskipun perubahan itu sendiri tetap dilakukan secara manual. Fungsi ini dapat diotomatisasi sehingga skrip menjalankan seluruh MOP, termasuk validasi pra- dan pasca-perubahan. Atau, seperti yang telah disebutkan, skrip dapat melakukan validasi pra- dan pasca-perubahan serta membandingkan hasilnya, sementara insinyur melakukan perubahan aktualnya. Skrip dapat dengan mudah berkomunikasi dengan berbagai perangkat, mengambil informasi yang diperlukan, dan menyimpannya dalam berkas teks atau basis data. Setelah MOP selesai, perintah yang sama dapat digunakan untuk mengambil informasi serupa, melakukan perbandingan, dan menyajikan hasil akhirnya kepada insinyur yang melakukan pengawasan.
Pelaporan: Data statistik yang dianalisis secara tepat dan rutin setiap hari dapat sangat bermanfaat bagi tim jaringan. Pembuatan laporan dari berbagai titik akhir (*endpoint*) juga dapat diserahkan kepada sistem otomatisasi. Sistem ini mampu melakukan berbagai tugas, mulai dari pengambilan informasi, pembuatan grafik dan diagram, penyusunan informasi dalam format PDF, hingga pengiriman laporan melalui email kepada pihak-pihak terkait untuk ditinjau lebih lanjut. Dengan laporan otomatis, Anda memiliki kendali penuh atas isi laporan, tampilan laporan, tujuan pengiriman laporan, serta apakah diperlukan notifikasi setelah laporan selesai dibuat (melalui *chat*, email, telepon, atau pesan teks).