Гарчиг[Нуух][Үзүүлэх]
Дэд бүтэц нь програм хангамжийн програм хангамжийн хэвийн ажиллагааг шууд хариуцдаг тул програм хангамж хөгжүүлэх үйл явцын чухал хэсэг юм. Серверүүд, ачаалал тэнцвэржүүлэгчид, галт хана, мэдээллийн сан, нарийн төвөгтэй контейнер кластерууд нь дэд бүтцийн жишээ юм.
Дэд бүтцийн хүндрэлүүд нь хөгжлийн бүх үйл явцыг хамардаг тул үйлдвэрлэлийн нөхцөл байдлаас гадна хамааралтай байдаг.
Эдгээрт CI/CD платформ, тайзны орчин, туршилтын хэрэгслүүд гэх мэт зүйлс орно.
Програм хангамжийн бүтээгдэхүүний нарийн төвөгтэй байдал нэмэгдэхийн хэрээр эдгээр дэд бүтцийн сорилтууд илүү чухал болж байна. Дэд бүтцийг гараар удирдах уламжлалт арга нь өнөөгийн DevOps-д суурилсан програм хангамжийн хурдацтай хөгжүүлэлтийн мөчлөгийн хүсэл тэмүүлэлтэй нийцүүлэхийн тулд маш хурдан шийдэл болж хувирдаг.
Үүний үр дүнд Infrastructure as Code (IaC) нь өнөөдөр хөгжлийн бодит шийдэл болсон. Дэд бүтцийн код (IaC) нь дэд бүтцийн өөрчлөлтийг гарч ирэх үед нь хэмжиж, хянах боломжийг олгодог.
Бид энэ хэсэгт Дэд бүтцийг код болгон, түүний ашиг тус, яагаад амин чухал вэ гэх мэтийг нарийвчлан авч үзэх болно. За ингээд эхэлцгээе.
Гэж юу вэ Дэд бүтэц нь код?
Код хэлбэрээр дэд бүтэц нь тохирох төхөөрөмж, системийг гараар тохируулахаас илүүтэйгээр код ашиглан орчинг хангах, тохируулах үйл явц юм. Хөгжүүлэгчид кодын параметрүүдийг тодорхойлсны дараа скриптүүдийг ажиллуулдаг бөгөөд IaC платформ нь үүлэн дэд бүтцийг автоматаар үүсгэдэг.
Ийм автоматжуулсан мэдээллийн технологийн тохиргоо нь багуудад бүтээгдэхүүнээ турших, ажиллуулахад шаардлагатай үүлэн тохиргоог хурдан бий болгох боломжийг олгодог. Дэд бүтэц код нь хөгжүүлэгчдэд сүлжээ гэх мэт хүссэн дэд бүтцийн бүрэлдэхүүн хэсгүүдийг бий болгох боломжийг олгодог. ачаалал тэнцвэржүүлэгч, мэдээллийн сан, виртуал машин, холболтын төрлүүд.
Энгийн хэллэгээр бол энэ нь гараар бус код ашиглан тодорхойлсон дэд бүтцийг хангах, удирдах үйл явц юм. IaC нь програм хангамжийг хурдан шуурхай хүргэх амьдралын мөчлөгт шаардлагатай чухал DevOps техник юм.
Энэ нь DevOps багуудад эх кодын хувилбартай адил дэд бүтцийг хурдан барьж, хувилбар гаргах, түүнчлэн мэдээллийн технологийн орчны хоорондын үл нийцэлийг багасгахын тулд эдгээр хувилбаруудыг хянах боломжийг олгодог бөгөөд энэ нь байршуулах явцад томоохон асуудал үүсгэж болзошгүй юм.
IaC-д тунхаглалын эсрэг императив хандлага
IaC-д тунхаглалын болон зайлшгүй гэсэн хоёр аргаар хандаж болно.
Хэрэв танд ямар нөөц шаардлагатай байгаа болон тэдгээрт байх ёстой шинж чанаруудыг багтаасан системийн төлөвийг тодорхойлсон тунхаглалын аргыг ашиглавал IaC хэрэгсэл танд зориулж системийг тохируулах болно.
Мөн тунхаглалын арга нь таны системийн объектуудын одоогийн төлөвийг хянаж, дэд бүтцийнхээ зогсолтыг удирдахад хялбар болгодог. Нөгөө талаас зайлшгүй арга нь төлөвлөсөн тохиргоог бий болгохын тулд зохих дарааллаар гүйцэтгэх ёстой тодорхой заавруудыг тодорхойлдог.
Олон IaC технологи нь дэд бүтцийг хангахад тунхаглалын хандлагыг ашигладаг бөгөөд үүнийг автоматаар хийх болно. Илтгэлийн IaC хэрэгсэл нь хэрэв та тэдгээрийг хийвэл таны хүссэн төлөвт өөрчлөлт оруулах болно. Хэрэв та чухал хэрэгсэл ашиглаж байгаа бол эдгээр тохируулгыг хэрхэн хэрэгжүүлэх талаар олж мэдэх хэрэгтэй. IaC хэрэгслүүд нь аль алиныг нь илүүд үздэг ч хоёр горимд ажиллах чадвартай байдаг.
Дэд бүтэц код байдлаар хэрхэн ажилладаг вэ?
Дэд бүтцийг код болгон бүрэн хэрэгжүүлэхийн тулд хэд хэдэн шаардлагыг хангасан байх ёстой.
Үйлчилгээ болгон үүлэн байршуулах платформ (IaaS)
Эхний бөгөөд хамгийн чухал хэрэгцээ бол алсаас нэвтрэх хостинг юм. Тохиргооны удирдлагын хэрэгсэл нь алсын хосттой холбогдож, тэнд өөрчлөлт хийх ёстой. Хэрэв алслагдсан дэд бүтцийг өөрөө удирддаг бол тохиргооны удирдлагын хэрэгсэлд хандах боломжтой гэдгийг танай баг баталгаажуулах ёстой.
IaaS-ийг идэвхжүүлсэн үүл байршуулах платформ дээрх API-ууд нь үйлчлүүлэгчдэд дэд бүтцийн нөөцийг хүссэнээр бүтээх, устгах, өөрчлөх боломжийг олгодог. Тохиргооны удирдлагын системүүд эдгээр үйл ажиллагааг автоматжуулахын тулд эдгээр API-г ашиглах боломжтой. Digital Ocean, Amazon AWS, Microsoft Azure нь IaaS-ийн гурван том систем юм.
Тохиргоог удирдах платформ
IaaS API-уудтай холбогдож, ердийн үйлдлүүдийг автоматжуулдаг хэрэгслүүд нь IaC-г бөглөх дараагийн урьдчилсан нөхцөл юм. Хэсэг хүмүүс хамтран скрипт, багаж хэрэгслийн цуглуулга гаргах боломжтой. Гэсэн хэдий ч энэ нь ихээхэн хүчин чармайлт, байнгын засвар үйлчилгээ, хөрөнгө оруулалтын хамгийн бага өгөөж хэрэгтэй болно. Terraform, Ansible, Salt Stack, Chef зэрэг нь энэ сорилтыг шийдвэрлэх нээлттэй эхийн тохиргооны удирдлагын цөөн хэдэн хэрэглүүр юм.
Хувилбарыг хянах систем
Тохиргооны удирдлагын платформ нь YAML гэх мэт тэмдэглэгээний хэлээр бичигдсэн текст файлуудыг ашиглан платформыг гүйцэтгэх даалгавар, дарааллыг өгдөг. Эдгээр текст файлуудыг програмын код гэж үзэж, хувилбарын хяналтын репозиторт хадгалж болно. Үнэний нэг цэгийн үүрэг гүйцэтгэдэг хадгалах санд татах хүсэлт болон кодын хянан үзэхийг зөвшөөрдөг. Хувилбарын хяналтын систем Git бол хамгийн алдартай.
Эдгээр урьдчилсан нөхцөлүүд байгаа бол дараах хувилбарыг авч үзье: хөгжүүлэгч системд шинэ програмын үйлчилгээ нэмэхийг хүсч байна. Энэ жишээ нь IaC процессыг харуулж байна.
- Тэдний илүүд үздэг тохиргооны удирдлагын платформ болох Terraform дээр хөгжүүлэгч нь YAML тохиргооны текст файлыг өөрчилдөг. Өөрчлөлтүүд нь шинэ хостинг сервер шаардлагатай гэж заасан.
- Git репозитор дээр хөгжүүлэгч нь функцийн салбар руу өөрчлөлт оруулдаг. Төслийн Git репозиторыг Bitbucket дээр байршуулсан тул хөгжүүлэгч татах хүсэлтийг үүсгэдэг. Багийн өөр нэг гишүүн татах хүсэлтийг судалж үзээд дэд бүтцийн шинэ сайжруулалтыг анзаарчээ. Татаж авах хүсэлтийг багийн гишүүн зөвшөөрч, хөгжүүлэгчид уг өөрчлөлтийг репозиторын үндсэн салбар руу нэгтгэдэг.
- Энэ алхамд шинэчлэлт хийхийн тулд тохиргооны платформ шаардлагатай. Хөгжүүлэгч нь шинэчлэлтийг гараар эхлүүлэх боломжтой. Баг нь Bitbucket ашигладаг тул Bitbucket Pipelines-д хандах боломжтой бөгөөд энэ процедурыг автоматжуулахад ашиглаж болно.
- Terraform нь гүйцэтгэлийн дараа багийн IaaS-тай холбогддог. Terraform нь IaaS API-г ашиглан IaaS-ийг хүлээгдэж буй дэд бүтцийн тохиргоонд шинэчлэх командуудын дарааллыг ажиллуулдаг.
IaC-ийн ашиг тус
IaC нь байгууллагуудад мэдээллийн технологийн дэд бүтцийн хэрэгцээгээ автоматжуулсан журмаар янз бүрийн аргаар зохицуулахад тусалдаг. IaC суулгахын зарим давуу талууд нь дараах байдалтай байна.
- Тогтвортой байдал: IaC нь тууштай байдлыг нэмэгдүүлж, гарын авлагын тохиргоонд байнга гардаг алдааг багасгадаг. Энэ нь мөн гар ажиллагаатай үед гарч болох тохиргооны шилжилтээс сэргийлдэг. IaC нь тохиргооны стандартыг кодчилох, баримтжуулах замаар баримтжуулаагүй, түр зуурын тохиргооны өөрчлөлтөөс урьдчилан сэргийлэх боломжийг олгодог.
- Үр ашиг: Дэд бүтцээ кодчилсноор нөөцийн загварыг бий болгож, системийн тохиргоо, засвар үйлчилгээ, удирдлагыг хөнгөвчлөх болно. Энэ нь уян хатан, давтагдах боломжтой, өргөтгөх боломжтой дэд бүтцийг бий болгодог. Үүний үр дүнд DevOps нь програм хангамжийн хөгжүүлэлтийн үе шат бүрийг хурдасгах боломжтой бөгөөд ингэснээр өдөр бүр илүү олон програм нийтлэгдэх болно.
- Хямдралтай зардал: IaC нь виртуал машинуудыг программчлан удирдах боломжийг олгож, техник хангамжийг гараар тохируулах, шинэчлэх хэрэгцээг арилгадаг. Ижил кодыг ашиглан нэг оператор нэг машин эсвэл 1000 нэгжийг суулгаж, удирдах боломжтой. Үүний үр дүнд цөөн тооны ажилтан шаардлагатай болж, шинэ тоног төхөөрөмж шаардлагагүй болж, зардлыг ихээхэн хэмнэдэг.
- Хурд: IaC нь хөгжүүлэгчдийн дэд бүтцээ энгийн скрипт болгон хувиргахад шаардагдах хугацааг багасгадаг. Үүний үр дүнд програм хангамжийг байршуулах ажлыг дэд бүтцээр хойшлуулахаа больсон бөгөөд шинэ програм хангамжийг илүү хурдан хүргэх боломжтой.
- Эрсдэлийг бууруулах: АТГ-ын зөвлөснөөр хувилбар хяналт, бусад програм хангамжийн эх кодын файлын нэгэн адил таны тохиргооны файлуудыг хянах боломжтой. Үүний үр дүнд эрсдэл буурдаг.
IaC ямар асуудлыг шийддэг вэ?
Дамжуулах хоолойн орчны шилжилтийн асуудлыг шийдвэрлэхийн тулд дэд бүтцийг код хэлбэрээр бий болгосон. IaC байхгүй тохиолдолд багууд байршуулах орчин бүрийн тохиргоог хадгалах үүрэгтэй. Хүрээлэн буй орчин бүр цасан ширхгүүд болон хувирч, автоматаар давтагдах боломжгүй өвөрмөц зохион байгуулалттай байдаг.
Байршуулах явцад орчин хоорондын үл нийцэл нь асуудал үүсгэдэг. Цасан ширхгүүдийг удирдахад хэцүү гар ажиллагаатай байх шаардлагатай бөгөөд дэд бүтцийн удирдлага, засвар үйлчилгээнд алдаа гаргахад хувь нэмэр оруулдаг.
Дэд бүтэц нь дүрмийн хувьд сул дорой байдлын үзэл санааг баримталдаг.
Idempotence гэдэг нь байршуулах команд нь тухайн орчны эхлэлийн төлөвөөс үл хамааран зорилтот орчныг үргэлж ижил аргаар тохируулдаг болохыг хэлнэ. Байгаа зорилтоо автоматаар тогтоох, эсвэл одоо байгаа зорилтыг хэрэгсэхгүй болгож, дахин эхлүүлэх замаар сул дорой байдлыг бий болгодог.
Үүний үр дүнд IaC-ийг ашиглан багууд орчны тодорхойлолт болон тохиргооны загварын хувилбарыг өөрчилдөг бөгөөд энэ нь ихэвчлэн JSON гэх мэт сайн баримтжуулсан кодын форматаар бичигдсэн байдаг. Зорилтот орчныг тохируулахын тулд уг загварыг хувилбарын шугамд ажиллуулдаг. Баг нь өөрчлөлт хийх шаардлагатай бол зорилтот бус эх сурвалжийг засдаг.
DevOps-д IaC ямар чухал вэ?
DevOps болон тасралтгүй нэгтгэх/тасралтгүй хүргэх (CI/CD) арга зүйг хэрэгжүүлэх нь IaC ашиглах шаардлагатай болдог. Энэ нь хөгжүүлэгчдийг хангамжийн ихэнх үүрэг хариуцлагаас чөлөөлж, дэд бүтцээ ажиллуулахын тулд зүгээр л скрипт ажиллуулах боломжийг олгодог.
Үүний үр дүнд, дэд бүтэц баригдаж байх үед програмын байршуулалт зогсдоггүй бөгөөд системийн админууд гар аргаар хийх цаг хугацаа шаардсан ажлуудад ачаалал өгдөггүй. CI/CD нь нэгтгэх, туршихаас эхлээд хүргэх, байршуулах хүртэлх хугацаанд байнгын автоматжуулалт, хэрэглээний амьдралын мөчлөгийн туршид тасралтгүй хяналтанд тулгуурладаг. Автоматжуулалтыг ажиллуулахын тулд байнгын орчин шаардлагатай.
Хөгжүүлэгчийн баг програмуудыг нийлүүлэх эсвэл орчныг нэг аргаар тохируулах, үйлдлийн баг нь орчныг өөр аргаар суулгаж, тохируулах үед програмын байршуулалтыг автоматжуулах боломжгүй болно.
DevOps аргачлал нь хөгжүүлэлт, үйл ажиллагааны багийг хооронд нь уялдуулдаг бөгөөд ингэснээр алдаа бага, гар аргаар байршуулалт, үл нийцэх байдал багасдаг. Хөгжүүлэлтийн болон үйл ажиллагааны баг хоёулаа програмын байршуулалтын ижил тайлбарыг ашиглаж чаддаг тул IaC нь DevOps хандлагыг идэвхжүүлж хөгжүүлэлт болон үйл ажиллагааг синхрончлоход тусалдаг.
Бүх орчин, түүний дотор үйлдвэрлэлийн орчин нь ижил байршуулах аргыг дагаж мөрдөх ёстой. IaC-г ашиглах бүрт ижил төстэй орчин бий болдог.
Дүгнэлт
DevOps код болгон дэд бүтцээс ихээхэн хамаардаг. Мэдээллийн технологийн салбарыг тасалдуулж буй технологиуд тасралтгүй өөрчилж байгаа энэ ертөнцөд таны үйл ажиллагааг ирээдүйд бэлэн болгох дараагийн алхам бол дэд бүтэц юм.
Энэ нь танд боломжоо бүрэн дүүрэн ашиглах боломжийг олгоно үүл тооцоолох, Мэдээллийн технологийн дэд бүтцийн гарын авлагын удирдлагатай холбоотой алдааг багасгаж, програм хангамжийг боловсруулах хурдыг сайжруулдаг. Энэ бүхэн үйл ажиллагааны зардлыг бууруулахын зэрэгцээ хийгддэг.
хариу үлдээх