Руководство по ускорению цикла разработки.

Привет друзья,

В сегодняшней статье мы обсудим, как включение облачных технологий в ваш процесс разработки может ускорить разработку вашего продукта, позволяя вам быстрее выпустить его за дверь и передать в руки ваших пользователей. Я не буду здесь описывать какой-либо конкретный вариант облачных технологий, таких как AWS, Azure или Google, а скорее буду рассматривать основные концепции облачных технологий, которые помогают ускорить работу разработчиков, сказав это, давайте начнем.

Современные поставщики облачной инфраструктуры развились из нескольких избранных компаний, которые накопили собственный опыт для управления своими огромными вычислительными потребностями. AWS, Google, Microsoft разработали технологии для управления своими собственными предложениями и объявили, что они будут полезны (и прибыльны), чтобы сделать их доступными для широкой публики. По мере экспоненциального роста вычислительных потребностей в мире растут и способы и средства для управления этими огромными массивами вычислительных мощностей.

Ключевые преимущества облачных технологий

К основным преимуществам облачных технологий относятся:

  • Простое (и быстрое) управление инфраструктурой: быстрая настройка и управление серверами, базами данных и т. д.
  • Производительность и надежность: высокопроизводительное оборудование и отсутствие проблем с простоями.
  • Инструменты: отличные инструменты для разработчиков, позволяющие автоматизировать важные рабочие процессы и задачи.
  • Бессерверный: возможность поддержки веб-серверов без накладных расходов и проблем с инфраструктурой.
  • Готовые сервисы: возможность потреблять и использовать ИИ и другие сервисы с минимальными усилиями.

Давайте поговорим о каждом из этих преимуществ по очереди.

Простое (и быстрое) управление инфраструктурой

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

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

  • Compute (серверы любой ОС)
  • Базы данных (любого типа)
  • Службы каталогов, такие как активный каталог
  • Место хранения
  • Сеть
  • Очереди сообщений

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

Производительность и надежность

Следующей областью, которая ускоряет скорость разработки, является производительность и надежность облачной инфраструктуры. Облачные вычисления — это мощный комплект, и вы можете выбрать требования к хранилищу и производительности в соответствии с потребностями вашего приложения одним нажатием кнопки. Разработчикам не нужно ждать всю ночь, пока сборка завершится на медленном оборудовании. Кроме того, облачная инфраструктура является пуленепробиваемой с точки зрения надежности благодаря избыточности, встроенной в ее ДНК. Исключение времени ожидания для медленных сборок или простоев ненадежного оборудования из графика разработчика означает увеличение скорости разработки.

Инструменты

Инструментарий — еще одна область, которая значительно выиграла от облачных технологий. Инструментарий — это то, что я определяю как любой инструмент, который люди используют для разработки и доставки программного обеспечения, включая IDE/редакторы кода, инструменты управления разработкой, CI/CD, тестирование (автоматическое) и сборку/развертывание программного обеспечения. Некоторые примеры облачных технологий, облегчающих жизнь разработчикам, включают:

  • Инструменты управления разработкой. Примеры здесь включают Jira / Azuredevops, которые позволяют сквозное управление процессом разработки из облака. Эти инструменты глубоко интегрируются в полный SDLC, включая конвейеры кода, тестирования и развертывания. Хотя эти инструменты также могут быть локальными, не имеет смысла делать это с возможностью быстрой подписки на облачную версию этого программного обеспечения, предназначенную для быстрой настройки и обновления, чтобы максимизировать скорость разработки вашей команды.
  • Репозитории исходного кода. Git / Github / Bitbucket и другие – лидеры среди облачных репозиториев исходного кода, которые изменили способы изучения, разработки и обмена кодом. Эти облачные инструменты также можно интегрировать с другими облачными службами (CI/CD, анализ кода и т. д.), чтобы обеспечить огромную ценность процесса разработки. Облачная природа таких инструментов, как GitHub, также позволяет разработчикам легко делиться и документировать свои кодовые базы.
  • Создание конвейеров. Непрерывная интеграция/непрерывная доставка и создание конвейеров, размещенных в облаке, обеспечивают интеграцию с другими облачными службами, добавляя новые возможности для обеспечения высокого качества кода, его тщательного тестирования и развертывания.
  • Тестирование. Службы облачного тестирования позволяют тестировать продукты в различных браузерах/устройствах в автоматическом режиме, сокращая время, необходимое для выпуска вашего продукта. Как указывалось ранее, эти инструменты также можно подключить к конвейеру CI/CD, чтобы повысить производительность вашего процесса разработки.
  • Инфраструктура как код. Инфраструктура как код — это относительно новое новшество, которое позволяет определять конфигурации инфраструктуры как код, что позволяет автоматизировать создание, демонтаж и настройку инфраструктуры, такой как вычислительные ресурсы, базы данных и хранилище. Эти инструменты значительно сокращают время, необходимое для управления требованиями к инфраструктуре.

Бессерверные / Контейнеры

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

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

Готовые услуги

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

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

Предостережения

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

Набор умений

Прежде чем инвестировать в облачные технологии, нам необходимо убедиться, что у нас есть необходимые навыки. Облачные технологии аналогичны внутренним ИТ; тем не менее, у них достаточно различий, чтобы гарантировать набор навыков специалиста для администрирования и получения полной выгоды / лучшего совета от платформы.

Блокировка продавца

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

Затраты могут складываться

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

Вывод

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

Первоначально опубликовано на https://www.herdingcoders.com.