В связи с ростом использования API и нативно-облачных архитектур и инструментов разработчикам необходимо расширить свое понимание сложных взаимосвязей между ними, пишет на портале ITPro Today Андрей Букати, директор по технологиям компании Rapid.

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

Что все это означает для разработчиков? И чего нам следует ожидать в этом году и в дальнейшем? Давайте вникнем.

Рост — это общий знаменатель

Благодаря более эффективному и менее затратному созданию доступных и высокопроизводительных API, нативные облачные архитектуры помогают стимулировать рост API-экономики. Кроме того, используя облачные архитектуры, компании могут развертывать свои API в различных регионах, что позволяет легко и экономически эффективно обслуживать пользователей по всему миру.

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

Однако эти симбиотические усовершенствования не обходятся без сложностей. Управление возрастающей сложностью растущего числа API и облачных решений — наряду с внедрением инструментов ИИ — обещает стать одной из главных задач для разработчиков в этом году.

Распаковка сложности

Хотя API в мультиоблачных средах обеспечивают организациям повышенную гибкость и более широкие возможности для функциональности, за эти преимущества приходится платить — повышенной сложностью. Все большее давление оказывается на мир DevOps, который должен понимать не только как создаются ПО и приложения, но и как они работают «за кулисами». В конечном итоге, разрыв между DevOps-специалистами и инженерами-программистами становится все тоньше и тоньше.

Возьмем пример со стороны пользовательского интерфейса: за единственной кнопкой, которую пользователь видит на приборной панели, скрывается множество сложностей разработки, происходящих в бэкенде. Мало того, что эта кнопка, скорее всего, вызывает несколько API, она также заставляет задуматься о порядке действий, зависимостях между различными шагами и понимании базовых компонентов. Другими словами, разработчикам необходимо оркестрировать несколько API и этапов процесса в бэкенде, чтобы добиться того же, что делает кнопка в пользовательском интерфейсе.

Распространение API и их повышенная масштабируемость в нативных облачных средах также порождает бóльшую сложность. Масштабирование API требует от компаний уверенности в том, что они смогут справиться с возросшей нагрузкой, например, во время скачков трафика или других неожиданных событий.

Кроме того, многие компании, использующие нативно-облачный подход, также переходят к архитектуре микросервисов, в которой независимо развертываемые сервисы заменяют устаревшие монолитные программные комплексы. Это увеличивает количество API, которыми компаниям необходимо управлять и поддерживать, что приводит к повышению сложности.

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

Фактор ИИ

Хотя в настоящее время внимание к ИИ в основном сосредоточено вокруг таких потребительских инструментов, как ChatGPT и Dall-E, обсуждение сложности нативных облачных решений также не обходится без ИИ. Компании могут использовать ИИ для распознавания тенденций в своих облачных решениях и принятия более обоснованных решений.

Например, интернет-магазинам необходимо заранее подготовиться к «черной пятнице», чтобы обеспечить надлежащее функционирование различных облачных приложений при резком увеличении активности. ИИ может обеспечить самоподготовку и масштабирование ПО до наступления пика, чтобы не допустить сбоя или замедления работы. ИИ также может помочь сориентироваться в пиках и спадах нагрузки в разное время суток. Например, если у компании есть серверы в одном часовом поясе, она может сократить масштаб в ночные часы, а в другом часовом поясе в это время увеличить масштаб.

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

Что дальше?

Ориентируясь на ландшафт DevOps, характеризующийся ростом использования API и внедрением нативного облачного ПО, можно выделить две тенденции нынешнего года. Во-первых, мы начнем видеть, как небольшие облачные провайдеры работают на инфраструктуре крупных облачных провайдеров, предоставляя нишевые продукты для конкретных сценариев использования. Например, компания Vercel работает на базе AWS и GCP (не раскрывая это для своих клиентов) и предоставляет целевое предложение для фронтенд-разработчиков, оптимизированное под их нужды. Такой подход более удобен для пользователей и позволяет ускорить разработку.

Вторая тенденция заключается в том, что компании используют ИИ для анализа затрат на облачные архитектуры. Анализ многочисленных факторов стоимости, таких как вычислительные ресурсы, ресурсы хранения и сети, а также сервисы, использование и обслуживание, является сложной задачей. В ответ на это в этом году появится больше продуктов, использующих ИИ для анализа использования облака и рекомендаций о том, где и как сократить расходы.

Поскольку API и нативно-облачные архитектуры и инструменты продолжают развиваться, а их использование расти, разработчикам необходимо продолжать расширять свое понимание сложных взаимосвязей между ними. Знание того, как справляться со сложностями, управлять ими и даже предсказывать их, поможет росту в сообществе DevOps.