Pituduh Dummies: Ngawangun Ranté DevOps nganggo Alat Open Source

Pituduh Dummies: Ngawangun Ranté DevOps nganggo Alat Open Source
Ngawangun ranté DevOps munggaran anjeun dina lima léngkah pikeun pamula.

DevOps parantos janten panacea pikeun prosés pangembangan anu lambat teuing, dipegatkeun sareng masalahna. Tapi anjeun peryogi pangaweruh minimal dina DevOps. Éta bakal nutupan konsép sapertos ranté DevOps sareng kumaha cara nyiptakeun hiji dina lima léngkah. Ieu sanés pituduh lengkep, tapi ngan ukur "lauk" anu tiasa dilegakeun. Hayu urang mimitian ku sajarah.

Perkenalan kuring pikeun DevOps

Abdi kantos damel sareng awan di Citi Group sareng ngembangkeun aplikasi wéb IaaS pikeun ngatur infrastruktur awan Citi, tapi kuring kantos resep kumaha ngaoptimalkeun ranté pamekaran sareng ningkatkeun budaya diantara pamekar. Greg Lavender, CTO kami pikeun Arsitéktur Awan sareng Infrastruktur, nyarankeun buku ieu ka kuring. Proyék "Phoenix". Éta ngajelaskeun prinsip DevOps kalayan saé sareng maca sapertos novel.

Méja di tukang nunjukkeun sabaraha sering perusahaan ngaluncurkeun vérsi énggal:

Pituduh Dummies: Ngawangun Ranté DevOps nganggo Alat Open Source

Kumaha Amazon, Google sareng Netflix tiasa ngaluncurkeun pisan? Sareng éta saderhana: aranjeunna terang kumaha cara nyiptakeun ranté DevOps anu ampir sampurna.

Hal éta béda pisan pikeun urang di Citi dugi ka urang ngalih ka DevOps. Lajeng tim abdi gaduh lingkungan béda, tapi urang ngalakukeun pangiriman ka server ngembangkeun sacara manual. Kabéh pamekar miboga aksés ka ngan hiji server ngembangkeun dumasar kana IBM WebSphere Aplikasi Server Komunitas Edition. Kalawan usaha simultaneous pikeun nganteurkeun, server "ragrag", sarta unggal waktos urang kedah "nyeri" negotiate diantara sorangan. Urang ogé ngagaduhan sinyalna kode anu teu cekap kalayan tés, prosés pangiriman manual anu nyéépkeun waktos, sareng henteu aya jalan pikeun ngalacak pangiriman kode kalayan bantosan sababaraha tugas atanapi syarat klien.

Ieu jelas yén hal urgently diperlukeun pikeun dipigawé, sarta kuring manggihan batur sapagawean kawas-dipikiran. Urang mutuskeun pikeun nyieun ranté DevOps munggaran babarengan - anjeunna nyetél mesin virtual sarta server aplikasi Tomcat, sarta kuring ngurus Jenkins, integrasi jeung Atlassian Jira na BitBucket, kitu ogé sinyalna kode jeung tés. Proyék éta suksés: urang pinuh otomatis ranté ngembangkeun, ngahontal ampir 100% uptime dina server ngembangkeun, éta bisa ngawas sarta ngaronjatkeun sinyalna kode jeung tés, sarta cabang Git bisa dihijikeun ka pangiriman Jira jeung masalah. Sareng ampir sadaya alat anu kami dianggo pikeun ngawangun ranté DevOps mangrupikeun sumber terbuka.

Nyatana, ranté éta disederhanakeun, sabab kami henteu nerapkeun konfigurasi canggih nganggo Jenkins atanapi Ansible. Tapi urang hasil. Panginten ieu mangrupikeun akibat tina prinsip Pareto (alias aturan 80/20).

Katerangan singket ngeunaan DevOps sareng CI / CD Chain

DevOps gaduh definisi anu béda. DevOps, sapertos Agile, kalebet disiplin anu béda. Tapi seuseueurna bakal satuju sareng definisi di handap ieu: DevOps mangrupikeun metode, atanapi siklus kahirupan, pamekaran parangkat lunak, prinsip utama nyaéta nyiptakeun budaya dimana pamekar sareng karyawan sanésna "dina panjang gelombang anu sami", tenaga kerja manual otomatis. dulur ngalakukeun naon anu pangalusna di, frékuénsi pangiriman naek, produktivitas gawé naek, kalenturan naek.

Sanaos alat waé henteu cekap pikeun nyiptakeun lingkungan DevOps, aranjeunna penting pisan. Anu paling penting nyaéta integrasi kontinyu sareng pangiriman kontinyu (CI / CD). Aya tahapan béda dina ranté pikeun tiap lingkungan (misalna DEV (pangmekaran), INT (integrasi), TST (uji coba), QA (jaminan kualitas), UAT (uji ditampa pamaké), STG (persiapan), PROD (pamakéan)) , tugas manual anu otomatis, pamekar bisa ngahasilkeun kode kualitas, nganteurkeun eta, sarta bisa kalayan gampang ngawangun deui.

Catetan ieu ngajelaskeun kumaha cara nyiptakeun ranté DevOps dina lima léngkah, sapertos anu dipidangkeun dina gambar di handap ieu, nganggo alat open source.

Pituduh Dummies: Ngawangun Ranté DevOps nganggo Alat Open Source

Hayu urang turun kana bisnis.

Lengkah 1: CI / CD Platform

Anu mimiti, anjeun peryogi alat CI / CD. Jenkins mangrupikeun alat CI/CD open-source anu dilisensikeun MIT anu ditulis dina Java anu ngapopulérkeun gerakan DevOps sareng parantos janten standar de facto pikeun CICD.

Naon Jenkins? Bayangkeun yén anjeun gaduh panel kontrol magis pikeun sababaraha jasa sareng alat. Sorangan, alat CI / CD sapertos Jenkins henteu aya gunana, tapi kalayan alat sareng jasa anu béda, éta janten langkung kuat.

Salian Jenkins, aya seueur alat open source anu sanés, pilih naon waé.

Pituduh Dummies: Ngawangun Ranté DevOps nganggo Alat Open Source

Ieu kumaha prosés DevOps sareng alat CI / CD

Pituduh Dummies: Ngawangun Ranté DevOps nganggo Alat Open Source

Anjeun gaduh alat CI / CD di localhost, tapi teu acan seueur anu kedah dilakukeun. Hayu urang ngaléngkah ka lengkah saterusna.

Hambalan 2: Versioning

Cara anu pangsaéna (sareng panginten paling gampang) pikeun nguji sihir alat CI / CD nyaéta ngahijikeunana sareng alat manajemén kontrol sumber (SCM). Naha anjeun peryogi kontrol versi? Anggap anjeun nuju ngadamel aplikasi. Anjeun nyeratna dina Java, Python, C ++, Go, Ruby, JavaScript, atanapi basa sanés anu mangrupikeun gerbong sareng karanjang. Naon anu anjeun tulis disebut kode sumber. Mimitina, khususna upami anjeun damel nyalira, anjeun tiasa nyimpen sadayana kana diréktori lokal. Tapi nalika proyékna tumbuh sareng langkung seueur jalma anu gabung, anjeun peryogi cara pikeun ngabagi parobahan kode tapi ngahindarkeun konflik nalika ngahijikeun parobihan. Sareng anjeun ogé kedah kumaha waé mulangkeun versi sateuacana tanpa nganggo cadangan sareng nganggo metode salinan-témpél pikeun file kode.

Sarta di dieu tanpa SCM mana. SCM nyimpen kode dina repositori, ngatur versi na, sareng koordinat diantara pamekar.

Aya seueur alat SCM, tapi Git pantes janten standar de facto. Kuring mamatahan anjeun ngagunakeun eta, tapi aya pilihan séjén.

Pituduh Dummies: Ngawangun Ranté DevOps nganggo Alat Open Source

Ieu kumaha rupa pipa DevOps saatos nambihan SCM.

Pituduh Dummies: Ngawangun Ranté DevOps nganggo Alat Open Source

Alat CI/CD tiasa ngajadikeun otomatis unggah kode sumber sareng unduh sareng kolaborasi tim. Lumayan? Tapi ayeuna kumaha carana ngadamel aplikasi anu tiasa dianggo tina ieu, dipikacinta ku milyaran pangguna?

Lengkah 3: Ngawangun Alat Automasi

Sagalana jalan sakumaha sakuduna. Anjeun tiasa unggah kode sareng ngarobih kana kontrol sumber, sareng ngajak babaturan pikeun damel sareng anjeun. Tapi anjeun teu acan gaduh aplikasi. Pikeun ieu janten aplikasi wéb, éta kedah disusun sareng dibungkus pikeun distribusi atanapi dijalankeun salaku laksana. (Basa pamrograman anu diinterpretasi sapertos JavaScript atanapi PHP henteu kedah disusun.)

Paké alat automation ngawangun. Naon waé alat anu anjeun pilih, éta bakal ngumpul kodeu dina format anu leres sareng ngajadikeun otomatis beberesih, kompilasi, uji, sareng pangiriman. Alat ngawangun rupa-rupa dumasar kana basa, tapi pilihan open source di handap ieu biasa dianggo.

Pituduh Dummies: Ngawangun Ranté DevOps nganggo Alat Open Source

Sampurna! Ayeuna hayu urang selapkeun file konfigurasi alat automation kana kontrol sumber supados alat CI / CD ngawangun aranjeunna.

Pituduh Dummies: Ngawangun Ranté DevOps nganggo Alat Open Source

Karasa alus. Tapi dimana sadayana ieu gulung ayeuna?

Lengkah 4: Server Aplikasi Wéb

Janten, anjeun gaduh file rangkep anu tiasa dieksekusi atanapi digulung. Pikeun hiji aplikasi janten bener mangpaat, éta kudu boga sababaraha jenis layanan atawa panganteur, tapi anjeun kudu nempatkeun eta sadayana wae.

Aplikasi wéb tiasa di-host dina pangladén aplikasi wéb. Pangladén aplikasi nyayogikeun lingkungan dimana anjeun tiasa ngaéksekusi logika rangkep, ngajantenkeun antarmuka, sareng ngalaan jasa wéb dina stop kontak. Anjeun peryogi server HTTP sareng sababaraha lingkungan anu sanés (contona, mesin virtual) pikeun masang pangladén aplikasi. Samentawis ayeuna, hayu urang pura-pura anjeun nuju nyanghareupan sadaya ieu nalika anjeun angkat (sanaos kuring bakal ngobrol ngeunaan wadah di handap).

Aya sababaraha pangladén aplikasi wéb anu kabuka.

Pituduh Dummies: Ngawangun Ranté DevOps nganggo Alat Open Source

Kami parantos ngagaduhan ranté DevOps anu ampir tiasa dianggo. Sae pisan!

Pituduh Dummies: Ngawangun Ranté DevOps nganggo Alat Open Source

Sacara prinsip, anjeun tiasa lirén di dieu, teras anjeun tiasa ngadamelana nyalira, tapi éta patut ngobrol ngeunaan kualitas kode.

Hambalan 5: sinyalna Test

Nguji butuh loba waktu jeung usaha, tapi leuwih sae pikeun manggihan bug langsung tur ningkatkeun kode pikeun mangga pamaké tungtung. Pikeun tujuan ieu, aya seueur alat kabuka anu henteu ngan ukur nguji kodeu, tapi ogé mamatahan kumaha cara ningkatkeunana. Kaseueuran alat CI / CD tiasa nyolok kana alat ieu sareng ngajadikeun otomatis prosésna.

Tés dibagi jadi dua bagian: kerangka nguji pikeun nulis jeung ngaéksekusi tés, sarta parabot jeung petunjuk pikeun ngaronjatkeun kualitas kode.

Tés Frameworks

Pituduh Dummies: Ngawangun Ranté DevOps nganggo Alat Open Source

Alat kalayan tip kualitas

Pituduh Dummies: Ngawangun Ranté DevOps nganggo Alat Open Source

Kaseueuran alat sareng kerangka ieu ditulis pikeun Java, Python, sareng JavaScript sabab C ++ sareng C # mangrupikeun proprietary (sanaos GCC open source).

Kami parantos nerapkeun alat liputan tés, sareng ayeuna pipa DevOps kedah sapertos gambar dina awal tutorial.

Léngkah tambahan

Wadahna

Sakumaha anu kuring nyarios sateuacanna, server aplikasi tiasa di-host dina mesin virtual atanapi server, tapi wadahna langkung populér.

Naon wadahna? Pondokna, dina mesin virtual, sistem operasi mindeng nyokot leuwih spasi ti aplikasi, sarta wadahna biasana cukup ku sababaraha perpustakaan jeung konfigurasi. Dina sababaraha kasus, mesin virtual penting, tapi wadahna tiasa nampung aplikasi sareng server tanpa biaya tambahan.

Pikeun wadahna, Docker sareng Kubernetes biasana dicandak, sanaos aya pilihan sanés.

Pituduh Dummies: Ngawangun Ranté DevOps nganggo Alat Open Source

Baca artikel ngeunaan Docker sareng Kubernetes di opensource.com:

parabot automation Middleware

Ranté DevOps kami museurkeun kana gedong kolaborasi sareng pangiriman aplikasi, tapi aya hal anu pikaresepeun anu anjeun tiasa laksanakeun sareng alat DevOps. Contona, paké alat Infrastruktur salaku Code (IaC), ogé katelah alat automation middleware. Alat-alat ieu ngabantosan otomatis pamasangan, manajemén, sareng tugas-tugas sanés pikeun middleware. Salaku conto, alat otomatis tiasa nyandak aplikasi (server aplikasi wéb, pangkalan data, alat ngawaskeun) kalayan konfigurasi anu leres sareng nyorong kana pangladén aplikasi.

Ieu sababaraha pilihan pikeun alat automation middleware kabuka:

Pituduh Dummies: Ngawangun Ranté DevOps nganggo Alat Open Source

Rinci dina artikel opensource.com:

Ayeuna kumaha?

Ieu ngan ujung gunung es nu. Ranté DevOps tiasa ngalakukeun langkung seueur. Mimitian ku alat CI / CD sareng tingali naon deui anu anjeun tiasa ngajadikeun otomatis pikeun ngagampangkeun padamelan anjeun. Tong hilap ngeunaan alat komunikasi muka pikeun kolaborasi éféktif.

Ieu sababaraha tulisan DevOps anu langkung saé pikeun pamula:

Anjeun ogé tiasa ngahijikeun DevOps sareng alat lincah kabuka:

sumber: www.habr.com

Tambahkeun komentar