Что на самом деле означает «создание облачного приложения»?
20 апреля 2022 г.Чтобы понять, что на самом деле означает cloud-native, нам сначала нужно выполнить упражнение «сопоставьте следующее». Сопоставьте утверждения в левой колонке с технологической компанией, которая сделала бы это утверждение.
| Заявление | Технологическая Компания |
| 1) Облако — это то, как приложения создаются и развертываются, а не где. | а) Облачная компания, которая не продвинулась далеко вперед в мире контейнеров, но имеет популярную альтернативу, использующую управляемые сервисы |
| 2) Cloud-native — это использование контейнеров и Kubernetes для развертывания и эксплуатации приложений | б) Компания, предоставляющая инструменты и/или услуги, связанные с процессами и автоматизацией DevOps |
| 3) Cloud-native — это использование полностью управляемых сервисов с автоматическим масштабированием в общедоступном облаке | c) ИТ-компания, которая вела удивительный бизнес в дооблачную эпоху, но изо всех сил старалась оставаться актуальной в эпоху облаков |
| 4) Cloud-native — это использование методологии, ориентированной на DevOps, для работы с приложениями | d) Мощный фонд с открытым исходным кодом с серьезными маркетинговыми возможностями, который поддерживает многие проекты OSS в области контейнерных технологий |
Если вы угадали 1c, 2d, 3a и 4b, то вы довольно хорошо представляете, к чему клонится эта статья.
В этой статье будут и гиперболы, и насмешки, и риторика.
К сожалению, все это довольно хорошо заработано, когда речь заходит о теме «Нативных облачных приложений». Как и многие другие в технологической индустрии, облачный термин также является слишком часто используемым (даже злоупотребляющим) термином.
Определение облачных приложений меняется от поставщика к поставщику, в зависимости от того, что они должны продавать, и от лидера мнений к лидеру мнений, в зависимости от того, что они должны мыслить (или это должно быть мышление? Я всегда получаю смущенный).
Давайте посмотрим на первое утверждение.
Нативное облачное решение — это то, как приложения создаются и развертываются, а не где.
Так что «где» не важно — может быть в облаке, может быть и не в облаке. Тогда для чего на самом деле нативные облачные приложения? Приложение, работающее локально, если оно создано с использованием «правильной архитектуры, процессов и культуры», похоже, заслужило право называться облачным. Это все равно, что сказать, что приложение, работающее на Android или Windows, является «родным для iOS».
Я думал, что приложение должно использовать некоторые специальные характеристики и быть оптимизированным для базовой платформы, чтобы называться родным для этой платформы.
Так или иначе, мы идем дальше.
Облачные приложения создаются с использованием контейнеров и управляются с помощью Kubernetes
Когда именно мы решили, что формат упаковки для развертывания и использование сверхсложного оркестратора ресурсов делают приложение современным?
Разве идея не в том, чтобы убедиться, что ваше приложение может выполнить то, что оно намеревалось сделать, с ожидаемыми от него масштабом, доступностью и надежностью? Тогда зачем такие специфические требования, как использование формата упаковки и научно-фантастической технологии звучания?
В любом случае, имея имя (и, что более важно, доменное имя), резонирующее с термином «Cloud Native», Cloud Native Computing Foundation (CNCF) заработал SEO-рейтинг, чтобы обеспечить достоверное определение.
Итак, идем дальше.
- Cloud-native — это использование полностью управляемых сервисов с автоматическим масштабированием в общедоступном облаке*
Никаких призов за угадывание здесь ссылки на AWS и их фестиваль любви Lambda. Это допустимый альтернативный вариант — сосредоточьтесь на бизнес-логике, выраженной в коде, не беспокойтесь о том, где выполняется код, как он масштабируется, как настроена база данных, как поступают сообщения и т. д.
Если отдать должное заявлению о «прирожденном облаке», то оно близко — беспрецедентный масштаб и упрощенное управление инфраструктурой были последовательными обещаниями облака с первых дней.
Однако «короткоживущие фрагменты кода», страдающие от таких вещей, как «холодный старт» (который лучше всего можно объяснить как побочный эффект внутренней реализации, который теперь необоснованно навязывается сознанию клиента), не подходят для всех вычислительных систем. люди делают. По крайней мере, не сегодня.
Давайте продолжим.
- Cloud-native — это использование методологии, ориентированной на DevOps, для работы с приложениями*
Автоматизация, непрерывная интеграция и непрерывная доставка/развертывание — вот некоторые вещи, которые приходят на ум, когда говорят о DevOps. Эти концепции на самом деле не новы, и даже если бы они были, они могут использоваться (и используются) для доставки программного обеспечения, которое не имеет ничего общего с облаком — либо для запуска, либо для создания такого программного обеспечения.
Неясно, какая именно часть «волшебной пыли DevOps» делает это программное обеспечение облачным.
Несмотря на то, что это описание звучит как высказывание, на самом деле оно предназначено для того, чтобы показать, что многие из наших утверждений («наши» — это техническая отрасль) кажутся бессмысленными даже после одного двойного щелчка. Итак, мы должны продолжать попытки.
Также опубликовано здесь
Оригинал