Об DevOps и архитектуру

Operator Pattern

Последнее обновление: 04 Oct 2021

Паттерн Operator предназначен для создания инфраструктурных продуктов через декларативные описания.

К примеру, сам Kubernetes во многом является реализацией этого паттерна для своих объектов.

От контроллера отличается тем, что контроллер — это функциональный объект. Чаще всего Оператор строится при помощи контроллеров (по крайней мере в Kuberenetes).

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

К примеру, Terraform описывает инфраструктуру как код, но применяет это изменение человек.

AWS CloudFormation как описывает инфраструктуру как код, так и применяет это изменение, откатывает и т.д. Тем не менее, в отличие от операторов Kubernetes он все еще не отслеживает весь жизненный цикл объектов и применяется только по необходимости.

Операторы Kubernetes отслеживают и реализуют полный жизненный цикл управляемых объектов, так например оператор, реализующий Open Application Model сам применяет, обновляет и т.д. ресурсы, которыми он управляет за пределами кубернетиса.