Муаррифии Танзу Миссияи Назорати

Имрӯз мо мехоҳем дар бораи VMware Tanzu, як хати нави маҳсулот ва хидматҳо, ки дар конфронси VMWorld соли гузашта эълон шуда буд, сӯҳбат кунем. Дар рӯзнома яке аз воситаҳои ҷолибтарин аст: Танзу Миссияи Назорати.

Эҳтиёт бошед: дар зери бурида тасвирҳои зиёде мавҷуданд.

Муаррифии Танзу Миссияи Назорати

Назорати миссия чист

Тавре ки худи ширкат дар блоги худ изҳор мекунад, ҳадафи асосии VMware Tanzu Mission Control ин "барои тартибот ба бесарусомонии кластерӣ" мебошад. Mission Control платформаи API мебошад, ки ба маъмурон имкон медиҳад, ки сиёсатҳоро ба кластерҳо ё гурӯҳҳои кластерҳо татбиқ кунанд ва қоидаҳои амниятро муқаррар кунанд. Асбобҳои ба SaaS асосёфта тавассути агент ба кластерҳои Kubernetes ба таври бехатар ҳамгиро мешаванд ва амалиёти гуногуни кластерҳои стандартиро, аз ҷумла амалиёти идоракунии давраи ҳаёт (ҷойгиркунӣ, миқёс, несткунӣ ва ғайра) дастгирӣ мекунанд.

Идеологияи хатти танзу ба истифодаи максималии технологияҳои кушодаасос асос ёфтааст. Барои идоракунии давраи зиндагии кластерҳои Tanzu Kubernetes Grid API Cluster истифода мешавад, Velero барои нусхабардорӣ ва барқарорсозӣ истифода мешавад, Sonobuoy барои назорат кардани риояи конфигуратсияи кластерҳои Kubernetes ва Contour ҳамчун контролери воридшавӣ истифода мешавад.

Рӯйхати умумии функсияҳои Танзу Mission Control чунин менамояд:

  • идоракунии мутамаркази ҳамаи кластерҳои Kubernetes шумо;
  • идоракунии шахсият ва дастрасӣ (IAM);
  • ташхис ва мониторинги вазъи кластер;
  • идоракунии конфигуратсия ва танзимоти амният;
  • банақшагирии мунтазами санҷишҳои саломатии кластерӣ;
  • эҷоди нусхаҳои эҳтиётӣ ва барқарорсозӣ;
  • идоракунии квота;
  • тасвири визуалии истифодаи захираҳо.

Муаррифии Танзу Миссияи Назорати

Чаро ин муҳим аст

Танзу Mission Control ба корхонаҳо дар ҳалли мушкилоти идоракунии парки калони кластерҳои Kubernetes, ки дар биноҳо, дар абр ва дар саросари провайдерҳои сершумори тарафи сеюм ҷойгиранд, кӯмак мекунад. Дер ё зуд, ҳар як ширкате, ки фаъолияташ ба IT алоқаманд аст, маҷбур мешавад, ки кластерҳои гуногуни гетерогениро, ки дар провайдерҳои гуногун ҷойгиранд, дастгирӣ кунад. Ҳар як кластер ба як тӯби барфӣ табдил меёбад, ки ба ташкилоти салоҳиятдор, инфрасохтори мувофиқ, сиёсатҳо, муҳофизат, системаҳои мониторинг ва ғайра ниёз дорад.

Имрӯзҳо ҳама гуна тиҷорат барои кам кардани хароҷот ва автоматикунонии равандҳои муқаррарӣ кӯшиш мекунад. Ва манзараи мураккаби IT ба таври возеҳ ба сарфакорӣ ва тамаркуз ба вазифаҳои афзалиятнок мусоидат намекунад. Танзу Mission Control ба созмонҳо имкон медиҳад, ки кластерҳои сершумори Kubernetes, ки дар як провайдерҳои сершумор ҷойгир карда шудаанд, ҳангоми ҳамоҳангсозии модели амалиётӣ.

Архитектураи ҳалли

Муаррифии Танзу Миссияи Назорати

Tanzu Mission Control як платформаи бисёриҷорадор аст, ки ба корбарон дастрасӣ ба маҷмӯи сиёсатҳои хеле танзимшавандаро медиҳад, ки онҳоро ба кластерҳо ва гурӯҳҳои кластерҳои Kubernetes татбиқ кардан мумкин аст. Ҳар як корбар ба созмон вобаста аст, ки "реша" -и захираҳо - гурӯҳҳои кластерӣ ва ҷойҳои корӣ мебошад.

Муаррифии Танзу Миссияи Назорати

Танзу Миссияи Control чӣ кор карда метавонад

Дар боло мо аллакай мухтасар номбар рӯйхати вазифаҳои ҳалли. Биёед бубинем, ки ин дар интерфейс чӣ гуна амалӣ карда мешавад.

Намоиши ягонаи ҳамаи кластерҳои Kubernetes дар корхона:

Муаррифии Танзу Миссияи Назорати

Эҷоди кластери нав:

Муаррифии Танзу Миссияи Назорати

Муаррифии Танзу Миссияи Назорати

Шумо метавонед фавран гурӯҳеро ба кластер таъин кунед ва он сиёсатҳои ба он таъиншударо мерос мегирад.

Пайвастшавии кластер:

Муаррифии Танзу Миссияи Назорати

Кластерҳои мавҷударо бо ёрии агенти махсус пайваст кардан мумкин аст.

Гурӯҳбандии кластер:

Муаррифии Танзу Миссияи Назорати

Дар гурӯҳҳои кластерӣ, шумо метавонед кластерҳоро гурӯҳбандӣ кунед, то сиёсатҳои таъиншударо фавран дар сатҳи гурӯҳ бидуни дахолати дастӣ мерос гиранд.

Ҷойҳои корӣ:

Муаррифии Танзу Миссияи Назорати

Қобилияти чандир танзим кардани дастрасӣ ба барномае, ки дар дохили якчанд фазои номҳо, кластерҳо ва инфрасохтори абрӣ ҷойгир аст, фароҳам меорад.

Биёед ба принсипҳои фаъолияти Танзу Миссияи Назорати дар кори лабораторӣ назар андозем.

Лабораторияи №1

Албатта, ба таври муфассал амалиёти Control Control ва қарорҳои нави Танзуро бидуни таҷриба тасаввур кардан хеле душвор аст. Барои омӯхтани хусусиятҳои асосии хат, VMware дастрасӣ ба якчанд курсиҳои лабораториро таъмин мекунад. Ин курсиҳо ба шумо имкон медиҳанд, ки бо дастурҳои қадам ба қадам корҳои лабораториро иҷро кунед. Илова ба худи Танзу Mission Control, ҳалли дигар барои санҷиш ва омӯзиш дастрас аст. Рӯйхати пурраи корҳои лабораториро пайдо кардан мумкин аст дар ин саҳифа.

Барои шиносоии амалӣ бо қарорҳои гуногун (аз ҷумла як “бозӣ” дар vSAN) вақтҳои гуногун ҷудо карда мешаванд. Парво накунед, ин рақамҳо хеле нисбӣ мебошанд. Масалан, ҳангоми гузаштан аз хона як лабораторияи Танзу Миссияи Назорати метавонад то 9 ва ним соат "ҳал" шавад. Илова бар ин, ҳатто агар вақтсанҷ тамом шавад, шумо метавонед баргардед ва ҳама чизро аз нав гузаред.

Гузаронидани кори лаборатории №1
Барои дастрасӣ ба лабораторияҳо ба шумо ҳисоби VMware лозим аст. Пас аз иҷозат, равзанаи поп-ап бо нақшаи асосии кор кушода мешавад. Дастурҳои муфассал дар тарафи рости экран ҷойгир карда мешаванд.

Пас аз хондани муқаддимаи кӯтоҳ дар бораи Танзу, шуморо ба машқ дар симулятсияи интерактивии Mission Control даъват мекунанд.

Равзанаи поп-апи мошини нави Windows кушода мешавад ва аз шумо хоҳиш карда мешавад, ки чанд амалиёти асосиро иҷро кунед:

  • кластер эҷод кунед
  • параметрҳои асосии онро танзим кунед
  • саҳифаро нав кунед ва боварӣ ҳосил кунед, ки ҳама чиз дуруст танзим карда шудааст
  • муқаррар сиёсат ва тафтиш кластер
  • фазои корӣ эҷод кунед
  • фазои ном эҷод кунед
  • боз бо сиёсат кор кунед, ҳар як қадам дар дастур муфассал шарҳ дода мешавад
  • навсозии кластери намоишӣ


Албатта, симулятсияи интерактивӣ барои омӯзиши мустақилона озодии кофӣ намедиҳад: шумо бо рельсҳое ҳаракат мекунед, ки аз ҷониби таҳиягарон пешакӣ гузошта шудаанд.

Лабораторияи №2

Дар ин ҷо мо аллакай бо як чизи ҷиддӣ сарукор дорем. Ин кори лабораторй мисли кори пештара ба «рельсхо» вобаста нест ва омузиши бодиккатро талаб мекунад. Мо онро дар ин ҷо пурра пешниҳод намекунем: барои сарфаи вақти шумо, мо танҳо модули дуюмро таҳлил хоҳем кард, ки модули аввал ба ҷанбаи назариявии кори назорати Миссияи Танзу бахшида шудааст. Агар хоҳед, шумо метавонед онро комилан мустақилона аз сар гузаронед. Ин модул ба мо ғарқ кардани амиқ ба идоракунии давраи зиндагии кластер тавассути Танзу Mission Control пешниҳод мекунад.

Эзоҳ: Корҳои лаборатории Танзу Миссияи Назорати мунтазам навсозӣ ва такмил дода мешаванд. Агар ҳангоми анҷом додани лаборатория ягон экран ё қадамҳо аз экранҳои зер фарқ кунанд, дастурҳоро дар тарафи рости экран иҷро кунед. Мо ҳангоми навиштан версияи ҷории LR-ро мегузарем ва унсурҳои асосии онро баррасӣ мекунем.

Гузаронидани кори лаборатории №2
Пас аз раванди иҷозатдиҳӣ дар VMware Cloud Services, мо Tanzu Mission Control -ро оғоз мекунем.

Муаррифии Танзу Миссияи Назорати

Қадами аввалине, ки лаборатория пешниҳод мекунад, ҷойгиркунии кластери Kubernetes мебошад. Аввалан мо бояд бо истифода аз PuTTY ба Ubuntu VM дастрасӣ пайдо кунем. Утилитаро оғоз кунед ва сессияро бо Ubuntu интихоб кунед.

Муаррифии Танзу Миссияи Назорати

Мо бо навбат се фармонро иҷро мекунем:

  • ташкили кластер: kind create cluster --config 3node.yaml --name=hol
  • боркунии файли KUBECONFIG: export KUBECONFIG="$(kind get kubeconfig-path --name="hol")"
  • баромади гиреҳ: kubectl get nodes

Муаррифии Танзу Миссияи Назорати

Акнун кластере, ки мо офаридаем, бояд ба Танзу Mission Control илова карда шавад. Аз PuTTY мо ба Chrome бармегардем, ба кластерҳо меравем ва клик мекунем Замима КЛАСТЕР.
Аз менюи афтанда гурӯҳеро интихоб кунед - Пешфарз, номи пешниҳодкардаи лабораторияро ворид кунед ва клик кунед ба Реестри.

Муаррифии Танзу Миссияи Назорати

Фармони қабулшударо нусхабардорӣ кунед ва ба PuTTY гузаред.

Муаррифии Танзу Миссияи Назорати

Мо фармони қабулшударо иҷро мекунем.

Муаррифии Танзу Миссияи Назорати

Барои пайгирии пешрафт, фармони дигареро иҷро кунед: watch kubectl get pods -n vmware-system-tmc. Мо интизор мешавем, ки ҳама контейнерҳо статус доранд якбора ё Гузаронида шуд.

Муаррифии Танзу Миссияи Назорати

Бозгашт ба Танзу Mission Control ва клик кунед ПАЙВАСТАРО САНЧЕД. Агар ҳама чиз хуб бошад, нишондиҳандаҳои ҳамаи чекҳо бояд сабз бошанд.

Муаррифии Танзу Миссияи Назорати

Акнун биёед як гурӯҳи нави кластерҳо эҷод кунем ва дар он ҷо кластери навро ҷойгир кунем. Ба гурӯҳҳои кластер равед ва клик кунед ГУРУХИ НАВИ КЛАСТЕР. Номро ворид кунед ва клик кунед Креатив.

Муаррифии Танзу Миссияи Назорати

Гурӯҳи нав бояд фавран дар рӯйхат пайдо шавад.

Муаррифии Танзу Миссияи Назорати

Биёед кластери навро ҷойгир кунем: ба Гурӯҳҳо, матбуот КЛАСТЕРИ НАВ ва варианти марбут ба кори лабораториро интихоб кунед.

Муаррифии Танзу Миссияи Назорати

Биёед номи кластерро илова кунем, гурӯҳи ба он таъиншударо интихоб кунем - дар ҳолати мо, лабораторияҳои амалӣ - ва минтақаи ҷойгиркунӣ.

Муаррифии Танзу Миссияи Назорати

Ҳангоми сохтани кластер дигар вариантҳо мавҷуданд, аммо тағир додани онҳо дар вақти лаборатория ҳеҷ маъно надорад. Конфигуратсияеро, ки ба шумо лозим аст, интихоб кунед ва клик кунед Баъдӣ.

Муаррифии Танзу Миссияи Назорати

Баъзе параметрҳо бояд таҳрир карда шаванд, барои ин, клик кунед Edit.

Муаррифии Танзу Миссияи Назорати

Биёед шумораи гиреҳҳои корро ба ду зиёд кунем, параметрҳоро захира кунем ва клик кунем Креатив.
Дар давоми ин раванд шумо як сатри пешрафтро хоҳед дид.

Муаррифии Танзу Миссияи Назорати

Пас аз ҷойгиркунии бомуваффақият, шумо ин расмро хоҳед дид. Ҳама квитансияҳо бояд сабз бошанд.

Муаррифии Танзу Миссияи Назорати

Ҳоло мо бояд файли KUBECONFIG-ро зеркашӣ кунем, то кластерро бо истифода аз фармонҳои стандартии kubectl идора кунем. Инро метавон мустақиман тавассути интерфейси корбарии Tanzu Mission Control анҷом дод. Файлро зеркашӣ кунед ва ба зеркашии Tanzu Mission Control CLI бо клик идома диҳед ин ҷоро ангушт зан.

Муаррифии Танзу Миссияи Назорати

Версияи дилхоҳро интихоб кунед ва CLI-ро зеркашӣ кунед.

Муаррифии Танзу Миссияи Назорати

Ҳоло мо бояд API Token-ро гирем. Барои ин, ба Ҳисоби ман ва аломати нав тавлид кунед.

Муаррифии Танзу Миссияи Назорати

Майдонҳоро пур кунед ва клик кунед НАСЛ.

Муаррифии Танзу Миссияи Назорати

Нишонаи натиҷаро нусхабардорӣ кунед ва клик кунед Идома .... Power Shell -ро кушоед ва фармони tmc-login, пас нишонае, ки мо дар қадами қаблӣ гирифта ва нусхабардорӣ карда будем, ва он гоҳ Номи контексти воридшавиро ворид кунед. Интихоб кунед маълумоти гузоришҳо аз пешниҳодшуда, минтақа ва Olympus - пешфарз ҳамчун калиди ssh.

Муаррифии Танзу Миссияи Назорати

Мо фазои номҳоро мегирем:kubectl --kubeconfig=C:UsersAdministratorDownloadskubeconfig-aws-cluster.yml get namespaces.

Муаррифӣ кунед kubectl --kubeconfig=C:UsersAdministratorDownloadskubeconfig-aws-cluster.yml get nodesто боварӣ ҳосил кунед, ки ҳамаи гиреҳҳо дар ҳолати ҳастанд тайёр.

Муаррифии Танзу Миссияи Назорати

Ҳоло мо бояд як барномаи хурдро дар ин кластер ҷойгир кунем. Биёед ду ҷойгиркунӣ - қаҳва ва чой - дар шакли хидматҳои coffee-svc ва tea-svc созем, ки ҳар кадоми онҳо тасвирҳои гуногунро оғоз мекунанд - nginxdemos/hello ва nginxdemos/hello:plain-text. Ин ба таври зерин анҷом дода мешавад.

Ба воситаи PowerShell ба зеркашиҳо равед ва файлро пайдо кунед кафе-хизматрасонй.ямл.

Муаррифии Танзу Миссияи Назорати

Бо сабаби баъзе тағйирот дар API, мо бояд онро навсозӣ кунем.

Сиёсати амнияти Pod бо нобаёнӣ фаъол аст. Барои иҷро кардани барномаҳо бо имтиёзҳо, шумо бояд ҳисоби худро пайваст кунед.

Эҷоди пайванд: kubectl --kubeconfig=kubeconfig-aws-cluster.yml create clusterrolebinding privileged-cluster-role-binding --clusterrole=vmware-system-tmc-psp-privileged --group=system:authenticated
Биёед барномаро ҷойгир кунем: kubectl --kubeconfig=kubeconfig-aws-cluster.yml apply -f cafe-services.yaml
Санҷиш: kubectl --kubeconfig=kubeconfig-aws-cluster.yml get pods

Муаррифии Танзу Миссияи Назорати

Модули 2 анҷом ёфт, шумо зебо ва аҷиб ҳастед! Мо тавсия медиҳем, ки модулҳои боқимонда, аз ҷумла идоракунии сиёсат ва санҷишҳои мувофиқатро мустақилона анҷом диҳед.

Агар шумо хоҳед, ки ин лабораторияро пурра анҷом диҳед, шумо метавонед онро дар ин ҷо пайдо кунед дар каталог. Ва мо ба қисми ниҳоии мақола мегузарем. Биёед дар бораи он чизе, ки мо тавонистем дидем, сӯҳбат кунем, хулосаҳои аввалини дақиқро барорем ва ба таври муфассал бигӯем, ки Танзу Миссияи Control дар робита бо равандҳои воқеии тиҷорат чист.

Андешаҳо ва хулосаҳо

Албатта, дар бораи масъалахои амалии кор бо Танзу сухан гуфтан барвакт аст. Барои худомузй масолех он кадар зиёд нест ва имруз барои аз хар тараф «пок кардан» махсулоти навро чойгир кардан мумкин нест. Бо вуҷуди ин, ҳатто аз маълумоти мавҷуда, хулосаҳои муайян баровардан мумкин аст.

Манфиатҳои Танзу Миссияи Назорати

Система воқеан ҷолиб буд. Ман мехостам фавран якчанд неъматҳои муфид ва муфидро қайд кунам:

  • Шумо метавонед тавассути панели веб ва тавассути консол кластерҳо эҷод кунед, ки ба таҳиягарон воқеан маъқул мешаванд.
  • Идоракунии RBAC тавассути фазои корӣ дар интерфейси корбар амалӣ карда мешавад. Он ҳанӯз дар лаборатория кор намекунад, аммо дар назария ин як чизи бузург аст.
  • Идоракунии имтиёзҳои мутамарказ дар асоси Шаблон
  • Дастрасии пурра ба фазоҳои ном.
  • Муҳаррири YAML.
  • Эҷоди сиёсати шабака.
  • Мониторинги саломатии кластер.
  • Имконияти нусхабардорӣ ва барқарорсозӣ тавассути консол.
  • Квотаҳо ва захираҳоро бо визуализатсияи истифодаи воқеӣ идора кунед.
  • Оғози автоматии санҷиши кластер.

Боз ҳам, бисёре аз ҷузъҳо дар ҳоли таҳия қарор доранд, аз ин рӯ барои пурра дар бораи мусбат ва манфии баъзе асбобҳо сӯҳбат кардан хеле барвақт аст. Дар омади гап, Tanzu MC, дар асоси намоиш, метавонад кластерро дар парвоз навсозӣ кунад ва дар маҷмӯъ, тамоми давраи ҳаёти кластерро барои провайдерҳои сершумор дар як вақт таъмин кунад.

Дар ин ҷо баъзе мисолҳои "дараҷаи баланд" ҳастанд.

Ба кластери каси дигар бо оинномаи худ

Фарз мекунем, ки шумо як гурӯҳи таҳиякунанда доред, ки нақшҳо ва масъулиятҳои дақиқ муайян карда шудаанд. Хар кас ба кори шахсии худ машгул аст ва хатто тасодуфан ба кори хамкасбони худ халал нарасонад. Ё ин ки коллектив як ё якчанд мутахасси-сони камтачриба дорад, ки ба онхо хукуку озодихои нолозим додан намехохед. Биёед инчунин фарз кунем, ки шумо дар як вақт аз се провайдер Kubernetes доред. Мутаносибан, барои махдуд кардани хукукхо ва ба як махражи умуми овардан ба хар як панели идоракунй як-як рафта, хама чизро дастй кайд кардан лозим меояд. Розӣ шавед, на вақти пурсамартарин. Ва чӣ қадаре ки шумо захираҳо дошта бошед, раванд ҳамон қадар дилгиркунандатар мешавад. Танзу Mission Control ба шумо имкон медиҳад, ки ҷудокунии нақшҳоро аз "як равзана" идора кунед. Ба фикри мо, ин вазифаи хеле қулай аст: агар шумо тасодуфан дар ҷое нишон додани ҳуқуқҳои заруриро фаромӯш кунед, ҳеҷ кас чизеро вайрон намекунад.

Зимнан, хамкорони мо аз МТС дар блоги худ муқоиса Kubernetes аз фурӯшанда ва манбаи кушода. Агар шумо кайҳо боз мехостед бидонед, ки фарқиятҳо чист ва ҳангоми интихоб чиро бояд ҷустуҷӯ кунед, хуш омадед.

Кори паймон бо гузоришҳо

Мисоли дигар аз ҳаёти воқеӣ кор бо логҳо мебошад. Фарз мекунем, ки даста низ як озмоишгар дорад. Як рӯзи хуб ӯ ба назди таҳиягарон меояд ва эълон мекунад: "дар барнома хатогӣ ёфт шуд, мо онро зуд ислоҳ мекунем." Табиист, ки аввалин чизе, ки таҳиякунанда мехоҳад бо он шинос шавад, ин гузоришҳо мебошад. Фиристодани онҳо ҳамчун файл тавассути почтаи электронӣ ё Telegram одоби бад ва асри гузашта аст. Mission Control алтернатива пешниҳод мекунад: шумо метавонед ба таҳиякунанда ҳуқуқҳои махсус муқаррар кунед, то онҳо танҳо гузоришҳоро дар фазои номи мушаххас хонанд. Дар ин ҳолат, санҷишкунанда танҳо бояд бигӯяд: "дар фалон барнома, дар фалон майдон, дар фазо ва фазо номҳо хатоҳо мавҷуданд" ва таҳиякунанда метавонад ба осонӣ гузоришҳоро кушояд ва локализатсия карда метавонад. масъала. Ва аз сабаби маҳдуд будани ҳуқуқ, шумо наметавонед онро фавран ислоҳ кунед, агар салоҳияти шумо иҷозат надиҳад.

Кластери солим барномаи солим дорад.

Хусусияти дигари бузурги Tanzu MC ин пайгирии саломатии кластерӣ мебошад. Аз руи материалхои пешакй ба назар гирифта, система ба шумо имкон медихад, ки баъзе маълумотхои оморро бубинед. Дар айни замон гуфтан душвор аст, ки ин маълумот то чӣ андоза муфассал хоҳад буд: то ҳол ҳама чиз хеле хоксорона ва оддӣ ба назар мерасад. Мониторинги сарбории CPU ва RAM мавҷуд аст, ҳолати ҳамаи ҷузъҳо нишон дода мешавад. Вале хатто дар чунин шакли спартакиада он детальи хеле муфид ва таъсирбахш аст.

Натиҷаҳо

Албатта, дар муаррифии лабораторияи Миссияи Назорати, дар шароити ба назар хушкида, баъзе кунҷҳои ноҳамвор мавҷуданд. Эҳтимол шумо худатон онҳоро пайхас хоҳед кард, агар шумо қарор диҳед, ки корро аз сар гузаронед. Баъзе ҷанбаҳо ба таври кофӣ ба таври интуитивӣ сохта нашудаанд - ҳатто маъмури ботаҷриба барои фаҳмидани интерфейс ва имкониятҳои он бояд дастурро хонад.

Бо вуҷуди ин, бо назардошти мураккабии маҳсулот, аҳамияти он ва нақши он дар бозор, он бузург шуд. Чунин ба назар мерасад, ки эҷодкорон кӯшиш кардаанд, ки ҷараёни кории корбарро беҳтар кунанд. Ҳар як унсури назоратро то ҳадди имкон функсионалӣ ва фаҳмо созед.

Танҳо ин аст, ки Танзуро дар курсии озмоишӣ бисанҷед, то дар ҳақиқат тамоми бартариятҳо, манфиҳо ва навовариҳои онро дарк кунед. Ҳамин ки чунин имконият пайдо мешавад, мо ба хонандагони Habr гузориши муфассалро дар бораи кор бо маҳсулот пешкаш хоҳем кард.

Манбаъ: will.com

Илова Эзоҳ