Mengapa saya memerlukan CI / CD dan cara mempelajari cara mengkonfigurasinya?





Menavigasi CI / CD berguna untuk insinyur dan pengembang infrastruktur. Konstantin Bryukhanov, Pimpinan DevSecOps, menjelaskan betapa berharganya metodologi ini dan bagaimana siswa belajar menyesuaikan prosesnya dalam kursus CI / CD online .



Halo! Saya akan mulai dengan memberi tahu Anda tentang arti menggunakan CI / CD. Saya dapat memilih 5 alasan:



1. Menghemat waktu karena penggunaan kembali kode dan penyebaran proyek yang cepat



Setelah mendeskripsikan beberapa jenis pipeline untuk pengiriman dan penerapan kode, Anda selalu dapat menggunakannya kembali. Misalnya, Anda memiliki 5 proyek Django, dan Anda telah menjelaskan di salah satu proyek tersebut bagaimana semuanya harus terungkap dan bekerja. Perkembangan ini dapat diambil dan disalin dengan mengotomatiskan proyek Django lainnya dengan sedikit konfigurasi ulang.



2. Mendapatkan hasil yang diharapkan dari penerapan



Hasil yang diharapkan berarti jika Anda pernah mendeskripsikan infrastruktur atau beberapa proses dalam bentuk kode, itu berarti bahwa setiap kali Anda melakukan beberapa proses penerapan otomatis, semuanya akan sama. Anda selalu tahu apa yang akan Anda dapatkan pada akhirnya.



CI / CD memungkinkan Anda untuk mencegah situasi ketika hari ini Anda telah menyebarkan dengan satu cara, dan besok seseorang mengoreksi sesuatu untuk diri mereka sendiri, Anda datang, tetapi semuanya tidak berfungsi, dan Anda perlu mencari tahu mengapa. Anda memiliki kesempatan untuk menjamin bisnis bahwa proses tersebut akan mengarah pada hasil yang Anda atur.



3. Kemandirian proyek dari lingkungan



Ingat situasi yang sering terjadi ketika Anda menerapkan kode ke server, tidak ada yang dimulai untuk Anda, tetapi pengembang mengatakan bahwa semuanya berfungsi untuknya. Dan Anda harus meluangkan waktu untuk mengetahui bahwa sebenarnya dia mengubah semacam kecanduan, yang dia diamkan, misalnya. Anda harus merekayasa balik dan mencari tahu situasinya.



Di CI / CD, semua yang diperlukan agar layanan berfungsi sudah disertakan. Artinya, Anda memasukkan kode, database, dependensi ke dalam container dan memberikannya ke server. Semuanya berjalan dalam satu esensi. Ke mana pun Anda mentransfer penampung ini, ia memiliki segalanya untuk dikerjakan. Anda tidak perlu membuang waktu untuk mengatur lingkungan Anda.



4. Infrastruktur yang tidak dapat diubah dan migrasi yang mudah



Kekekalan berarti infrastruktur selalu dalam keadaan yang sama. Anda telah menerapkan server yang telah meluncurkan semua proses yang diperlukan, dan perubahan apa pun pada server ini tidak akan tercermin di dalamnya. Jika Anda memulai ulang server ini dan menjalankan kembali proses penyebaran server, ini akan kembali ke posisi semula. Tidak ada cara untuk membuat dan menulis perubahan apa pun pada infrastruktur server. Tidak mungkin menyakitinya dengan cara apa pun.



Dan kemudahan migrasi berarti Anda hanya perlu mendeskripsikan semuanya sekali. Dan saat Anda perlu, misalnya, untuk menerapkan dari satu pusat data ke pusat data lainnya, Anda cukup mengubah titik akhir tempat untuk menerapkan, dan bergerak dengan mudah, menerapkan kode yang sama tanpa perubahan tambahan.



5. Kemungkinan pendekatan "Infrastruktur sebagai Kode"



Ini berarti bahwa semua pola dan pendekatan pemrograman yang digunakan untuk kode dapat diterapkan ke infrastruktur.



Yang paling penting adalah adanya versi lengkap, yang dilakukan di kode, bukan di server. Ini memungkinkan Anda untuk kembali ke versi infrastruktur sebelumnya jika perlu. Dan kesempatan yang sama pentingnya untuk menguji infrastruktur, yaitu, untuk melakukan uji penyebaran server, konfigurasikan sehingga tidak mempengaruhi server lainnya.



Singkatnya: apa itu CI / CD?



Konsep ini memungkinkan untuk mengurangi waktu ke pasar tanpa kehilangan persyaratan non-fungsional: skalabilitas, toleransi kesalahan, dokumentasi, dll. Ini terdiri dari 2 hal:



  • CI (Continuous Integration) memungkinkan Anda dengan cepat mengintegrasikan perubahan kode ke dalam versi kode yang berfungsi. Pastikan bahwa kode baru masuk ke yang terakhir stabil.
  • CD (Continuous Delivery / Deployment) memungkinkan tidak hanya mengintegrasikan fungsionalitas ke dalam versi kode yang berfungsi, tetapi juga membawa kode versi kerja baru ke pasar secepat mungkin. Bergantung pada tugas proyek, ini terjadi secara otomatis, atau kami sendiri mengirimkan kode menggunakan skrip yang telah diperbaiki.


Dari sini jelas bahwa tidak cukup hanya mempelajari teknologi Gitlab CI, Doker, Ansible, terraform, dll., Di mana CI / CD dibuat. Oleh karena itu, di kursus, kami sangat memperhatikan latihannya. Pekerjaan desain adalah bagian terakhir dari pelatihan, di mana Anda harus menerapkan proses CI / CD untuk setiap proyek sumber terbuka pilihan Anda. Urutan tindakan siswa adalah sebagai berikut:



  • CI/CD Workflow, Gitlab CI. : , , .. .
  • , , . , . , Django. Java ..
  • CI/CD, , CI. , , . , .
  • : terraform-, Ansible-, , Doker-, , .
  • pipeline, .
  • pipeline , , .


Tujuan dari pekerjaan akhir adalah untuk mendapatkan solusi yang benar-benar selesai, dapat diterima untuk bisnis, yang dapat ditambahkan ke dalam portofolio dan didemonstrasikan pada saat wawancara. Faktanya, jika Anda datang ke sebuah perusahaan dan mengatakan bahwa Anda telah mengembangkan solusi universal dari awal untuk tiga proyek berbeda, ini adalah argumen yang serius untuk mendapatkan posisi.



Kelas dimulai pada 27 Agustus, tetapi Anda dapat bergabung dengan grup dalam waktu dua minggu setelah mulai. Kursus ini dirancang untuk para profesional dengan pengalaman dalam pengembangan dan pengoperasian, untuk pelatihan Anda harus lulus tes masuk . Saya menunggu semua orang yang telah memutuskan untuk menguasai teknologi yang berguna ini untuk proyek dan pertumbuhan karier mereka. Sampai jumpa di OTUS!



All Articles