ИНФРАСТРУКТУРА КАК КОДЕКС

Начало работы | Инфраструктура как код (IaC) с примерами.

Понимание IaC в деталях.

Обзор

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

Инфраструктура как код (IaC) управляет инфраструктурой и предоставляет ее с помощью кода, а не вручную. В IaC записываются файлы конфигурации, содержащие спецификации и сведения об инфраструктуре, что упрощает создание и редактирование необходимых конфигураций. Это также гарантирует, что каждый раз, когда вы запускаете конкретный код IaC, он создает точно такую ​​же инфраструктуру.

Поскольку IaC — это, по сути, код, который мы можем поддерживать в системе управления версиями, это помогает нам отслеживать каждое развертывание и легко выполнять откат, если мы сталкиваемся с какими-либо проблемами.

Важные преимущества IaC перечислены ниже.

  • Управление версиями: мы можем отслеживать последнюю и старую информацию.
  • Нет ручного вмешательства: после того, как конфигурации будут написаны, нам не потребуется ничего менять, что снижает вероятность создания неправильной инфраструктуры.
  • Расширенная автоматизация. IaC можно широко использовать при создании конвейеров CI/CD.
  • Снижение затрат. Мы создаем ровно столько, сколько необходимо, сокращая избыточную инфраструктуру.
  • Увеличение скорости развертывания:поскольку нет ручного вмешательства, развертывание выполняется быстро и быстро.
  • Разные варианты. Существует несколько способов написания кода IaC.

Декларативная и императивная инфраструктура как код

  • Декларативный IaC: нам нужно только установить желаемый файл конфигурации состояния, а инструмент IaC позаботится о создании всей инфраструктуры.
  • императивный IaC:нам нужно создать шаги/команды, и они будут выполняться одна за другой, чтобы создать всю инфраструктуру.

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

Вот несколько популярных вариантов для IaC:

Ниже приведены примеры различных инструментов для создания корзины S3 в AWS.

  1. Терраформ
resource "aws_s3_bucket" "b" {
  bucket = "DOC-EXAMPLE-BUCKET"
tags = {
    Name        = "My bucket"
    Environment = "Dev"
  }
}
resource "aws_s3_bucket_acl" "example" {
  bucket = aws_s3_bucket.b.id
  acl    = "private"
}

пример: https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/s3_bucket

2. Облакообразование AWS

AWSTemplateFormatVersion: "2010-09-09"
Resources:
  S3Bucket:
    Type: 'AWS::S3::Bucket'
    DeletionPolicy: Retain
    Properties:
      BucketName: DOC-EXAMPLE-BUCKET

пример: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket.html#aws-properties-s3-bucket--examples

3. АВС CDK

new Bucket(scope, 'Bucket', {
  bucketName : 'DOC-EXAMPLE-BUCKET'
  removalPolicy: RemovalPolicy.RETAIN,
});

пример: https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_s3.Bucket.html

4. Бессерверная среда

resources:
  Resources:
    ModuslandBucket:
      Type: AWS::S3::Bucket
      Properties:
        BucketName: DOC-EXAMPLE-BUCKET

кредиты: https://moduscreate.com/blog/upload-files-to-aws-s3-using-a-serverless-framework/

Спасибо за прочтение. Надеюсь, эта история была полезной. Если ты заинтересован,

посмотрите другие мои статьи.

вы также можете посетить shubhamdeshmukh.com