Всем привет!
В продолжение предыдущего поста попробую сам себе возразить.
Предположим, что наши DevOps инженеры круто настроили pipeline: все атрибуты, которые должен настроить разработчик, параметризованы. Например, с помощью чартов Helm.
Значит ли это, что разработчик может расслабиться и не изучать все эти ваши Deployment, EnvoyFilter, VirtualService ...? Мой ответ - нет. И вот почему.
если рассуждать дальше, то и Docker разработчику не нужен. Пусть его же DevOps-ы настраивают. А я на Tomcat встроенном запущу. Но вспомним в чем суть Docker - единая среда у разработчиков, тестировщиков и ПРОМа. Что позволяет избежать большой части ошибок, возникающих из-за разницы настроек окружения. Не всех, но большого числа
окей, Docker пусть будет. А k8s? Но идея та же. Приложение в облаке ведёт себя по другому, чем в standalone. Его может в любой момент прибить k8s и поднять на другой node. А это ограничивает возможности локального кэширования. В облаке несколько приложений может работать параллельно. Это нужно учитывать, например, при чтении из топика Kafka. Более того число подов может меняться - см. HorizontalPodAutoscaler. Еще момент - по умолчанию у нас ephemeral storage и надеяться на сохранение логов после перезапуска нельзя. А ещё одно из Cloud Native требований - быстрый старт приложения, опять же из-за потенциального перезапуска в любой момент. На этот момент не всегда обращают внимание, хотя варианты улучшения времени запуска есть.
Надеюсь, я вас убедил. Если нет - жду в комментах