Рубрики
Uncategorized

Введение в DevOps на AWS | AWS WhitePaper Резюме

Эта статья подчеркивает: возможности AWS, которые помогут вам ускорить путешествие DevOps, и … Tagged с DevOps, AWS, Cloud.

Эта статья подчеркивает:

  • Возможности AWS, которые помогут вам ускорить путешествие DevOps, и как услуги AWS могут помочь удалить недифференцированную тяжелую работу, связанную с адаптацией DevOps.
  • Как создать непрерывную интеграцию и возможности доставки без управления серверами или строительства узлов, а также как использовать инфраструктуру в качестве кода для обеспечения и управления вашими облачными ресурсами в последовательном и повторяемом способе.

Что такое DevOps?

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

  • Непрерывная интеграция
  • Непрерывная доставка
  • Инфраструктура как код
  • Мониторинг и ведение журнала
  • Общение и сотрудничество
  • Безопасность

Непрерывная интеграция

Непрерывная интеграция (CI) является практикой разработки программного обеспечения, где разработчики регулярно объединяют свои изменения кода в репозиторий центрального кода, после чего выполняются автоматические сборки и тесты. CI помогает быстрее найти и адресовать ошибки, улучшать качество программного обеспечения и сократить время, необходимое для проверки и выпуска новых обновлений программного обеспечения.

AWS предлагает следующие услуги для непрерывной интеграции:

  • AWS CODECOMMIT: является безопасной, высоко масштабируемым, управляемым источником службы управления источником, которая размещает частные репозитории GIT. Некоторые преимущества использования AWS CodeCommit:

    • Сотрудничество: CodeCommit предназначен для совместной разработки программного обеспечения, где вы можете легко совершать, разветвлять и объединять свой код, чтобы легко сохранить контроль над проектами вашей команды.
    • Шифрование: Ваши репозитории трансферы с использованием HTTPS или SSH и автоматически зашифруются через службу управления ключами AWS (AWS KMS).
    • Контроль доступа: CodeCommit использует AWS Identity and Access Management (IAM) для управления, а также помогает вам контролировать ваши репозитории через AWS CloudTrail и Amazon CloudWatch.
    • Высокая доступность и долговечность: CodeCommit хранит ваши репозитории в Amazon Simple Service (S3) и Amazon DynamoDB.
    • Уведомления и пользовательские сценарии: Получите уведомления с Mazon Simple Natification Service (Amazon SNS) для событий, влияющих на ваши репозитории.
  • AWS Codebuild: является полностью управляемой службой непрерывной интеграции, которая компилирует исходный код, запускает тесты и производит программные пакеты, которые готовы к развертыванию.

  • AWS CODEARTIFACT: является полностью управляемым сервисом репозитория артефакта, которая может использоваться организациями для надежного хранения, публикации и обмена программными пакетами, используемыми в процессе разработки программного обеспечения.

Непрерывная доставка

Непрерывная доставка (CD) является практикой разработки программного обеспечения, где изменения кода автоматически подготовлены к выпуску на производство. Он расширяется при непрерывной интеграции путем развертывания всех изменений кода в среду тестирования и/или производственную среду после стадии сборки.

AWS предлагает следующие услуги для непрерывной доставки:

  • AWS Codedeploy: является полностью управляемой службой развертывания, которая автоматизирует развертывание программного обеспечения для различных вычислительных услуг, таких как Amazon Elastic Compute Cloud (Amazon EC2), AWS Fargate, AWS Lambda и ваши локальные серверы. Codedeploy имеет несколько преимуществ, таких как:

    • Автоматизированные развертывания: Codedeploy полностью автоматизирует развертывание программного обеспечения, позволяя вам быстро и быстро развернуть.
    • Централизованный контроль: Codedeploy позволяет легко запустить и отслеживать статус развертывания ваших приложений через консоль управления AWS или AWS CLI.
    • Минимизировать время простоя: Codedeploy помогает максимизировать доступность вашего приложения, внедряя изменения, постепенно отслеживая здоровье приложений в соответствии с настраиваемыми правилами, предоставляя возможность легко остановить и откатить, если есть ошибки.
    • Легко принять: CodeDeploy работает с любым приложением и предоставляет тот же опыт на разных платформах и языках с легкой интеграцией с вашим существующим инструментами непрерывной доставки.
  • AWS Codepipeline: Сервис, который позволяет вам моделировать, визуализировать и автоматизировать шаги, необходимые для выпуска вашего программного обеспечения. CodePipeline, вы моделируете процесс полного выпуска для создания вашего кода, развертывания в средах для производства, тестируя свое приложение и выпускаете его до производства. Codepipeline имеет несколько преимуществ, таких как:

    • Быстрая доставка: CodePipeline автоматизирует процесс выпуска программного обеспечения, позволяя быстро выпустить новые функции для ваших пользователей.
    • Улучшенное качество: Позволяет увеличить скорость и качество обновлений программного обеспечения, автоматизируя процессы сборки, тестирования и выпуска.
    • Легко интегрировать: CodePipeline может быть легко расширена, чтобы адаптироваться к вашим конкретным потребностям. Вы можете использовать предварительно созданные плагины или свои собственные плагины на любом этапе процесса выпуска.
    • Настраиваемый рабочий процесс: CodePipeline позволяет вам моделировать различные этапы процесса выпуска программного обеспечения, используя интерфейс консоли, CLI AWS, AWS CloudFormation или AWS SDK.

Стратегии развертывания

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

Некоторые могут выбрать для полного тестирования программного обеспечения, а другие могут хотеть, чтобы их пользователи предоставили обратную связь и позволили своим пользователям оценивать функции разработки (например, бета -выпуски). Стратегии развертывания должны быть рассмотрены:

  • Развертывание на месте: Развертывание осуществляется в соответствии с приложением в каждом экземпляре в группе развертывания остановлен, новейшая пересмотр приложения установлена, и новая версия приложения запускается и проверена. Эти же стратегии развертывания для развертываний на месте доступны в рамках синего/зеленого развертывания.
  • Синие/зеленые развертывания: является методикой выпуска приложений путем сменного трафика между двумя идентичными средами, в которых работают разные версии приложения. Это поможет вам минимизировать время простоя во время обновлений приложений, смягчающих риски, связанные с простоями и функциональностью отката. Это также позволяет вам запустить новую версию (зеленый) вашего приложения вместе со старой версией (синяя), а также отслеживать и протестировать новую версию, прежде чем перенаправить его трафик, возвращаясь к обнаружению.
  • Канарские развертывания: это синяя/зеленая стратегия, которая более склонна к риску, в которой используется поэтапный подход. Это может быть двумя шагом или линейными, в которых новый код приложения развернут и выявляется для испытания, а после принятия приема в остальную среду или линейным образом.
  • Линейные развертывания: Линейные развертывания означают, что трафик смещается с равными приращениями с одинаковым количеством минут между каждым приращением. Вы можете выбрать из предварительно определенных линейных опций, которые указывают процент трафика, сдвинутого при каждом приращении и количестве минут между каждым приращением.
  • Все-развертываемые развертывания: Развертывания All-at-once означают, что весь трафик перемещается из исходной среды в среду замены одновременно.

Стратегии развертывания Матрица

В следующей матрице перечислены поддерживаемые стратегии развертывания для сервиса Amazon Elastic Contastic (Amazon ECS), AWS Lambda и Amazon EC2/Uncerse.

  • Amazon ECS является полностью управляемой службой оркестровки.

  • AWS Lambda позволяет запускать код без обеспечения или управления серверами.

  • Amazon EC2 позволяет запустить безопасную, сметочной размерной емкость в облаке.

На месте
✓* Цвет морской волны
X Канарейка
X Линейный
X Все сразу

Примечание Это синее/зеленое развертывание с EC2/Un-Premise работает только с экземплярами EC2.

AWS Elastic Beanstalk стратегии развертывания

  • AWS Elastic Beanstalk поддерживает следующий тип стратегий развертывания:

    • All-at-once: Выполняет развертывание во всех случаях.
    • Роллинг: Разбивает экземпляры на партии и развертывает по одной партии за раз.
    • Скаливание с дополнительной партией: Разматывает развертывания на партии, но для первой партии создает новые экземпляры EC2 вместо того, чтобы развернуть существующие экземпляры EC2.
    • Неиспользуемая: Если вам нужно развернуть с новым экземпляром вместо использования существующего экземпляра.
    • Расщепление трафика: Выполняет неизменное развертывание и затем продвигает процент трафика в новые экземпляры для заранее определенного продолжительности времени. Если экземпляры остаются здоровыми, тогда перенаправьте весь трафик в новые экземпляры и отключите старые экземпляры.

Инфраструктура как код

  • Основным принципом DevOps является обращение с инфраструктурой так же, как разработчики рассматривают код.
  • Когда код собирается или встроен в приложения, мы ожидаем, что будет создано постоянное приложение, а сборка повторяется и надежна.
  • Все конфигурации должны быть определены декларативным образом и храниться в системе управления источником, такой как CodeCommit, так же, как код приложения. Предоставление инфраструктуры, оркестровки и развертывания должны также поддерживать использование инфраструктуры в качестве кода.
  • AWS предоставляет услуги, которые обеспечивают создание, развертывание и обслуживание инфраструктуры в программном, описательном и декларативном способе. Эти услуги обеспечивают строгость, ясность и надежность.

AWS предлагает следующие услуги для определения инфраструктуры в качестве кода:

  • AWS CloudFormation: это услуга, которая позволяет разработчикам создавать ресурсы AWS в упорядоченном и предсказуемом способе. Шаблоны требуют конкретного синтаксиса и структуры, который зависит от типов создаваемых и управляемых ресурсов.

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

      AWS CloudFormation Создание всей среды (стека) из одного шаблона рабочий процесс

      • Вы можете использовать один шаблон для создания и обновления всей среды или отдельных шаблонов для управления несколькими уровнями в среде. Это позволяет модулизировать шаблоны, а также обеспечивает уровень управления, который важен для многих организаций.
      • Когда вы создаете или обновляете стек в консоли, отображаются события, показывающие состояние конфигурации. Если возникает ошибка, по умолчанию стек перевернут обратно в его предыдущее состояние. Amazon Simple Notification Service (Amazon SNS) предоставляет уведомления о событиях.
  • AWS Cloud Development Kit (CDK): это структура разработки программного обеспечения с открытым исходным кодом для моделирования и предоставления ресурсов ваших облачных приложений с использованием знакомых языков программирования. AWS CDK позволяет вам моделировать инфраструктуру приложений с использованием TypeScript, Python, Java и .net. Разработчики могут использовать свою существующую интегрированную среду разработки (IDE), используя такие инструменты, как автозаполнение и встроенная документация для ускорения развития инфраструктуры. Конструкции являются основными строительными блоками кода CDK. Конструкция представляет облачный компонент и инкапсулирует все, что необходимо для создания компонента AWS CloudFormation. AWS CDK включает библиотеку AWS Construct содержащие конструкции, представляющие множество услуг AWS.

  • AWS Cloud Development Kit для Kubernetes: является структурой разработки программного обеспечения с открытым исходным кодом для определения приложений Kubernetes с использованием языков программирования общего назначения. После того, как вы определили свое приложение на языке программирования, CDK8S преобразует ваше описание приложения в Pre-Kubernetes YML, который может быть использован любым кластером Kubernetes, работающим в любом месте.

Автоматизация

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

Автоматизация имеет следующие ключевые преимущества:

  • Быстрые изменения

  • Повышенная производительность

  • Повторяемые конфигурации

  • Воспроизводимые среды

  • Эластичность с использованием

  • Левередленно автоматическое масштабирование

  • Автоматизированное тестирование

AWS предлагает следующие услуги для автоматизации:

  • AWS OPSWORKS: Предоставляет еще больше уровней автоматизации с дополнительными функциями, такими как интеграция с программным обеспечением для управления конфигурацией (Chef) и управлением жизненным циклом приложений. Вы можете использовать управление жизненным циклом приложений для определения, когда ресурсы настроены, настроены, развернуты, недостаточно развернуты или выключаются. С AWS Opsworks, Вы определяете свое приложение в настраиваемых стеках. Вы также можете выбрать предопределенные стеки приложений.
  • AWS OPSWORKS, показывающие функции и архитектуры DevOps

    • Стеки приложений организованы в архитектурные слои, так что стеки можно сохранить независимо.
    • Из коробки AWS Opsworks также упрощает настройку групп автоматического масштабирования и упругих балансировщиков нагрузки, дополнительно иллюстрируя принцип автоматизации DevOps.
    • AWS Opsworks поддерживает управление версиями приложений, непрерывным развертыванием и управлением конфигурацией инфраструктуры.
    • AWS Opsworks также поддерживает практику DevOps мониторинга и регистрации.
  • AWS Elastic Beanstalk: это услуга для быстрого развертывания и масштабирования веб -приложений, разработанных с Java, .net, PHP, Node.js, Python, Ruby, Go и Docker на знакомых серверах, таких как Apache, Nginx, Passenger и IIS.

  • Эластичный бобовый стебель — это абстракция Помимо Amazon EC2, Автоматическое масштабирование и Упрощает развертывание, предоставляя дополнительные функции такие как клонирование, синий/зеленый развертывание, интерфейс командной строки Elastic Beanstalk (EB CLI) и Интеграция с AWS Toolkit Для Visual Studio, Visual Studio Code, Eclipse и IntelliJ для повышения производительности разработчиков.

Мониторинг и ведение журнала

Потому что обратная связь имеет решающее значение. В AWS обратная связь предоставляется двумя основными службами: Amazon CloudWatch и AWS Cloudtrail Анкет Вместе они обеспечивают надежный мониторинг, оповещение и аудиторскую инфраструктуру, чтобы разработчики и операционные команды могли тесно и прозрачно работать вместе.

AWS предоставляет следующие услуги для мониторинга и ведения журнала:

  • Amazon CloudWatch: Metrics Amazon CloudWatch автоматически собирает данные из сервисов AWS, таких как экземпляры Amazon EC2, тома Amazon EBS и экземпляры Amazon RDS DB. Эти метрики могут быть организованы, так как могут быть созданы информационные панели и тревоги или события для запуска событий или выполнения действий автоматического масштабирования.

  • Amazon CloudWatch Alarms: Вы можете настроить тревоги на основе метрик, собранных Amazon CloudWatch Metrics. Затем сигнал тревоги может отправить уведомление на тему Amazon Simple Servication Service (Amazon SNS) или инициировать действия автоматического масштабирования. Тревога требует период (Длина времени для оценки метрики), Период оценки (количество самых последних точек данных) и DataPoints для тревоги (Количество точек данных в период оценки).

  • Журналы Amazon CloudWatch: является службой агрегации и мониторинга журнала. AWS Codebuild, CodeCommit, Codedeploy и CodePipeline Предоставьте интеграцию с журналами CloudWatch так что все журналы можно контролировать в центре.

    • С журналами CloudWatch вы можете:
    • Запросите данные о ваших журналах
    • Мониторинг журналов из экземпляров Amazon EC2
    • Мониторинг AWS Cloudtrail зарегистрированные события
    • Определить политику хранения журнала
  • Amazon CloudWatch Logs Insights: Сканирует свои журналы и позволяет вам выполнять интерактивные запросы и визуализации. Он понимает различные форматы журнала и автоматические поля из журналов JSON.

  • Amazon CloudWatch события: Предоставляет почти в реальном времени поток системных событий, которые описывают изменения в ресурсах AWS.

    • Вы можете соответствовать событиям и направить их к одной или нескольким целевым функциям или потокам.
    • События CloudWatch узнают об эксплуатационных изменениях по мере их возникновения.
    • События CloudWatch реагируют на эти оперативные изменения и при необходимости принимают корректирующие действия , отправляя сообщения для реагирования на среду, активируя функции, внесение изменений и захват информации о состоянии.
  • Amazon Eventbridge: это автобус без сервера, которая обеспечивает интеграции между службами AWS, программным обеспечением как службами (SAAS), и ваши приложения. В дополнение к созданию приложений, управляемых событиями, Eventbridge можно использовать для уведомления о событиях из таких услуг, как кодовая строительство, кодиплоя, кодипелины и кодовая.

  • AWS Cloudtrail: важно понять, кто вносит изменения в вашу инфраструктуру. В AWS эта прозрачность предоставляется AWS Cloudtrail Service.

    • Все взаимодействия AWS обрабатываются с помощью вызовов AWS API, которые контролируются и регистрируются AWS Cloudtrail.
    • Все сгенерированные файлы журнала хранятся в ведре Amazon S3, которое вы определяете.
    • Файлы журнала зашифруются с использованием Amazon S3 Server Encryption (SSE).

Общение и сотрудничество

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

Двух пиццерий

«Мы стараемся создавать команды, которые не больше, чем можно питать две пиццы», — сказал Безос. «Мы называем это правилом команды с двумя пиццами».

Чем меньше команда, тем лучше сотрудничество.

  • Сотрудничество Также очень важно, так как релизы программного обеспечения движутся быстрее, чем когда -либо. И способность команды доставлять программное обеспечение может быть различным фактором для вашей организации против вашей конкуренции.

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

Безопасность

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

Модель общей ответственности AWS

Безопасность — это общая ответственность между AWS и клиентом. Различные части модели общей ответственности объяснены ниже:

  • AWS ответственность «Безопасность облака»: AWS отвечает за защиту инфраструктуры, которая управляет всеми услугами, предлагаемыми в облаке AWS. Эта инфраструктура состоит из оборудования, программного обеспечения, сети и средств, которые запускают облачные сервисы AWS.

  • Ответственность за клиент «Безопасность в облаке»: Ответственность за клиентом определяется облачными сервисами AWS, которые выбирает клиент. Это определяет объем конфигурации, которую клиент должен выполнять как часть своих обязанностей по безопасности.

Управление идентификацией и доступом (IAM)

AWS Identity and Management (IAM) определяет Управление и политика которые используются для управления доступом к ресурсам AWS. Используя IAM, вы можете создавать пользователей и группы и определить разрешения для различных сервисов DevOps.

  • В дополнение к пользователям, Различные услуги также могут потребоваться доступ к ресурсам AWS.

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

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

Рекомендации

Вы можете найти оригинальный WhitePaper AWS Здесь Анкет

Благодарности

Это вклад в AWS Community Mena Анкет

Для получения дополнительной информации, пожалуйста, следуйте хэштегу #aws_whitepaper_summary .

Связаться со мной на LinkedIn

Следуйте Awsbelaraby

Оригинал: «https://dev.to/awsmenacommunity/introduction-to-devops-on-aws-aws-whitepaper-summary-877»