Рубрики
Uncategorized

Tekton и обещание многоразовых трубопроводов

Появление технологии облака и контейнеров открыло новую эру в распределенных вычислениях на «Planet SC … Tagged с DevOps, Kubernetes, Docker.

Появление технологии облака и контейнеров открыло новую эру в распределенных вычислениях в «Scale Planet Scale», которая была неслыханной и невообразимой всего десять лет назад. Еще одно интересное движение было заваривается десять лет назад, которое поддерживало предоставление этих сложных решений с высокой скоростью и точностью, DevOps. Эти два смены парадигмы прошли руку в руке, дополнив друг друга, чтобы сформировать распределенные вычисления так, как мы знаем (или все еще изучаем) сегодня.

Мы все знаем, насколько неотъемлемая непрерывная интеграция и непрерывное развертывание в парадигме автоматизации DevOps и как организации разработали многословные трубопроводы, чтобы привлечь модель заводского этажа в программное обеспечение для доставки.

Если вы когда -либо участвовали в реализации какой -либо из этих практик DevOps для облачной дистрибьютированной системы, вы, возможно, узнаете, как быстро эти конвейеры CI/CD становятся какофонией сложных инструментов и интеграций, требующих их собственной подзакончики специалистов Построенный и поддерживал тем самым, добавляя к тем самым бункерным, что практики намеревались сломаться.

Большая система, которая состоит из нескольких распределенных суб -систем и обычно развертывается в виде контейнеров Docker, сгруппированных во время выполнения оркестровки, таких как Kubernetes; И для этих систем эти трубопроводы поставляются совсем не простыми. Проблема в том, что вы в любое время имеете дело с 5 инструментами для чего-либо, от триггеров, запуска сборки и упаковки, создание средств для тестирования и выполнения тестов и, наконец, святого Грааля из развертывания одного щелчка (если это Святой вообще!).

Текон

Некоторые хорошие люди в Knative Project с Google почувствовали вышеупомянутую проблему достаточно глубоко, чтобы придумать решение, которое (я полагаю) является одной из лучших попыток строительства левых трубопроводов, которые еще существуют; Текон.

Tekton стремится обеспечить столь необходимую простоту и единообразию в создании и заведении этих трубопроводов, предоставляя высокоразовую, декларативную систему нативной сборки облаков на основе компонентов, в которой используется CRDS Kubernetes для выполнения работы. В философии Тектона любой трубопровод может быть разбит на следующие три ключевые части

  • Контроль версий основных сервисов, магазин артефактов, Автоматизация развертывания
  • Задачи, которые могут варьироваться от запуска Maven Build до различной автоматизации тестирования до безопасности и оценки производительности
  • Рабочий процесс, который решает Как и когда выполняются задачи

Следовательно, видение состоит в том, чтобы преодолеть несоответствие и сложность, чтобы обеспечить механизм строительных трубопроводов то есть

Как это устроено

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

Шаги

Самыми основными из компонентов Tekton являются шаги, по сути, контейнерная спецификация Kubernetes, которая является существующим типом ресурса, позволяет определить изображение и информацию, необходимую для его запуска. Например:

steps:
- image: ubuntu # contains bash
 script: |
    #!/usr/bin/env bash
    echo "Hello from Bash!"

Задача

Задача состоит из одного или нескольких шагов (вы можете выполнять гранулированные или прекрасные задачи) и представляют собой единицу работы в трубопроводе, которая достигает определенной цели (построенный архив JAR, изображение Docker, тестовый запуск и т. Д.) Анкет Например, следующая задача выполняет сборку Maven:

apiVersion: tekton.dev/v1beta1
kind: Task
metadata:
 name: mvn
spec:
 workspaces:
    - name: output
 params:
    - name: GOALS
      description: The Maven goals to run
      type: array
      default: ["package"]
 steps:
    - name: mvn
      image: gcr.io/cloud-builders/mvn
      workingDir: /workspace/output
      command: ["/usr/bin/mvn"]
      args:
        - -Dmaven.repo.local=$(workspaces.maven-repo.path)
        - "$(inputs.params.GOALS)"

Трубопровод

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

Сделать все это вместе

Давайте посмотрим на то, что мы ожидаем от трубопровода, чтобы работать для большинства современных проектов:

Если у вас есть несколько приложений, которые нуждаются в этих шагах, вы можете по существу:

  1. Определите общие задачи, такие как единичные тетики, лининг, создание изображений, запустить тесты (интеграция или сквозная), публикация изображений и т. Д.
  2. Определите несколько трубопроводов или создайте стандартизированный конвейер, который будет использоваться в аналогичных модулях
  3. Параметризация трубопровода и масштабируется до большого количества трубопроводов с меньшей автоматизацией или конфигурацией CI/CD

Именно здесь лежит сила этого инструмента, способность создавать любое количество трубопроводов без необходимости интегрировать несколько инструментов для управления сложной оркестровкой. Этот тщательный сухой подход к автоматизированному трубопроводу CI/CD, безусловно, является отличным инструментом в распоряжении групп разработки программного обеспечения.

Строительство трубопровода с Тектоном

Теперь, когда мы увидели, что Tekton — это обещание, которое оно принесет на стол, давайте посмотрим, насколько хорошо это соответствует этому.

Установка Тектона

Чтобы установить основной компонент Tekton (при условии, что у вас уже есть кластер Kube, если не установите кластер Kube в первую очередь), Tekton Pippelines, запустите команду ниже:

kubectl apply --filename https://storage.googleapis.com/tekton-releases/pipeline/latest/release.yaml

Это может занять несколько минут до завершения установки. Вы можете проверить прогресс со следующей командой:

kubectl get pods --namespace tekton-pipelines

Подтвердите, что каждый перечисленный компонент имеет статус.

Постоянные объемы

Чтобы запустить рабочий процесс CI/CD, вам необходимо предоставить Tekton постоянный объем для целей хранения. Tekton по умолчанию запрашивает объем 5GI с классом хранения по умолчанию. Ваш кластер Kubernetes, такой как один из двигателя Google Kubernetes, может иметь постоянные объемы, настроенные во время создания, поэтому никаких дополнительных шагов не требуется; Если нет, вам, возможно, придется создать их вручную. В качестве альтернативы вы можете попросить Tekton использовать ведро Google Cloud Storage или вместо этого ведро AWS Simple Service (Amazon S3). Обратите внимание, что производительность Tekton может варьироваться в зависимости от выбранного вами параметра хранения.

kubectl create configmap config-artifact-pvc \
                         --from-literal=size=10Gi \
                         --from-literal=storageClassName=manual \
                         -o yaml -n tekton-pipelines \
                         --dry-run=client | kubectl replace -f -

Для получения более конкретной информации об установке и конфигурации Tekton вы можете ссылаться на их Документация Анкет

Дальнейшие шаги.

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

Оригинал: «https://dev.to/anadimisra/tekton-and-the-promise-of-reusable-pipelines-4jko»