Безсървърните рамки са търсени през последните няколко години и са свидетели на нарастващо приемане сред разработчиците.

Независимо от това приложенията, базирани на контейнери, вече са популярни, както и Kubernetes сред бизнеса.

Kubernetes без съмнение е страхотен инструмент с добър потенциал. Неговата екосистема също се разраства с разнообразие от нови инструменти и най-новите технологии, като Knative, който има силата да направи Kubernetes още по-добър.

Knative беше въведен за преодоляване на ситуации, които водят до провал и установяване на основен стандарт за облачни платформи и нативна за облака оркестрация.

С други думи, рамката Knative без сървър може да отговаря на нуждите на компанията много по-добре от други внедрявания без сървър, базирани на облак.

В това ръководство ще говоря за Knative, неговите предимства, случаи на употреба, процедура за инсталиране, работна процедура и др.

Ето ни!

Какво е Knative?

Knative е базирана на Kubernetes рамка без сървър, разработена за първи път от Google. Той зарежда и изпълнява функции без сървър въз основа на изискванията на компанията, като по този начин минимизира отпадъците. Това е проект с отворен код, който добавя компоненти за внедряване, изпълнение и управление на приложения без сървър в Kubernetes.

Основната цел на рамката Knative без сървър е да управлява стандартите за оркестрация между платформи. Това се реализира чрез интегриране на функцията за създаване на контейнери, автоматично мащабиране, модели на събития и управление на работното натоварване.

По-рано имаше различни решения с отворен код, различни от Knative. Всяко решение има свой начин на внедряване, което може да причини фрагментация на пазара, тъй като липсват стандартизирани практики. Това означава, че е необходимо да изберете конкретен доставчик, ако искате конкретна системна функция.

Проблемите с миграцията обаче започнаха да излизат на преден план. И за да се избегнат подобни проблеми, бе въведена безсървърната рамка Knative. Така че, ако се затруднявате да включите някакви задачи, Knative може ефективно да го направи в рамките на базирания на Kubernetes тръбопровод.

Knative има три части:

  • Knative Build: Създава изображения на контейнери и ги прави достъпни от изходния код.
  • Knative Serving: Използва Istio и Kubernetes за свързване и внедряване на тези контейнерни изображения чрез присвоените инфраструктурни ресурси.
  • Knative Eventing: Позволява на потребителите да дефинират тригерите за събития и позволява на потребителите да свързват тригерите за събития с контейнерни функции.

Всеки път, когато Knative идентифицира събитие, той дефинира свързания процес, за да го стартира при поискване. С Knative няма нужда да разпределяте контейнерни възли, клъстери и подове за работа, тъй като Knative ангажира хостинг ресурси само когато даден процес се изпълнява. По този начин Knative балансира предимствата без сървър и контейнери.

Основни концепции на Knative

Нека да обсъдим основните концепции на Knative Serverless Framework и как те се отнасят към Knative примитивите.

Изграждане

Изграждането на Knative помага за използването и разширяването на съществуващите примитиви на Kubernetes, което ви позволява да изпълнявате компилации на контейнери от произхода. Той позволява изходния код от зависимостите и хранилището, като изгражда изображения на контейнери и ги регистрира.

  Как да активирате или деактивирате 3D Touch на iPhone

събития

Събитието ви помага да създадете по-добра комуникация между слабо свързани потребители на събития и производители за изграждане на управлявана от събития архитектура. Knative поставя тези събития в опашка, която трябва да се изпълни автоматично без скрипта на разработчиците.

По-късно тези събития се доставят в контейнерите. След това изпраща емисии до производителите на събития за изпълнение на задачи. Това ще намали натоварването на програмиста при създаване на код за установяване на връзка.

Функции

Функцията е независима единица за внедряване и услуга за обслужване на Knative, като микроуслуга. Неговият код е написан за изпълнение на една задача, като например:

  • Обработка на файл в база данни
  • Запазване на потребител в база данни
  • Извършване на планирана работа

Рамката Knative без сървър е проектирана да ви позволи да разработвате и внедрявате функции ефективно и да ги управлявате.

Плъгини

Лесно разширете или презапишете функционалността на безсървърната рамка Knative с помощта на добавки. Всеки файл serverless.yml съдържа свойство на плъгин, което включва различни плъгини.

Ресурси

Ресурсите са инфраструктурните компоненти на Knative без сървър, които вашата функция използва, включително:

  • AWS SQS източник на събитие
  • Планирана задача (изпълнявайте на всеки 5 минути, 10 минути и т.н.)
  • Източник на събития на Кафка

И още.

Услуги

Услугите са като проект. Следователно услугата е организационната единица на безсървърната рамка Knative. Въпреки че можете да имате много услуги за едно приложение, можете да мислите за услугата като файл на проект.

Това е мястото, където ще можете да дефинирате функциите, събитията и ресурсите, всички в един файл, озаглавен serverless.yml, serverless.json или serverless.js. Когато внедрявате услугите с рамката без сървър, всичко във файла се внедрява наведнъж.

Сервиране

Knative-serving е изграден в Istio и Kubernetes, който поддържа внедряване на приложения. Той позволява бързо разработване на безсървърни контейнери, мрежово програмиране и автоматично мащабиране за Istio компоненти. Knative-serving разглежда контейнерите като мащабируема услуга, която може да варира от един екземпляр до много екземпляри на контейнер.

Характеристики на Knative

Нека обсъдим някои от характеристиките на безсървърната рамка Knative:

  • Knative е базирана на Kubernetes рамка без сървър, която ви позволява да разгръщате услуги в Kubernetes.
  • Той лесно интегрира Knative с поддържаната среда
  • Разработчиците могат директно да използват API на Kubernetes с помощта на Knative за внедряване на услуги без сървър
  • Той позволява на потребителите да задействат услуги без сървър с помощта на системата за събития на Knative

Как работи Knative?

Knative безсървърна рамка работи като сегмент за управление на събития и свързва Istio и Kubernetes. Kubernetes работи като оркестратор за микроуслуги и контейнери. Istio, от друга страна, е мрежова технология с отворен код, която обединява различни компоненти, за да взаимодействат с потребителя и себе си.

Knative предоставя на потребителите множество компоненти, насочени към извършване на основна ежедневна работа. Тези компоненти се използват отново и отново в различни приложения. Разработчикът може да използва всеки език за програмиране. Следователно не се нуждаете от специфични познания по езици, тъй като Knative разпознава само изображения на контейнери.

Има три компонента на безсървърната рамка Knative, които са ключът към нейното функциониране.

Изграждане на нови контейнери

Компонентът за изграждане е отговорен за изграждането на нови контейнери. Може да конвертира изходните кодове в контейнер. Knative може да бъде конфигуриран да отговаря на специфичните за бизнеса нужди.

Първо Knative изважда изходния код от библиотеката като Github. След това се добавят основни зависимости, така че кодът да работи ефективно. След това изображенията на контейнерите се конструират и поставят във файлове, до които платформата Kubernetes има достъп.

  11 най-добър софтуер и онлайн инструменти за обединяване на видеоклипове

Контейнерът е достъпен за разработчици, използващи Kubernetes и Knative. По този начин контейнерите се изграждат, стига произходът на кода да е известен.

Обслужване или управление на платформата

Обслужващият компонент е отговорен за работата на платформата. То включва:

  • Конфигурация: Конфигурацията е сигурна при управлението на множество версии на услугата. Всеки път, когато има внедряване на новата функция на контейнер, Knative запазва съществуващата версия и създава нова с най-новите промени и функции. Освен това Knative дефинира състоянието на дадена услуга.
  • Автоматично мащабиране: За да работите по-добре безсървърни контейнери, трябва да можете да мащабирате автоматично контейнерите нагоре или надолу. Knative може автоматично да мащабира услуги за много, ако е необходимо.
  • Интелигентно маршрутизиране на услуги: Това е важна част от работния механизъм Knative. Тя позволява на разработчиците да насочват потока и количеството трафик към различни съществуващи версии на микроуслугите. Докато въвеждате нови функции и синьо-зелени стратегии за внедряване, може да се използва интелигентно маршрутизиране на услуги.

Тя ви позволява да изложите част от потребителите на скорошното тестване и версия и постепенно да насочвате огромен трафик към новата версия.

Събитие за дефиниране на функции

Събитийният компонент на Knative е отговорен за описанието на функцията на Knative. Позволява дефиниране на работата на контейнерите въз основа на събития. Различни събития задействат специфични функции на контейнерите.

Разработчиците могат да дефинират тригерите за събития и свързаните контейнери, за да позволят на Knative да си върши работата. Knative обработва списъка със събития и доставката на събитията.

Предимства на Knative

Knative предоставя услуги като управление на маршрути, поетапно освобождаване и свързване на услуги. Може да се похвали с огромна общност. Нека обсъдим как Knative влияе на компаниите да приемат тази технология.

  • За разлика от други решения, Knative има стандартни събития и е съвместим с решението FaaS. Той предлага стандартна рамка на CloudEvent, която помага при проектирането на безсървърна архитектура.
  • Въпреки че Knative не е PaaS, той ви позволява да създадете PaaS без сървър с платформата за оркестрация без сървър.
  • Knative има пълноправен и зрял дизайн без сървър.
  • Той поддържа различни платформи и ви дава универсален стандарт сред облачните доставчици, за да елиминирате възможността за обвързване на доставчиците с конкретно решение.

  • Knative предоставя гъвкава рамка.
  • Поддържа пропорционални поетапни издания.
  • Можете да изпитате екосистемата без сървър в контейнеризирана среда.
  • Knative премахва надеждността на управлението и инструментите.
  • Можете бързо да мигрирате към други облачни доставчици, които са интегрирани с Knative, като внедрите Kubernetes.
  • Той предлага управляван от заявка изчислителен модел.
  • Позволява ви да управлявате работните потоци като услуга.
  • С Knative можете да обработвате IoT данни, да изпълнявате проверки за достъпност и да валидирате конфигурациите на вашите групи за сигурност.
  • Това позволява на разработчиците да се съсредоточат върху кодирането и им позволява бързо да създават итеративен код.
  • Той гарантира, че разработчиците ще включат нови версии.
  • Базираният на събития модел на Knative помага за внедряването на проекти, включително абонамент, връзка с външната система и регистрация.

Предизвикателства на Knative (и някои решения)

Предизвикателства по отношение на ефективността

Knative Framework, който поддържа подходящи приложения, осигурява по-добра производителност на минимална цена. Въпреки това, неправилната комбинация от приложения може да доведе до по-високи разходи и недостатъчно използване на контейнерни ресурси. Това може да доведе до лоша производителност на приложението, което е най-голямото предизвикателство при безсървърното внедряване на Knative.

По този начин, лошо оразмерен пул от ресурси или грешни приложения могат да унищожат много предимства на Knative.

  Изтеглете файлове и копирайте файловото съдържание от Github хранилище с едно щракване [Chrome]

Можете да преодолеете това предизвикателство, като извършите тестове, за да проверите количествата ресурси и комбинацията от приложения на Knative. Измерете натоварванията на събитията, като оразмерите средните и максималните натоварвания за всяко и оцените общото потребление на ресурси. Повторете това за няколко приложения, за да създадете и изпълните пробна конфигурация, за да потвърдите оценките.

Функционални предизвикателства

Функционалните предизвикателства на Knative могат да бъдат:

  • Knative зависи от функции, които отговарят на модел без състояние. Това означава, че в самия компонент не се съхраняват данни. Разработването на функциите не е трудна фаза, но изисква лека промяна в подхода, което означава, че една грешка може да съсипе работата на софтуера.
  • Бизнес данните се състоят от многоетапни транзакции, а функциите без състояние поддържат контекст във всички стъпки. Knative няма тази възможност, както могат да направят публичните облачни инструменти без сървър.

Редовното наблюдение и коригиране на проблеми може да ви помогне да поддържате представянето си на прилични резултати.

Оперативни предизвикателства

В сравнение с предложенията без сървър в публичен облак, с Knative има предизвикателство за операциите. Администраторите не контролират основните сървъри с публичния облак. Но те ще трябва да управляват сървъри заедно с Kubernetes, контейнери, Knative и самия Istio.

Knative минимално разширява операциите и сложността на разработката за компаниите, които вече са се ангажирали с Kubernetes и контейнерите. Тези, които се ангажират с мрежови услуги и микроуслуги, ще намерят Knative естествено продължение.

Случаи на използване на Knative

За приложения, които пораждат променлив брой събития, оставащи в или над установените от времето граници, Knative е най-добрият за тях. Конкретните случаи на използване на безсървърната рамка Knative включват:

Събитийната ориентация е от съществено значение. Ако ИТ екипите не могат да си представят приложение като поредица от събития вместо транзакции, Knative може да не е добър избор поради функционални и ефикасни причини.

Предпоставки и инсталация на Knative

Както виждаме в горните раздели, Knative е набор от компоненти като събития и сервиране, който работи на мрежова мрежа и клъстер за оркестрация на работното натоварване. Има помощни програми за командния ред, които трябва да инсталираме за лесна работа. Следователно имаме нужда от няколко зависимости, за да сме сигурни, че можем да продължим с инсталацията.

Предпоставки

Има няколко опции за инсталиране на Kubernetes. Docker Desktop идва, за да активира лесен Kubernetes клъстер, който служи за различни цели. Простият подход е да използвате Kubernetes в Docker, за да стартирате клъстера Kubernetes заедно с възлите на контейнера на Docker. Удобният начин за работа с клъстера е да използвате инструмента от командния ред Knative.

Knative CLI предлага лесен и бърз интерфейс за създаване на своите ресурси. Помага при сложни задачи като разделяне на трафика и автоматично мащабиране. Удобният начин е да изтеглите съвместимия двоичен файл от страницата на GitHub.

Инсталация

След като имаме всички предпоставки, можем да продължим с инсталирането на компонентите. За средата за разработка има плъгин за бърз старт. Плъгинът помага при инсталирането на локален клъстер Knative с помощта на клиента Knative. Можете да изтеглите плъгина за бърз старт от официалната страница за издаване.

Заключение: Бъдещето на Knative

Knative замени изчисленията без сървър, като предостави автоматично мащабиране на приложенията. Това оказва значително влияние върху оперативно съвместимата и модулна система.

В бъдеще се очаква Knative да покрие текущите недостатъци и да се превърне в една от най-ефективните технологии за управление на безсървърната архитектура.

Технологията Knative е по-влиятелна за разработчиците, като разглежда предимствата й пред алтернативите без сървър. Knative ще ви помогне да спестите много време, като замени нуждата от изграждане и поддръжка на разширенията на Kubernetes. Разработчиците са доста доволни от технологията Knative, тъй като е лесна за използване и е чудесна алтернатива на решенията без сървър.

Така че, ако искате да увеличите максимално силата на средата на Kubernetes във вашите облачни работни потоци, приемете технологията Knative и се уверете сами в предимствата.

By admin