ISP систем, уучлаарай, баяртай! Бид серверийн хяналтын самбараа яагаад, яаж бичсэн

ISP систем, уучлаарай, баяртай! Бид серверийн хяналтын самбараа яагаад, яаж бичсэн

Сайн уу? Бид "Хостинг технологи" бөгөөд 5 жилийн өмнө нээгдсэн VDSina - хөгжүүлэгчдэд тусгайлан зориулж бүтээсэн анхны vds хостинг. Бид үүнийг DigitalOcean шиг тохь тухтай болгохыг хичээж байгаа боловч Оросын дэмжлэг, төлбөрийн арга, Орос дахь серверүүдтэй. Гэхдээ DigitalOcean бол найдвартай байдал, үнэ төдийгүй үйлчилгээ юм.

ISPsystem-ийн програм хангамж нь гайхалтай үйлчилгээнд хүрэх замд бидний гарыг зангидсан олс болж хувирав. Гурван жилийн өмнө бид Billmanager billing болон VMmanager серверийн хяналтын самбарыг ашигласан бөгөөд өөрийн удирдлагын самбаргүйгээр сайн үйлчилгээ үзүүлэх нь бараг боломжгүй гэдгийг маш хурдан ойлгосон.

ISP систем хэрхэн тав тухтай байдлыг алдагдуулсан бэ?

Алдаанууд

Бид алдаагаа өөрсдөө засч чадахгүй байсан - тэр болгондоо хэн нэгний дэмжлэг рүү бичиж, хүлээх хэрэгтэй болдог. Аливаа асуудлыг шийдэхийн тулд гуравдагч талын компанийн хариу арга хэмжээ авах шаардлагатай байв.

ISP системийн дэмжлэг хэвийн хариу үйлдэл үзүүлсэн боловч засварууд хэдхэн хувилбар гарсны дараа гарч ирсэн бөгөөд дараа нь үргэлж биш, бүгд биш. Заримдаа ноцтой алдаануудыг хэдэн долоо хоногийн турш зассан. Бид үйлчлүүлэгчдийг тайвшруулж, уучлалт гуйж, ISPsystem алдаагаа засахыг хүлээх хэрэгтэй болсон.

Сул зогсолтын аюул

Шинэчлэлтүүд нь урьдчилан таамаглах боломжгүй зогсолтуудыг үүсгэж, шинэ алдаануудыг өдөөж болно.

Шинэчлэлт бүр нь сугалаа байсан: Би төлбөр тооцоогоо нуун дарагдуулж, шинэчлэлтийн бурхдад тахил өргөх хэрэгтэй болсон - хэд хэдэн удаа шинэчлэлт нь 10-15 минутын турш зогсолт үүсгэдэг. Энэ үед манай админууд нүдээ аниад сууж байсан - бид зогсолт хэр удаан үргэлжлэхийг хэзээ ч мэдэхгүй байсан бөгөөд ISP систем хэзээ шинэ шинэчлэлт гаргахаар шийдэхийг таамаглаж чадахгүй байв.

Тав дахь үе дээр Биллманагер сайжирсан боловч шаардлагатай функцүүдэд хандахын тулд би долоо хоног бүр шинэчлэгдсэн бета хувилбарыг суулгах шаардлагатай болсон. Хэрэв ямар нэг зүйл эвдэрсэн бол би бусад хөгжүүлэгчид ямар нэг зүйлийг засах боломжтой байх ёстой.

Тохиромжгүй самбарын интерфейс

Бүх зүйлийг өөр өөр самбарт хувааж, өөр өөр газраас удирдаж байв. Жишээлбэл, үйлчлүүлэгчид Billmanager-ээр дамжуулан төлбөр хийсэн бөгөөд VMManager дээр VDS-ийг дахин ачаалах эсвэл дахин суулгах шаардлагатай болсон. Манай ажилтнууд үйлчлүүлэгчид туслах, түүний серверийн ачааллыг шалгах эсвэл ямар үйлдлийн систем ашиглаж байгааг харахын тулд цонхны хооронд шилжих шаардлагатай болсон.

Ийм интерфейс нь цаг хугацаа шаарддаг - бидний болон манай үйлчлүүлэгчдийн аль алинд нь. Ийм нөхцөлд DigitalOcean шиг тав тухтай байдлын талаар ямар ч асуудал байхгүй.

Байнгын API шинэчлэлт бүхий богино хугацааны амьдралын мөчлөг

Бид өөрсдийн залгаасуудыг бичсэн - жишээлбэл, VMManager-д байхгүй нэмэлт төлбөрийн аргуудтай залгаас.

Сүүлийн жилүүдэд VMManager нь харьцангуй богино амьдралын мөчлөгтэй байсан бөгөөд шинэ хувилбаруудад API дахь хувьсагч эсвэл функцүүдийн нэр дур зоргоороо өөрчлөгдөж болох байсан - энэ нь бидний залгаасуудыг эвдсэн. Хуучин хувилбаруудын дэмжлэгийг хурдан зогсоож, шинэчлэх шаардлагатай болсон.

Өөрчлөх боломжгүй

Илүү нарийн, энэ нь боломжтой, гэхдээ туйлын үр ашиггүй юм. Лицензийн хязгаарлалт нь эх кодонд өөрчлөлт оруулахыг зөвшөөрдөггүй, та зөвхөн залгаас бичих боломжтой. Хамгийн их залгаасууд - зарим цэсийн зүйл, алхам алхмаар шидтэн. ISP систем нь олон талт байдалд зориулагдсан боловч бидэнд тусгай шийдэл хэрэгтэй байсан.

Тиймээс өөрийнхөө самбарыг бичих шийдвэр болов. Бид зорилго тавьсан:

  • Алдаа, алдаануудад хурдан хариу өгч, үйлчлүүлэгчийг хүлээхгүйгээр өөрөө засах боломжтой.
  • Ажлын урсгал болон үйлчлүүлэгчийн хэрэгцээнд нийцүүлэн интерфэйсийг чөлөөтэй өөрчлөх.
  • Цэвэр, ойлгомжтой загвараар ашиглах чадварыг нэмэгдүүлнэ.

Тэгээд бид хөгжлийг эхлүүлсэн.

Шинэ самбарын архитектур

Бид бие даасан хөгжлийн багтай учраас бид өөрсдөө самбараа бичсэн.
Үндсэн ажлыг гурван инженер хийсэн - техникийн захирал Сергей архитектурыг гаргаж, серверийн агентыг бичсэн, Алексей тооцоо хийж, урд талын хэсгийг манай урд талын Артыш угсарсан.

Алхам 1: Сервер агент

Серверийн агент нь номын санг удирддаг python вэб сервер юм libvirt, энэ нь эргээд удирддаг Qemu-kvm гипервизор.

Агент нь сервер дээрх бүх үйлчилгээг удирддаг: vds үүсгэх, зогсоох, устгах, үйлдлийн систем суулгах, параметрүүдийг өөрчлөх гэх мэт libvirt номын сангаар дамжуулан. Нийтлэлийг нийтлэх үед эдгээр нь үйлчлүүлэгчийн даалгавар, хэрэгцээ шаардлагаас хамааран дөч гаруй өөр функцууд юм.

Онолын хувьд libvirt-ийг төлбөр тооцооноос шууд удирдаж болох боловч энэ нь хэт их нэмэлт код шаардсан тул бид эдгээр функцийг агент болон тооцооны хооронд салгахаар шийдсэн - тооцоо нь JSON API-ээр дамжуулан агент руу хүсэлт гаргадаг.

Агент бол бидний хийсэн хамгийн эхний зүйл, учир нь энэ нь ямар ч интерфэйс шаарддаггүй бөгөөд үүнийг серверийн консолоос шууд туршиж үзэх боломжтой байсан.

Серверийн агент бидэнд өгсөн зүйл: хүн бүрийн амьдралыг хялбаршуулдаг давхарга гарч ирэв - тооцоо хийхэд олон тооны тушаал илгээх шаардлагагүй, зөвхөн хүсэлт гаргах хэрэгтэй. Мөн агент шаардлагатай бүх зүйлийг хийх болно: жишээлбэл, энэ нь дискний зай болон RAM-ыг хуваарилах болно.

Алхам 2. Тооцоо

Манай хөгжүүлэгч Алексийн хувьд энэ бол анхны хяналтын самбар биш байсан - Алекс удаан хугацааны турш хостинг хийж байгаа тул үйлчлүүлэгчид юу хэрэгтэй байгааг, хостонд юу хэрэгтэйг ерөнхийд нь ойлгосон.

Бид төлбөр тооцоог "хяналтын самбар" гэж нэрлэдэг: энэ нь зөвхөн мөнгө, үйлчилгээ төдийгүй тэдгээрийн удирдлага, хэрэглэгчийн дэмжлэг болон бусад олон зүйлийг агуулдаг.

ISPSystem програм хангамжаас шилжихийн тулд үйлчлүүлэгчдэд зориулсан өмнөх функцийг бүрэн хадгалах, хэрэглэгчдийн санхүүгийн бүх үйлдлийг хуучин тооцооноос шинэ тооцоонд шилжүүлэх, түүнчлэн тэдгээрийн хоорондох бүх үйлчилгээ, холболтыг шилжүүлэх шаардлагатай байв. Бид одоогийн бүтээгдэхүүнд юу байгааг судалж, дараа нь өрсөлдөгчид, голчлон DO болон Vultr-ийн шийдлүүдийг судалж үзсэн. Бид сул тал, давуу талуудыг судалж, ISPsystem-ийн хуучин бүтээгдэхүүнтэй ажиллаж байсан хүмүүсийн санал хүсэлтийг цуглуулсан.

Шинэ тооцоонд хоёр стек ашигласан: сонгодог PHP, MySQL (мөн ирээдүйд PostgreSQL руу шилжихээр төлөвлөж байна), арын хэсэгт Yii2, урд талдаа VueJS. Стекүүд нь бие биенээсээ хамааралгүй ажилладаг, өөр өөр хүмүүс хөгжүүлдэг ба JSON API ашиглан харилцдаг. Тэр үеийн хөгжилд зориулж одоо ч ашиглаж байна PHPStorm и вэб шуурга JetBrains-ээс ирсэн бөгөөд тэдэнд маш их хайртай (хөөе залуусаа!)

Энэхүү самбар нь модульчлагдсан үндсэн дээр бүтээгдсэн: төлбөрийн системийн модулиуд, домэйн бүртгэгчийн модуль эсвэл жишээлбэл, SSL сертификатын модуль. Та шинэ функцийг хялбархан нэмэх эсвэл хуучин функцийг устгах боломжтой. Өргөтгөх суурь нь архитектурын хувьд, тэр дундаа эсрэг чиглэлд, "техник хангамж руу" тавигдсан.
ISP систем, уучлаарай, баяртай! Бид серверийн хяналтын самбараа яагаад, яаж бичсэн
Бид юу авав: хяналтын самбарыг бид бүрэн хянах боломжтой. Одоо алдаануудыг долоо хоногоор биш хэдэн цагийн дотор засч, шинэ боломжуудыг ISPSystem-ийн хүсэлтээр бус харин хэрэглэгчдийн хүсэлтээр хэрэгжүүлдэг.

Алхам 3 Интерфейс

ISP систем, уучлаарай, баяртай! Бид серверийн хяналтын самбараа яагаад, яаж бичсэн
Интерфэйс нь манай багийн санаа юм.

Эхлээд бид интерфэйс дэх ямар нэг зүйлийг үндсээр нь өөрчлөхгүйгээр ISPsystem API дээр нэмэлт програм хийвэл юу болох талаар авч үзсэн. Энэ нь тийм болж, бид бүгдийг эхнээс нь хийхээр шийдсэн.

Хамгийн гол нь интерфэйсийг логик, цэвэрхэн, минималист дизайнтай болгох явдал юм, тэгвэл бид үзэсгэлэнтэй самбар авах болно гэж бид үзсэн. Элементүүдийн байршлыг Megaplan-д хэлэлцсэн бөгөөд одоо хяналтын самбар дээр хэрэглэгчид харж буй интерфейс аажмаар гарч ирэх болно.

Тооцооны хуудасны дизайн хамгийн түрүүнд гарч ирсэн, учир нь бид ISPsystem-ийн төлбөрийн залгаасуудыг аль хэдийн хийсэн.

Frontend

Тэд уг самбарыг нөөцөд шаардлагагүй, өгөгдлийг хурдан ачаалдаг SPA програм болгохоор шийдсэн. Манай тэргүүн оролцогч Артыш үүнийг Vue дээр бичихээр шийдсэн - тэр үед Vue дөнгөж гарч ирсэн. Хэсэг хугацааны дараа Vue нийгэмлэг өсөн нэмэгдэж, номын сангуудын далай гарч ирнэ гэж бид React шиг хүрээ нь динамикаар хөгжинө гэж таамаглаж байсан. Бид Vue дээр бооцоо тавьсан бөгөөд харамссангүй - одоо арын хэсэгт программчлагдсан шинэ функцүүдийг урд хэсэгт нэмэхэд бага хугацаа шаардагдана. Урд талын самбарын талаар бид тусдаа өгүүллээр дэлгэрэнгүй ярих болно.

Урд талын төгсгөлийг арын хэсэгт холбож байна

Frontend нь push мэдэгдлээр дамжуулан арын хэсэгт холбогдсон. Би шаргуу ажиллаж, өөрийн зохицуулагчаа бичих шаардлагатай байсан ч одоо хуудасны мэдээлэл бараг л шинэчлэгдэж байна.

Юу болсон бэ: Самбарын интерфейс илүү хялбар болсон. Бид үүнийг дасан зохицох чадвартай болгосон бөгөөд хурдан ачаалах нь самбартай ажиллах тусдаа програм суулгахгүйгээр хөөрөхөөс өмнөх сүүлийн минутанд гар утаснаасаа ч ашиглах боломжийг олгодог.

Алхам 4. Туршилт ба шилжилтийн схем

Бүх зүйл эхэлж, эхний туршилтууд давж гарахад шилжилт хөдөлгөөний асуудал гарч ирэв. Юуны өмнө бид төлбөр тооцоог суулгаж, серверийн агентаар түүний ажиллагааг шалгаж эхэлсэн.

Дараа нь бид мэдээллийн санг хуучин тооцооноос шинэ данс руу шилжүүлэх энгийн скрипт бичсэн.

Мэдээллийг Billmanager, VMmanager болон менежерийн IPmanager гэсэн гурван хуучин мэдээллийн санд нэгтгэсэн тул би бүх зүйлийг шууд шалгаж, дахин шалгах шаардлагатай болсон. Магадгүй туршилтын шилжилт хөдөлгөөн нь шинэ самбар боловсруулах явцад бидний тулгарсан хамгийн хэцүү зүйл байж магадгүй юм.

Дахин шалгасны дараа бид хуучин тооцоог хаасан. Эцсийн өгөгдөл шилжүүлэх нь маш хэцүү мөч байсан боловч Бурханд талархаж, хэдхэн минутын дотор, мэдэгдэхүйц асуудалгүйгээр дууссан. Бид долоо хоногийн турш зассан жижиг алдаанууд байсан. Ихэнх цагийг юу болсныг шалгахад зарцуулсан.

Дараа нь бид үйлчлүүлэгчдэд шинэ самбар, тооцооны хаягтай захидал илгээж, дахин чиглүүлэлт хийсэн.

Эцэст нь: ЭНЭ АМЬД!

Аз жаргалтай төгсгөл

Манай программ хангамжийн ажлын эхний цагуудаас бид шилжилтийн бүх баяр баясгаланг мэдэрсэн. Код нь бүрэн биднийх бөгөөд тохиромжтой архитектуртай, интерфэйс нь цэвэр, логиктой байсан.
ISP систем, уучлаарай, баяртай! Бид серверийн хяналтын самбараа яагаад, яаж бичсэн
Шинэ самбар ашиглалтад орсны дараа эхний тойм

Үйлчлүүлэгчдийн шилжилтийг хөнгөвчлөхийн тулд бид 2017 оны шинэ жилийн өмнөх өдөр буюу XNUMX-р сард шилжилтийн үйл явцыг эхлүүлсэн бөгөөд энэ нь хамгийн бага ачаалалтай байсан - баярын өмнөх өдөр бараг хэн ч ажилладаггүй.

Манай системд шилжихэд бидний олж авсан гол зүйл бол (ерөнхий найдвартай байдал, тав тухтай байдлаас гадна) гол үйлчлүүлэгчдэд зориулсан функцийг хурдан нэмэх чадвар юм - тэдний өгзөг биш харин тэдний нүүр царай байх явдал юм.

Дараа нь юу юм бэ?

Бид өсч байна, өгөгдөл, үйлчлүүлэгчид, хэрэглэгчийн мэдээллийн хэмжээ нэмэгдэж байна. Би Memcached сервер болон өөр өөр даалгавар бүхий хоёр дарааллын менежерийг арын хэсэгт нэмэх шаардлагатай болсон. Frontend нь кэштэй, өөрийн гэсэн дараалалтай.

Мэдээжийн хэрэг, бүтээгдэхүүн хөгжиж, илүү төвөгтэй болж, жишээ нь HighLoad-г нэмсэн үед бид адал явдалтай байсан.

Дараагийн нийтлэлд бид Hi-CPU тарифыг хэрхэн эхлүүлсэн талаар танд хэлэх болно: техник хангамж, програм хангамж, бид ямар ажлуудыг шийдэж, юу хийсэн талаар.

Эх сурвалж: www.habr.com

сэтгэгдэл нэмэх