Много възможности за избор се предоставят на екипите за информационни технологии (ИТ) при изпълнение на контейнерни приложения, като се обръща внимание на всички нива на технически опит.
Може да е трудно да изберете един, като се има предвид, че след като направите своя избор, вероятно скоро няма да мигрирате към друга опция.
Тази публикация противопоставя две важни опции: Amazon Elastic Container Service (ECS) и Kubernetes.
И двете са способни платформи в домейните за оркестрация на контейнери и управление на микроуслуги. И точно преди да продължите, опресняването на контейнерите не вреди. Контейнерите са популяризирани за улесняване на разработването на код, промоцията и внедряването в много среди. Те са абстракции на приложни слоеве, обвиващи код с необходимите зависимости, библиотеки и настройки на средата в изпълним пакет.
Въпреки че основната цел за използването на контейнери е да се опрости процеса на внедряване на код, управлението на хиляди от тях става все по-голямо предизвикателство. Необходим е друг механизъм за внедряване на високонадеждни внедрявания, мащабиране на приложения според натоварването, смяна на нездравословни контейнери с нови, балансиране на натоварването и излагане на портове.
Това е мястото, където оркестрацията на контейнерите идва на помощ. Освен това, има нужда от средства за управление на контейнери и управление на цялостната им инфраструктура. Налични са много инструменти за решаване на този проблем, но нека стесним фокуса до няколко.
Тази част сравнява ECS и Kubernetes, като подчертава предимствата на всеки от тях и завършва с насока за избор на правилния въз основа на вашия проект.
Съдържание
Какво е Amazon ECS?
Amazon ECS е услуга за оркестриране на контейнери, която рационализира внедряването, управлението и мащабирането на контейнерни приложения. По принцип вие определяте вашето приложение и необходимите му ресурси. След това Amazon ECS стартира, наблюдава и мащабира вашето приложение в различни изчислителни опции, като същевременно позволява интегрирането на други необходими AWS услуги. Например, можете да проверите състоянието и да промените вашите клъстери програмно.
ECS ви позволява да разположите вашите приложения чрез група сървъри, наречени клъстери, като използвате дефиниции на задачи и извиквания на интерфейси на приложни програми (API).
Прочетете също: Какви инстанции на AWS EC2 трябва да използвате?
Предимства на Amazon ECS
Ограничения на ECS
Какво е Kubernetes?
Kubernetes, обикновено наричан K8s, е софтуер с отворен код за автоматизиране на внедряването, мащабирането и администрирането на приложения в контейнери.
Възползвайки се от 15-годишен опит в управлението на производствени натоварвания на Google (комбинирайки най-добрите идеи и практики на общността), K8s групира вашите контейнери за приложения в логически единици, които можете лесно да откривате и управлявате.
Освен това, основните характеристики на K8s, като балансиране на натоварването, постоянно съхранение, автоматизирани връщания назад за контейнеризирани приложения, тайни, самолечение за Kubernetes клъстери и управление на конфигурацията.
Прочетете също: Първи стъпки с Kubernetes: Въведение за начинаещи
Предимства на Kubernetes
- Проверки на здравето и самолечение – Kubernetes предпазва вашите приложения от повреди чрез редовни проверки на възли. Ако капсула или контейнер е смачкан поради грешка, K8s автоматично се възползва от замяна.
- Балансиране на натоварването и маршрутизиране на трафика – По отношение на маршрутизирането на трафика, K8s ще изпраща заявки само до съответните контейнери. И с балансиране на натоварването, K8s разпределя натоварванията между модули, балансирайки вашите ресурси за няколко случая като прекъсвания, случаен пиков трафик или групова обработка. Отново можете да използвате и външни балансьори на натоварването, ако желаете.
- Автоматично мащабиране – Тази функция ви позволява автоматично да регулирате броя на работещите контейнери според използването на CPU и други показатели на CPU.
- Ръчно мащабиране – С помощта на тази функция можете да мащабирате броя на работещите контейнери чрез командния ред или интерфейс.
- Контролер за репликация – Този инструмент ви позволява да определите броя на подовете, които отговарят на спецификацията на вашия клъстер; ако са малко, започва нови, а ако са твърде много, ги прекратява.
- Автоматизирани връщания назад и пускания – може да искате да пуснете някои нови конфигурации или актуализации на приложения по време на разработката. K8s ви позволява да задействате процеса без прекъсване на приложението. В случай на повреда, K8s автоматично се връща към предишната версия.
- Внедрявания на Canary – Можете да се възползвате от тази функция, като тествате нови внедрявания в производството успоредно с предишната версия; K8s ви позволява да намалите последната версия на приложението, като същевременно увеличавате най-новата версия.
- Разнообразна поддръжка за езици и рамки за програмиране – Независимо дали идвате от фона на езика за програмиране Go, Java или .Net, Kubernetes поддържа много езици и рамки за разработка. Ако дадено приложение може да работи на контейнер, то работи на K8s.
Ограничения на Kubernetes
Сравняване на ECS и Kubernetes
Ето паралелно сравнение, показващо разликите:
Точка на разликата KubernetesAmazon ECSAдефиниция на приложение Приложенията се внедряват чрез комбиниране на подове, възли и услуги. Внедряването на приложения е под формата на задачи. Задачите са контейнерни екземпляри – например Docker контейнери, работещи на ECS екземпляри. DeploymentComplex, тъй като трябва да разположите и конфигурирате клъстери ръчно. Лесно внедряване чрез AWS конзолата. Поддръжка на възли (брой машини) 5000 възела на клъстер. 1000 възела на клъстер .Контейнери До 300 000 контейнера на клъстер. Ограничено от капацитета на използваната инфраструктура. Балансиране на натоварването. Подовете са изложени чрез услуги, използвани като балансьори на натоварването зад входните контролери. Налични са два балансира на натоварването; ELB-Application или Network.PricingFree.ECS е безплатен, но трябва да платите за EC2 ресурси. Оптимизация Добре оптимизиран за един голям клъстер. Предварително конфигуриран с изисквания и изисквания за контейнер. Автоматично мащабиране Вие дефинирате параметри за автоматично мащабиране при изграждане на внедрявания. Използвате услуги за мониторинг като CloudWatch за автоматично мащабиране въз основа на процесора, паметта и персонализираните параметри. Проверка на състоянието Налични са две проверки на състоянието: готовност и жизнеспособност. Постига се чрез услуги за мониторинг като CloudWatch. Откриване на услуги, въведено чрез променливи на средата или DNS. Постига се чрез услуги за мониторинг – CloudWatch.Vendor-lock inNo.Yes.
Случаи на използване на ECS и Kubernetes
Ето как технологията за контейнеризация ECS и Kubernetes революционизира индустриите:
ECS INC International подчертава множество случаи на употреба, при които технологията ECS е внедрена. В съвременните медицински устройства ще намерите революционизирани методи за лечение на пациенти и техники за доставяне на лекарства. Съществуват много инструменти, като електронни инхалатори, медицински автоинжектори и инфузионни помпи.
В домейна на IoT имаме интелигентни домашни устройства. Ако насочите вниманието си към автомобилната индустрия, ние имаме интелигентни електрически автомобили с подобрено изживяване при шофиране и подобрени мерки за безопасност като системи за подпомагане на спирането.
Засега това е върхът на айсберга; можете да разгледате повече приложения на ECS, които не се ограничават до безжични технологии, носими устройства и случаи на промишлена употреба.
От друга страна, Kubernetes има своя дял от практически приложения. Първо, облакът на IBM предлага частни, публични и хибридни функционалности в широк обхват от времена за изпълнение.
Spotify, гигант в областта на музикалния стрийминг, използва технологията Kubernetes, за да улесни безпроблемните операции, до 10 милиона заявки в секунда. Въпреки че това са случаи на употреба в реалния свят, K8s обслужва повече функционалности в архитектурата на микроуслугите, мрежови функции в облака, машинно обучение и завъртане на жизнения цикъл на разработка на софтуер.
Заключителни думи
След като сте преминали през това ръководство, имате солиден преглед на предимствата и недостатъците на избора на ECS или K8s. Ключът към избора на правилната опция се основава на няколко аргумента. Ще трябва да прецените между разходите, ограниченията на услугите и разходите за таланти.
Ако искате да използвате безплатна услуга, K8s ще бъде вашият избор номер едно. Въпреки това ще ви трябва солиден талант или умения, за да се справите със сложността, която идва с това. Въпреки че K8s няма ограничения за заключване на доставчика, това ще изисква задълбочено разбиране на това как работи платформата. ECS, от друга страна, получи бързи конфигурации.
След това вижте подробното ръководство за Kubernetes срещу Docker.