AWS SDK против AWS CLI - Формирование облака AWS - Terraform - PullRequest
0 голосов
/ 21 июня 2019

Для обеспечения инфраструктуры в облаке AWS мы в настоящее время используем шаблоны формирования облачных вычислений, вызванные из разных ролей, но мы видим, что после увеличения размера инфраструктуры этот код стал неструктурированным или не модульным в GitHub

У Github есть спагетти этого кода без надлежащей структуры, менее читаемые, не легко выбираемые новым техником

Специально для обеспечения инфраструктуры, я вижу, что поддержка кода, написанного на доменных языках , таких как ansible, terraform, cloudformation и т. Д. ... не является хорошей идеей для долгосрочного обслуживания кода в GitHub, потому что для полная (полная) автоматизация, вы используете комбинацию этих ТЕХНОЛОГИЙ.

Философия заключается в том, что sdk-код aws выглядит более структурированным в GitHub, потому что он дает много деталей, скрывающих абстракцию.

Конечно, код обеспечения так же важен, как функциональный код , который выполняется в этой предоставляемой инфраструктуре.

Мы уверены, что после перехода с Azure перейдем к облаку AWS


язык, специфичный для предметной области по отношению к языку программирования,

Решает ли эта проблема подход aws sdk? Мы предпочитаем GoLang aws sdk, чтобы любой программист GoLang мог его взять.

1 Ответ

1 голос
/ 21 июня 2019

Если я правильно понимаю ваш вопрос, вы утверждаете, что из-за увеличения размера ваш код Cloud Formation стал неуправляемым, и теперь вам интересно определить его с помощью AWS SDK, чтобы вы могли использовать лучшие методики программного обеспечения, чтобы сохранить код более ремонтопригодны.

Недостатком AWS SDK по сравнению с декларативным языком является то, что теперь вы несете ответственность за то, чтобы при нажатии кнопки «Выполнить» он не просто создавал новый экземпляр. Например. при развертывании компьютера ec2 через AWS SDK при следующем запуске этого кода будет развернут новый компьютер ec2. Cloud Formation поддерживает состояние того, что было развернуто, где проще развернуть постепенные изменения в инфраструктуре и отменить изменения.

Я бы порекомендовал вам ознакомиться с новым AWS-CDK , который позволяет вам определять код, который в конечном итоге запускается через Cloud Formation. Позволяет писать объекты в стиле OO:

const vpc = new Vpc(this, 'vpc', {
            cidr: '10.150.0.0/16',
            natGateways: 2,
            subnetConfiguration: [
                {
                    name: 'Public',
                    subnetType: SubnetType.Public,
                    cidrMask: 20
                },
                {
                    name: 'Private',
                    subnetType: SubnetType.Private,
                    cidrMask: 22
                },
                {
                    name: 'Isolated',
                    subnetType: SubnetType.Isolated,
                    cidrMask: 22
                }
            ]
        });

К сожалению, Golang пока не поддерживается.

...