Мы все больше и больше полагаемся на облако, особенно на AWS [Amazon Web Services]. Здесь мы исследуем преимущества и варианты использования развертывания ваших приложений в облаке, прежде чем подробно рассказать о пяти инструментах, которые могут помочь в эффективном развертывании на AWS.
Современные предприятия используют множество приложений для повседневной работы, от программного обеспечения для управления взаимоотношениями с клиентами (CRM) до инструментов бухгалтерского учета и веб-приложений, с которыми могут взаимодействовать клиенты. Для запуска всех этих приложений требуется сложная инфраструктура, традиционно использующая локальные серверы и вычислительные ресурсы.
Локальная инфраструктура требует больших затрат как денег, так и времени на установку и обслуживание. Кроме того, масштабирование локальной ИТ-инфраструктуры быстро становится дорогостоящим по мере роста предприятия и, следовательно, роста использования его приложений.
Облачные вычисления быстро изменили парадигму развертывания корпоративных приложений. Многие современные предприятия теперь развертывают свои приложения в облаке, потому что поставщики облачных услуг предлагают виртуализированные ресурсы в виде динамически масштабируемых услуг. Многие приложения теперь предоставляются в виде сервисов через Интернет, доступных для соответствующих пользователей, и поставщик облачных услуг выделяет оборудование.
Некоторые преимущества развертывания облачных приложений включают в себя:
Намного более быстрое развертывание — разработчики могут кодировать и создавать приложения; поставщик облачных услуг выделяет вычислительные ресурсы в соответствии с ожидаемым использованием приложений.
Масштабируемость без усилий — когда приложения сталкиваются с повышенным спросом из-за увеличения количества клиентов, увеличения потребностей в хранении данных или роста предприятия, масштабирование часто бывает столь же простым, как выделение дополнительных ресурсов облачных вычислений.
Контроль затрат — в облаке предприятия могут легко гарантировать, что они используют только ту вычислительную мощность, которая им точно необходима для работы своих приложений — нет недоиспользованных, потраченных впустую ресурсов.
Развертывание приложений в облаке также сопряжено с некоторыми проблемами, включая безопасность приложений, надежность облачных сервисов и доступность приложений для конечных пользователей.
Amazon Web Services (AWS) — один из самых популярных поставщиков облачных сервисов и одним из первых принявших эту технологию, впервые предложивший услуги облачных вычислений в 2005 году. AWS остается особенно популярным вариантом в сообществе разработчиков, как видно из этого графика Переполнение стека:
AWS предлагает множество различных сервисов для развертывания приложений в облаке. Мощные инстансы Amazon EC2 могут использоваться, например, для обработки рабочих нагрузок приложений, в то время как существуют другие сервисы для удовлетворения потребностей в хранилище AWS для облачных приложений, такие как Amazon EBS и Amazon S3. Сторонние инструменты могут предложить еще большую гибкость, например, за счет интеграции варианта хранилища AWS с приложениями, расширения корпоративного хранилища до облака и экономии денег.
Давайте теперь рассмотрим пять лучших инструментов, которые вы можете использовать для эффективного развертывания приложений в облаке AWS.
Chef — это платформа конфигурации, которую можно использовать для автоматизации развертывания приложений в любой среде. Chef Automate — это решение, которое интегрируется с AWS, помогая унифицировать и автоматизировать облачную инфраструктуру на AWS, а также облегчить миграцию рабочих нагрузок приложений на сервисы AWS. С помощью Chef разработчики кодируют инфраструктуру в «рецепты», которые помогают создать автоматизированный план для развертывания.
Chef уделяет большое внимание соответствию отраслевым критериям, таким как PCI или HIPAA, с правилами соответствия, определенными как код, что упрощает устранение барьеров соответствия для миграции в облако и развертывания облачных приложений. Chef управляет операционными задачами, такими как настройка программного обеспечения и операционной системы, установка пакетов, настройка базы данных и т. Д., Обеспечивая автоматизацию рабочих процессов для непрерывного развертывания в облаке AWS.
Некоторые недостатки Chef включают отсутствие хорошей документации и требование принуждения разработчиков к использованию Ruby для конфигураций инфраструктуры.
Ansible — это механизм автоматизации ИТ, который автоматизирует выделение ресурсов в облаке, управление конфигурацией и развертывание облачных приложений. Этот инструмент интегрируется с AWS, чтобы помочь вам определять, развертывать и управлять широким спектром сервисов AWS, обеспечивая простое и быстрое развертывание и масштабирование приложений.
Используя Ansible, вы определяете конфигурацию среды приложения AWS, используя синтаксис YAML, который считается среди разработчиков простым в освоении и очень выразительным. В Ansible нет агента, что означает, что вам не нужно ничего устанавливать на удаленные хосты, которыми вы хотите управлять при развертывании приложений. Кроме того, у Ansible есть отличная документация и поддерживающее сообщество.
Ansible поставляется как в бесплатной, так и в платной версии. Минусами этого инструмента являются его низкая производительность в push-режиме — даже базовая настройка нового удаленного компьютера с минимальными настройками может занять до 20 минут, а также надежное соединение SSH для выполнения задач настройки на удаленных хостах AWS.
AWS Elastic Beanstalk — это сервис оркестровки, предлагаемый AWS для развертывания приложений и управления ими в облаке AWS, не беспокоясь об инфраструктуре, в которой эти приложения работают. Этот сервис обеспечивает быстрое развертывание приложений на облачных экземплярах AWS EC2, написанных на многих языках, включая PHP, .NET, Ruby, Java, Node.js и Python. Модель управляемой платформы как услуги освобождает вашу организацию от сложности развертывания и управления конфигурацией в облаке, а автоматическое масштабирование, ведение журнала и мониторинг доступны для вас «из коробки». Тот факт, что единый интерфейс в AWS Elastic Beanstalk обеспечивает единообразное представление о многих аспектах среды разработки, также полезен; вам не нужно переключаться между различными интерфейсами управления в Консоли AWS.
К минусам можно отнести отсутствие интуитивно понятного интерфейса: набор параметров на панели управления может быть ошеломляющим для новых пользователей, а некоторые инженеры-программисты сталкивались с проблемами при упаковке больших приложений.
AWS CodeDeploy — это сервис, который автоматизирует развертывание приложений в инстансах Amazon EC2. CodeDeploy также может автоматизировать развертывание программного обеспечения в AWS Lambda и в локальных экземплярах.
Здесь целью является быстрое развертывание и разработка с особым упором на критически важные приложения, для которых цена отказа исключительно высока. Инструмент позволяет развертывать различное содержимое приложений, включая веб-файлы и файлы конфигурации, исполняемые файлы, пакеты, сценарии и мультимедийные файлы.
Этот бесплатный инструмент полностью автоматизирует развертывание приложений в средах разработки, тестирования и производства, а также обеспечивает непрерывные обновления приложений в облачных экземплярах без простоев. Он также работает со сторонними инструментами, такими как Chef и Ansible.
Единственные недостатки — это те, которые применимы ко всем сервисам AWS: в основном это кривая обучения, чтобы привыкнуть ко всем параметрам и настройкам приборной панели.
AWS OpsWorks — это инструмент управления конфигурацией, созданный на основе инструмента конфигурации Chef. Основным достоинством этого инструмента является то, что он помогает автоматизировать трудоемкие задачи при развертывании приложений на AWS. AWS OpsWorks использует сценарии для управления конфигурациями, что улучшает согласованность развертывания и может уменьшить количество ошибок. В OpsWorks также есть автоматическое масштабирование приложений на основе нагрузки или времени.
Инструмент поддерживает операционные системы Amazon Linux и Ubuntu, но, к сожалению, не поддерживает Windows. OpsWorks лучше всего подходит для более сложных приложений, чем те, которые используют традиционную трехуровневую архитектуру.
Заключение
Крупными игроками с точки зрения инструментов, обеспечивающих эффективное развертывание на AWS, являются платформы конфигурации, такие как Chef и Ansible, и вы не ошибетесь, начав с одного из этих инструментов. Конечно, вы можете дополнить свой выбор инструмента конфигурации другими инструментами, такими как AWS CodeDeploy, для более быстрого развертывания и сокращения времени простоя при обновлении критически важных приложений.