GitOps: kata kunci lain atau terobosan dalam otomatisasi?

GitOps: kata kunci lain atau terobosan dalam otomatisasi?

Sebagian besar dari kita, ketika memperhatikan istilah baru lainnya di dunia blog atau konferensi TI, cepat atau lambat akan menanyakan pertanyaan serupa: β€œApa ini? Sekadar kata kunci lain, β€œkata kunci” atau sesuatu yang benar-benar layak untuk diperhatikan, dipelajari, dan menjanjikan cakrawala baru?” Hal yang sama terjadi pada saya dengan istilah tersebut GitOps beberapa waktu lalu. Berbekal banyak artikel yang ada, serta pengetahuan rekan-rekan dari perusahaan GitLab, saya mencoba mencari tahu jenis binatang apa ini, dan seperti apa kegunaannya dalam praktik.

Berbicara tentang kebaruan istilah tersebut GitOps Survei terbaru kami juga menyatakan: lebih dari separuh responden belum mulai menerapkan prinsip-prinsipnya.

Jadi, permasalahan pengelolaan infrastruktur bukanlah hal baru. Banyak penyedia cloud telah tersedia untuk masyarakat umum selama belasan tahun dan, tampaknya, seharusnya membuat pekerjaan tim yang bertanggung jawab atas infrastruktur menjadi sederhana dan mudah. Namun, jika dibandingkan dengan proses pengembangan aplikasi (dimana otomasi mencapai tingkat yang baru), proyek infrastruktur masih sering melibatkan banyak tugas manual dan memerlukan pengetahuan dan keahlian khusus, terutama mengingat persyaratan saat ini dalam hal toleransi kesalahan, fleksibilitas, skalabilitas, dan elastisitas.

Layanan cloud memenuhi persyaratan ini dengan sangat sukses dan memberikan dorongan signifikan terhadap pengembangan pendekatan ini IaC. Hal ini dapat dimengerti. Bagaimanapun, mereka memungkinkan untuk mengkonfigurasi pusat data virtual sepenuhnya: tidak ada server fisik, rak, atau komponen jaringan; seluruh infrastruktur dapat dijelaskan menggunakan skrip dan file konfigurasi.

Jadi apa sebenarnya perbedaannya? GitOps dari IaC? Dengan pertanyaan inilah saya memulai penyelidikan saya. Setelah berdiskusi dengan rekan-rekan, saya dapat menemukan perbandingan berikut:

GitOps

IaC

Semua kode disimpan dalam repositori git

Pembuatan versi kode bersifat opsional

Deskripsi Kode Deklaratif / Idempotensi

Deskripsi deklaratif dan imperatif dapat diterima

Perubahan berlaku menggunakan mekanisme Permintaan Penggabungan/Permintaan Tarik

Perjanjian, persetujuan, dan kolaborasi adalah opsional

Proses peluncuran pembaruan dilakukan secara otomatis

Proses peluncuran pembaruan tidak terstandarisasi (otomatis, manual, menyalin file, menggunakan baris perintah, dll.)

Dengan kata lain GitOps lahir justru melalui penerapan prinsip-prinsip tersebut IaC. Pertama, infrastruktur dan konfigurasi kini dapat disimpan dengan cara yang sama seperti aplikasi. Kode ini mudah disimpan, mudah dibagikan, dibandingkan, dan menggunakan kemampuan pembuatan versi. Versi, cabang, sejarah. Dan semua ini ada di tempat yang dapat diakses publik oleh seluruh tim. Oleh karena itu, penggunaan sistem kontrol versi menjadi perkembangan yang sepenuhnya alami. Khususnya, git, sebagai yang paling populer.

Di sisi lain, proses pengelolaan infrastruktur menjadi mungkin untuk diotomatisasi. Sekarang hal ini dapat dilakukan dengan lebih cepat, lebih andal, dan lebih murah. Apalagi prinsip CI/CD sudah dikenal dan populer di kalangan pengembang perangkat lunak. Yang perlu dilakukan hanyalah mentransfer dan menerapkan pengetahuan dan keterampilan yang sudah diketahui ke bidang baru. Namun praktik-praktik ini melampaui definisi standar Infrastruktur sebagai kode, sehingga menjadi konsepnya GitOps.

GitOps: kata kunci lain atau terobosan dalam otomatisasi?

Keingintahuan GitOps, tentu saja, juga fakta bahwa ini bukan produk, plugin, atau platform yang terkait dengan vendor mana pun. Ini lebih merupakan paradigma dan seperangkat prinsip, mirip dengan istilah lain yang kita kenal: DevOps.

Di perusahaan GitLab kami telah mengembangkan dua definisi istilah baru ini: teoritis dan praktis. Mari kita mulai dengan teorinya:

GitOps adalah metodologi yang mengambil prinsip-prinsip DevOps terbaik yang digunakan untuk pengembangan aplikasi, seperti kontrol versi, kolaborasi, orkestrasi, CI/CD, dan menerapkannya pada tantangan otomatisasi manajemen infrastruktur.

Semua proses GitOps Saya bekerja menggunakan alat yang ada. Semua kode infrastruktur disimpan dalam repositori git yang sudah dikenal, perubahan melalui proses persetujuan yang sama seperti kode program lainnya, dan proses peluncuran dilakukan secara otomatis, yang memungkinkan kami meminimalkan kesalahan manusia, meningkatkan keandalan, dan reproduktifitas.

Dari sudut pandang praktis, kami jelaskan GitOps sebagai berikut:

GitOps: kata kunci lain atau terobosan dalam otomatisasi?

Kita telah membahas infrastruktur sebagai kode sebagai salah satu komponen kunci dari formula ini. Mari perkenalkan peserta lainnya.

Permintaan Penggabungan (nama alternatif Permintaan Tarik). Dalam istilah proses, MR adalah permintaan untuk menerapkan perubahan kode dan kemudian menggabungkan cabang. Namun dalam hal alat yang kami gunakan, ini lebih merupakan peluang untuk mendapatkan gambaran lengkap tentang semua perubahan yang dilakukan: tidak hanya perbedaan kode yang dikumpulkan dari sejumlah penerapan, tetapi juga konteks, hasil pengujian, dan hasil akhir yang diharapkan. Jika kita berbicara tentang kode infrastruktur, maka kita tertarik pada bagaimana sebenarnya infrastruktur akan berubah, berapa banyak sumber daya baru yang akan ditambahkan atau dihapus, diubah. Sebaiknya dalam format yang lebih nyaman dan mudah dibaca. Bagi penyedia cloud, ada baiknya untuk mengetahui dampak finansial dari perubahan ini.

Namun MR juga merupakan sarana kolaborasi, interaksi, dan komunikasi. Tempat dimana sistem checks and balances berperan. Dari komentar sederhana hingga persetujuan dan persetujuan formal.

Komponen terakhir: CI/CD, seperti yang telah kita ketahui, memungkinkan untuk mengotomatiskan proses pembuatan perubahan dan pengujian infrastruktur (dari pemeriksaan sintaksis sederhana hingga analisis kode statis yang lebih kompleks). Dan juga dalam deteksi penyimpangan selanjutnya: perbedaan antara keadaan sistem yang sebenarnya dan yang diinginkan. Misalnya, akibat perubahan manual yang tidak sah atau kegagalan sistem.

Ya, istilahnya GitOps tidak memperkenalkan kita pada sesuatu yang benar-benar baru, tidak menemukan kembali roda, tetapi hanya menerapkan pengalaman yang sudah terkumpul di bidang baru. Namun di sinilah letak kekuatannya.

Dan jika Anda tiba-tiba tertarik dengan tampilannya dalam praktik, maka saya mengundang Anda untuk melihat kami kelas master, di mana saya memberi tahu Anda langkah demi langkah cara menggunakan GitLab:

  • Menerapkan prinsip dasar GitOps

  • Membuat dan melakukan perubahan pada infrastruktur cloud (menggunakan contoh Yandex Cloud)

  • Otomatiskan deteksi penyimpangan sistem dari keadaan yang diinginkan menggunakan pemantauan aktif

GitOps: kata kunci lain atau terobosan dalam otomatisasi?https://bit.ly/34tRpwZ

Sumber: www.habr.com

Tambah komentar