Kamu ingin menekuni dunia DevOps? Kamu ingin menjadi seorang DevOps Engineer? Ketahuilah bahwasanya diperlukan pemahaman dari berbagai bidang IT untuk bisa bergelut di sana, salah satunya memahami peran jaringan pada DevOps. Jangankan DevOps, jaringan (konteksnya adalah jaringan komputer) pada dasarnya memiliki peranan penting untuk kelangsungan hidup manusia.
Internet Sebagai Tulang Punggung Kehidupan Manusia
Di masa yang serba canggih seperti sekarang, jaringan komputer telah hadir di mana-mana, terutama dalam bentuk internet. Internet sejatinya telah merevolusi tidak hanya dunia komputer, melainkan juga kehidupan jutaan (bahkan miliaran) orang.
💻 Mulai Belajar Pemrograman
Belajar pemrograman di Dicoding Academy dan mulai perjalanan Anda sebagai developer profesional.
Daftar SekarangPercaya atau tidak, hampir semua orang di dunia ini hidupnya tergantung oleh internet. Kini, sebagian besar hal bisa dilakukan secara daring, mulai dari rapat kerja, mengikuti perkuliahan, hingga diskusi dengan teman. Tak peduli seberapa jauh jaraknya, kamu tetap bisa terhubung dan berkomunikasi secara real time seakan lawan bicara ada di hadapan kita. Keren nggak tuh?
Internet adalah manifestasi dari jaringan komputer dalam skala yang besar. Namun, pada dasarnya, jaringan komputer–atau bisa disebut jaringan saja–adalah kumpulan (umumnya terdiri dari dua atau lebih) komputer atau perangkat keras lain yang saling terhubung, baik melalui kabel maupun nirkabel sehingga memungkinkan mereka untuk bertukar informasi.
Nah, berangkat dari sana, lantas apa korelasinya antara jaringan dan DevOps? Jika kamu bisa melihat benang merahnya, tersirat jelas bahwa jaringan memiliki peranan yang sangat penting pada DevOps.
Masih belum menangkap? Oke, kita bedah lebih dalam.
Peran Jaringan pada DevOps
DevOps pada dasarnya merupakan penggabungan kata dari Developer (Dev) dan IT Operations (Ops) yang merujuk pada penerapan kultur, praktik, dan juga tools sehingga kedua tim tersebut bisa berdamai dan bekerja sama menghasilkan produk aplikasi yang lebih berkualitas.
Developer dan IT Operations adalah 2 dunia yang berbeda, tetapi saling terhubung dan bergantung satu sama lain. Ibarat bumi dan bulan yang saling berpegang tangan bersama mengelilingi tata surya. Baik Developer maupun IT Operations masing-masing punya kultur, praktik, dan tools-nya sendiri.
Developer mungkin berkutat dengan penulisan dan pengujian kode, sedangkan IT Operations bergelut dengan server dan jaringan. Ketika kamu memutuskan ingin menerapkan DevOps, Developer haruslah juga memahami apa yang dikerjakan oleh IT Operations. Begitu juga sebaliknya.
Sebagai contoh, agar Developer tahu bagaimana kode yang sudah ditulis bisa tersaji dan terkirim ke seluruh dunia, mereka harus tahu bahwa di balik proses itu memerlukan konfigurasi server dan pengaturan jaringan.
Jaringan memainkan peran penting di sini. Agar aplikasi yang telah dibangun bisa diakses oleh pengguna, kita harus menyiapkan public IP address, memadukannya dengan DNS, menyetel firewall, dan lain sebagainya. Mantap! Kini, kamu sudah mengetahui peran jaringan pada DevOps.
Bagaimana Pengguna dan Aplikasi Bisa Saling Berkomunikasi?
Oke, katakanlah kini aplikasimu sudah bisa diakses oleh pengguna di seluruh dunia. Lalu, bagaimana sih proses ketika pengguna bisa berkomunikasi dengan aplikasi yang kita deploy? Kembali lagi, ini semua berkat internet.
Ingat bahwa internet adalah manifestasi dari jaringan dalam skala yang besar. Saat pengguna melakukan sebuah request (permintaan), misalnya ingin membuka dashboard aplikasi, sebenarnya request tersebut akan berjalan via internet melewati berbagai infrastruktur jaringan yang tersebar di seluruh penjuru dunia.
Perangkat yang digunakan oleh pengguna (misal, smartphone) butuh berkomunikasi dengan server yang menjalankan aplikasi kamu. Jika penggunamu ada di Jakarta, sedangkan server aplikasi ada di New York, request dari pengguna (disebut sebagai packet) akan mencari jalur sekiranya bisa ditempuh untuk bisa mencapai New York.
Perangkat pengguna dan server aplikasi masing-masing memiliki IP address untuk bisa berkomunikasi. IP address punya andil penting agar keduanya bisa bertegur sapa. Selain sebagai alamat tujuan, protokol IP juga dipakai untuk merutekan packet agar tak tersesat di labirin internet yang begitu kompleks.
Namun, di balik itu semua, IP address saja tidak cukup. Ibarat kamu ingin mengirim paket ke teman melalui jasa pengiriman, selain perlu menulis alamat rumah, kamu juga perlu mencantumkan identitas penerimanya, kan?
Siapa tahu temanmu tak tinggal sendirian di rumahnya, barangkali mungkin ada adiknya, saudaranya, kerabatnya, orang tuanya, dan lain-lain. Maka dari itu, kamu wajib mencantumkan identitas penerima paket yang kamu tuju, minimal nama lengkap temanmu.
Nah, ini juga berlaku di jaringan. Agar pengguna dan server aplikasimu bisa saling mengobrol, selain IP address, diperlukan juga satu identitas lagi untuk memastikan mereka tak salah orang, yakni MAC address. Anggap saja IP address adalah alamat rumah temanmu, sementara MAC address adalah identitas dari temanmu (misal, nama lengkap). Dengan demikian, network packet dari pengguna bisa dikirim dengan tepat ke server aplikasi. Jika pengguna ingin membuka halaman dashboard, server akan mengabulkan hal itu. Begitulah cara mereka berkomunikasi.
Apa itu MAC address?
Mari kita bahas MAC address lebih dalam agar kamu yang berperan sebagai Developer juga bisa lebih memahami dunia IT Operations sehingga tercapai DevOps yang harmonis.
MAC (Media Access Control) address adalah pengidentifikasi unik yang tertanam dalam network card atau network interface control untuk alamat jaringan. MAC address juga akrab dikenal sebagai alamat fisik dari perangkat jaringan. Tentu jelas berbeda dengan IP address yang mengidentifikasi koneksi perangkat di jaringan.
Oke, kalau MAC address adalah alamat fisik perangkat, sedangkan IP address adalah alamat virtual di suatu jaringan. Lantas, bagaimana agar IP address bisa mengetahui MAC address yang tepat? Jika kita angkat kembali analogi pengiriman paket, coba tebak bagaimana petugas pos bisa tahu bahwa penerimanya adalah benar temanmu?
Simpel, petugas pos akan bertanya apakah nama yang bersangkutan itu sesuai dengan nama penerima yang kamu tulis pada paket tersebut. Dengan begitu, yang menerima paket adalah benar temanmu.
Catatan: Analogi ini di luar kasus bahwa sering kali petugas pos akan menitipkan paket ke siapa pun yang ada di alamat rumah penerima.
Begitu pun dengan cara kerja jaringan. Agar bisa mengirim packet dari informasi IP address ke MAC address, diperlukan suatu protokol agar ditemukan MAC address yang tepat. Protokol yang bertugas untuk ini adalah ARP.
Apa itu ARP?
ARP (Address Resolution Protocol) dapat membantu IP dalam mengarahkan packet ke komputer penerima yang sesuai dengan pemetaan MAC address ke IP address. Untuk mengetahui MAC address komputer lain pada sebuah segmen jaringan, komputer yang ingin memulai komunikasi akan mengirimkan broadcast message ARP atau ARP Request dengan menanyakan, “Siapa pemilik IP address ini?”. Karena merupakan broadcast message, semua komputer di segmen jaringan akan menerima ARP packet dan memprosesnya (ARP packet berisi IP address komputer tujuan).
Ketika sebuah komputer menerima ARP packet yang ditujukan untuk dirinya, ia lantas membalasnya dengan MAC address-nya sendiri (ARP Reply). Setelah komputer pengirim sukses mendapatkan MAC address tujuan, ia akhirnya dapat berkomunikasi dengan komputer penerima. Pemetaan MAC address ke IP address ini selanjutnya disimpan ke dalam ARP cache (penyimpanan data ARP untuk sementara) di komputer pengirim dan penerima. Jika perlu berkomunikasi kembali, mereka dapat langsung merujuk ke ARP cache masing-masing.
Penutup
Nah, itu dia pembahasan kita kali ini. Semoga dengan artikel blog ini kamu bisa makin paham peran jaringan pada DevOps. Coba tuliskan pengalamanmu mengenai jaringan, devops, atau mac address di kolom komentar, ya.