Меъмории ба хидмат нигаронидашуда асосан дар бораи девопҳо мебошад. Яъне, агар шумо автоматикунонӣ надошта бошед, ягон раванди ҷойгиркунӣ вуҷуд надорад, агар шумо онро дастӣ танзим кунед, конфигуратсияҳои шумо метавонанд аз инстанси хидматрасонӣ ба инстансия тағир ёбанд ва шумо бояд ба он ҷо равед, то коре кунед, пас шумо дар дӯзах ҳастед.
Масалан, шумо 20 хидмат доред ва шумо бояд дастӣ ҷойгир кунед, шумо 20 консол доред ва шумо ҳамзамон тугмаи "enter" -ро мисли ниндзя пахш мекунед. Ин хеле хуб нест.
Агар шумо пас аз санҷиш хидмате дошта бошед (агар санҷиш бошад, албатта) ва шумо ба ҳар ҳол лозим аст, ки онро бо файл анҷом диҳед, то он дар истеҳсолот кор кунад, ман низ барои шумо хабари бад дорам.
Агар шумо ба хидматҳои мушаххаси Амазонка такя кунед ва дар Русия кор кунед, пас ду моҳ пеш шумо низ доштед "Ҳама чиз дар атроф оташ аст, ман хубам, ҳама чиз хуб аст."
Масалан, мо мушкилот доштем, ки Puppet дар сервер бо Ruby 2 кор мекунад, аммо баъзе замимаҳо барои Ruby 1.8 навишта шудаанд ва онҳо якҷоя кор намекунанд. Дар он ҷо чизе нодуруст меравад. Ва вақте ки ба шумо лозим аст, ки версияҳои сершумори Ruby-ро дар як мошин иҷро кунед, шумо одатан мушкилотро сар мекунед.
Масалан, мо ба ҳар як таҳиякунанда платформае медиҳем, ки дар он тақрибан ҳама чизест, ки мо дорем, ҳама хидматҳое, ки метавонанд таҳия карда шаванд, мавҷуд аст, то ки ӯ муҳити ҷудогона дошта бошад, вай тавонад онро вайрон кунад ва мувофиқи хости худ созад.
Чунин мешавад, ки ба шумо як бастаи махсус тартиб додашуда бо дастгирии чизе лозим аст. Ин хеле сахт аст. Ман гузоришеро гӯш кардам, ки дар он тасвири Docker 45 ГБ вазн дорад. Дар Linux, албатта, он соддатар аст, ҳама чиз дар он ҷо хурдтар аст, аммо ба ҳар ҳол, фазои кофӣ нахоҳад буд.
Хуб, вобастагии зиддкунанда вуҷуд доранд, вақте ки як порчаи лоиҳа аз китобхонаи як версия вобаста аст, қисми дигари лоиҳа аз версияи дигар вобаста аст ва китобхонаҳо умуман якҷоя насб карда намешаванд.
Мо дар PHP 5.6 сайтҳо ва хидматҳо дорем, аз онҳо шарм дорем, аммо чӣ кор кунем? Ин як сайти мост. Дар PHP 7 сайтҳо ва хидматҳо вуҷуд доранд, онҳо зиёданд, мо аз онҳо шарм намедорем. Ва ҳар як таҳиягар пойгоҳи худро дорад, ки дар он ҷо хушбахтона медид.
Агар шумо дар як ширкат ба як забон нависед, он гоҳ се мошини виртуалӣ барои як таҳиякунанда муқаррарӣ садо медиҳад. Агар шумо забонҳои гуногуни барномасозӣ дошта бошед, пас вазъият бадтар мешавад.
Шумо дар ин бора сайтҳо ва хидматҳо доред, дар ин бора, пас сайти дигар барои Go, як сайт барои Ruby ва баъзе Redisҳои дигар дар паҳлӯ. Дар натича хамаи ин ба майдони калони такьягох табдил меёбад ва хама вакт як кисми он шикаста метавонад.
Аз ин рӯ, мо бартариҳои забони барномасозиро бо истифода аз чаҳорчӯбаҳои гуногун иваз кардем, зеро чаҳорчӯбаҳои PHP комилан фарқ мекунанд, онҳо қобилиятҳои гуногун, ҷомеаҳои гуногун ва дастгирии гуногун доранд. Ва шумо метавонед хидматеро нависед, то ки шумо аллакай барои он чизе омода бошед.
Ҳар як хидмат дастаи худро дорад
Бартарии асосии мо, ки дар тӯли чанд сол кристалл шудааст, дар он аст, ки ҳар як хидмат дастаи худро дорад. Ин барои лоиҳаи калон қулай аст, шумо метавонед вақтро дар ҳуҷҷатгузорӣ сарфа кунед, менеҷерҳо лоиҳаи худро хуб медонанд.
Шумо метавонед ба осонӣ супоришҳоро аз дастгирӣ пешниҳод кунед. Масалан, хизмати сугурта вайрон шуд. Ва дарҳол гурӯҳе, ки бо суғурта сарукор дорад, барои ислоҳи он меравад.
Дар бораи кор бо ҳуҷҷатгузорӣ: хадамот вуҷуд дорад ва дар маҷмӯъ, он кор мекунад, он дорои як дастури ду саҳифа дар бораи чӣ гуна кор кардан бо он, аммо ҳеҷ кас намедонад, ки он дар дохили он чӣ гуна кор мекунад.
Ё, масалан, як навъ кӯтоҳкунандаи пайванд вуҷуд дорад. Масалан, мо дар айни замон се кӯтоҳкунандаи пайванд дорем, ки барои мақсадҳои гуногун дар хидматҳои гуногун истифода мешаванд. Инҳо танҳо оқибатҳоянд.
Илова ба ҳамаи ин нуктаҳо, боз як чизи муҳим вуҷуд дорад: одамони мушаххас бояд барои ҳар як хидмати мушаххас, барои ҳар як бахши мушаххаси тартиби ҷойгиркунӣ масъул бошанд. Вақте ки одамон вуҷуд надоранд ва шумо бояд одамони дигарро барои омӯхтани ин масъала ҷалб кунед, он душвор мешавад.
Агар ин ҳама ёрӣ надиҳад ва хидмати ятимии шумо то ҳол ятим бошад, ҳеҷ кас намехоҳад, ки онро ба дӯш гирад, ҳуҷҷатҳо навишта нашудаанд, дастае, ки ба ин хидмат даъват карда шудааст, аз ҳеҷ кор даст кашад, як роҳи оддӣ вуҷуд дорад - такрор кардан ҳама чиз.
Яъне, шумо талаботи хидматро аз нав қабул мекунед ва хидмати нав, беҳтар, дар платформаи беҳтар, бе ҳалли аҷиби технологӣ менависед. Ва шумо дар ҷанг ба он ҷо ҳиҷрат мекунед.
Дар асл, он ҳамчун ҳама таҷрибаҳо ихтиёрӣ аст. Шояд, дар баъзе мавридҳо, ин ҳатто номатлуб аст. Аммо шумо бояд бифаҳмед, ки агар шумо дар як ширкати 50 нафар шӯъбаи техникӣ дошта бошед, 45 нафари онҳо мутахассисони PHP, 3 нафари дигар девопе ҳастанд, ки Python, Ansible, Puppet ва монанди инҳоро медонанд ва танҳо як нафари онҳо дар баъзеҳо менависад. Гузаштан ба хидмати андозаи тасвир, пас вақте ки он тарк мекунад, таҷриба бо он меравад. Ва дар айни замон, ба шумо лозим меояд, ки як таҳиягари мушаххаси бозорро ҷустуҷӯ кунед, ки ин забонро медонад, хусусан агар он кам бошад. Яъне, аз нуктаи назари ташкилй ин мушкил аст. Аз нуқтаи назари devops, ба шумо лозим нест, ки як қатор китобҳои бозиро, ки барои густариши хидматҳо истифода мебаред, клон кунед, балки ба шумо лозим меояд, ки онҳоро дубора навишт.
Ҳоло мо дар Node.js хидмат бунёд карда истодаем ва ин танҳо як платформаи наздик барои ҳар як таҳиягар бо забони алоҳида хоҳад буд. Аммо мо нишаста фикр мекардем, ки бозӣ ба шамъ меарзад. Яъне ин саволест, ки шумо нишаста фикр кунед.
Мо дар Elasticsearch гузоришҳоро ҷамъоварӣ мекунем ва онҳоро дар Кибана мегузорем ва вобаста аз он ки он муҳити истеҳсолӣ ё озмоишӣ аст, коллекторҳои гуногун дар он ҷо истифода мешаванд. Дар ҷое Lumberjack, дар ҷои дигар чизи дигар, ман дар ёд надорам. Ва то ҳол дар баъзе хидматҳо баъзе ҷойҳо ҳастанд, ки мо Telegraf насб мекунем ва дар ҷои дигар алоҳида тир меандозем.
Чӣ тавр бо Puppet ва Ansible дар як муҳит зиндагӣ кардан мумкин аст?
Дарвоқеъ, мо ҳоло ду муҳит дорем, яке лӯхтак, дигаре Ansible. Мо барои дурага кардани онхо кор карда истодаем. Ansible як чаҳорчӯбаи хуб барои насби ибтидоӣ аст, Puppet як чаҳорчӯбаи бад барои насби аввал аст, зеро он кори дастиро мустақиман дар платформа талаб мекунад ва Puppet конвергенсияи конфигуратсияро таъмин мекунад. Ин маънои онро дорад, ки платформа худро дар ҳолати муосир нигоҳ медорад ва барои он ки мошини ансибилизатсияшуда то ба имрӯз нигоҳ дошта шавад, шумо бояд ҳамеша дар он китобҳои бозиро бо басомад иҷро кунед. Фарқият дар ҳамин аст.
Чӣ тавр шумо мутобиқатро нигоҳ доред? Оё шумо ҳам дар Ansible ва ҳам дар лӯхтак конфигуратсия доред?
Ин дарди бузурги мост, мо мувофиқати дастони худро нигоҳ медорем ва дар бораи он фикр мекунем, ки чӣ гуна аз ин ҳама ҳоло ба ҷое биравем. Маълум мешавад, ки Puppet бастаҳоро мебарорад ва дар он ҷо баъзе истинодҳоро нигоҳ медорад ва Ansible, масалан, рамзро мебарорад ва конфигуратсияҳои охирини барномаро дар он ҷо танзим мекунад.
Мо бо ин дар як ҷо дучор шудем ва мо бояд онро ҳамеша дар сари худ нигоҳ дорем. Мо танҳо қисмеро, ки дар Ruby кор мекард, бо барномаҳо номувофиқ буд, хомӯш кардем ва онро ҷудо нигоҳ доштем.
Конференцияи имсола DevOpsDays Москва 7 декабрь дар Технополис барпо мегардад. Барои гузоришҳо то 11 ноябр дархостҳо қабул мекунем. нависед мо, агар шумо мехоҳед сухан гӯед.