Highload IT системийг ажиллуулах, дэмжих үйл явцад гарсан таван асуудал

Сайн уу, Хабр! Би арван жилийн турш Highload IT системийг дэмжсэн. Би энэ нийтлэлд nginx-ийг 1000+ RPS горимд ажиллуулах болон бусад техникийн асуудлуудын талаар бичихгүй. Ийм системийг дэмжих, ажиллуулах явцад гарч буй асуудлуудын талаар би ажиглалтаа хуваалцах болно.

Хяналт шинжилгээ

Техникийн дэмжлэг нь "Яагаад... сайт дахин ажиллахгүй байна вэ?" гэсэн агуулгатай хүсэлт ирэх хүртэл хүлээдэггүй. Сайт гацсанаас хойш нэг минутын дотор дэмжлэг нь асуудлыг аль хэдийн харж, шийдэж эхлэх ёстой. Гэхдээ сайт бол мөсөн уулын орой юм. Түүний хүртээмж нь хамгийн түрүүнд хянагддаг.

Онлайн дэлгүүрийн үлдсэн бараа ERP системээс ирэхээ больсон тохиолдолд яах вэ? Эсвэл үйлчлүүлэгчдэд зориулсан хөнгөлөлтийг тооцдог CRM систем хариу өгөхөө больсон уу? Сайт ажиллаж байгаа бололтой. Нөхцөлт Zabbix нь 200 хариултыг хүлээн авдаг. Үүргийн ээлж нь хяналтаас ямар ч мэдэгдэл аваагүй бөгөөд Game of Thrones-ийн шинэ улирлын эхний ангийг баяртайгаар үзэж байна.

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

Тиймээс сервер дээрх үйлдлийн системийн техникийн параметрүүдийг хянахаас гадна бизнесийн хэмжүүрүүдийг тохируулах хэрэгтэй. Мөнгөд шууд нөлөөлдөг хэмжүүрүүд. Гадаад системүүдтэй янз бүрийн харилцан үйлчлэл (CRM, ERP болон бусад). Тодорхой хугацааны захиалгын тоо. Амжилттай эсвэл амжилтгүй үйлчлүүлэгчийн зөвшөөрөл болон бусад хэмжүүрүүд.

Гадаад системтэй харилцах

Жилийн тэрбум гаруй рублийн эргэлттэй аливаа вэбсайт эсвэл гар утасны програм нь гадны системтэй харьцдаг. Дээр дурдсан CRM ба ERP-ээс эхлээд борлуулалтын өгөгдлийг гадны Big Data системд шилжүүлж, худалдан авалтад дүн шинжилгээ хийж, үйлчлүүлэгчид түүний худалдан авах нь гарцаагүй (үнэндээ биш) бүтээгдэхүүнийг санал болгох хүртэл. Ийм систем бүр өөрийн гэсэн дэмжлэгтэй байдаг. Мөн эдгээр системүүдтэй харилцах нь ихэвчлэн өвдөлт үүсгэдэг. Ялангуяа асуудал дэлхий нийтийн шинж чанартай тул та өөр өөр системд дүн шинжилгээ хийх хэрэгтэй.

Зарим системүүд админдаа утасны дугаар эсвэл телеграмм өгдөг. Хаа нэгтээ та менежерүүд рүү захидал бичих эсвэл эдгээр гадаад системийн алдаа илрүүлэгч рүү очих хэрэгтэй. Нэг том компанийн хүрээнд ч гэсэн өөр өөр системүүд ихэвчлэн өөр өөр хэрэглээний нягтлан бодох бүртгэлийн системд ажилладаг. Заримдаа програмын статусыг хянах боломжгүй болдог. Та нэг болзолт Жирагаар хүсэлт хүлээн авна. Дараа нь энэ анхны Жирагийн тайлбар дээр та асуудлын холбоосыг өөр Жира дээр тавьсан. Өргөдөл дэх хоёр дахь Жира дээр хэн нэгэн нь аль хэдийн сэтгэгдэл бичиж байна Та асуудлыг шийдэхийн тулд нөхцөлт админ Андрей руу залгах хэрэгтэй. Тиймээ.

Энэ асуудлыг шийдэх хамгийн сайн шийдэл бол харилцааны нэг орон зайг бий болгох явдал юм, жишээлбэл Slack-д. Гадаад системийг ажиллуулах үйл явцад оролцож буй бүх оролцогчдыг нэгдэхийг урьж байна. Мөн програмуудыг давхардуулахгүйн тулд нэг трекер. Мэдэгдэлд хяналт тавихаас эхлээд ирээдүйд алдааны шийдлүүдийн гаралт хүртэл програмуудыг нэг дороос хянах ёстой. Энэ нь бодитой бус бөгөөд бид нэг трекер дээр ажилладаг, тэд өөр дээр ажилладаг байсан түүхтэй гэж та хэлэх болно. Өөр өөр системүүд гарч ирэн, тэд өөрсдийн бие даасан мэдээллийн технологийн багтай болсон. Би зөвшөөрч байгаа тул асуудлыг CIO эсвэл бүтээгдэхүүний эзэмшигчийн түвшинд дээрээс нь шийдэх хэрэгтэй.

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

Гацах хүн

Төсөл (эсвэл бүтээгдэхүүн) дээр ажиллаж байгаа бүх хүмүүст амралтаараа явах нь дарга нарын дунд таталт үүсгэдэг хүн байдаг уу? Энэ нь devops инженер, шинжээч эсвэл хөгжүүлэгч байж болно. Эцсийн эцэст зөвхөн devops инженер л ямар серверт ямар контейнер суулгасан, асуудал гарсан тохиолдолд контейнерийг хэрхэн дахин ачаалах, ерөнхийдөө аливаа нарийн төвөгтэй асуудлыг түүнгүйгээр шийдэж чадахгүй гэдгийг мэддэг. Шинжээч бол таны нарийн төвөгтэй механизм хэрхэн ажилладагийг мэддэг цорын ганц хүн юм. Ямар мэдээллийн урсгал хаашаа явдаг. Бид ямар үйлчилгээнд хандсан, ямар параметрийн дагуу хариу өгөх вэ.
Бүртгэлд яагаад алдаа гарсныг хэн хурдан ойлгож, бүтээгдэхүүний чухал алдааг яаралтай засах вэ? Мэдээжийн хэрэг ижил хөгжүүлэгч. Бусад хүмүүс байдаг, гэхдээ зарим шалтгааны улмаас системийн өөр өөр модулиуд хэрхэн ажилладагийг зөвхөн тэр л ойлгодог.

Энэ асуудлын үндэс нь бичиг баримт дутмаг байдаг. Эцсийн эцэст, хэрэв таны системийн бүх үйлчилгээг тайлбарласан бол шинжээчгүйгээр асуудлыг шийдвэрлэх боломжтой болно. Хэрэв devops завгүй хуваариасаа хэд хоногийн дараа гарч, ердийн асуудлуудыг шийдвэрлэх бүх сервер, үйлчилгээ, зааварчилгааг тайлбарласан бол түүнийг байхгүй үед асуудлыг түүнгүйгээр шийдэж болно. Та амралтаараа далайн эрэг дээр шар айраг ууж, асуудлыг шийдэхийн тулд wi-fi хайх шаардлагагүй.

Туслах ажилтнуудын чадвар, хариуцлага

Томоохон төслүүд дээр компаниуд хөгжүүлэгчдийн цалинг хасдаггүй. Тэд ижил төстэй төслүүдээс өндөр үнэтэй дунд эсвэл ахлах хүмүүсийг хайж байна. Дэмжлэгээр байдал арай өөр байна. Эдгээр зардлаа бүх талаар бууруулахыг хичээж байна. Компаниуд өчигдрийн хямдхан Enikey ажилчдыг хөлсөлж, зоригтойгоор тулалдаанд ордог. Хэрэв бид Зеленоград дахь үйлдвэрийн нэрийн хуудасны вэбсайтын талаар ярьж байгаа бол энэ стратеги боломжтой юм.

Хэрэв бид томоохон онлайн дэлгүүрийн тухай ярьж байгаа бол сул зогсолтын цаг бүр Enikey администраторын сарын цалингаас илүү үнэтэй байдаг. Жилийн 1 тэрбум рублийн эргэлтийг эхлэл болгон авч үзье. Энэ нь үнэлгээнээс авсан аливаа онлайн дэлгүүрийн хамгийн бага эргэлт юм 100 оны ТОП 2018. Энэ дүнг жилд хэдэн цагаар хувааж, 100 гаруй рублийн цэвэр алдагдал авна. Хэрэв та шөнийн цагийг тооцохгүй бол энэ хэмжээг хоёр дахин нэмэгдүүлэх боломжтой.

Гэхдээ мөнгө бол гол зүйл биш, тийм үү? (үгүй ээ, мэдээж гол нь) Нэр хүнд ч бас унана. Алдартай онлайн дэлгүүрийн уналт нь нийгмийн сүлжээн дэх тойм, сэдэвчилсэн хэвлэл мэдээллийн хэрэгслээр нийтлэгдсэн давалгааг үүсгэдэг. Гал тогооны өрөөнд байгаа найзуудын "Тэнд юу ч бүү худалдаж ав, тэдний вэбсайт үргэлж унтардаг" гэсэн хэв маягтай яриаг огт хэмжих боломжгүй юм.

Одоо хариуцлага руу орлоо. Миний практикт жижүүрийн админ нь хяналтын системээс сайт ашиглах боломжгүй гэсэн мэдэгдэлд цаг тухайд нь хариу өгөөгүй тохиолдол гарч байсан. Зуны тааламжтай баасан гарагийн орой Москвагийн алдартай онлайн дэлгүүрийн вэбсайт чимээгүйхэн хэвтэж байв. Бямба гарагийн өглөө энэ сайтын бүтээгдэхүүний менежер яагаад сайт нээгдээгүйг ойлгоогүй бөгөөд Slack дахь дэмжлэг, яаралтай мэдэгдлийн чатууд чимээгүй байв. Ийм алдаа бидэнд зургаан оронтой тэнцэх хэмжээний хохирол учруулсан бөгөөд энэ жижүүр ажилтай.

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

Хөгжлийн багтай харилцах

Үйл ажиллагааны явцад хэрэглэгчид бүтээгдэхүүнтэй холбоотой энгийн асуудалтай тулгарвал дэмжлэг нь өөрөө шийддэг. Асуудлыг дахин гаргахыг оролдох, бүртгэлд дүн шинжилгээ хийх гэх мэт. Гэхдээ бүтээгдэхүүнд алдаа гарч ирвэл яах вэ? Энэ тохиолдолд дэмжлэг нь хөгжүүлэгчдэд даалгаврыг өгдөг бөгөөд эндээс хөгжилтэй эхэлдэг.

Хөгжүүлэгчид байнга ачаалал ихтэй байдаг. Тэд шинэ боломжуудыг бий болгож байна. Борлуулалттай холбоотой алдааг засах нь хамгийн сонирхолтой үйл ажиллагаа биш юм. Дараагийн спринтийг дуусгах эцсийн хугацаа ойртож байна. Дараа нь дэмжлэгээс тааламжгүй хүмүүс ирж: "Бүхнийг даруй орхи, бидэнд асуудал байна" гэж хэлдэг. Ийм ажлуудын тэргүүлэх чиглэл нь хамгийн бага юм. Ялангуяа асуудал нь хамгийн чухал биш бөгөөд сайтын үндсэн функц ажиллаж байгаа үед, мөн хувилбарын менежер товойсон нүдээр гүйж гүйгээд: "Энэ ажлыг дараагийн хувилбар эсвэл засварт яаралтай нэмнэ үү" гэж бичээрэй.

Хэвийн эсвэл бага ач холбогдолтой асуудлуудыг хувилбараас хувилбар руу шилжүүлдэг. “Даалгавар хэзээ дуусах вэ?” гэсэн асуултад Та "Уучлаарай, одоо маш олон ажил байна, багийн ахлагчаас асуу эсвэл менежерээс чөлөөл" гэсэн маягийн хариултуудыг хүлээн авах болно.

Бүтээмжийн асуудал шинэ боломжуудыг бий болгохоос илүү чухал ач холбогдолтой. Хэрэглэгчид алдаа байнга бүдэрдэг бол муу шүүмжүүд удахгүй гарахгүй. Гэмтсэн нэр хүндийг сэргээхэд хэцүү байдаг.

Хөгжүүлэлт ба дэмжлэгийн харилцан үйлчлэлийн асуудлыг DevOps шийддэг. Энэхүү товчлолыг ихэвчлэн хөгжүүлэлтийн туршилтын орчныг бий болгох, CICD дамжуулах шугамыг барьж, туршилтын кодыг үйлдвэрлэлд хурдан нэвтрүүлэхэд тусалдаг тодорхой хүний ​​​​хэлбэрээр ашигладаг. DevOps нь процессын бүх оролцогчид хоорондоо нягт харилцаж, програм хангамжийн бүтээгдэхүүн, үйлчилгээг хурдан бий болгож, шинэчлэхэд тусалдаг програм хангамж хөгжүүлэх арга юм. Би шинжээч, хөгжүүлэгчид, шалгагч, дэмжлэгийг хэлж байна.

Энэ хандлагад дэмжлэг, хөгжил нь өөр өөрийн гэсэн зорилго, зорилт бүхий хэлтэс биш юм. Хөгжил нь үйл ажиллагаанд оролцдог ба эсрэгээр. Түгээмэл багуудын алдартай хэллэг: "Асуудал миний талд биш" гэсэн үг чат дээр тийм ч олон харагдахаа больж, эцсийн хэрэглэгчид бага зэрэг аз жаргалтай болдог.

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

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