Рубрики
Uncategorized

В поисках эффективного опыта разработчика с Kubernetes

В этом уроке обсуждается опыт разработчика от генерации идей до работы в производстве, и почему он должен быть быстрым, надежным и обеспечивать хорошие отзывы. Tagged с помощью программирования, DevOps, Kubernetes.

В DataWire Мы помогаем многим организациям с Развертывание приложений в Kubernetes. Часто наши самые важные вклад — это тесно сотрудничать с командами разработчиков, помогая им создавать эффективную непрерывную интеграцию и непрерывную доставку (CI/CD) трубопроводы. Это в первую очередь потому, что создание эффективного Рабочий процесс разработчика На Kubernetes может быть сложная задача-экосистема все еще развивается, и не все компоненты платформы являются подключаемыми и играми, а также потому, что многие инженерные команды не понимают, что для того, чтобы «закрыть петлю» на бизнес-идеях и гипотезах , вам также необходимо предпринять приложения для наблюдения. Мы часто утверждаем, что первое развертывание приложения в производство через трубопровод является только началом процесса непрерывной доставки, а не конец, как некоторые думают.

Все мы создаем программное обеспечение для поддержки Доставка стоимости нашим клиентам и бизнесу, и, следовательно, «Опыт разработчика» (Devex) — От генерации идей до бега (и наблюдения) в производстве- должно быть быстро, надежным и обеспечивать хорошие отзывы. Поскольку мы помогли нашим клиенту создать эффективные конвейеры непрерывной доставки для Kubernetes (и связанных с ними рабочих процессов), мы видели несколько моделей. Мы стремимся поделиться своими наблюдениями по этим моделям, а также объяснить, как мы запечатлели некоторые из лучших моделей в рамках Коллекция инструментов с открытым исходным кодом для развертывания приложений в Kubernetes.

От идеи до (наблюдаемого) значения

Все, что мы делаем, как инженеры, начинается с идеи. Из этой идеи возникает гипотеза — например, изменение макета веб -формы улучшит преобразование или улучшение задержки P99 сайта приведет к увеличению дохода — и мы можем извлечь соответствующие показатели для наблюдения — преобразование и задержка нагрузки страницы В нашем примере.

Здание и упаковка для Kubernetes

Как только мы согласились с нашей гипотезой и метриками, мы сможем начать писать код и упаковать это готовое к развертыванию на Kubernetes. Мы создали открытый исходный код Корена Структура, чтобы помочь со всем процессом разработки, от автоматического создания и управления конфигурацией Kuberlate Kubernetes, позволяя нам параметризировать свойства времени выполнения и ресурсы, которые могут облегчить развертывание приложений в Kubernetes с Одиночная инструкция CLI Анкет

Если мы работаем над гипотезой, которая требует «исследования»-например, рефакторирования существующей функциональности или решении проблемы технической интеграции-мы часто идеи доски и начинаем кодировать, используя методы, такие как разработка тестирования (TDD), заботясь о Проектируемость (бизнес -метрики, мониторинг и ведение журнала и т. Д.) В ходе мы. Если мы работаем над гипотезой, которая требует «экспериментов»-например, новая бизнес-функция-мы обычно определяем тесты на развитие поведения (BDD), чтобы помочь нам сосредоточиться на функциональности построения ». «.

Удаление трения из цикла-экспериментации кода

Мы пытаемся разрабатывать в средах, которые максимально похожи на производство, и так часто мы строим локальные услуги, которые взаимодействуют с более полным удаленным развертыванием кластера Kubernetes. Мы создали инструмент с открытым исходным кодом Телеприз Это позволяет нам выполнять и отлаживать локальный сервис, который действует так, как будто он является частью удаленной среды (эффективно двусторонний прокси от нашей локальной машины разработки до удаленного кластера Kubernetes).

Нам нравится «выпускать рано и часто выпускать», и поэтому предпочитаем выполнять тесты в производстве, используя Канарские и темные запуска Анкет Таким образом, мы можем предоставить новые функциональные возможности небольшим объемам реальных пользователей и наблюдать за их поведением в отношении нашей гипотезы. Как и в случае любого развертывания в производственной среде, существует очевидно определенное количество риска, и мы смягчаем это, внедряя предупреждение и автоматизированные откаты при обнаружении серьезных проблем. Мы создали Gateway API с открытым исходным кодом Посол Для этого.

Умный маршрутизация и мониторинг с API -шлюзом посла API

Посол построен с использованием популярного Enguy Proxy Это появилось из работы по Мэтт Кляйн и Его команда в Lyft Анкет Посол разрешает «интеллектуальную маршрутизацию» трафика при развертывании приложений в Kubernetes, и, как было доказано базовую технологию, работают по масштабу в Lyft. Как только приложение получает производственный трафик, мы можем наблюдать показатели на основе нашей более ранней гипотезы. Мы обычно используем Прометей собирать данные и Графана Чтобы отобразить результаты через мониторные панели. Мы создали открытый исходный код Прометей-Амбасадор Проект, чтобы обеспечить легкий экспорт метрик от посла, например, задержка и номер 5xx http -кодов возвращаются.

И цикл начинается снова

После того, как мы проанализировали наши метрики, цикл разработки может начать снова, либо итерация на нашем существующем решении и проведении дополнительных канарейских экспериментов, либо, если мы доказали (или опровергнули) нашу первоначальную гипотезу, мы можем генерировать другую новую идею и гипотезу.

Эта статья первоначально появилась как часть Код быстрее на Datawire.io написано Даниэль Брайант .

Оригинал: «https://dev.to/datawireio/in-search-of-an-effective-developer-experience-with-kubernetes—42nn»