Тут я оставляю заметки при подготовке к экзамену AWS Certified DevOps Engineer Professional - DOP-C01
Пять критериев качественной инфрастуктуры
Операционное совершенство - Operational Excellence
Наиболее важный критерий в повседневной работе.
Включает в себя пять основных принципов работы с инфрастурктурой:
- Использование Infrastructure As Code. Способствует распространению знаний об инфрастурктуре, оценке её качества и позволяют быстро тестировать изменения. AWS предлагает несколько инструментов: CloudFormation, Cloud Development Kit (CDK), различные SDK и интерфейс CLI.
- Быстрая реакция на события и инциденты.
- Внесение частых, небольших и обратимых изменений в инфраструктуру.
- Предсказание проблем и отказов и действия на опережение.
- Извлечение знаний из инциденнтов и ииспользование их в дальнейшем
Пример реализации операционного совершенства
Например - есть набор ec2-инстансов, которые требуют обновлений.
Для установки патчей можно использовать Patch Manager из состава System Manager. Регулярные обновления реализуются с помощью System Manager Maintenance Task.
Вот что нужно сделать для реализации этой задачи:
- убедиться, что на всех инстансах развернут SSM Agent (бывший Simple System Manager).
- Создать алгоритм обновления (patching baseline), содержащий правила для аппрува/отказа списков патчей
- измениь IAM-role инстансов, чтобы SSM на них имел нужные привилегии
- опционально создать группы серверов (patch managenment groups), на которые устанавливаются разные наборы обновлений.
Безопасность
Обеспечение безопасности включает в себя четыре области:
- защита данных
- Управление привилегиями
- Реакция на инциденты
- Расследование инцидентов
В свою очередь хорошо српоектированная сисьема должна следовать семи принципам безопасности:
- Строгая идентификация (strong identity foundation) и следование принципу наименьших необходимых привилегий (AWS IAM, AWS Single Sign-On, Active Directory)
- Возможность проследить взаимосвязанные события (traceability) (AWS CloudWatch Logs, AWS VPC Flow Logs, AWS CloudTrail)
- безопасность на всех уровнях взаимодействия (Security Groups, Network ACLs, etc…)
- автоматизация процедур, обеспечивающих безопасность (GuardDuty, CloudWatch, EventHub, AWS Config)
- защита данных в процессе передачи и хранения (Certificate Manager, AWS Shield, AWS Web Application Firewall, Amazon CloudFront, Key Management Service)
- отсутствие прямого доступа людей к данным
- готовность к событиям безопасности - создание и поддержание в актуальном состоянии планов на случай нежелательных событий
При проектировани облачных решений важно уделять внимание безопасности.
То есть - обеспечивать аутентификацию и авторизацию, проверку целостности данных и кода.
Назначение привилегий всегда должно быть основано на принципе минимально необходимых привилегий.
Решения должны включать в себя планы создания резервных копий и восстановления после сбоев.
Важно уделять внимание аудиту событий в инфрастурктуре.
Надежность
Пять основных принципов обеспечения надежности:
- Автоматизация процедур восстановления после сбоев
- Регулярное тестирование процедур восстановления
- Горизонтальное масштабирование для повышения общей доступности сервисов
- Правильное планирование ресурсов
- Автоматизация рутинных процедур
Приложения должны быть устойчивы к отказам отдельных элементов инфраструктуры.
Также - важно время восстановления после отказа.
В рамках облачной инфраструктуры все компоненты рассматриваются как быстрозаменяемые. То есть архитектура должна это учитывать и вместо починки вышедшего из строя инстанса нужно стремиться просто поднимать новый.
Производительность и эффективность
При проектировани инфраструктуры важно стремиться к заданому уровню производительности при оптимальной цене. Также следует закладывать возможность расширения ресурсов при возрастающей нагрузке. Следует планировать распределение ресурсов с учетом особенностей досиупа к приложениям - например - с учетом географии пользователей.
Оптимизация расходов
Анализ структуры расходов на облачную инфраструктуру и автоматическая оптимизация потребления в зависимости от текущих условий. Использование managed-решений.
Discussion