Jadual Kandungan[Sembunyi][Tunjukkan]
Infrastruktur ialah bahagian penting dalam proses pembangunan perisian kerana ia bertanggungjawab secara langsung untuk kelancaran operasi aplikasi perisian. Pelayan, pengimbang beban, tembok api, pangkalan data dan kelompok kontena yang rumit adalah semua contoh infrastruktur.
Oleh kerana kesukaran infrastruktur merangkumi keseluruhan proses pembangunan, ia adalah relevan di luar situasi pengeluaran.
Ia termasuk platform CI/CD, persekitaran pementasan dan alat ujian, antara lain.
Apabila kerumitan produk perisian meningkat, cabaran infrastruktur ini menjadi lebih kritikal. Teknik tradisional mengurus infrastruktur secara manual dengan cepat menjadi penyelesaian tidak berskala untuk memadankan aspirasi kitaran pembangunan perisian pesat berasaskan DevOps hari ini.
Akibatnya, Infrastruktur sebagai Kod (IaC) telah menjadi penyelesaian pembangunan de facto hari ini. Infrastruktur sebagai kod (IaC) membolehkan anda menskala dan menjejaki perubahan infrastruktur apabila ia timbul.
Kami akan melihat dengan lebih dekat Infrastruktur sebagai Kod dalam bahagian ini, termasuk faedahnya, sebab ia penting dan banyak lagi. Jadi, mari kita mulakan.
Apakah Infrastruktur sebagai Kod?
Infrastruktur sebagai Kod ialah proses menyediakan dan mengkonfigurasi persekitaran menggunakan kod dan bukannya mengkonfigurasi peranti dan sistem yang sesuai secara manual. Pembangun menjalankan skrip selepas menentukan parameter kod, dan platform IaC menjana infrastruktur awan secara automatik.
Konfigurasi IT automatik sedemikian membolehkan pasukan membina tetapan awan yang diperlukan untuk menguji dan menjalankan produk mereka dengan pantas. Infrastruktur sebagai Kod membolehkan pembangun membina apa sahaja komponen infrastruktur yang mereka mahu, seperti rangkaian, pengimbang beban, pangkalan data, mesin maya dan jenis sambungan.
Dalam istilah orang awam, ia adalah proses membekalkan dan mengurus infrastruktur yang ditentukan menggunakan kod dan bukannya dengan tangan. IaC juga merupakan teknik DevOps penting yang diperlukan untuk kitaran hayat penghantaran perisian yang pantas.
Ia membolehkan pasukan DevOps membina dan versi infrastruktur dengan cepat dengan cara yang sama seperti kod sumber versi, serta menjejaki versi ini untuk meminimumkan ketidakkonsistenan antara persekitaran IT, yang boleh menyebabkan masalah besar semasa penggunaan.
Pendekatan deklaratif lwn. imperatif kepada IaC
IaC boleh didekati dalam dua cara: deklaratif atau imperatif.
Alat IaC akan menyediakan sistem untuk anda jika anda menggunakan pendekatan deklaratif, yang menerangkan keadaan sistem yang dimaksudkan, termasuk sumber yang anda perlukan dan apa-apa kualiti yang sepatutnya ada.
Pendekatan deklaratif juga mengekalkan jejak keadaan semasa objek sistem anda, menjadikannya lebih mudah untuk mengurus masa henti infrastruktur anda. Kaedah imperatif, sebaliknya, menggariskan arahan tertentu yang mesti dilaksanakan dalam susunan yang betul untuk mencipta konfigurasi yang dimaksudkan.
Banyak teknologi IaC menggunakan pendekatan deklaratif untuk menyediakan infrastruktur dan akan melakukannya secara automatik. Alat IaC deklaratif akan menggunakan pengubahsuaian pada keadaan yang diingini untuk anda jika anda membuatnya. Anda perlu mengetahui cara menggunakan pelarasan tersebut jika anda menggunakan alat penting. Alat IaC selalunya mampu beroperasi dalam kedua-dua mod, walaupun ia lebih mengutamakan satu daripada yang lain.
Bagaimanakah Infrastruktur sebagai kod berfungsi?
Untuk melaksanakan sepenuhnya infrastruktur sebagai kod, beberapa keperluan mesti disediakan.
Platform untuk pengehosan awan sebagai perkhidmatan (IaaS)
Keperluan pertama dan paling penting ialah pengehosan akses jauh. Alat pengurusan konfigurasi mesti menyambung ke hos jauh dan membuat perubahan di sana. Pasukan anda mesti menjamin bahawa alat pengurusan konfigurasi mempunyai akses jika infrastruktur yang jauh diurus sendiri.
API pada platform pengehosan awan yang didayakan IaaS membolehkan pelanggan membina, mengalih keluar dan menukar sumber infrastruktur atas permintaan. Sistem pengurusan konfigurasi boleh menggunakan API ini untuk mengautomasikan aktiviti ini dengan lebih jauh lagi. Digital Ocean, Amazon AWS, dan Microsoft Azure ialah tiga sistem IaaS utama.
Platform untuk pengurusan konfigurasi
Suite alatan yang bersambung kepada API IaaS dan mengautomasikan operasi biasa ialah prasyarat seterusnya untuk melengkapkan IaC. Sekumpulan orang boleh bekerjasama untuk menghasilkan koleksi skrip dan alatan. Walau bagaimanapun, ia memerlukan usaha yang besar, penyelenggaraan berterusan dan pulangan pelaburan yang minimum. Terraform, Ansible, Salt Stack dan Chef hanyalah beberapa alat pengurusan konfigurasi sumber terbuka yang mengendalikan cabaran ini.
Sistem Kawalan Versi
Platform pengurusan konfigurasi menggunakan fail teks yang ditulis dalam bahasa penanda seperti YAML untuk menyediakan tugas dan urutan untuk dilaksanakan oleh platform. Fail teks ini boleh dianggap sebagai kod aplikasi dan disimpan dalam repositori kawalan versi. Permintaan tarik dan semakan kod dibenarkan dalam repositori, yang bertindak sebagai satu titik kebenaran. Sistem kawalan versi Git adalah yang paling popular.
Dengan adanya prasyarat ini, pertimbangkan senario berikut: pembangun ingin menambah perkhidmatan aplikasi baharu pada sistem. Contoh ini menggambarkan proses IaC.
- Dalam platform pengurusan konfigurasi pilihan mereka, Terraform, pembangun mengubah suai fail teks konfigurasi YAML. Perubahan menyatakan bahawa pelayan pengehosan baharu diperlukan.
- Dalam repositori Git, pembangun melakukan perubahan pada cawangan ciri. Pembangun mencipta permintaan tarik kerana repositori Git projek dihoskan pada Bitbucket. Seorang lagi ahli pasukan melihat melalui permintaan tarik dan melihat peningkatan infrastruktur baharu. Permintaan tarik diluluskan oleh ahli pasukan dan pembangun menyepadukan perubahan ke dalam cawangan utama repositori.
- Platform konfigurasi diperlukan pada langkah ini untuk melakukan kemas kini. Pembangun boleh memulakan kemas kini secara manual. Oleh kerana pasukan menggunakan Bitbucket, mereka mempunyai akses kepada Bitbucket Pipelines dan boleh menggunakan satu untuk mengautomasikan prosedur ini.
- Terraform menyambung ke IaaS pasukan selepas pelaksanaan. Terraform menggunakan API IaaS untuk menjalankan urutan perintah yang mengemas kini IaaS kepada konfigurasi infrastruktur yang dijangkakan.
Faedah IaC
IaC membantu organisasi dalam mengurus permintaan infrastruktur IT mereka dalam pelbagai cara melalui prosedur automatik. Beberapa faedah memasang IaC adalah seperti berikut:
- Ketekalan: IaC boleh meningkatkan konsistensi dan mengurangkan kesilapan yang kerap berlaku semasa tetapan manual. Ia juga menghalang hanyut konfigurasi yang mungkin berlaku semasa operasi manual. IaC membolehkan anda menghalang pengubahsuaian konfigurasi ad-hoc tanpa dokumen dengan mengkod dan mendokumenkan piawaian konfigurasi anda.
- Kecekapan: Mengekodkan infrastruktur anda menghasilkan templat peruntukan, menjadikan konfigurasi sistem, penyelenggaraan dan pentadbiran lebih mudah. Ia membina infrastruktur yang fleksibel, boleh berulang dan berskala. Akibatnya, DevOps boleh mempercepatkan setiap peringkat pembangunan perisian, menyebabkan lebih banyak apl diterbitkan setiap hari.
- Kos yang dikurangkan: IaC membolehkan mesin maya diurus secara pengaturcaraan, menghilangkan keperluan untuk konfigurasi perkakasan manual dan naik taraf. Menggunakan sekeping kod yang sama, seorang pengendali boleh memasang dan mengurus satu mesin atau 1000 unit. Akibatnya, lebih sedikit pekerja diperlukan dan peralatan baharu tidak lagi diperlukan, mengakibatkan penjimatan kos yang banyak.
- Kelajuan: IaC mengurangkan masa yang diperlukan untuk pembangun membekalkan infrastruktur mereka dengan mengubahnya menjadi skrip mudah. Akibatnya, penggunaan aplikasi tidak lagi ditangguhkan oleh infrastruktur, dan perisian baharu boleh dihantar dengan lebih pantas.
- Kurangkan Risiko: Seperti yang digalakkan oleh IaC kawalan versi, fail konfigurasi anda, seperti mana-mana fail kod sumber perisian lain, boleh dikesan. Akibatnya, risiko dikurangkan.
Apakah masalah yang IaC selesaikan?
Infrastruktur sebagai Kod telah diwujudkan untuk menangani isu pelepasan persekitaran saluran paip yang hanyut. Tanpa IaC, pasukan bertanggungjawab untuk mengekalkan tetapan setiap persekitaran penempatan. Setiap persekitaran berkembang menjadi kepingan salji, susunan yang unik yang tidak boleh direplikasi secara automatik.
Semasa penggunaan, ketidakkonsistenan antara persekitaran menyebabkan masalah. Kepingan salji memerlukan operasi manual yang sukar diurus dan menyumbang kepada kesilapan dalam pentadbiran dan penyelenggaraan infrastruktur.
Infrastruktur sebagai Kod mematuhi idea mati pucuk.
Idempotensi merujuk kepada fakta bahawa arahan penempatan sentiasa mengkonfigurasi persekitaran sasaran dengan cara yang sama, tanpa mengira keadaan permulaan persekitaran. Idempotensi dicapai dengan sama ada secara automatik menetapkan sasaran sedia ada atau menolak sasaran sedia ada dan memulakan semula.
Akibatnya, menggunakan IaC, pasukan mengubah suai perihalan persekitaran dan versi model konfigurasi, yang sering ditulis dalam format kod yang didokumentasikan dengan baik seperti JSON. Model ini dijalankan dalam saluran paip keluaran untuk menyediakan persekitaran sasaran. Pasukan mengedit sumber, bukan sasaran, jika mereka perlu membuat perubahan.
Bagaimanakah IaC penting dalam DevOps?
Melaksanakan DevOps dan metodologi penyepaduan berterusan/penyampaian berterusan (CI/CD) memerlukan penggunaan IaC. Ia membebaskan pembangun daripada sebahagian besar tanggungjawab peruntukan, membenarkan mereka menjalankan skrip sahaja untuk menyediakan infrastruktur mereka dan berjalan.
Akibatnya, penggunaan aplikasi tidak terhenti semasa infrastruktur dibina dan sysadmin tidak dibebani dengan tugas manual yang memakan masa. Daripada penyepaduan dan ujian melalui penghantaran dan penggunaan, CI/CD bergantung pada automasi berterusan dan pemantauan berterusan sepanjang kitaran hayat aplikasi. Persekitaran yang berterusan diperlukan untuk automasi berfungsi.
Apabila pasukan pembangunan menghantar apl atau mengkonfigurasi persekitaran sehala dan pasukan operasi memasang serta mengkonfigurasi persekitaran dengan cara yang berbeza, mengautomasikan penggunaan aplikasi tidak mungkin.
Metodologi DevOps menjajarkan pasukan pembangunan dan operasi, mengakibatkan lebih sedikit kesilapan, penggunaan manual dan ketidakkonsistenan. Oleh kerana kedua-dua pasukan pembangunan dan operasi boleh menggunakan penerangan yang sama tentang penggunaan aplikasi, IaC membantu anda menyegerakkan pembangunan dan operasi, mendayakan pendekatan DevOps.
Setiap persekitaran, termasuk persekitaran pengeluaran anda, harus mengikut kaedah penggunaan yang sama. Setiap kali IaC digunakan, persekitaran yang sama dicipta.
Kesimpulan
DevOps sangat bergantung pada infrastruktur sebagai kod. Infrastruktur sebagai Kod ialah langkah seterusnya yang semula jadi dalam menjadikan operasi anda sedia masa hadapan dalam dunia di mana teknologi yang mengganggu terus mengubah sektor IT.
Ia membolehkan anda merealisasikan potensi penuh pengkomputeran awan, mengurangkan kesilapan yang berkaitan dengan pengurusan infrastruktur IT manual dan meningkatkan kelajuan perisian dibangunkan. Semua ini dicapai sambil mengurangkan perbelanjaan operasi.
Sila tinggalkan balasan anda