подход "сделать образ контейнера и запустить на K8s" это часть cloud agnostic strategy, по сути лишает меня многих преимуществ облаков (возможности быть ооочень ленивой задницей и писать как можно меньше кода), есть кейсы когда именно это хорошо и правильно (например, ты создаёшь софт, который потом используют on premises), но полноценный cloud native - это всё же про более тесную интеграцию с облачными сервис провайдерами, а для этого нужен SDK, облако перестаёт быть просто средой выполнения и становится частью системы, например, условно, какие-нибудь ключи или секреты пользователя храним в специальном сервисе от Google, а не внутри нашего приложения, которое по сути становится "клеем" между сервисами Google'а (подход: "если что-то можно вынести в SaaS или облачный сервис, то так и делаем")
полноценные cloud native сервисы - это как черепашки, у которых панцирь (облако) - часть системы, он не снимается как-либо) это чем-то похоже на low-code подход - мы считаем, что инженеры в этих крупных облаках опытнее нас и у них больше времени чтобы сделать хорошие продукты-примитивы, поэтому мы просто берём эти примитивы за основу и на базе них вокруг них делаем сервис, не занимаясь слишком низкоуровневыми вещами и не отвечая за их поддержку) а сами занимаемся чем-то ближе к продукту, а не копанием в низкоуровневом коде и алгоритмах) win-win