Apa itu programmable network?
Programmable network (Jaringan yang dapat diprogram) adalah jaringan di mana perilaku perangkat jaringan dan kontrol aliran data ditangani oleh perangkat lunak yang beroperasi secara independen dari perangkat keras jaringan. Inti dari jaringan yang dapat diprogram adalah pemisahan antara perangkat keras fisik yang mendasarinya dengan perangkat lunak kontrol dari suatu perangkat.
Sejarah pemrograman jaringan
Ketika konsep jaringan yang dapat diprogram pertama kali muncul, itu menjadi langkah revolusioner dalam evolusi jaringan komputer. Konsep ini menciptakan perubahan paradigma yang sangat besar dibandingkan dengan metode tradisional yang telah lama digunakan oleh administrator jaringan untuk mengonfigurasi jaringan.
Secara tradisional, administrator jaringan mengonfigurasi setiap perangkat dalam jaringan secara independen. Mereka menggunakan antarmuka baris perintah (CLI) untuk mengetik ratusan perintah satu per satu hingga sekelompok perangkat dapat meneruskan lalu lintas seperti yang diharapkan.
Beberapa teknik otomatisasi memang sudah ada saat itu, tetapi sebagian besar berupa bahasa skrip yang rumit atau metode salin dan tempel (cut and paste). Misalnya, administrator dapat menyalin dan menempelkan informasi perangkat yang berubah secara lokal, seperti alamat IP. Namun, dengan pertumbuhan jaringan yang semakin pesat, tingkat otomatisasi seperti ini menjadi tidak memungkinkan.
Jaringan yang dapat diprogram: Apa artinya dan bagaimana hubungannya dengan SDN?
Dengan memisahkan perangkat keras dari perangkat lunak kontrol, pemrograman jaringan memungkinkan perangkat lunak untuk memiliki pandangan yang lebih luas tentang keseluruhan jaringan, menciptakan gambaran dari ketinggian 10.000 kaki. Perangkat lunak kini dapat diprogram di satu tempat, menggunakan pengontrol untuk mengoordinasikan konfigurasi perangkat keras lainnya yang membentuk jaringan.
Perkembangan ini melahirkan konsep software-defined networking (SDN). Istilah SDN kini telah menggantikan istilah umum jaringan yang dapat diprogram dalam terminologi jaringan modern.
Dasar-dasar untuk mencapai pemrograman jaringan
Protokol
Dengan menggunakan protokol seperti OpenFlow dan standar terbuka maupun proprietary lainnya, administrator jaringan kini dapat mengontrol dan memprogram jaringan dari satu tempat. Semua perangkat keras yang mendasarinya bekerja secara bersamaan, seolah-olah seseorang telah memasukkan semua perintah CLI di setiap perangkat. Kemajuan ini memungkinkan jaringan yang dapat diskalakan untuk mendukung beban kerja cloud dan containerization yang terus berkembang serta memberikan tekanan lebih besar pada infrastruktur.
API
Jaringan yang dapat diprogram juga mendorong perkembangan application programming interfaces (API). API adalah konstruksi perangkat lunak yang telah ada hampir sepanjang sejarah komputer, memungkinkan satu perangkat lunak untuk berkomunikasi dengan perangkat lunak lainnya.
Pengontrol menggunakan API untuk berkomunikasi dengan perangkat yang berada dalam kendalinya. Namun, perangkat lunak pengontrol itu sendiri dapat diakses melalui RESTful API standar industri, memungkinkan siapa pun untuk menulis perangkat lunak kustom untuk mengorkestrasi jaringan yang dapat diprogram.
Infrastructure as Code
Proses penggunaan API untuk mengontrol jaringan kini telah menjadi praktik umum. Skala dan cakupan jaringan modern tidak lagi memungkinkan konfigurasi perangkat satu per satu, kecuali untuk jaringan berukuran sangat kecil.
Dengan perusahaan yang semakin mengadopsi virtualisasi, containerization, dan cloud, konsep lain yang disebut infrastructure as code (IaC) mulai diterapkan. IaC adalah konsep penggunaan perangkat lunak untuk membangun jaringan secara menyeluruh, termasuk penyimpanan dan komputasi, di atas lapisan perangkat keras yang terabstraksi.
Manfaat jaringan yang dapat diprogram
Jaringan yang dapat diprogram memiliki beberapa keunggulan dibandingkan jaringan tradisional, termasuk:
- pengurangan biaya jangka panjang;
- kemampuan aplikasi untuk mempertahankan informasi tentang kapabilitas perangkat;
- kemampuan jaringan untuk merespons status aplikasi dan kebutuhan sumber daya;
- alokasi bandwidth dan sumber daya yang lebih baik;
- prioritas paket untuk traffic shaping; dan
- fleksibilitas operasional yang lebih baik serta transparansi yang lebih tinggi.