В ранние времена (читай — до появления контейнеризации) цикл разработки был простым. Вы пишете код в редакторе, компилируете, собираете, запускаете, тестируете и готово. Развертывание сводилось к копированию на другое устройство и настройке конфигурации.
Игра изменилась с появлением docker. Человек устанавливает хост разработки (часто локальную машину) и использует некоторую оркестровку (aka docker-compose) для локальной проверки (unit-test) и push. Среда CI — это другой мир, где конфигурации применяются повторно, сценарий интеграции тестируется и получает одобрение. Производство — это, конечно же, реальное место, где молот встречается с железом, и битва продолжается…
Разработка таким способом является болезненной из-за:
- нескольких инструментов, которые необходимо использовать для каждой среды (например: docker-compose на DEV, kubernetes на PROD)
- поддержание паритета конфигурации в разных средах
- управление дрейфом конфигурации от кластера к коду
- локальная разработка отнимает много ресурсов (в плане процессора и батареи; процесс qemu-system-aarch64 постоянно забирал >98% моих ресурсов).
Ожидания от облачного нативного DX:
- должен быть быстрым
- отражение изменений должно быть бесшовным (подумайте о live-preview)
- накладные расходы на конфигурацию должны быть минимальными
- простой поток — установка/настройка, создание, настройка и уничтожение окружения должны быть простыми.
Okteto ускоряет рабочий процесс разработки приложений Kubernetes. Вы пишете свой код локально, а okteto обнаруживает изменения и мгновенно обновляет ваши приложения Kubernetes.
Типичный рабочий процесс с okteto выглядит следующим образом:
- настройка okteto для подключения к вашему кластеру
git clone <your repo>
-
- двунаправленная служба синхронизации через конфигурацию
- автоматическая локальная и удаленная переадресация портов для подключения через
localhost
и для подключения отладчиков - интерактивный терминал для циклов сборка-развертывание-тестирование
рабочий процесс, конфигурация и другие детали будут описаны в следующих постах серии