Pandhuan Dummies: Nggawe Rantai DevOps nganggo Alat Open Source

Pandhuan Dummies: Nggawe Rantai DevOps nganggo Alat Open Source
Nggawe chain DevOps pisanan ing limang langkah kanggo pamula.

DevOps wis dadi panacea kanggo proses pangembangan sing alon banget, pedhot lan masalah liyane. Nanging sampeyan butuh kawruh minimal ing DevOps. Bakal nyakup konsep kayata rantai DevOps lan carane nggawe siji saka limang langkah. Iki dudu pandhuan lengkap, nanging mung "iwak" sing bisa ditambahi. Ayo miwiti karo sejarah.

Pambukaku kanggo DevOps

Aku biyen nggarap awan ing Citi Group lan ngembangake aplikasi web IaaS kanggo ngatur infrastruktur awan Citi, nanging aku tansah kasengsem babagan carane ngoptimalake rantai pangembangan lan ningkatake budaya ing antarane pangembang. Greg Lavender, CTO kanggo Arsitektur lan Infrastruktur Cloud, nyaranake buku iki kanggo aku. Proyek "Phoenix". Nerangake prinsip DevOps kanthi apik lan diwaca kaya novel.

Tabel ing sisih mburi nuduhake sepira kerepe perusahaan ngetokake versi anyar:

Pandhuan Dummies: Nggawe Rantai DevOps nganggo Alat Open Source

Kepiye carane Amazon, Google lan Netflix bisa diluncurake? Lan prasaja: dheweke ngerti carane nggawe rantai DevOps sing meh sampurna.

Prekara sing beda banget kanggo kita ing Citi nganti kita ngalih menyang DevOps. Banjur timku duwe lingkungan sing beda-beda, nanging kita nindakake pangiriman menyang server pangembangan kanthi manual. Kabeh pangembang nduweni akses menyang mung siji server pangembangan adhedhasar IBM WebSphere Application Server Community Edition. Kanthi upaya simultaneous kanggo ngirim, server "ambruk", lan saben-saben kita kudu "nglarani" rembugan antarane awake dhewe. Kita uga duwe jangkoan kode sing ora cukup karo tes, proses pangiriman manual sing akeh wektu, lan ora ana cara kanggo nglacak pangiriman kode kanthi sawetara tugas utawa syarat pelanggan.

Cetha yen ana sing kudu ditindakake kanthi cepet, lan aku nemokake kanca sing padha. Kita mutusaké kanggo nggawe chain DevOps pisanan bebarengan - kang nyiyapake mesin virtual lan server aplikasi Tomcat, lan aku njupuk care saka Jenkins, integrasi karo Atlassian Jira lan BitBucket, uga jangkoan kode karo tes. Proyèk iki sukses: kita kanthi otomatis ngotomatisasi rantai pangembangan, entuk meh 100% uptime ing server pangembangan, bisa ngawasi lan nambah jangkoan kode kanthi tes, lan cabang Git bisa diikat karo pangiriman lan masalah Jira. Lan meh kabeh alat sing digunakake kanggo mbangun rantai DevOps yaiku sumber terbuka.

Nyatane, rantai kasebut disederhanakake, amarga kita ora ngetrapake konfigurasi lanjut nggunakake Jenkins utawa Ansible. Nanging kita kasil. Mbok menawa iki minangka akibat saka prinsip Pareto (alias aturan 80/20).

Deskripsi Singkat Rantai DevOps lan CI/CD

DevOps duwe definisi beda. DevOps, kaya Agile, kalebu macem-macem disiplin. Nanging umume bakal setuju karo definisi ing ngisor iki: DevOps minangka cara, utawa siklus urip, pangembangan piranti lunak, prinsip utama yaiku nggawe budaya ing ngendi pangembang lan karyawan liyane "ing dawa gelombang sing padha", tenaga kerja manual otomatis, saben wong nindakake apa sing paling apik, frekuensi pangiriman mundhak, produktivitas kerja mundhak, keluwesan mundhak.

Nalika alat mung ora cukup kanggo nggawe lingkungan DevOps, iku penting banget. Sing paling penting yaiku integrasi terus-terusan lan pangiriman terus-terusan (CI / CD). Ana macem-macem tahapan ing rantai kanggo saben lingkungan (umpamane DEV (pengembangan), INT (integrasi), TST (testing), QA (jaminan kualitas), UAT (pengujian acceptance pangguna), STG (preparation), PROD (nggunakake)) , tugas manual otomatis, pangembang bisa nggawe kode kualitas, ngirim, lan bisa gampang mbangun maneh.

Cathetan iki nerangake carane nggawe chain DevOps ing limang langkah, kaya sing ditampilake ing gambar ing ngisor iki, nggunakake alat open source.

Pandhuan Dummies: Nggawe Rantai DevOps nganggo Alat Open Source

Ayo dadi mudhun kanggo bisnis.

Langkah 1: Platform CI/CD

Kaping pisanan, sampeyan butuh alat CI / CD. Jenkins minangka alat CI/CD open-source sing dilisensi MIT sing ditulis ing Jawa sing merakyatake gerakan DevOps lan wis dadi standar de facto kanggo CICD.

Apa Jenkins? Mbayangno yen sampeyan duwe panel kontrol gaib kanggo macem-macem layanan lan alat. Dhewe, alat CI / CD kaya Jenkins ora ana gunane, nanging kanthi alat lan layanan sing beda-beda, dadi kuat banget.

Saliyane Jenkins, ana akeh alat open source liyane, pilih wae.

Pandhuan Dummies: Nggawe Rantai DevOps nganggo Alat Open Source

Mangkene proses DevOps karo alat CI/CD

Pandhuan Dummies: Nggawe Rantai DevOps nganggo Alat Open Source

Sampeyan duwe alat CI / CD ing localhost, nanging durung akeh sing kudu ditindakake. Ayo pindhah menyang langkah sabanjure.

Langkah 2: Kontrol Versi

Cara paling apik (lan bisa uga paling gampang) kanggo nguji keajaiban alat CI / CD yaiku nggabungake karo alat manajemen kontrol sumber (SCM). Napa sampeyan mbutuhake kontrol versi? Contone, sampeyan lagi nggawe aplikasi. Sampeyan nulis ing Jawa, Python, C++, Go, Ruby, JavaScript, utawa basa liyane sing gerbong lan cart cilik. Apa sing sampeyan tulis diarani kode sumber. Kaping pisanan, utamane yen sampeyan lagi kerja dhewe, sampeyan bisa nyimpen kabeh menyang direktori lokal. Nanging nalika proyèk tuwuh lan luwih akeh wong sing gabung, sampeyan butuh cara kanggo nuduhake owah-owahan kode nanging ngindhari konflik nalika nggabungake owah-owahan. Lan sampeyan uga kudu mulihake versi sadurunge tanpa nggunakake serep lan nggunakake metode copy-paste kanggo file kode.

Lan kene tanpa SCM ngendi wae. SCM nyimpen kode ing repositori, ngatur versi, lan koordinat ing antarane pangembang.

Ana akeh alat SCM, nanging Git wis dadi standar de facto. Aku menehi saran supaya sampeyan nggunakake, nanging ana pilihan liyane.

Pandhuan Dummies: Nggawe Rantai DevOps nganggo Alat Open Source

Mangkene apa pipa DevOps katon sawise nambahake SCM.

Pandhuan Dummies: Nggawe Rantai DevOps nganggo Alat Open Source

Alat CI/CD bisa ngotomatisasi upload lan download kode sumber lan kolaborasi tim. Ora ala? Nanging saiki, kepiye carane nggawe aplikasi sing bisa digunakake, sing disenengi milyaran pangguna?

Langkah 3: Gawe Alat Otomatis

Kabeh mlaku kaya sing kudune. Sampeyan bisa ngunggah kode lan nindakake owah-owahan kanggo kontrol sumber, lan ngajak kanca-kanca kanggo nggarap sampeyan. Nanging sampeyan durung duwe app. Kanggo dadi aplikasi web, kudu dikompilasi lan dikemas kanggo distribusi utawa mbukak minangka eksekusi. (Basa pamrograman sing diinterpretasikake kaya JavaScript utawa PHP ora perlu dikompilasi.)

Gunakake alat otomatisasi mbangun. Alat apa wae sing sampeyan pilih, bakal ngumpulake kode ing format sing bener lan ngotomatisasi pembersihan, kompilasi, testing, lan pangiriman. Alat mbangun beda-beda miturut basa, nanging opsi open source ing ngisor iki umume digunakake.

Pandhuan Dummies: Nggawe Rantai DevOps nganggo Alat Open Source

Sempurno! Saiki ayo lebokake file konfigurasi alat otomatisasi menyang kontrol sumber supaya alat CI/CD bisa mbangun.

Pandhuan Dummies: Nggawe Rantai DevOps nganggo Alat Open Source

Rasane enak. Nanging ing ngendi kabeh iki bakal diluncurake saiki?

Langkah 4: Server Aplikasi Web

Dadi, sampeyan duwe file rangkep sing bisa dieksekusi utawa diluncurake. Kanggo aplikasi dadi tenan migunani, iku kudu sawetara jenis layanan utawa antarmuka, nanging sampeyan kudu sijine iku kabeh nang endi wae.

Aplikasi web bisa di-host ing server aplikasi web. Server aplikasi nyedhiyakake lingkungan ing ngendi sampeyan bisa nglakokake logika sing dikemas, nggawe antarmuka, lan mbukak layanan web liwat soket. Sampeyan mbutuhake server HTTP lan sawetara lingkungan liyane (mesin virtual, contone) kanggo nginstal server aplikasi. Saiki, ayo ndalang yen sampeyan lagi ngatasi kabeh iki (sanajan aku bakal ngomong babagan wadhah ing ngisor iki).

Ana sawetara server aplikasi web sing mbukak.

Pandhuan Dummies: Nggawe Rantai DevOps nganggo Alat Open Source

Kita wis duwe rantai DevOps sing meh bisa digunakake. proyek apik!

Pandhuan Dummies: Nggawe Rantai DevOps nganggo Alat Open Source

Ing asas, sampeyan bisa mungkasi kene, banjur sampeyan bisa nangani dhewe, nanging iku worth ngomong bab kualitas kode.

Langkah 5: Test jangkoan

Tes mbutuhake akeh wektu lan gaweyan, nanging luwih becik golek bug lan nambah kode kanggo nyenengake pangguna pungkasan. Kanggo maksud iki, ana akeh alat mbukak sing ora mung nyoba kode, nanging uga menehi saran babagan carane nambah. Umume alat CI / CD bisa nyambung menyang alat kasebut lan ngotomatisasi proses kasebut.

Pengujian dipΓ©rang dadi rong bagΓ©an: kerangka uji coba kanggo nulis lan nglakokakΓ© tes, lan alat kanthi pitunjuk kanggo nambah kualitas kode.

Testing Frameworks

Pandhuan Dummies: Nggawe Rantai DevOps nganggo Alat Open Source

Piranti kanthi tips kualitas

Pandhuan Dummies: Nggawe Rantai DevOps nganggo Alat Open Source

Umume alat lan kerangka iki ditulis kanggo Java, Python, lan JavaScript amarga C ++ lan C # minangka proprietary (sanajan GCC mbukak sumber).

Kita wis ngetrapake alat jangkoan tes, lan saiki pipa DevOps kudu katon kaya gambar ing wiwitan tutorial.

Langkah tambahan

Wadhah

Kaya sing dakkandhakake sadurunge, server aplikasi bisa dadi host ing mesin virtual utawa server, nanging kontaner luwih populer.

Apa sing kontaner? Ing cendhak, ing mesin virtual, sistem operasi asring njupuk luwih akeh papan tinimbang aplikasi, lan wadhah biasane cukup karo sawetara perpustakaan lan konfigurasi. Ing sawetara kasus, mesin virtual iku indispensable, nanging wadhah bisa nampung aplikasi bebarengan karo server tanpa biaya tambahan.

Kanggo kontaner, Docker lan Kubernetes biasane dijupuk, sanajan ana pilihan liyane.

Pandhuan Dummies: Nggawe Rantai DevOps nganggo Alat Open Source

Maca artikel babagan Docker lan Kubernetes ing opensource.com:

Piranti otomatisasi middleware

Rantai DevOps kita fokus ing mbangun kolaborasi lan ngirim aplikasi, nanging ana prekara menarik liyane sing bisa ditindakake nganggo alat DevOps. Contone, gunakake alat Infrastruktur minangka Kode (IaC), uga dikenal minangka alat otomatisasi middleware. Piranti kasebut mbantu ngotomatisasi instalasi, manajemen, lan tugas liyane kanggo middleware. Contone, alat otomatisasi bisa njupuk aplikasi (server aplikasi web, database, alat ngawasi) kanthi konfigurasi sing bener lan push menyang server aplikasi.

Ing ngisor iki sawetara opsi kanggo alat otomatis middleware mbukak:

Pandhuan Dummies: Nggawe Rantai DevOps nganggo Alat Open Source

Rincian ing artikel opensource.com:

Saiki piye?

Iki mung pucuk gunung es. Rantai DevOps bisa nindakake luwih akeh. Mulai karo alat CI / CD lan ndeleng apa liyane sampeyan bisa ngotomatisasi kanggo nggawe proyek luwih gampang. Aja lali babagan alat komunikasi mbukak kanggo kolaborasi efektif.

Mangkene sawetara artikel DevOps sing luwih apik kanggo pamula:

Sampeyan uga bisa nggabungake DevOps nganggo alat tangkas mbukak:

Source: www.habr.com

Add a comment