В течение некоторого времени предоставление облачной инфраструктуры с помощью кода было принято в качестве отраслевого стандарта. Компании и другие организации могут сэкономить время и деньги, автоматизировав процесс предоставления ресурсов AWS, а не делая это вручную с помощью консоли AWS. После этого такие инструменты, как AWS CloudFormation и Terraform, стали широко использоваться для создания облачных ресурсов с использованием декларативной стратегии. Однако декларативный подход к настройке может оказаться весьма сложным, что приведет к созданию огромных шаблонов JSON или YAML, которые необходимо поддерживать в актуальном состоянии, чтобы поддерживать инфраструктуру в виде кода. Именно здесь на помощь приходит AWS CDK, который упрощает рабочий процесс разработчиков и помогает им предоставлять облачную инфраструктуру, используя императивный подход. В этом руководстве дополнительно объясняется Python AWS CDK и документация.
Что такое AWS CDK?
AWS CDK, или AWS Cloud Development Kit, — это среда разработки программного обеспечения с открытым исходным кодом, позволяющая определить облачную инфраструктуру как код (IaC). Он позволяет разработчикам моделировать и предоставлять ресурсы AWS, используя знакомые языки программирования, такие как TypeScript, Python, Java и другие. Вместо написания шаблонов в формате JSON или YAML AWS CloudFormation, CDK позволяет разработчикам выражать инфраструктуру, используя конструкции и абстракции выбранного ими языка программирования.
CDK обеспечивает высокоуровневую абстракцию ресурсов AWS, упрощая создание сложной облачной инфраструктуры и управление ею. Разработчики могут определять стеки, которые представляют собой набор ресурсов AWS, и использовать повторно используемые конструкции, предоставляемые библиотекой CDK. Этот подход повышает производительность, позволяя разработчикам использовать те же инструменты и методы для инфраструктуры, что и для кода приложения.
После того как инфраструктура определена в коде, CDK синтезирует ее в шаблоны CloudFormation, которые затем развертываются на AWS. Это обеспечивает эффективное сотрудничество, управление версиями и совместное использование кода инфраструктуры, продвигая лучшие практики в области DevOps и управления инфраструктурой. В целом AWS CDK упрощает и ускоряет процесс предоставления и обслуживания облачных ресурсов.
Концепция AWS CDK
Если разбить концепцию AWS CDK на три основных компонента, которые позволяют адаптировать предоставление вашей инфраструктуры к вашим конкретным потребностям.
- Приложение. Здесь начинается ваше дерево построения, и именно его вы будете использовать для объединения всех своих стеков и конструкций в одно приложение для развертывания в облаке AWS.
- Стек: во многом он напоминает стек CloudFormation. Ресурсы AWS упакованы в виде сборных строительных блоков в единый развертываемый блок (шаблон).
- Конструкция: это фундаментальная единица, в которой может размещаться либо один ресурс AWS, либо набор ресурсов AWS. Ресурсы AWS можно комбинировать любым удобным для вас способом.
Когда вы создаете приложение AWS CDK, на выходе получается облачная сборка, включающая шаблоны AWS CloudFormation для ваших стеков и всех ресурсов вашего приложения.
Затем интерфейс командной строки AWS CDK может развернуть этот пакет в выбранной вами учетной записи AWS и регионе.
Как работает AWS CDK?
AWS CDK (Cloud Development Kit) позволяет разработчикам определять облачную инфраструктуру с помощью знакомых языков программирования. Разработчики пишут код на таких языках, как TypeScript, Python или Java, используя конструкции CDK для представления ресурсов AWS. Эти конструкции представляют собой абстракции более высокого уровня, которые упрощают выражение облачных ресурсов и манипулирование ими.
После написания кода разработчики используют интерфейс командной строки CDK для его синтеза в шаблоны AWS CloudFormation. Эти шаблоны декларативно фиксируют желаемое состояние инфраструктуры. Синтезированные шаблоны можно просматривать, контролировать версии и совместно использовать, как и любой другой код.
После синтеза CLI CDK может развернуть шаблоны CloudFormation на AWS, создав указанную инфраструктуру. CDK упрощает процесс создания ресурсов AWS и управления ими, используя возможности языков программирования и предоставляя многократно используемые абстракции. Такой подход повышает удобство сопровождения кода, способствует сотрудничеству между группами разработки и эксплуатации, а также позволяет применять лучшие практики для инфраструктуры как кода (IaC). Также читайте AWS NETWORK FIREWALL: все, что вам нужно знать
Каковы некоторые особенности AWS CDK?
AWS CDK — это огромный шаг вперед, позволяющий разработчикам контролировать и автоматизировать инфраструктуру AWS. Скорость, с которой я могу создавать и выполнять итерации с помощью CDK, значительно выше, чем при использовании только AWS CloudFormation. Это связано с тем, что CDK позволяет быстрее разрабатывать ресурсы AWS, используя собственные инструменты разработки.
Учетные записи Intuit стали более единообразными и стандартизированными благодаря возможности совместного использования и распространения шаблонов AWS CloudFormation с использованием локальных программных инструментов моей компании. Что еще более важно, AWS опубликовала исходный код для этого проекта.
Наконец, это позволяет пользователям участвовать в формировании будущего AWS CloudFormation.
Ниже перечислены некоторые из наиболее полезных аспектов AWS Cloud Development Kit:
- Позволяет использовать широкий спектр языков
- Повышайте качество кода проекта AWS CDK с помощью предпочитаемых вами инструментов разработки.
- Используя концентратор конструкций, где вы можете получить доступ к конструкциям L2 и L3 CDK и обмениваться ими, вы можете сэкономить время и усилия при разработке новых ресурсов AWS для своего проекта.
- Храните все данные, связанные с CDK (инфраструктура, приложения, конфигурация и развертывание), в одном репозитории.
- Возможность вносить свой вклад и предлагать комментарии команде разработчиков, поскольку AWS CDK имеет открытый исходный код.
- Шаблоны CloudFormation с тысячами строк можно создать с помощью всего нескольких строк машинописного кода.
- Создавайте рекурсивные функции для создания множества ресурсов AWS за одну итерацию, например пять функций AWS Lambda, без дублирования кода.
Для чего используется AWS CDK?
AWS CDK (Cloud Development Kit) используется для определения и предоставления облачной инфраструктуры в Amazon Web Services (AWS) с использованием языков программирования. Вместо написания статических шаблонов AWS CloudFormation в формате JSON или YAML, CDK позволяет разработчикам выражать инфраструктуру как код (IaC), используя такие языки, как TypeScript, Python, Java и другие.
С помощью AWS CDK разработчики могут:
- Используйте знакомые языки программирования. Пишите инфраструктурный код на языках, с которыми они уже знакомы, что повышает производительность и сокращает время обучения.
- Создавайте повторно используемые конструкции. Используйте готовые повторно используемые конструкции для представления ресурсов AWS, что упрощает выражение сложных шаблонов инфраструктуры.
- Определите стеки. Организуйте ресурсы в стеки, представляющие наборы связанных компонентов инфраструктуры, которые можно развертывать вместе.
- Синтезируйте шаблоны CloudFormation. Автоматически генерируйте шаблоны AWS CloudFormation из кода CDK, что упрощает просмотр, контроль версий и совместное использование конфигураций инфраструктуры.
- Ускорение разработки: оптимизируйте процесс предоставления и обновления ресурсов AWS, согласовывая предоставление инфраструктуры с лучшими практиками разработки программного обеспечения.
По сути, AWS CDK упрощает управление облачной инфраструктурой, позволяя разработчикам использовать языки программирования для эффективного определения и развертывания ресурсов AWS.
Что такое AWS CDK и CloudFormation?
AWS CDK (Cloud Development Kit) и AWS CloudFormation — это инструменты для определения и предоставления инфраструктуры AWS, но они различаются подходом и использованием.
AWS CloudFormation:
- Декларативный язык: CloudFormation использует декларативный язык (JSON или YAML) для описания желаемого состояния инфраструктуры. Пользователи указывают, какие ресурсы им нужны, а также детали их конфигурации.
- Статические шаблоны. Инфраструктура определяется в статических шаблонах, которые должны быть написаны в формате JSON или YAML. Хотя эти шаблоны эффективны, они могут быть многословными и менее читабельными.
- Осведомленность о типах ресурсов. CloudFormation обладает глубоким пониманием типов ресурсов AWS и их свойств, обеспечивая полное, но потенциально сложное представление о предложениях сервисов AWS.
- Широкое распространение: CloudFormation — это хорошо зарекомендовавший себя сервис, широко используемый среди пользователей AWS.
WS CDK:
- Императивный язык: CDK позволяет разработчикам использовать знакомые языки программирования (TypeScript, Python, Java и т. д.) для определения инфраструктуры. Этот императивный подход позволяет использовать более динамичные и гибкие определения.
- Конструкции и абстракции. CDK представляет концепцию конструкций, которые представляют собой абстракции более высокого уровня, представляющие ресурсы AWS. Эти конструкции упрощают выражение сложных шаблонов инфраструктуры.
- Код как инфраструктура. CDK рассматривает инфраструктуру как код, что позволяет разработчикам писать логику для определения и настройки ресурсов. Это способствует повторному использованию кода и его читабельности.
- Синтез в CloudFormation: код CDK синтезируется в шаблоны CloudFormation в процессе развертывания. Это позволяет пользователям извлечь выгоду из возможностей CloudFormation, используя более удобный для разработчиков синтаксис.
Более того, в то время как CloudFormation более декларативен и опирается на шаблоны, CDK более ориентирован на код и использует стандартные языки программирования и методы, чтобы дать программистам больше возможностей отделить себя от деталей реализации. Какой из них лучше, зависит от вкусов пользователей, желаемого уровня абстракции и требований текущего проекта.
В чем разница между AWS CDK и AWS SDK?
Amazon Web Services предлагает два отдельных комплекта облачной разработки: AWS CDK (комплект облачной разработки) и AWS SDK (комплект разработки программного обеспечения).
AWS CDK (комплект облачной разработки):
- Инфраструктура как код (IaC): CDK в первую очередь ориентирован на определение и предоставление облачной инфраструктуры с использованием таких языков программирования, как TypeScript, Python, Java и т. д. Он позволяет разработчикам выражать ресурсы AWS и их отношения, используя императивный подход более высокого уровня.
- Абстракция с помощью конструкций. CDK представляет конструкции, которые представляют собой многократно используемые абстракции, представляющие ресурсы AWS. Эти конструкции позволяют разработчикам более кратко выражать сложные шаблоны инфраструктуры.
- Автоматизация развертывания. CDK упрощает синтез кода облачной инфраструктуры в шаблоны AWS CloudFormation, оптимизируя процесс развертывания.
AWS SDK (комплект для разработки программного обеспечения):
- Разработка приложений. SDK — это наборы библиотек и инструментов, которые позволяют разработчикам создавать приложения, программно взаимодействующие с сервисами AWS. SDK предоставляют API и методы для разработки приложений, обеспечивая такие функции, как чтение или запись в базы данных, взаимодействие с хранилищем, управление вычислительными ресурсами и т. д.
- Многоязычная поддержка. Пакеты AWS SDK доступны для нескольких языков программирования (Java, Python, .NET и т. д.), предоставляя согласованный набор инструментов и библиотек для различных сред.
- Интеграция сервисов. SDK позволяют интегрировать сервисы AWS в пользовательские приложения, позволяя разработчикам программно взаимодействовать с ресурсами AWS.
Короче говоря, AWS CDK отдает приоритет абстракциям более высокого уровня и языкам программирования, чтобы определять и предоставлять инфраструктуру в виде кода. Чтобы облегчить разработку приложений, программно использующих сервисы AWS, AWS Software Development Kit (SDK) предоставляет библиотеки для конкретного языка. Методы разработки AWS CDK больше ориентированы на базовую инфраструктуру, тогда как методы SDK больше ориентированы на приложения.
AWS CDK Python
Amazon Web Services CDK (Cloud Development Kit) для Python — это среда разработки программного обеспечения, которая позволяет разработчикам определять и предоставлять инфраструктуру AWS с помощью языка программирования Python. Он упрощает процесс создания облачных ресурсов и управления ими за счет использования знакомого синтаксиса и конструкций Python. Обзор комплекта разработки клиента AWS Python (CDK):
- Знание языка. Благодаря CDK для Python разработчики могут использовать Python, широко распространенный и универсальный язык программирования, для определения своей облачной инфраструктуры. Это сокращает время обучения для тех, кто уже владеет Python.
- Pythonic Constructs: CDK представляет Pythonic-конструкции, которые представляют собой абстракции более высокого уровня, представляющие ресурсы AWS. Эти конструкции позволяют разработчикам легко выражать сложные шаблоны инфраструктуры с помощью кода Python, повышая читаемость и удобство обслуживания.
- Богатая экосистема: CDK для Python использует обширную экосистему Python, позволяя разработчикам использовать существующие библиотеки и инструменты Python в своем инфраструктурном коде. Эта интеграция повышает гибкость и расширяемость проектов на основе CDK.
- Декларативный и императивный стили. Разработчики могут выбирать между декларативным и императивным стилями при определении инфраструктуры. Декларативный стиль предполагает использование классов Python для определения желаемого состояния ресурсов, тогда как императивный стиль допускает более динамичные и процедурные определения.
- Синтез для CloudFormation. Как и другие реализации CDK, CDK для Python синтезирует код инфраструктуры в шаблоны AWS CloudFormation в процессе развертывания. Это обеспечивает совместимость с существующими рабочими процессами и инструментами AWS CloudFormation.
- Поддержка сервисов AWS. CDK для Python поддерживает широкий спектр сервисов AWS, позволяя разработчикам определять такие ресурсы, как экземпляры EC2, корзины S3, функции Lambda и многое другое, с помощью кода Python.
Таким образом, AWS CDK для Python предлагает ориентированный на Python подход к определению и развертыванию инфраструктуры AWS, предоставляя разработчикам Python удобный и выразительный способ управления облачными ресурсами с использованием знакомых парадигм программирования.
Преимущества AWS CDK
AWS CDK (Cloud Development Kit) обладает рядом преимуществ, что делает его выдающимся инструментом для облачной разработки. Прочтите краткий обзор некоторых преимуществ:
№1. Ускоренный инновационный цикл
AWS CDK может сократить цикл разработки, облегчая повторное использование кода и компонентов инфраструктуры, автоматизацию инфраструктуры AWS и последующее сокращение времени и усилий, необходимых для создания и развертывания приложений.
# 2. Легко использовать
Разработчикам, уже свободно владеющим языком программирования, не составит труда освоить AWS CDK. Они могут быстро начать работу с AWS CDK, используя имеющиеся у них знания и навыки и научившись моделировать и предоставлять ресурсы инфраструктуры.
№3. Совместимость с несколькими сервисами AWS
Помимо Amazon S3, Amazon DynamoDB, Amazon RDS, Amazon EC2, AWS Lambda и Amazon API Gateway, AWS CDK поддерживает множество других предложений AWS. Это открывает разработчикам возможность создавать и контролировать стеки мультисервисной инфраструктуры.
Для удовлетворения уникальных потребностей AWS CDK предлагает адаптируемую структуру, которую можно изменить в соответствии с этими потребностями. Разработчики также могут делиться своим кодом и технологиями с другими, что упрощает совместную работу над проектами.
№5. Вы не можете сменить тему
AWS CDK позволит разработчикам оставаться в предпочитаемой ими среде разработки и языке, избегая необходимости переключения между различными инструментами и интерфейсами.
Как мне начать работу с AWS CDK?
Начинающим пользователям может быть сложно понять, как начать работу с AWS CDK. В этом руководстве показано, как настроить интерфейс командной строки (CLI) AWS, создать образец проекта AWS CDK и, наконец, развернуть этот проект на AWS.
Шаг 1. Установите интерфейс командной строки AWS CDK.
Интерфейс командной строки AWS CDK позволяет вам общаться с AWS CDK через командную строку. Если вы запустите следующий код в своем терминале, npm (диспетчер пакетов узлов) установит его за вас:
npm установить -g aws-cdk
Шаг 2. Выберите язык программирования
TypeScript, JavaScript, Python, Java, C# и Go — это лишь некоторые из языков программирования, которые поддерживает AWS CDK. Выбирайте тот, который заставляет вас чувствовать себя наиболее комфортно.
Шаг 3. Создайте новое приложение CDK
Новое приложение AWS CDK можно создать с помощью команды cdk init после установки интерфейса командной строки AWS CDK и выбора языка программирования. С помощью этой команды вы можете создать новую программу CDK с примером кода на выбранном вами языке.
Шаг 4. Напишите свою инфраструктуру как код
Комплект определения конфигурации AWS (CDK) позволяет вам определить среду AWS как код на любом языке, который вам нравится. Вы можете использовать библиотеку конструкций AWS CDK для описания ваших ресурсов, таких как инстансы EC2, корзины S3 и т. д.
Шаг 5. Разверните и протестируйте свое приложение
Ваша инфраструктура может быть развернута с помощью команды «cdk Deploy», как только она будет определена как код. Эта команда создаст или обновит ваши ресурсы в вашей учетной записи AWS. После развертывания вашего приложения вы можете протестировать его, взаимодействуя с ним в Консоли управления AWS или выполнив его автоматическое тестирование.
Документация AWS CDK
Если вы разработчик, заинтересованный в изучении, работе с AWS CDK (Cloud Development Kit) или освоении его для создания облачной инфраструктуры на различных компьютерных языках, эта документация для вас. Ключевые особенности документации AWS CDK описаны ниже.
№1. Начать
Инструкции по установке, введение в ключевые концепции и рекомендации по настройке среды разработки представлены в документации по началу работы с AWS CDK.
№2. Основные понятия
В нем рассматриваются фундаментальные концепции, такие как стеки, конструкции и библиотека конструкций AWS. Стеки представляют собой набор ресурсов AWS, конструкции — это строительные блоки для определения ресурсов, а библиотека AWS Construct Library предоставляет готовые конструкции многократного использования для распространенных сервисов AWS.
№ 3. Языки программирования
TypeScript, Python, Java, C# и другие языки перечислены в документации как совместимые с ним. Хорошо известно, что каждый язык имеет свои уникальные характеристики и особенности.
№4. Ссылка на строительство
Доступные конструкции для многих сервисов AWS тщательно документированы. В этом разделе разработчикам представлены рекомендации по использованию различных методов для создания ресурсов AWS, таких как корзины S3, таблицы DynamoDB, функции AWS Lambda и многое другое.
№5. Лучшие практики
В документации представлены лучшие практики разработки и организации приложений CDK для обеспечения масштабируемости, удобства обслуживания и безопасности.
№6. Справочник по API
Каждый язык поставляется с собственным подробным справочником по API, в котором перечислены все классы, методы и атрибуты CDK.
№7. Тематические исследования и руководства
Множество учебных пособий и примеров показывают, как создавать различные виды инфраструктуры и решать типичные проблемы. Разработчики любого уровня могут извлечь пользу из изучения этих примеров.
№8. Содействие
Документация часто включает информацию о том, как внести свой вклад в проект CDK, поощряя участие и сотрудничество сообщества.
Кроме того, документация AWS CDK служит жизненно важным ресурсом, позволяющим разработчикам ориентироваться в тонкостях AWS CDK, понимать его основные концепции и эффективно использовать его для определения, развертывания и управления облачной инфраструктурой на AWS.
Когда мне следует использовать AWS CDK?: Итог
Вам следует рассмотреть возможность использования AWS CDK (Cloud Development Kit) в следующих сценариях:
- Знакомство с языками программирования. Если ваша команда уже владеет такими языками программирования, как TypeScript, Python, Java или C#, использование CDK позволит вам использовать эти навыки для определения облачной инфраструктуры.
- Проекты, ориентированные на AWS. CDK особенно хорошо подходит для проектов, ориентированных на AWS. Он предоставляет собственные конструкции для сервисов AWS, упрощая определение ресурсов AWS и управление ими.
- Абстракции более высокого уровня. При работе со сложными шаблонами инфраструктуры или когда вы хотите абстрагировать детали низкого уровня, конструкции CDK предоставляют абстракции более высокого уровня, которые упрощают выражение и управление ресурсами.
- Согласование разработки и инфраструктуры. Если вы предпочитаете подход к инфраструктуре, ориентированный на разработку, CDK хорошо сочетается с практиками разработки. Разработчики могут управлять как кодом приложения, так и кодом инфраструктуры, используя схожие рабочие процессы.
- Синтез с CloudFormation. Если ваша организация использует AWS CloudFormation для развертывания инфраструктуры, CDK может оказаться полезным, поскольку он синтезирует шаблоны CloudFormation в процессе развертывания. Это обеспечивает совместимость с существующими рабочими процессами и инструментами CloudFormation.
- Динамические или императивные определения. Если вы предпочитаете императивный и динамический стиль определения инфраструктуры, где важна процедурная логика, подход языка программирования CDK обеспечивает гибкость в выражении кода инфраструктуры.
Важно отметить, что выбор между Amazon Web Services CDK и другой инфраструктурой в качестве инструментов кода, такой как Terraform, зависит от различных факторов, включая опыт команды, требования проекта и личные предпочтения. Прежде чем принимать решение, оцените сильные и слабые стороны каждого инструмента в контексте вашего конкретного варианта использования.
FAQ
Должен ли я использовать Terraform или CDK?
Сильными сторонами AWS CDK являются его программируемость, возможность повторного использования кода и совместимость с другими сервисами AWS. Для тех, кто знаком с языками программирования и хочет иметь уровень абстракции, это фантастический вариант. С другой стороны, сильными сторонами Terraform являются поддержка нескольких облаков, декларативный синтаксис и большая база пользователей.
Каковы недостатки AWS CDK?
Одним из недостатков AWS CDK является то, что для доступа к интегрированной среде разработки требуется использование стороннего сервиса, например Cloud9. Отсутствие всего необходимого в одном месте – это неудобство. Кроме того, когда несколько человек работают над одним и тем же кодом, это может привести к проблемам с перекрытием изменений.
похожие статьи
- ПОЛНОЕ РУКОВОДСТВО ПО РАЗРАБОТКЕ 3 ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ДЛЯ СОЗДАНИЯ ИГРЫ
- ЧТО ТАКОЕ PYCHARM: особенности, чем он полезен и где
- PYCHARM VS VSCODE: что лучше для Python
- AZURE DATA FACTORY: что это значит и все, что нужно знать