5 Prinsip Umum kanggo Nggawe Aplikasi Cloud-Native

Aplikasi "Cloud native" utawa mung "cloud" digawe khusus kanggo nggarap infrastruktur awan. Biasane dibangun minangka sakumpulan layanan mikro sing digandhengake sing dikemas ing wadhah, sing uga dikelola dening platform awan. Aplikasi kasebut disiapake kanggo gagal kanthi standar, tegese bisa digunakake kanthi andal lan skala sanajan ana kegagalan tingkat infrastruktur sing serius. Sisih liyane saka koin yaiku set watesan (kontrak) sing ditindakake dening platform awan ing aplikasi wadhah supaya bisa ngatur kanthi otomatis.

5 Prinsip Umum kanggo Nggawe Aplikasi Cloud-Native

Sanajan ngerti kabutuhan lan pentinge pindhah menyang aplikasi berbasis awan, akeh organisasi isih ora ngerti arep miwiti saka ngendi. Ing kirim iki, kita bakal ndeleng sawetara prinsip sing, yen dituruti nalika ngembangake aplikasi kontaner, bakal ngidini sampeyan ngerteni potensial platform awan lan entuk operasi sing dipercaya lan skala aplikasi sanajan ana kegagalan serius ing infrastruktur IT. tingkat. Tujuan utama saka prinsip sing digarisake ing kene yaiku sinau carane nggawe aplikasi sing bisa dikelola kanthi otomatis dening platform maya kayata Kubernetes.

Prinsip Desain Piranti Lunak

Ing jagad pemrograman, prinsip nuduhake aturan umum sing kudu ditindakake nalika ngembangake piranti lunak. Bisa digunakake nalika nggarap basa pamrograman apa wae. Saben prinsip duwe tujuan dhewe, alat kanggo entuk sing biasane template lan praktik. Ana uga sawetara prinsip dhasar kanggo nggawe piranti lunak berkualitas tinggi, saka ngendi kabeh liyane mili. Ing ngisor iki sawetara conto prinsip dhasar:

  • KISS (Tetep prasaja, bodho) - aja rumit;
  • garing (Aja mbaleni dhewe) - aja mbaleni dhewe;
  • YAGNI (Sampeyan ora bakal mbutuhake) - aja nggawe sing ora langsung dibutuhake;
  • SoC Pemisahan keprihatinan - nuduhake tanggung jawab.

Kaya sing sampeyan ngerteni, prinsip kasebut ora nyetel aturan tartamtu, nanging kalebu kategori pertimbangan akal sehat sing adhedhasar pengalaman praktis, sing dituduhake dening akeh pangembang lan asring dirujuk.
Kajaba iku, ana SOLID - A pesawat saka limang prinsip pisanan program lan desain berorientasi obyek, dirumuske dening Robert Martin. SOLID kalebu prinsip sing wiyar, mbukak, lan pelengkap sing - yen diterapake bebarengan - mbantu nggawe sistem piranti lunak sing luwih apik lan njaga kanthi luwih apik sajrone jangka panjang.

Prinsip SOLID kalebu ing bidang OOP lan dirumusake ing basa konsep lan konsep kayata kelas, antarmuka lan warisan. Kanthi analogi, prinsip pangembangan uga bisa dirumusake kanggo aplikasi awan, mung unsur dhasar ing kene ora bakal dadi kelas, nanging wadah. Kanthi ngetutake prinsip kasebut, sampeyan bisa nggawe aplikasi kontaner sing luwih cocog karo tujuan lan tujuan platform awan kaya Kubernetes.

Wadah asli awan: pendekatan Red Hat

Saiki, meh kabeh aplikasi bisa dikemas kanthi gampang ing wadhah. Nanging supaya aplikasi bisa otomatis kanthi efektif lan diatur ing platform maya kaya Kubernetes, usaha tambahan dibutuhake.
Landhesan kanggo gagasan-gagasan ing ngisor iki yaiku metodologi Aplikasi Rolas-Faktor lan akeh karya liyane babagan macem-macem aspek mbangun aplikasi web, saka manajemen kode sumber nganti model skala. Prinsip sing diterangake mung ditrapake kanggo pangembangan aplikasi kontaner sing dibangun ing ndhuwur layanan mikro lan dirancang kanggo platform maya kayata Kubernetes. Unsur dhasar ing diskusi kita yaiku gambar wadhah, lan runtime wadhah target yaiku platform orkestrasi wadah. Tujuan saka prinsip sing diusulake yaiku nggawe wadhah sing bisa nggawe jadwal, skala, lan tugas ngawasi kanthi otomatis ing umume platform orkestrasi. Prinsip kasebut ora ana urutan tartamtu.

Prinsip Kepedulian Tunggal (SCP)

Prinsip iki ing pirang-pirang cara padha karo Prinsip Tanggung Jawab Tunggal. SRP), yaiku bagean saka set SOLID lan nyatakake yen saben obyek kudu duwe tanggung jawab siji, lan tanggung jawab kasebut kudu lengkap ing kelas. Titik SRP yaiku saben tanggung jawab minangka alesan kanggo owah-owahan, lan kelas kudu duwe siji lan mung siji alasan kanggo owah-owahan.

Ing SCP, kita nggunakake tembung "prihatin" tinimbang tembung "tanggung jawab" kanggo nunjukake tingkat abstraksi sing luwih dhuwur lan tujuan sing luwih amba saka wadhah dibandhingake karo kelas OOP. Lan yen goal saka SRP mung siji alesan kanggo owah-owahan, banjur konco SCP kepinginan kanggo nggedhekake kemampuan kanggo nggunakake maneh lan ngganti kontaner. Kanthi ngetutake SRP lan nggawe wadhah sing ngrampungake masalah siji lan nindakake kanthi lengkap kanthi fungsional, sampeyan nambah kemungkinan nggunakake gambar wadhah kasebut ing konteks aplikasi sing beda.

Prinsip SCP nyatakake yen saben wadhah kudu ngrampungake siji masalah lan nindakake kanthi becik. Menapa malih, SCP ing donya wadhah luwih gampang kanggo entuk saka SRP ing donya OOP, wiwit kontaner biasane mbukak siji proses, lan paling wektu proses iki solves siji tugas.

Yen microservice wadah kudu ngrampungake sawetara masalah bebarengan, banjur bisa dipΓ©rang dadi kontaner siji-tugas lan digabungake ing siji pod (unit panyebaran platform wadhah) nggunakake sidecar lan init template wadah. Kajaba iku, SCP nggampangake ngganti wadhah lawas (kayata server web utawa makelar pesen) karo sing anyar sing ngrampungake masalah sing padha nanging wis nambah fungsi utawa timbangan luwih apik.

5 Prinsip Umum kanggo Nggawe Aplikasi Cloud-Native

Prinsip Pengamatan Tinggi (HOP)

Nalika kontaner digunakake minangka cara terpadu kanggo paket lan mbukak aplikasi, aplikasi dhewe dianggep minangka kothak ireng. Nanging, yen iki minangka wadhah awan, mula kudu menehi API khusus kanggo runtime kanggo ngawasi kesehatan wadhah kasebut lan, yen perlu, tumindak sing cocog. Tanpa iki, ora bakal bisa nggabungake otomatisasi nganyari wadhah lan ngatur siklus urip, sing bakal nambah stabilitas lan kegunaan sistem piranti lunak.

5 Prinsip Umum kanggo Nggawe Aplikasi Cloud-Native
Ing praktik, aplikasi sing disedhiyakake kudu, paling ora, duwe API kanggo macem-macem jinis pemeriksaan kesehatan: tes liveness lan tes kesiapan. Yen aplikasi ngaku nindakake luwih akeh, aplikasi kasebut kudu menehi cara liya kanggo ngawasi kahanane. Contone, nyathet acara penting liwat STDERR lan STDOUT kanggo agregasi log nggunakake Fluentd, Logstash lan alat liyane sing padha. Uga integrasi karo perpustakaan koleksi tracing lan metrik, kayata OpenTracing, Prometheus, lsp.

UmumΓ©, aplikasi kasebut isih bisa dianggep minangka kothak ireng, nanging kudu disedhiyakake karo kabeh API sing dibutuhake platform kanggo ngawasi lan ngatur kanthi cara sing paling apik.

Life-cycle Conformance Principle (LCP)

LCP minangka antitesis saka HOP. Nalika HOP nyatakake yen wadhah kasebut kudu mbukak API sing diwaca menyang platform kasebut, LCP mbutuhake aplikasi kasebut supaya bisa nampa informasi saka platform kasebut. Kajaba iku, wadhah kasebut ora mung kudu nampa acara, nanging uga adaptasi, kanthi tembung liya, nanggepi. Mula jeneng prinsip kasebut, sing bisa dianggep minangka syarat kanggo nyedhiyakake platform kanthi nulis API.

5 Prinsip Umum kanggo Nggawe Aplikasi Cloud-Native
Platform duwe macem-macem jinis acara kanggo mbantu ngatur siklus urip wadhah. Nanging nganti aplikasi dhewe kanggo mutusake sapa sing bakal dirasakake lan kepiye reaksine.

Cetha yen sawetara acara luwih penting tinimbang liyane. Contone, yen aplikasi ora ngidinke tubrukan uga, iku kudu nampa sinyal: siksa (SIGTERM) pesen lan miwiti tumindake mandap minangka cepet sabisa kanggo nyekel sinyal: matèni (SIGKILL) sing teka sawise SIGTERM.

Kajaba iku, acara kayata PostStart lan PreStop bisa dadi penting kanggo siklus urip aplikasi. Contone, sawise mbukak aplikasi, bisa uga mbutuhake sawetara wektu anget sadurunge bisa nanggapi panjalukan. Utawa aplikasi kudu ngeculake sumber daya kanthi cara khusus nalika mateni.

Prinsip Immutability Image (IIP)

Ditampa umum yen aplikasi containerized kudu tetep ora diganti sawise dibangun, sanajan lagi mbukak ing lingkungan beda. Iki mbutuhake panyimpenan data eksternal nalika runtime (kanthi tembung liya, nggunakake alat eksternal kanggo iki) lan gumantung ing konfigurasi khusus runtime, tinimbang ngowahi utawa nggawe wadhah unik kanggo saben lingkungan. Sawise owah-owahan ing aplikasi, gambar wadhah kudu dibangun maneh lan disebarake menyang kabeh lingkungan sing digunakake. Miturut cara, nalika ngatur sistem IT, prinsip sing padha digunakake, dikenal minangka prinsip immutability server lan infrastruktur.

Tujuan saka IIP yaiku kanggo nyegah nggawe gambar wadhah sing kapisah kanggo lingkungan runtime sing beda-beda lan nggunakake gambar sing padha ing endi wae bebarengan karo konfigurasi khusus lingkungan sing cocog. Kanthi prinsip iki, sampeyan bisa ngleksanakake praktik penting saka sudut pandang otomatisasi sistem awan minangka nganyari maneh aplikasi lan muter maju.

5 Prinsip Umum kanggo Nggawe Aplikasi Cloud-Native

Prinsip Disposability Proses (PDP)

Salah sawijining ciri sing paling penting saka wadhah yaiku ephemerality: conto saka wadhah gampang digawe lan gampang dirusak, saengga bisa gampang diganti karo conto liyane sawayah-wayah. Ana akeh alasan kanggo panggantos kasebut: gagal tes layanan, skala aplikasi, transfer menyang host liyane, kesel sumber daya platform, utawa kahanan liyane.

5 Prinsip Umum kanggo Nggawe Aplikasi Cloud-Native
AkibatΓ©, aplikasi containerized kudu njaga negara nggunakake sawetara liya external, utawa nggunakake rencana mbagekke internal karo redundansi kanggo iki. Kajaba iku, aplikasi kasebut kudu diwiwiti kanthi cepet lan mateni kanthi cepet, lan disiapake kanggo kegagalan hardware sing fatal.

Salah sawijining praktik sing mbantu ngetrapake prinsip iki yaiku njaga wadah cilik. Lingkungan awan bisa kanthi otomatis milih host kanggo miwiti conto wadhah, dadi luwih cilik wadah kasebut, luwih cepet bakal diwiwiti - mung bakal nyalin menyang host target liwat jaringan luwih cepet.

Prinsip Mandiri (S-CP)

Miturut prinsip iki, ing tahap perakitan, kabeh komponen sing dibutuhake kalebu ing wadhah. Wadhah kasebut kudu dibangun kanthi asumsi yen sistem kasebut mung duwe kernel Linux murni, mula kabeh perpustakaan tambahan sing dibutuhake kudu diselehake ing wadhah kasebut. Sampeyan uga kudu ngemot perkara kaya runtime kanggo basa pamrograman sing cocog, platform aplikasi (yen perlu), lan dependensi liyane sing bakal dibutuhake nalika aplikasi wadhah lagi mlaku.

5 Prinsip Umum kanggo Nggawe Aplikasi Cloud-Native

Pangecualian digawe kanggo konfigurasi sing beda-beda saka lingkungan menyang lingkungan lan kudu diwenehake nalika runtime, contone liwat Kubernetes ConfigMap.

Sawijining aplikasi bisa uga kalebu sawetara komponen sing dikontainer, contone, wadhah DBMS sing kapisah ing aplikasi web sing dikontainer. Miturut prinsip S-CP, wadhah kasebut ora kudu digabung dadi siji, nanging kudu digawe supaya wadhah DBMS ngemot kabeh sing dibutuhake kanggo operasi database, lan wadhah aplikasi web ngemot kabeh sing dibutuhake kanggo operasi web. aplikasi, server web sing padha. AkibatΓ©, nalika runtime wadhah aplikasi web bakal gumantung ing wadhah DBMS lan ngakses yen perlu.

Runtime Confinement Principle (RCP)

Prinsip S-CP nemtokake carane wadhah kudu dibangun lan apa sing kudu ana ing binar gambar. Nanging wadhah ora mung "kothak ireng" sing mung nduweni siji karakteristik - ukuran file. Sajrone eksekusi, wadhah njupuk dimensi liyane: jumlah memori sing digunakake, wektu CPU, lan sumber daya sistem liyane.

5 Prinsip Umum kanggo Nggawe Aplikasi Cloud-Native
Lan ing kene prinsip RCP migunani, miturut wadhah kasebut kudu ngilangi syarat kanggo sumber daya sistem lan ditransfer menyang platform. Kanthi profil sumber daya saben wadhah (pira CPU, memori, jaringan, lan sumber daya disk sing dibutuhake), platform kasebut bisa nindakake jadwal lan autoscaling kanthi optimal, ngatur kapasitas IT, lan njaga tingkat SLA kanggo wadhah.

Saliyane kanggo nyukupi syarat sumber daya wadhah, uga penting kanggo aplikasi kasebut ora ngluwihi watese dhewe. Yen ora, nalika ana kekurangan sumber daya, platform kasebut luwih cenderung kalebu ing dhaptar aplikasi sing kudu dihentikan utawa dipindhah.

Nalika kita ngomong babagan dadi cloud-first, kita ngomong babagan cara kerja.
Ndhuwur, kita ngrumusake sawetara prinsip umum sing nyetel dhasar metodologis kanggo mbangun aplikasi wadhah berkualitas tinggi kanggo lingkungan awan.

Elinga yen saliyane prinsip umum iki, sampeyan uga mbutuhake metode lan teknik canggih tambahan kanggo nggarap wadhah. Kajaba iku, kita duwe sawetara rekomendasi singkat sing luwih spesifik lan kudu ditrapake (utawa ora ditrapake) gumantung saka kahanan:

Webinar ing versi anyar saka OpenShift Container Platform - 4
11 Juni jam 11.00

Apa sing bakal sampeyan sinau:

  • Imotable Red Hat Enterprise Linux CoreOS
  • OpenShift layanan bolong
  • Kerangka operator
  • Kerangka knative

Source: www.habr.com

Add a comment