AWS для разработчиков. Типовые сценарии использования AWS
Андрей Зайчиков, Архитектор AWS
Всем привет!
Этим постом мы открываем серию публикаций по использованию Amazon Web Services для создания и управления средами разработки и тестирования. Это будет серия постов, отражающих разные аспекты создания, управления и использования сред разработки и тестирования на AWS.
Однако для начала хотелось бы сделать краткий обзор того, для чего вообще создавать тестовые среды с использованием AWS. В чем преимущества? Какие основные сценарии? Какие основные возможности?
Если вы когда-нибудь начинали работать над ИТ проектом с нуля – вы точно знаете, что Аристотель был прав. Это как раз тот случай, когда начало – это, как минимум, половина дела.
Прежде чем приступить непосредственно к работе, нужно сделать несколько простых действий:
- Настроить репозитории;
- Настроить тестовые среды;
- Настроить среду для проектной документации;
- Настроить build и CI сервера;
- Завести проект в баг трекер, настроить представления для клиента, настроить отчеты для менеджеров;
- Завести почтовые рассылки и группы в мессенджерах;
- Убедиться, что у всех есть доступ;
- Далее – в зависимости от того, насколько большая команда, проект, насколько «продвинутый» заказчик и проч.
Как раз на этом этапе пойдет всё не так, как может пойти. Окажется, что часть арендованных серверов занята, аренда части ресурсов подходит к концу, человек, который в прошлом проекте отвечал за документацию уволился, а для хранения вики вы всегда использовали его собственный аккаунт на файл-шеринге. Команда поменяется на 30% и появятся еще две субподрядные организации, которые слыхом не слыхивали о половине ваших инструментов и пользуются своими, появятся удаленные разработчики; централизованного почтового сервиса у вас никогда не было, баг-трекер хочется поменять и нужно перенести данные. Да мало ли, что пойдет не так.
И это, естественно, только на первом этапе. Дальше будет увеличение ресурсов где-нибудь на collocation, незапланированный переезд, долгий процесс настройки сети и последующие разборки, насколько сеть влияет на тестирование. Болезненный сбор логов, метрик и сравнение одного с другим.
Естественно, операционные проблемы будут возникать на каждом этапе и отнимать время разработчиков, администраторов и менеджеров на решение задач, которые напрямую к делу не относятся.
Очевидно, когда трудозатраты на администрирование очень большие, эксперименты становятся довольно накладными и рисковать временем и ресурсами не хочется. На одном из моих предыдущих проектов (вне рамок AWS) выделение одного «голого» сервера с Ubuntu для экспериментов удаленного разработчика заняло 32 дня при условии, что ресурсы были в наличии.
Кроме того, обычно затраты на ресурсы тестовых сред – первый кандидат на сокращение затрат, а обосновать необходимость вложений (в особенности капитальных) в создание инфраструктуры тестовых сред практически невохможно.
Вот, что мы получаем.
AWS позволяет существенно изменить подход к организации и использованию тестовых сред. Есть несколько основных преимуществ платформы, позволяющих решить часть из описанных выше проблем.
- Вы всегда знаете, где можно получить необходимое количество ресурсов, а также, то, что эти ресурсы будут предоставлены по требованию;
- Вы платите только за то, что используете (например: выборочная остановка виртуальных машин по окончании рабочего дня, по выходным и в праздники позволит рациональнее расходовать ресурсы);
- Вы полностью контролируете выделение, использование и стоимость ресурсов (доступ к ресурсам, управление ресурсами; политики контроля стоимости ресурсов и проч.);
- В AWS уже есть большое количество сервисов, обычно входящих в состав общих ресурсов команды разработчиков (S3, CodeCommit, CodeDeploy, проч.). Для многих популярных продуктов существуют заранее подготовленные образы виртуальных машин (Amazon Machine Image – AMI), включающих лицензию в стоимость использования;
- У вас есть практически неограниченный объем ресурсов в зрелых регионах;
- Вам не нужно тратить время на админитсрирование: значительная часть сервисов AWS не требует никакой дополнительной работы по администрированию.
Есть несколько основных сценариев использования тестовых сред и сред разработки:
- Персональные тестовые среды;
- Общие ресурсы команды разработчиков;
- Среды для быстрого прототипирования;
- Prod-like среды.
Все четыре сценария могут быть одновременно реализованы с использованием сервисов AWS. Архитектура общей среды разработки и тестирования при этом может выглядеть примерно так, как показано на рисунке ниже.
В этом сценарии:
- Используются три AWS accounts: один для общих ресурсов и персональных сред, один для прототипирования, один для организации продуктивной среды;
- Virtual Private Cloud (VPC) используется для разделения ресурсов по подсетям, упрощения контроля ресурсов и эмуляции реальной сети. Доступ к VPC осуществляется через VPN туннель или Интернет;
- Elastic Compute Cloud (EC2) используется в качестве основных вычислительных ресурсов. Это виртуальные сервера в облаке, которые разворачиваются с использованием Amazon Machine Image (AMI);
- Simple Storage Service (S3) – объектное хранилище, которое можно использовать для хранения объектов (очевидно ;)) любых типов и объемов (размер одного объекта до 5Tb);
- CloudFormation используется для автоматизации процедуры выделения ресурсов, в том числе, связанных ресурсов.
Несколько интересных ресурсов и видео:
На сегодня, пожалуй, все. Спасибо за внимание.
Следите за нашими следующими постами. Будет интересно!
相關推薦
AWS для разработчиков. Типовые сценарии использования AWS
Андрей Зайчиков, Архитектор AWS Всем привет! Этим постом мы открываем серию публикаций по использованию Amazon Web Services для со
AWS для цифрового маркетинга
Amazon Web Services приглашает на работу. Amazon Web Services (AWS) – динамично растущее подразделение в составе Amazon.com. В настоящее в
Примеры использования AWS: The Seattle Times
Для решения основной проблемы с масштабируемостью техническая группа Seattle Times рассмотрела несколько альтернативных вариантов хостинга, вкл
Пример использования AWS: Remind
Amazon Web Services приглашает на работу. Amazon Web Services (AWS) – динамично растущее подразделение в составе Amazon.com. В настоящее в
AWS для государственных учреждений
Платформу AWS используют более 2000 государственных учреждений. Мы понимаем, какое значение для государственных органов США имеет по
Примеры использования AWS: Localytics
Amazon Web Services приглашает на работу. Amazon Web Services (AWS) – динамично растущее подразделение в составе Amazon.com. В настоящее в
Примеры использования AWS: Hess Corporation
Чтобы подготовить инфраструктуру к переносу на платформу AWS, Hess и Nimbo разработали параллельный подход к проблеме с двух сторон:
AWS для некоммерческих организаций
Amazon Web Services (AWS) — недорогая инфраструктурная технология с широкими возможностями масштабирования. Ее можно исполь
亞馬遜AWS在線系列講座——基於AWS雲平臺的高可用應用設計
data 可用 mod -m 討論 數據 目標 popu 實例 設計高可用的應用是架構師的一個重要目標。可是基於雲計算平臺設計高可用應用與基於傳統平臺的設計有很多不同。雲計算在給架構師帶來了很多新的設計挑戰的時候,也給帶來了很多新的設計理念和可用的服務。怎樣在設計應用的
AWS考證方向:三、AWS實例安全組設置
text 詳細 部分 拒絕訪問 -o 信息 允許 如果 服務器 設置實例安全組的出入站 說明 入站規則:外網訪問服務器主機通過在入站規則進行匹配,如果匹配成功,則放行,允許訪問服務器,否則拒絕訪問。從而達到防護效果。 出站規則:從服務器訪問外網,內部流量訪問走向外網,默認允
AWS考證方向:四、AWS實例環境部署
更改 無法 環境 情況 密鑰 安全組 部署 如果 17. AWS主機環境部署 1.在控制面板頁面,選擇《啟動實例》: 2.選擇AMI系統映像 3.選擇實例類型(免費為主): 4.檢查實例詳細信息: 5.添加存儲(磁盤20G夠用,不夠後面再加,卷類型:通用性SSD): 6.添
Learning Amazon Web Services (AWS) for Developers Amazon Web Services AWS開發者教程 Lynda課程中文字幕
Learning Amazon Web Services (AWS) for Developers 中文字幕 Amazon Web Services AWS開發者教程 中文字幕Learning Amazon Web Services (AWS) for Developers 亞馬遜
AWS Nginx Started but not Serving AWS上Nginx伺服器無法正常工作
After install the Nginx on AWS instance, and visit your public ip address, you might see the following: This site can't be reached xxx.xxx.xx t
AWS 資料容災白皮書(AWS Disaster Recovery Whitepaper)剖析
AWS Disaster Recovery Whitepaper 最近在做一個容災方案,瞭解到AWS有一個容災的白皮書。 於是,今天粗略把 AWS 的容災白皮書 讀了一遍 [1] ,白皮書中介紹了基於 AWS 的幾種容災方案。這些方案不僅僅適用於基於 AWS 的系統,也適用於通用系統。現將其關鍵點摘
亞馬遜AWS沙龍筆記:如何通過AWS快速發展國際業務?及多種架構方案
痛點:孵化器中企業準備“出海”,那麼如何加快海內外之間互相訪問? 例如:交易所,伺服器在國外,使用者在中國,反之亦然 設計領域:由於、電商、IOT、社交、廣告 服務客戶:小米、網易、獵豹移動、一加、絕地求生等 四步:敏捷起步、快速擴張、平臺優化、有效變現 一、敏捷起步 5分鐘
AWS Marketplace: Fortinet Managed Rules for AWS WAF
AWS Marketplace is hiring! Amazon Web Services (AWS) is a dynamic, growing business unit within Am
AWS Marketplace: Barracuda CloudGen Firewall for AWS
Product Overview The Barracuda CloudGen Firewall is a purpose-built Cloud Gene
AWS Marketplace: Trustwave Managed Rules for AWS WAF
AWS Marketplace is hiring! Amazon Web Services (AWS) is a dynamic, growing business unit within Am
AWS Marketplace: TIBCO Spotfire Analytics for AWS (Hourly)
Amazon EC2 running Microsoft Windows Server is a fast and dependab
AWS Marketplace: Cloud Volumes ONTAP for AWS (formerly ONTAP Cloud)
AWS Marketplace is hiring! Amazon Web Services (AWS) is a dynamic, growing business unit within Am