Серија постова на Истио Сервице Месх

Започињемо серију постова који приказују неке од многих могућности Истио Сервице Месх-а у комбинацији са Ред Хат ОпенСхифт-ом и Кубернетес-ом.

Серија постова на Истио Сервице Месх

Први део, данас:

  • Хајде да објаснимо концепт Кубернетес бочних контејнера и формулишемо лајтмотив ове серије постова: "не морате ништа да мењате у свом коду".
  • Хајде да представимо фундаменталну ствар Истио-а - правила рутирања. Све остале Истио функције су изграђене на њима, пошто су правила која вам омогућавају да усмерите саобраћај на микросервисе, користећи ИАМЛ датотеке ван кода услуге. Такође разматрамо шему распоређивања Цанари Деплоимент-а. Новогодишњи бонус – 10 интерактивних лекција на Истио-у


Други део, који долази ускоро, ће вам рећи:

  • Како Истио имплементира Поол Ејецтион у комбинацији са прекидачем струјног кола и показаће како вам Истио омогућава да уклоните мртве или лоше перформансе из кола за балансирање.
  • Такође ћемо погледати тему прекидача из првог поста да видимо како се Истио може користити овде. Показаћемо вам како да усмерите саобраћај и да рукујете мрежним грешкама користећи ИАМЛ конфигурационе датотеке и терминалске команде без најмањих промена у коду услуге.

трећи део:

  • Прича о праћењу и праћењу, који су већ уграђени или се лако додају у Истио. Показаћемо вам како да користите алате као што су Прометхеус, Јаегер и Графана у комбинацији са ОпенСхифт скалирањем да бисте без напора управљали микросервисним архитектурама.
  • Прелазимо са надгледања и руковања грешкама на њихово намерно увођење у систем. Другим речима, учимо како да извршимо убацивање грешака без промене изворног кода, што је веома важно са тачке гледишта тестирања - пошто ако промените сам код за ово, постоји ризик од увођења додатних грешака.

Коначно, у завршној објави на Истио Сервице Месх:

  • Идемо на Тамну страну. Тачније, научићемо да користимо шему Дарк Лаунцх, када се код поставља и тестира директно на производним подацима, али ни на који начин не утиче на рад система. Овде је Истиова способност да подели саобраћај згодна. А могућност тестирања на живим производним подацима без утицаја на рад борбеног система на било који начин је најубедљивији метод провере.
  • Надовезујући се на Дарк Лаунцх, показаћемо вам како да користите Цанари Деплоимент модел да бисте смањили ризик и олакшали стављање новог кода у производњу. Сама Цанари Деплоимент није нова, али Истио вам омогућава да имплементирате ову шему са само једноставним ИАМЛ датотекама.
  • Коначно, показаћемо вам како да користите Истио Егресс да бисте дали приступ услугама онима који су изван ваших кластера како бисте користили могућности Истио-а када радите са Интернетом.

Дакле, идемо...

Истио алати за праћење и управљање – све што вам је потребно за оркестрирање микросервиса у мрежи услуга сервисна мрежа.

Шта је Истио Сервице Месх

Сервисна мрежа имплементира функције као што су праћење саобраћаја, контрола приступа, откривање, безбедност, толеранција грешака и друге корисне ствари за групу услуга. Истио вам омогућава да све ово урадите без најмањих промена у коду самих услуга. Која је тајна магије? Истио за сваку услугу прилаже свој проки у облику контејнера за приколицу (бочна приколица је приколица за мотоцикл), након чега сав саобраћај до овог сервиса иде преко проксија, који, вођен одређеним политикама, одлучује како, када и да ли ће овај саобраћај уопште треба да стигне у службу. Истио такође омогућава имплементацију напредних ДевОпс техника као што су канаричке примене, прекидачи, убризгавање грешке и многе друге.

Како Истио ради са контејнерима и Кубернетес-ом

Истио сервисна мрежа је имплементација свега што је потребно за креирање и управљање микроуслугама: надгледање, праћење, прекидачи, рутирање, балансирање оптерећења, убризгавање грешке, поновни покушаји, тајмаути, пресликавање, контрола приступа, ограничавање брзине и још много тога. И иако данас постоји тона библиотека за имплементацију ових функција директно у коду, са Истио-ом можете добити све исте ствари без промене било чега у свом коду.

Према моделу приколице, Истио ради у Линук контејнеру, који се налази у једном Кубернетес-под са контролисаном услугом и убацује и издваја функционалност и информације према датој конфигурацији. Наглашавамо да је ово ваша сопствена конфигурација и да живи ван вашег кода. Дакле, код постаје много једноставнији и краћи.

Оно што је такође важно јесте да се испоставља да оперативна компонента микросервиса није ни на који начин повезана са самим кодом, што значи да се њихов рад може безбедно пренети на ИТ стручњаке. Заиста, зашто би програмер био одговоран за прекидаче и убризгавање квара? Реаговати, да, али их обрадити и креирати? Ако све ово уклоните из кода, програмери ће моћи у потпуности да се фокусирају на функционалност апликације. И сам код ће постати краћи и једноставнији.

Сервисна мрежа

Истио, који имплементира функције за управљање микросервисима ван њиховог кода, је концепт сервисне мреже. Другим речима, то је координирана група од једне или више бинарних датотека које формирају мрежу мрежних функција.

Како Истио ради са микросервисима

Овако изгледа рад контејнера за приколице у комбинацији Кубернетес и Минисхифт из птичје перспективе: покрените инстанцу Минисхифт-а, направите пројекат за Истио (назовимо га „истио-систем”), инсталирајте и покрените све компоненте повезане са Истио-ом. Затим, док креирате пројекте и модуле, додајете информације о конфигурацији у своје примене и ваши подови почињу да користе Истио. Поједностављени дијаграм изгледа овако:

Серија постова на Истио Сервице Месх

Сада можете да промените Истио подешавања да бисте, на пример, организовали убацивање грешака, подршку Цанари Деплоимент или друге Истио функције - и све то без додиривања кода самих апликација. Рецимо да желите да преусмерите сав веб саобраћај са корисника вашег највећег клијента (Фоо Цорпоратион) на нову верзију сајта. Да бисте то урадили, једноставно креирајте Истио правило рутирања које ће тражити @фооцорпоратион.цом у ИД-у корисника и према томе преусмерити. За све остале кориснике ништа се неће променити. У међувремену ћете мирно тестирати нову верзију сајта. И имајте на уму да за ово уопште не морате да укључујете програмере.

И да ли ћете то морати скупо да платите?

Нимало. Истио је прилично брз и уписан је Go и ствара врло мало трошкова. Поред тога, могући губитак у онлајн продуктивности је надокнађен повећањем продуктивности програмера. Барем у теорији: не заборавите да је време програмера драгоцено. Што се тиче трошкова софтвера, Истио је софтвер отвореног кода, тако да га можете добити и користити бесплатно.

Савладајте сами

Ред Хат Девелопер Екпериенце Теам је развио детаљан практични рад вођство од Истио (на енглеском). Ради на Линук-у, МацОС-у и Виндовс-у, а код је доступан у Јави и Ноде.јс.

10 интерактивних лекција о Истио-у

Блок 1 - За почетнике

Увод у Истио
КСНУМКС минута
Хајде да се упознамо са Сервице Месх, научимо како да инсталирамо Истио у ОпенСхифт Кубернетес кластер.
После

Примена микросервиса у Истио-у
КСНУМКС минута
Користимо Истио за примену три микросервиса са Спринг Боот-ом и Верт.к-ом.
После

Блок 2 – средњи ниво

Праћење и праћење у Истио
КСНУМКС минута
Истражићемо Истио уграђене алате за праћење, прилагођене метрике и ОпенТрацинг преко Прометхеуса и Графане.
После

Једноставно рутирање у Истио
КСНУМКС минута
Научите како да управљате рутирањем у Истио-у користећи једноставна правила.
После

Напредна правила рутирања
КСНУМКС минута
Хајде да погледамо Истио паметно рутирање, контролу приступа, балансирање оптерећења и ограничавање брзине.
После

Блок 3 – напредни корисник

Ињекција грешке у Истио
КСНУМКС минута
Проучавамо сценарије руковања кваровима у дистрибуираним апликацијама, креирамо ХТТП грешке и кашњења на мрежи и учимо да користимо инжењеринг хаоса за обнављање окружења.
После

Прекидач у Истио
КСНУМКС минута
Инсталирамо Сиеге за сајтове за стресно тестирање и учимо како да обезбедимо толеранцију грешака у позадини коришћењем понављања, прекидача и избацивања базена.
После

Егресс и Истио
КСНУМКС минута
Користимо излазне руте да креирамо правила за интеракцију интерних услуга са спољним АПИ-јима и услугама.
После

Истио и Киали
КСНУМКС минута
Научите да користите Киали да бисте добили преглед мреже услуга и истражили токове захтева и података.
После

Узајамни ТЛС у Истио
КСНУМКС минута
Креирамо Истио Гатеваи и ВиртуалСервице, затим детаљно проучавамо узајамни ТЛС (мТЛС) и његова подешавања.
После

Блок 3.1 – Дубоко зарон: Истио сервисна мрежа за микросервисе

Серија постова на Истио Сервице Месх
О чему је књига:

  • Шта је сервисна мрежа?
  • Истио систем и његова улога у микросервисној архитектури.
  • Коришћење Истио-а за решавање следећих проблема:
    • Толеранција грешака;
    • Роутинг;
    • тестирање хаоса;
    • Сецурити;
    • Телеметријска збирка помоћу трагова, метрике и Графане.

Да бисте преузели књигу

Серија чланака о сервисним мрежама и Истио-у

Пробајте и сами

Ова серија постова није намењена да пружи дубоко уроњење у свет Истиа. Само желимо да вас упознамо са концептом и можда вас инспиришемо да сами испробате Истио. То је потпуно бесплатно, а Ред Хат пружа све алате који су вам потребни да бисте започели са ОпенСхифт, Кубернетес, Линук контејнерима и Истио-ом, укључујући: Ред Хат Девелопер ОпенСхифт Цонтаинер Платформ, наш водич за Истио и други ресурси на нашој микросајт на сервисној мрежи. Не одлажите, почните данас!

Истио правила рутирања: усмеравање захтева за услугу тамо где треба да иду

ОпенСхифт и Кубернетес урадите одличан посао обраћања микросервис усмерава до потребних махуна. Ово је један од разлога постојања Кубернетеса – рутирање и балансирање оптерећења. Али шта ако вам треба суптилније и софистицираније рутирање? На пример, да истовремено користите две верзије микросервиса. Како Истио правила руте могу помоћи овде?

Правила рутирања су правила која заправо одређују избор руте. Без обзира на ниво сложености система, општи принцип рада ових правила остаје једноставан: захтеви се рутирају на основу одређених параметара и вредности ХТТП заглавља.
Погледајмо примере:

Кубернетес подразумевано: тривијално „50/50“

У нашем примеру ћемо показати како истовремено користити две верзије микросервиса у ОпенСхифт-у, назовимо их в1 и в2. Свака верзија ради у сопственој Кубернетес под и подразумевано покреће равномерно уравнотежено кружно рутирање. Сваки под добија свој део захтева на основу броја својих микросервисних инстанци, другим речима, реплика. Истио вам омогућава да ручно промените овај баланс.

Рецимо да смо применили две верзије наше услуге препорука на ОпенСхифт, препорука-в1 и препорука-в2.
На сл. Слика 1 показује да када је свака услуга представљена у једној инстанци, захтеви се равномерно смењују између њих: 1-2-1-2-... Овако функционише Кубернетес рутирање подразумевано:

Серија постова на Истио Сервице Месх

Пондерисана дистрибуција између верзија

На сл. Слика 2 показује шта се дешава ако повећате број реплика в2 сервиса са једне на две (ово се ради помоћу команде оц сцале —реплицас=2 деплоимент/рецоммендатион-в2). Као што видите, захтеви између в1 и в2 су сада подељени у односу један према три: 1-2-2-1-2-2-…:

Серија постова на Истио Сервице Месх

Занемари верзију користећи Истио

Истио олакшава промену дистрибуције захтева на начин који нам је потребан. На пример, пошаљите сав саобраћај само на препорука-в1 користећи следећу Истио иамл датотеку:

Серија постова на Истио Сервице Месх

Овде морате обратити пажњу на ово: махуне се бирају према ознакама. Наш пример користи ознаку в1. Параметар „тежина: 100“ значи да ће 100% саобраћаја бити усмерено на све сервисне модуле који имају ознаку в1.

Дистрибуција директива између верзија (Цанари Деплоимент)

Затим, користећи параметар тежине, можете да усмерите саобраћај на оба под-а, занемарујући број микросервисних инстанци које се покрећу у свакој од њих. На пример, овде усмеравамо 90% саобраћаја на в1 и 10% на в2:

Серија постова на Истио Сервице Месх

Одвојено рутирање за мобилне кориснике

У закључку ћемо показати како да натерамо да се саобраћај мобилних корисника усмери на сервис в2, а сви остали на в1. Да бисмо то урадили, користимо регуларне изразе за анализу вредности корисничког агента у заглављу захтева:

Серија постова на Истио Сервице Месх

Сада је твој ред

Пример са регуларним изразима за рашчлањивање заглавља требало би да вас мотивише да пронађете сопствене употребе Истио правила рутирања. Штавише, могућности су овде прилично опсежне, јер се вредности заглавља могу формирати у изворном коду апликације.

И запамтите да Опс, не Дев

Све што смо приказали у горњим примерима ради се без најмањих промена у изворном коду, осим у случајевима када је потребно генерисати посебна заглавља захтева. Истио ће бити користан како програмерима, који ће, на пример, моћи да га користе у фази тестирања, тако и специјалистима за рад ИТ система, којима ће у великој мери помоћи у производњи.

Дакле, хајде да поновимо лајтмотив ове серије постова: не морате ништа да мењате у свом коду. Нема потребе за прављењем нових слика или покретањем нових контејнера. Све ово се имплементира ван кода.

Користе своју машту

Замислите само могућности анализе заглавља помоћу регуларних израза. Желите да преусмерите свог највећег купца на посебну верзију вашег микросервис? Лако! Треба вам посебна верзија за Цхроме прегледач? Нема проблема! Можете усмеравати саобраћај према скоро свим карактеристикама.

Пробајте и сами

Читање о Истио-у, Кубернетес-у и ОпенСхифт-у је једна ствар, али зашто не додирнете све сами? Тим Ред Хат програм за програмере је припремио детаљан водич (на енглеском) који ће вам помоћи да савладате ове технологије што је брже могуће. Приручник је такође 100% отвореног кода, тако да је објављен у јавном домену. Датотека ради на мацОС-у, Линук-у и Виндовс-у, а изворни код је доступан у Јава и ноде.јс верзијама (верзије на другим језицима ускоро). Само отворите одговарајуће гит спремиште у свом претраживачу Ред Хат Девелопер Демо.

У следећем посту: лепо решавамо проблеме

Данас сте видели шта могу да ураде Истио правила рутирања. Сада замислите исту ствар, али само у вези са руковањем грешкама. Управо о томе ћемо говорити у следећем посту.

Извор: ввв.хабр.цом

Додај коментар