Panduan DevOps untuk Pemula

Apakah kepentingan DevOps, apakah maksudnya untuk profesional IT, penerangan kaedah, rangka kerja dan alatan.

Panduan DevOps untuk Pemula

Banyak yang telah berlaku sejak istilah DevOps digunakan dalam dunia IT. Dengan kebanyakan sumber terbuka ekosistem, adalah penting untuk mempertimbangkan semula mengapa ia bermula dan maksudnya untuk kerjaya dalam IT.

Apa itu DevOps

Walaupun tiada definisi tunggal, saya percaya bahawa DevOps ialah rangka kerja teknologi yang membolehkan kerjasama antara pembangunan dan pasukan operasi untuk menggunakan kod dengan lebih pantas ke dalam persekitaran pengeluaran dengan keupayaan untuk mengulang dan mengautomasikan. Kami akan menghabiskan baki artikel ini untuk membongkar tuntutan ini.

Perkataan "DevOps" ialah gabungan perkataan "pembangunan" dan "operasi". DevOps membantu meningkatkan kelajuan penghantaran aplikasi dan perkhidmatan. Ini membolehkan organisasi memberi perkhidmatan kepada pelanggan mereka dengan berkesan dan menjadi lebih berdaya saing dalam pasaran. Ringkasnya, DevOps ialah penjajaran antara pembangunan dan operasi IT dengan komunikasi dan kerjasama yang lebih berkesan.

DevOps melibatkan budaya di mana kerjasama antara pembangunan, operasi dan pasukan perniagaan dianggap kritikal. Ia bukan hanya tentang alat, kerana DevOps dalam organisasi terus memberi manfaat kepada pelanggan juga. Alat adalah salah satu tiangnya, bersama dengan manusia dan proses. DevOps meningkatkan keupayaan organisasi untuk menyampaikan penyelesaian berkualiti tinggi dalam masa yang sesingkat mungkin. DevOps juga mengautomasikan semua proses, daripada binaan kepada penggunaan, aplikasi atau produk.

Perbincangan DevOps memfokuskan pada hubungan antara pembangun, orang yang menulis perisian untuk hidup, dan pengendali yang bertanggungjawab untuk mengekalkan perisian tersebut.

Cabaran untuk pasukan pembangunan

Pembangun cenderung bersemangat dan bersemangat untuk melaksanakan pendekatan dan teknologi baharu untuk menyelesaikan masalah organisasi. Walau bagaimanapun, mereka juga menghadapi masalah tertentu:

  • Pasaran yang kompetitif mewujudkan banyak tekanan untuk menyampaikan produk tepat pada masanya.
  • Mereka mesti menjaga pengurusan kod sedia pengeluaran dan memperkenalkan ciri baharu.
  • Kitaran keluaran boleh panjang, jadi pasukan pembangunan perlu membuat beberapa andaian sebelum melaksanakan aplikasi. Dalam senario ini, lebih banyak masa diperlukan untuk menyelesaikan isu yang timbul semasa penggunaan ke persekitaran pengeluaran atau ujian.

Cabaran yang dihadapi oleh pasukan operasi

Pasukan operasi secara historis memberi tumpuan kepada kestabilan dan kebolehpercayaan perkhidmatan IT. Itulah sebabnya pasukan operasi mencari kestabilan melalui perubahan dalam sumber, teknologi atau pendekatan. Tugas mereka termasuk:

  • Uruskan peruntukan sumber apabila permintaan meningkat.
  • Mengendalikan perubahan reka bentuk atau penyesuaian yang diperlukan untuk digunakan dalam persekitaran pengeluaran.
  • Mendiagnosis dan menyelesaikan isu pengeluaran selepas penggunaan sendiri aplikasi.

Bagaimana DevOps menyelesaikan masalah pembangunan dan operasi

Daripada melancarkan sejumlah besar ciri aplikasi sekali gus, syarikat cuba melihat sama ada mereka boleh melancarkan sebilangan kecil ciri kepada pelanggan mereka melalui satu siri lelaran keluaran. Pendekatan ini mempunyai beberapa kelebihan, seperti kualiti perisian yang lebih baik, maklum balas pelanggan yang lebih pantas, dsb. Ini seterusnya memastikan kepuasan pelanggan yang tinggi. Untuk mencapai matlamat ini, syarikat dikehendaki:

  • Kurangkan kadar kegagalan apabila mengeluarkan keluaran baharu
  • Tingkatkan kekerapan penggunaan
  • Mencapai purata masa yang lebih cepat untuk pemulihan sekiranya keluaran aplikasi baharu.
  • Kurangkan masa untuk pembetulan

DevOps melaksanakan semua tugas ini dan membantu memastikan penghantaran tidak terganggu. Organisasi menggunakan DevOps untuk mencapai tahap produktiviti yang tidak dapat dibayangkan hanya beberapa tahun yang lalu. Mereka melakukan puluhan, ratusan, dan bahkan ribuan penggunaan setiap hari sambil menyampaikan kebolehpercayaan, kestabilan dan keselamatan bertaraf dunia. (Ketahui lebih lanjut tentang saiz lot dan kesannya terhadap penyampaian perisian).

DevOps cuba menyelesaikan pelbagai masalah yang terhasil daripada metodologi yang lalu, termasuk:

  • Pengasingan kerja antara pasukan pembangunan dan operasi
  • Pengujian dan penggunaan adalah fasa berasingan yang berlaku selepas reka bentuk dan binaan serta memerlukan lebih banyak masa daripada kitaran binaan.
  • Masa yang berlebihan dihabiskan untuk menguji, menggunakan dan mereka bentuk dan bukannya memfokuskan pada membina perkhidmatan perniagaan teras
  • Penggunaan kod manual yang membawa kepada ralat dalam pengeluaran
  • Perbezaan dalam jadual pasukan pembangunan dan operasi menyebabkan kelewatan tambahan

Panduan DevOps untuk Pemula

Konfrontasi antara DevOps, Agile dan IT tradisional

DevOps sering dibincangkan berkaitan dengan amalan IT lain, terutamanya IT Agile dan Waterfall.

Agile ialah satu set prinsip, nilai dan amalan untuk penghasilan perisian. Jadi, sebagai contoh, jika anda mempunyai idea yang ingin anda ubah menjadi perisian, anda boleh menggunakan prinsip dan nilai Agile. Tetapi perisian ini hanya boleh berjalan dalam persekitaran pembangunan atau ujian. Anda memerlukan cara yang mudah dan selamat untuk memindahkan perisian anda ke dalam pengeluaran dengan cepat dan berulang, dan caranya adalah melalui alat dan teknik DevOps. Pembangunan perisian tangkas memfokuskan pada proses pembangunan dan DevOps bertanggungjawab untuk pembangunan dan penggunaan dengan cara yang paling selamat dan boleh dipercayai.

Membandingkan model air terjun tradisional dengan DevOps ialah cara yang baik untuk memahami faedah yang dibawa oleh DevOps. Contoh berikut menganggap aplikasi akan disiarkan secara langsung dalam masa empat minggu, pembangunan 85% siap, aplikasi akan disiarkan secara langsung dan proses pembelian pelayan untuk menghantar kod baru sahaja bermula.

Proses tradisional
Proses dalam DevOps

Selepas membuat pesanan untuk pelayan baharu, pasukan pembangunan bekerja pada ujian. Pasukan petugas bekerja pada dokumentasi yang luas yang diperlukan oleh perusahaan untuk menggunakan infrastruktur.
Setelah pesanan untuk pelayan baharu dibuat, pasukan pembangunan dan operasi bekerjasama dalam proses dan kertas kerja untuk memasang pelayan baharu. Ini membolehkan anda memahami dengan lebih baik keperluan infrastruktur anda.

Maklumat tentang failover, redundansi, lokasi pusat data dan keperluan storan adalah salah nyata kerana tiada input daripada pasukan pembangunan yang mempunyai pengetahuan domain yang mendalam.
Butiran tentang failover, redundansi, pemulihan bencana, lokasi pusat data dan keperluan storan diketahui dan betul kerana input pasukan pembangunan.

Pasukan operasi tidak tahu tentang kemajuan pasukan pembangunan. Dia juga membangunkan pelan pemantauan berdasarkan ideanya sendiri.

Pasukan operasi menyedari sepenuhnya kemajuan yang dicapai oleh pasukan pembangunan. Dia juga berinteraksi dengan pasukan pembangunan dan mereka bekerjasama untuk membangunkan pelan pemantauan yang memenuhi keperluan IT dan perniagaan. Mereka juga menggunakan alat pemantauan prestasi aplikasi (APM).

Ujian beban yang dijalankan sebelum aplikasi dilancarkan menyebabkan aplikasi ranap, melambatkan pelancarannya.
Ujian beban yang dilakukan sebelum menjalankan aplikasi menghasilkan prestasi yang lemah. Pasukan pembangunan cepat menyelesaikan kesesakan dan aplikasi dilancarkan tepat pada masanya.

Kitaran Hayat DevOps

DevOps melibatkan penggunaan amalan tertentu yang diterima umum.

Perancangan berterusan

Perancangan berterusan bergantung pada prinsip ramping untuk bermula dari kecil dengan mengenal pasti sumber dan output yang diperlukan untuk menguji nilai perniagaan atau visi, sentiasa menyesuaikan diri, mengukur kemajuan, belajar daripada keperluan pelanggan, menukar arah mengikut keperluan untuk menampung ketangkasan dan mencipta semula rancangan perniagaan.

Pembangunan bersama

Proses pembangunan kolaboratif membolehkan perniagaan, pasukan pembangunan dan pasukan ujian tersebar merentasi zon waktu yang berbeza untuk menyampaikan perisian berkualiti secara berterusan. Ini termasuk pembangunan berbilang platform, sokongan pengaturcaraan merentas bahasa, penciptaan cerita pengguna, pembangunan idea dan pengurusan kitaran hayat. Pembangunan kolaboratif termasuk proses dan amalan penyepaduan berterusan, yang menggalakkan penyepaduan kod yang kerap dan binaan automatik. Dengan menggunakan kod dengan kerap pada aplikasi, masalah penyepaduan dikenal pasti pada awal kitaran hayat (apabila ia lebih mudah untuk diperbaiki) dan usaha penyepaduan keseluruhan dikurangkan melalui maklum balas berterusan kerana projek menunjukkan kemajuan yang berterusan dan boleh dilihat.

Ujian berterusan

Ujian berterusan mengurangkan kos ujian dengan membantu pasukan pembangunan mengimbangi kelajuan dengan kualiti. Ia juga menghapuskan kesesakan ujian melalui virtualisasi perkhidmatan dan memudahkan untuk mencipta persekitaran ujian maya yang boleh dikongsi dengan mudah, digunakan dan dikemas kini apabila sistem berubah. Keupayaan ini mengurangkan kos penyediaan dan penyelenggaraan persekitaran ujian dan memendekkan masa kitaran ujian, membolehkan ujian integrasi berlaku lebih awal dalam kitaran hayat.

Pelepasan dan penggunaan berterusan

Teknik ini membawa bersama mereka amalan teras: pelepasan dan penggunaan berterusan. Ini dipastikan oleh saluran paip berterusan yang mengautomasikan proses utama. Ia mengurangkan langkah manual, masa menunggu sumber dan mengolah semula dengan mendayakan penggunaan dengan menekan butang, menghasilkan lebih banyak keluaran, lebih sedikit ralat dan ketelusan yang lengkap.

Automasi memainkan peranan penting dalam memastikan keluaran perisian yang stabil dan boleh dipercayai. Salah satu cabaran terbesar ialah mengambil proses manual seperti membina, regresi, penggunaan dan penciptaan infrastruktur serta mengautomasikannya. Ini memerlukan kawalan versi kod sumber; senario ujian dan penggunaan; data konfigurasi infrastruktur dan aplikasi; dan perpustakaan dan pakej yang bergantung pada aplikasi. Satu lagi faktor penting ialah keupayaan untuk menanyakan keadaan semua persekitaran.

Pemantauan berterusan

Pemantauan berterusan menyediakan pelaporan gred perusahaan yang membantu pasukan pembangunan memahami ketersediaan dan prestasi aplikasi dalam persekitaran pengeluaran sebelum ia digunakan untuk pengeluaran. Maklum balas awal yang disediakan oleh pemantauan berterusan adalah penting untuk mengurangkan kos kesilapan dan mengemudi projek ke arah yang betul. Amalan ini selalunya termasuk alat pemantauan yang biasanya mendedahkan metrik yang berkaitan dengan prestasi aplikasi.

Maklum balas dan pengoptimuman berterusan

Maklum balas dan pengoptimuman berterusan memberikan gambaran visual aliran pelanggan dan menentukan kawasan masalah. Maklum balas boleh disertakan dalam kedua-dua peringkat sebelum dan selepas jualan untuk memaksimumkan nilai dan memastikan lebih banyak transaksi berjaya diselesaikan. Semua ini memberikan gambaran segera punca masalah pelanggan yang mempengaruhi tingkah laku dan kesan perniagaan mereka.

Panduan DevOps untuk Pemula

Faedah DevOps

DevOps boleh membantu mewujudkan persekitaran di mana pembangun dan operasi bekerja sebagai satu pasukan untuk mencapai matlamat bersama. Satu peristiwa penting dalam proses ini ialah pelaksanaan penyepaduan berterusan dan penyampaian berterusan (CI/CD). Teknik ini akan membolehkan pasukan mendapatkan perisian untuk memasarkan lebih pantas dengan pepijat yang lebih sedikit.

Faedah penting DevOps ialah:

  • Kebolehramalan: DevOps menawarkan kadar kegagalan yang jauh lebih rendah untuk keluaran baharu.
  • Kebolehselenggaraan: DevOps membolehkan pemulihan mudah jika keluaran baharu gagal atau aplikasi terputus.
  • Kebolehulangan: Kawalan versi binaan atau kod membolehkan anda memulihkan versi terdahulu mengikut keperluan.
  • Kualiti Lebih Tinggi: Menangani isu infrastruktur meningkatkan kualiti pembangunan aplikasi.
  • Masa ke Pasaran: Mengoptimumkan penghantaran perisian mengurangkan masa ke pasaran sebanyak 50%.
  • Pengurangan Risiko: Melaksanakan keselamatan dalam kitaran hayat perisian mengurangkan bilangan kecacatan sepanjang kitaran hayat.
  • Kecekapan Kos: Mengejar kecekapan kos dalam pembangunan perisian menarik kepada pengurusan kanan.
  • Kestabilan: Sistem perisian lebih stabil, selamat dan perubahan boleh diaudit.
  • Memecahkan pangkalan kod yang lebih besar kepada bahagian yang boleh diurus: DevOps adalah berdasarkan kaedah pembangunan tangkas, yang membolehkan pangkalan kod yang besar dipecahkan kepada bahagian yang lebih kecil dan boleh diurus.

Prinsip DevOps

Penerimaan DevOps menimbulkan beberapa prinsip yang telah berkembang (dan terus berkembang). Kebanyakan penyedia penyelesaian telah membangunkan pengubahsuaian mereka sendiri untuk pelbagai teknik. Semua prinsip ini adalah berdasarkan pendekatan holistik kepada DevOps, dan organisasi dalam sebarang saiz boleh menggunakannya.

Membangunkan dan menguji dalam persekitaran seperti pengeluaran

Idea ini adalah untuk membolehkan pasukan pembangunan dan jaminan kualiti (QA) membangunkan dan menguji sistem yang berkelakuan seperti sistem pengeluaran supaya mereka dapat melihat bagaimana aplikasi itu berkelakuan dan berprestasi lama sebelum ia bersedia untuk digunakan .

Aplikasi ini harus disambungkan kepada sistem pengeluaran seawal mungkin dalam kitaran hayatnya untuk menangani tiga masalah utama yang berpotensi. Pertama, ia membolehkan anda menguji aplikasi dalam persekitaran yang hampir dengan persekitaran sebenar. Kedua, ia membolehkan anda menguji dan mengesahkan proses penghantaran aplikasi terlebih dahulu. Ketiga, ia membenarkan pasukan operasi untuk menguji awal dalam kitaran hayat bagaimana persekitaran mereka akan berkelakuan apabila aplikasi digunakan, dengan itu membolehkan mereka mencipta persekitaran tersuai tinggi, berpusatkan aplikasi.

Sebarkan dengan proses yang boleh berulang dan boleh dipercayai

Prinsip ini membolehkan pasukan pembangunan dan operasi menyokong proses pembangunan perisian yang tangkas sepanjang keseluruhan kitaran hayat perisian. Automasi adalah penting untuk mencipta proses berulang, boleh dipercayai dan boleh berulang. Oleh itu, organisasi mesti mencipta saluran penghantaran yang membolehkan penggunaan dan ujian yang berterusan dan automatik. Penggunaan yang kerap juga membolehkan pasukan menguji proses penggunaan, dengan itu mengurangkan risiko kegagalan penggunaan semasa siaran langsung.

Memantau dan menyemak kualiti kerja

Organisasi pandai memantau aplikasi dalam pengeluaran kerana mereka mempunyai alat yang menangkap metrik dan petunjuk prestasi utama (KPI) dalam masa nyata. Prinsip ini menggerakkan pemantauan awal dalam kitaran hayat, memastikan bahawa ujian automatik memantau sifat fungsi dan bukan fungsi aplikasi pada awal proses. Setiap kali aplikasi diuji dan digunakan, metrik kualiti mesti diperiksa dan dianalisis. Alat pemantauan memberikan amaran awal tentang masalah operasi dan kualiti yang mungkin timbul semasa pengeluaran. Penunjuk ini mesti dikumpulkan dalam format yang boleh diakses dan difahami oleh semua pihak berkepentingan.

Memperbaiki Gelung Maklum Balas

Salah satu matlamat proses DevOps adalah untuk membolehkan organisasi bertindak balas dan membuat perubahan dengan lebih pantas. Dalam penyampaian perisian, matlamat ini memerlukan organisasi menerima maklum balas awal dan kemudian cepat belajar daripada setiap tindakan yang diambil. Prinsip ini memerlukan organisasi mewujudkan saluran komunikasi yang membolehkan pihak berkepentingan mengakses dan berinteraksi dengan cara maklum balas. Pembangunan boleh dilakukan dengan melaraskan rancangan atau keutamaan projek anda. Pembuatan boleh bertindak dengan menambah baik persekitaran pengeluaran.

dev

  • Perancangan: Kanboard, Wekan dan alternatif Trello lain; GitLab, Tuleap, Redmine dan alternatif JIRA yang lain; Mattermost, Roit.im, IRC dan alternatif Slack yang lain.
  • Kod penulisan: Git, Gerrit, Bugzilla; Jenkins dan alatan sumber terbuka lain untuk CI/CD
  • Perhimpunan: Apache Maven, Gradle, Apache Ant, Packer
  • Ujian: JUnit, Timun, Selenium, Apache JMeter

Ops

  • Pelepasan, Penggunaan, Operasi: Kubernetes, Nomad, Jenkins, Zuul, Spinnaker, Ansible, Apache ZooKeeper, dll, Netflix Archaius, Terraform
  • Pemantauan: Grafana, Prometheus, Nagios, InfluxDB, Fluentd, dan lain-lain yang diliputi dalam panduan ini

(*Alat operasi telah dinomborkan mengikut urutan penggunaan oleh pasukan operasi, tetapi alatan mereka bertindih dengan peringkat kitaran hayat alat keluaran dan penggunaan. Untuk memudahkan kebolehbacaan, penomboran telah dialih keluar.)

Kesimpulannya

DevOps ialah metodologi yang semakin popular yang bertujuan untuk menyatukan pembangun dan operasi sebagai satu unit. Ia unik, berbeza daripada operasi IT tradisional, dan melengkapkan Agile (tetapi tidak begitu fleksibel).

Panduan DevOps untuk Pemula

Ketahui butiran tentang cara mendapatkan profesion yang dicari dari awal atau Naik Tahap dari segi kemahiran dan gaji dengan mengikuti kursus dalam talian berbayar dari SkillFactory:

lebih banyak kursus

Usefull

Sumber: www.habr.com

Tambah komen