Pandhuan DevOps kanggo Pamula

Apa pentinge DevOps, apa tegese kanggo profesional IT, deskripsi metode, kerangka kerja lan alat.

Pandhuan DevOps kanggo Pamula

Akeh sing kedadeyan wiwit istilah DevOps ditindakake ing jagad IT. Kanthi akeh sumber terbuka ekosistem, penting kanggo nimbang maneh kenapa diwiwiti lan apa tegese karir ing IT.

Apa DevOps

Nalika ora ana definisi siji, aku percaya yen DevOps minangka kerangka teknologi sing ngidini kolaborasi antarane tim pangembangan lan operasi kanggo nyebarake kode luwih cepet menyang lingkungan produksi kanthi kemampuan kanggo ngulang lan ngotomatisasi. Kita bakal nglampahi sisa artikel iki kanggo mbongkar pratelan iki.

Tembung "DevOps" minangka gabungan saka tembung "pembangunan" lan "operasi". DevOps mbantu nambah kacepetan pangiriman aplikasi lan layanan. Iki ngidini organisasi bisa nglayani pelanggan kanthi efektif lan dadi luwih kompetitif ing pasar. Cukup, DevOps minangka keselarasan antarane pembangunan lan operasi IT kanthi komunikasi lan kolaborasi sing luwih efektif.

DevOps kalebu budaya ing ngendi kolaborasi antarane pembangunan, operasi, lan tim bisnis dianggep kritis. Ora mung babagan alat, amarga DevOps ing organisasi terus-terusan nguntungake para pelanggan. Piranti minangka salah sawijining pilar, bebarengan karo wong lan proses. DevOps nambah kemampuan organisasi kanggo ngirim solusi sing berkualitas ing wektu sing paling cendhak. DevOps uga ngotomatisasi kabeh proses, saka mbangun nganti panyebaran, aplikasi utawa produk.

Diskusi DevOps fokus ing hubungan antarane pangembang, wong sing nulis piranti lunak kanggo urip, lan operator sing tanggung jawab kanggo njaga piranti lunak kasebut.

Tantangan kanggo tim pangembangan

Pangembang cenderung semangat lan semangat kanggo ngetrapake pendekatan lan teknologi anyar kanggo ngatasi masalah organisasi. Nanging, dheweke uga ngadhepi masalah tartamtu:

  • Pasar sing kompetitif nggawe akeh tekanan kanggo ngirim produk kanthi tepat wektu.
  • Dheweke kudu ngurus ngatur kode sing siap produksi lan ngenalake fitur-fitur anyar.
  • Siklus rilis bisa dawa, mula tim pangembang kudu nggawe sawetara asumsi sadurunge ngetrapake aplikasi. Ing skenario iki, luwih akeh wektu dibutuhake kanggo mutusake masalah sing muncul sajrone penyebaran menyang lingkungan produksi utawa uji coba.

Tantangan sing diadhepi dening tim operasi

Tim operasi historis fokus ing stabilitas lan linuwih layanan IT. Pramila tim operasi ngupaya stabilitas liwat owah-owahan sumber daya, teknologi, utawa pendekatan. Tugase kalebu:

  • Ngatur alokasi sumber daya nalika dikarepake mundhak.
  • Nangani owah-owahan desain utawa pangaturan dhewe sing dibutuhake kanggo digunakake ing lingkungan produksi.
  • Diagnosa lan mutusake masalah produksi sawise nyebarake aplikasi.

Kepiye DevOps ngrampungake masalah pangembangan lan operasi

Tinimbang muter sawetara fitur app bebarengan, perusahaan nyoba kanggo ndeleng apa padha bisa muter metu nomer cilik fitur kanggo pelanggan liwat seri saka iterasi release. Pendekatan iki nduweni sawetara kaluwihan, kayata kualitas piranti lunak sing luwih apik, umpan balik pelanggan sing luwih cepet, lsp. Iki, kanthi mangkono, njamin kepuasan pelanggan sing dhuwur. Kanggo nggayuh tujuan kasebut, perusahaan kudu:

  • Ngurangi tingkat kegagalan nalika ngeculake rilis anyar
  • Nambah frekuensi panyebaran
  • Entuk wektu rata-rata sing luwih cepet kanggo pulih yen ana rilis aplikasi anyar.
  • Ngurangi wektu kanggo koreksi

DevOps nindakake kabeh tugas kasebut lan mbantu njamin pangiriman tanpa gangguan. Organisasi nggunakake DevOps kanggo entuk tingkat produktivitas sing ora bisa dibayangake sawetara taun kepungkur. Dheweke nindakake puluhan, atusan, lan malah ewonan penyebaran saben dina nalika ngirim keandalan, stabilitas, lan keamanan kelas donya. (Sinau luwih lengkap babagan ukuran lot lan pengaruhe ing pangiriman piranti lunak).

DevOps nyoba ngrampungake macem-macem masalah sing disebabake saka metodologi kepungkur, kalebu:

  • Isolasi kerja ing antarane tim pangembangan lan operasi
  • Pengujian lan panyebaran minangka fase kapisah sing kedadeyan sawise ngrancang lan mbangun lan mbutuhake wektu luwih akeh tinimbang siklus mbangun.
  • Wektu sing akeh banget kanggo nguji, nyebarake, lan ngrancang tinimbang fokus ing mbangun layanan bisnis inti
  • Panyebaran kode manual sing nyebabake kesalahan ing produksi
  • Beda ing jadwal tim pangembangan lan operasi nyebabake penundaan tambahan

Pandhuan DevOps kanggo Pamula

Konfrontasi antarane DevOps, Agile lan IT tradisional

DevOps asring dibahas babagan praktik IT liyane, utamane Agile lan Waterfall IT.

Agile minangka sakumpulan prinsip, nilai, lan praktik kanggo produksi piranti lunak. Dadi, contone, yen sampeyan duwe ide sing pengin diowahi dadi piranti lunak, sampeyan bisa nggunakake prinsip lan nilai Agile. Nanging piranti lunak iki mung bisa mlaku ing lingkungan pangembangan utawa tes. Sampeyan mbutuhake cara sing gampang lan aman kanggo mindhah piranti lunak menyang produksi kanthi cepet lan bola-bali, lan cara kasebut liwat alat lan teknik DevOps. Pangembangan piranti lunak Agile fokus ing proses pangembangan lan DevOps tanggung jawab kanggo pangembangan lan panyebaran kanthi cara sing paling aman lan dipercaya.

Mbandhingake model grojogan tradisional karo DevOps minangka cara sing apik kanggo ngerti keuntungan sing digawa dening DevOps. Conto ing ngisor iki nganggep aplikasi bakal urip sajrone patang minggu, pangembangan 85% rampung, aplikasi bakal urip, lan proses tuku server kanggo ngirim kode kasebut wis diwiwiti.

Proses tradisional
Proses ing DevOps

Sawise nggawe pesenan kanggo server anyar, tim pangembang nggarap tes. Pasukan tugas nggarap dokumentasi ekstensif sing dibutuhake perusahaan kanggo nyebarake infrastruktur.
Sawise pesenan kanggo server anyar diselehake, tim pangembangan lan operasi kerja bareng ing proses lan dokumen kanggo nginstal server anyar. Iki ngidini sampeyan luwih ngerti syarat infrastruktur sampeyan.

Informasi babagan failover, redundansi, lokasi pusat data, lan syarat panyimpenan disalahake amarga ora ana input saka tim pangembang sing nduweni kawruh domain sing jero.
Rincian babagan failover, redundansi, pemulihan bencana, lokasi pusat data, lan syarat panyimpenan dikenal lan bener amarga input saka tim pangembangan.

Tim operasi ora ngerti babagan kemajuan tim pangembangan. Dheweke uga ngembangake rencana pemantauan adhedhasar ide dheweke dhewe.

Tim operasi ngerti kanthi lengkap babagan kemajuan sing ditindakake dening tim pangembangan. Dheweke uga sesambungan karo tim pangembang lan kerja sama kanggo ngembangake rencana pemantauan sing nyukupi kabutuhan IT lan bisnis. Dheweke uga nggunakake alat ngawasi kinerja aplikasi (APM).

Tes beban sing ditindakake sadurunge aplikasi diluncurake nyebabake aplikasi kasebut kacilakan, nundha peluncurane.
Tes beban sing ditindakake sadurunge mbukak aplikasi nyebabake kinerja sing ora apik. Tim pangembang kanthi cepet ngrampungake kemacetan lan aplikasi diluncurake kanthi tepat.

DevOps Lifecycle

DevOps kalebu adopsi praktik-praktik tartamtu sing ditampa umum.

Perencanaan sing terus-terusan

Perencanaan sing terus-terusan gumantung marang prinsip ramping kanggo miwiti cilik kanthi ngenali sumber daya lan output sing dibutuhake kanggo nguji nilai bisnis utawa visi, terus adaptasi, ngukur kemajuan, sinau saka kabutuhan pelanggan, ngganti arah sing dibutuhake kanggo nampung ketangkasan, lan reinvent rencana bisnis.

Pangembangan bebarengan

Proses pangembangan kolaboratif ngidini bisnis, tim pangembang, lan tim tes nyebar ing zona wektu sing beda kanggo terus ngirim piranti lunak sing berkualitas. Iki kalebu pangembangan multi-platform, dhukungan pemrograman lintas-basa, nggawe crita pangguna, pangembangan ide, lan manajemen siklus urip. Pangembangan kolaboratif kalebu proses lan praktik integrasi sing terus-terusan, sing ningkatake integrasi kode sing kerep lan mbangun otomatis. Kanthi nyebarake kode kanthi kerep menyang aplikasi, masalah integrasi diidentifikasi ing awal siklus urip (nalika luwih gampang didandani) lan upaya integrasi sakabèhé dikurangi liwat umpan balik sing terus-terusan amarga proyek kasebut nuduhake kemajuan sing terus-terusan lan katon.

Tes terus-terusan

Tes sing terus-terusan nyuda biaya tes kanthi mbantu tim pangembangan ngimbangi kacepetan kanthi kualitas. Uga ngilangake bottlenecks testing liwat virtualisasi layanan lan nggampangake nggawe lingkungan tes virtualisasi sing bisa gampang dienggo bareng, disebarake, lan dianyari nalika sistem diganti. Kapabilitas kasebut nyuda biaya nyedhiyakake lan njaga lingkungan tes lan nyepetake wektu siklus tes, ngidini tes integrasi kedadeyan sadurunge ing siklus urip.

Rilis lan penyebaran terus-terusan

Teknik kasebut nggawa praktik inti: rilis lan penyebaran terus. Iki dipesthekake dening pipa terus-terusan sing ngotomatisasi proses kunci. Ngurangi langkah manual, wektu ngenteni sumber daya, lan nggarap maneh kanthi ngaktifake penyebaran kanthi mencet tombol, nyebabake luwih akeh rilis, luwih sithik kesalahan, lan transparansi lengkap.

Otomasi nduweni peran penting kanggo njamin rilis piranti lunak sing stabil lan dipercaya. Salah sawijining tantangan paling gedhe yaiku njupuk proses manual kayata mbangun, mundur, penyebaran lan nggawe infrastruktur lan ngotomatisasi. Iki mbutuhake kontrol versi kode sumber; skenario testing lan penyebaran; data konfigurasi infrastruktur lan aplikasi; lan perpustakaan lan paket sing aplikasi gumantung ing. Faktor penting liyane yaiku kemampuan kanggo takon kahanan kabeh lingkungan.

Pemantauan terus-terusan

Pemantauan terus-terusan nyedhiyakake laporan kelas perusahaan sing mbantu tim pangembangan ngerti kasedhiyan lan kinerja aplikasi ing lingkungan produksi sadurunge dikirim menyang produksi. Umpan balik awal sing diwenehake dening pemantauan terus-terusan penting kanggo nyuda biaya kesalahan lan proyek kemudi ing arah sing bener. Praktek iki asring kalebu alat ngawasi sing biasane mbukak metrik sing ana gandhengane karo kinerja aplikasi.

Umpan balik lan optimasi tetep

Umpan balik lan optimasi sing terus-terusan nyedhiyakake perwakilan visual babagan aliran pelanggan lan nemtokake wilayah masalah. Umpan balik bisa dilebokake ing tahap sadurunge lan sawise dodolan kanggo nggedhekake nilai lan mesthekake luwih akeh transaksi rampung kanthi sukses. Kabeh iki nyedhiyakake visualisasi langsung saka panyebab utama masalah pelanggan sing mengaruhi prilaku lan pengaruh bisnis.

Pandhuan DevOps kanggo Pamula

Keuntungan saka DevOps

DevOps bisa mbantu nggawe lingkungan ing ngendi pangembang lan operasi kerja minangka tim kanggo nggayuh tujuan umum. Tonggak penting ing proses iki yaiku implementasi integrasi terus-terusan lan pangiriman terus-terusan (CI / CD). Teknik kasebut bakal ngidini tim supaya piranti lunak bisa dipasarake kanthi luwih cepet kanthi bug sing luwih sithik.

Keuntungan penting saka DevOps yaiku:

  • Prediksi: DevOps nawakake tingkat kegagalan sing luwih murah kanggo rilis anyar.
  • Maintainability: DevOps ngidini pemulihan gampang yen rilis anyar gagal utawa aplikasi mudhun.
  • Reproducibility: Kontrol versi mbangun utawa kode ngidini sampeyan mulihake versi sadurunge yen perlu.
  • Kualitas sing luwih dhuwur: Ngatasi masalah infrastruktur nambah kualitas pangembangan aplikasi.
  • Wektu kanggo Pasar: Ngoptimalake pangiriman piranti lunak nyuda wektu menyang pasar kanthi 50%.
  • Pengurangan Resiko: Ngleksanakake keamanan ing siklus urip piranti lunak nyuda jumlah cacat sajrone siklus urip.
  • Efisiensi Biaya: Ngupaya efisiensi biaya ing pangembangan piranti lunak narik kawigaten para manajemen senior.
  • Stabilitas: Sistem piranti lunak luwih stabil, aman, lan owah-owahan bisa diaudit.
  • Mbusak basis kode sing luwih gedhe dadi potongan sing bisa diatur: DevOps adhedhasar metode pangembangan tangkas, sing ngidini sampeyan ngilangi basis kode gedhe dadi potongan sing luwih cilik lan bisa diatur.

Prinsip DevOps

Adopsi DevOps nyebabake sawetara prinsip sing wis berkembang (lan terus berkembang). Umume panyedhiya solusi wis ngembangake modifikasi dhewe saka macem-macem teknik. Kabeh prinsip kasebut adhedhasar pendekatan holistik kanggo DevOps, lan organisasi saka ukuran apa wae bisa nggunakake.

Ngembangake lan nyoba ing lingkungan kaya produksi

Ide kasebut yaiku supaya tim pangembangan lan jaminan kualitas (QA) bisa ngembangake lan nguji sistem sing tumindak kaya sistem produksi supaya bisa ndeleng kepriye tumindak lan kinerja aplikasi kasebut suwene sadurunge siap disebarake.

Aplikasi kasebut kudu disambungake menyang sistem produksi sedini mungkin ing siklus urip kanggo ngatasi telung masalah potensial utama. Kaping pisanan, ngidini sampeyan nyoba aplikasi ing lingkungan sing cedhak karo lingkungan nyata. Kapindho, ngidini sampeyan nyoba lan ngesyahke proses pangiriman aplikasi luwih dhisik. Katelu, ngidini tim operasi kanggo nyoba awal ing siklus urip carane lingkungan bakal tumindak nalika aplikasi disebarake, saΓ©ngga ngidini kanggo nggawe lingkungan aplikasi-sentris banget disesuaikan.

Nyebarake kanthi proses sing bisa diulang lan dipercaya

Prinsip iki ngidini tim pangembangan lan operasi ndhukung proses pangembangan piranti lunak sing lincah sajrone kabeh siklus urip piranti lunak. Otomasi penting kanggo nggawe proses berulang, dipercaya, lan bisa diulang. Mula, organisasi kudu nggawe pipa pangiriman sing ngidini panyebaran lan tes sing terus-terusan lan otomatis. Penyebaran sing kerep uga ngidini tim nyoba proses panyebaran, saengga bisa nyuda risiko gagal penyebaran sajrone rilis langsung.

Ngawasi lan mriksa kualitas karya

Organisasi apik kanggo ngawasi aplikasi ing produksi amarga duwe alat sing njupuk metrik lan indikator kinerja utama (KPI) ing wektu nyata. Prinsip iki mindhah ngawasi ing awal siklus urip, mesthekake yen tes otomatis ngawasi atribut fungsional lan non-fungsi saka aplikasi ing awal proses. Nalika aplikasi diuji lan disebarake, metrik kualitas kudu ditliti lan dianalisis. Alat ngawasi menehi peringatan awal babagan masalah operasional lan kualitas sing bisa kedadeyan sajrone produksi. Indikator-indikator kasebut kudu dikumpulake kanthi format sing bisa diakses lan dimangerteni dening kabeh pemangku kepentingan.

Ngapikake Feedback Loops

Salah sawijining tujuan proses DevOps yaiku supaya organisasi bisa nanggapi lan nggawe pangowahan luwih cepet. Ing pangiriman piranti lunak, tujuan iki mbutuhake organisasi nampa umpan balik luwih awal lan banjur sinau kanthi cepet saka saben tumindak sing ditindakake. Prinsip iki mbutuhake organisasi nggawe saluran komunikasi sing ngidini para pemangku kepentingan ngakses lan sesambungan kanthi cara umpan balik. Pangembangan bisa ditindakake kanthi nyetel rencana utawa prioritas proyek. Manufaktur bisa tumindak kanthi ningkatake lingkungan produksi.

Dev

  • Perencanaan: Kanboard, Wekan lan alternatif Trello liyane; GitLab, Tuleap, Redmine lan alternatif JIRA liyane; Mattermost, Roit.im, IRC lan alternatif Slack liyane.
  • Kode tulisan: Git, Gerrit, Bugzilla; Jenkins lan alat open source liyane kanggo CI / CD
  • Majelis: Apache Maven, Gradle, Apache Ant, Packer
  • Tes: JUnit, Timun, Selenium, Apache JMeter

Ops

  • Rilis, Penyebaran, Operasi: Kubernetes, Nomad, Jenkins, Zuul, Spinnaker, Ansible, Apache ZooKeeper, etcd, Netflix Archaius, Terraform
  • ngawasi: Grafana, Prometheus, Nagios, InfluxDB, Fluentd, lan liya-liyane sing dibahas ing pandhuan iki

(*Alat operasi wis diwenehi nomer miturut urutan panggunaan dening tim operasi, nanging piranti kasebut tumpang tindih karo tahap siklus urip alat rilis lan panyebaran. Kanggo gampang diwaca, nomer kasebut wis dibusak.)

Ing kesimpulan

DevOps minangka metodologi sing tambah populer sing tujuane nggabungake pangembang lan operasi dadi siji unit. Iki unik, beda karo operasi IT tradisional, lan nglengkapi Agile (nanging ora fleksibel).

Pandhuan DevOps kanggo Pamula

Temokake rincian babagan carane entuk profesi sing digoleki saka awal utawa Level Up babagan katrampilan lan gaji kanthi njupuk kursus online sing dibayar saka SkillFactory:

kursus liyane

Migunani

Source: www.habr.com

Add a comment