Більш усталені системи управління конфігурацією (CM), такі як Ляльковий та шеф-кухар, використовують підхідний підхід: клієнти періодично опитують централізованого майстра для оновлень. Деякі з них також пропонують безшовний підхід (так, на основі "push"), але заявляють, що він "не для виробництва" (Saltstack) або "менш масштабований" (Ляльковий). Єдина система, про яку я знаю про це - push-based з самого початку - runner-up Ansible.
У чому полягає конкретна перевага масштабованості системи, що базується на тязі? Чому нібито легше додати більше маніпуляторів, ніж push-агентів?
Наприклад, agiletesting.blogspot.nl пише:
в системі "тягнення" клієнти звертаються до сервера незалежно один від одного, тому система в цілому є більш масштабованою, ніж система "push"
З іншого боку, Rackspace демонструє, що вони можуть обробляти 15K системи за допомогою поштовхової моделі.
infastructures.org пише:
Ми присягаємось методологією підтримання інфраструктури, використовуючи такі інструменти, як SUP, CVSup, сервер rsync або cfengine. Замість того, щоб просувати зміни клієнтам, кожна окрема клієнтська машина повинна відповідати за опитування золотого сервера під час завантаження та періодично після цього підтримувати свій власний рівень оборотів. Перш ніж прийняти цю точку зору, ми розробили обширні сценарії, що базуються на основі ssh, rsh, rcp та rdist. Проблема, яку ми виявили з r-командами (або ssh), полягала в наступному: Коли ви запускаєте скрипт, заснований на r-командах, щоб підштовхнути зміни до своїх цільових машин, шанси полягають у тому, що якщо у вас більше 30 цільових хостів, один з них буде бути в будь-який час. Ведення списку введених в експлуатацію машин стає кошмаром. У процесі написання коду, щоб виправити це, ви закінчите детальний код обгортки для вирішення: тайм-аути від мертвих господарів; ведення журналів і повторне повторення мертвих хостів; змушувати та виконувати паралельні завдання, щоб спробувати вразити багатьох господарів у розумну кількість часу; і, нарешті, виявлення та запобігання випадку використання всіх наявних розеток TCP на вихідній машині з усіма вихідними rsh сеансами. Тоді у вас все ще виникає проблема отримати все, що ви тільки що зробили, для встановлення зображень для всіх нових хостів, які будуть встановлені в майбутньому, а також повторити це для будь-яких хостів, які вмирають і повинні бути відновлені завтра. Після проблеми, яку ми пройшли з реалізацією реплікації на основі r-команд, ми виявили, що це просто не варто. Ми не плануємо знову керувати інфраструктурою з r-командами або будь-яким іншим механізмом push. Вони не масштабують так само, як на основі методів витягування. змушувати та виконувати паралельні завдання, щоб спробувати вразити багатьох господарів у розумну кількість часу; і, нарешті, виявлення та запобігання випадку використання всіх наявних розеток TCP на вихідній машині з усіма вихідними rsh сеансами. Тоді у вас все ще виникає проблема отримати все, що ви тільки що зробили, для встановлення зображень для всіх нових хостів, які будуть встановлені в майбутньому, а також повторити це для будь-яких хостів, які вмирають і повинні бути відновлені завтра. Після проблеми, яку ми пройшли з реалізацією реплікації на основі r-команд, ми виявили, що це просто не варто. Ми не плануємо знову керувати інфраструктурою з r-командами або будь-яким іншим механізмом push. Вони не масштабують так само, як на основі методів витягування. змушувати та виконувати паралельні завдання, щоб спробувати вразити багатьох господарів у розумну кількість часу; і, нарешті, виявлення та запобігання випадку використання всіх наявних розеток TCP на вихідній машині з усіма вихідними rsh сеансами. Тоді у вас все ще виникає проблема отримати все, що ви тільки що зробили, для встановлення зображень для всіх нових хостів, які будуть встановлені в майбутньому, а також повторити це для будь-яких хостів, які вмирають і повинні бути відновлені завтра. Після проблеми, яку ми пройшли з реалізацією реплікації на основі r-команд, ми виявили, що це просто не варто. Ми не плануємо знову керувати інфраструктурою з r-командами або будь-яким іншим механізмом push. Вони не масштабують так само, як на основі методів витягування. і, нарешті, виявлення та запобігання випадку використання всіх наявних розеток TCP на вихідній машині з усіма вихідними rsh сеансами. Тоді у вас все ще виникає проблема отримати все, що ви тільки що зробили, для встановлення зображень для всіх нових хостів, які будуть встановлені в майбутньому, а також повторити це для будь-яких хостів, які вмирають і повинні бути відновлені завтра. Після проблеми, яку ми пройшли з реалізацією реплікації на основі r-команд, ми виявили, що це просто не варто. Ми не плануємо знову керувати інфраструктурою з r-командами або будь-яким іншим механізмом push. Вони не масштабують так само, як на основі методів витягування. і, нарешті, виявлення та запобігання випадку використання всіх наявних розеток TCP на вихідній машині з усіма вихідними rsh сеансами. Тоді у вас все ще виникає проблема отримати все, що ви тільки що зробили, для встановлення зображень для всіх нових хостів, які будуть встановлені в майбутньому, а також повторити це для будь-яких хостів, які вмирають і повинні бути відновлені завтра. Після проблеми, яку ми пройшли з реалізацією реплікації на основі r-команд, ми виявили, що це просто не варто. Ми не плануємо знову керувати інфраструктурою з r-командами або будь-яким іншим механізмом push. Вони не масштабують так само, як на основі методів витягування. Тоді у вас все ще виникає проблема отримати все, що ви тільки що зробили, для встановлення зображень для всіх нових хостів, які будуть встановлені в майбутньому, а також повторити це для будь-яких хостів, які вмирають і повинні бути відновлені завтра. Після проблеми, яку ми пройшли з реалізацією реплікації на основі r-команд, ми виявили, що це просто не варто. Ми не плануємо знову керувати інфраструктурою з r-командами або будь-яким іншим механізмом push. Вони не масштабують так само, як методи, що базуються. Тоді у вас все ще виникає проблема отримати все, що ви тільки що зробили, для встановлення зображень для всіх нових хостів, які будуть встановлені в майбутньому, а також повторити це для будь-яких хостів, які вмирають і повинні бути відновлені завтра. Після проблеми, яку ми пройшли з реалізацією реплікації на основі r-команд, ми виявили, що це просто не варто. Ми не плануємо знову керувати інфраструктурою з r-командами або будь-яким іншим механізмом push. Вони не масштабують так само, як методи, що базуються. або з будь-яким іншим механізмом натискання з цього приводу. Вони не масштабують так само, як методи, що базуються. або з будь-яким іншим механізмом натискання з цього приводу. Вони не масштабують так само, як методи, що базуються.
Це не проблема реалізації, а не архітектурна? Чому складніше написати потоковий клієнт push, ніж потоковий сервер тягнення?
ansible-pull
.