Привіт, Хабр!

Встала переді мною нещодавно завдання: настроїти максимально надійний кластер серверів PostgreSQL версії 9.6.

За задумом, хотілося отримати кластер, який переживає випадання будь-якого сервера, або навіть декількох серверів, і вміє автоматично вводити в дію сервера після аварій.

Плануючи кластер я простудіював багато статей, як з основної документації до PostgreSQL, так і різних howto, у тому числі з Хабра, і пробував настроїти стандартний кластер з RepMgr, эксперементировал з pgpool.
В цілому воно запрацювало, але у мене періодично спливали проблеми з перемиканнями, потрібно ручне втручання для відновлення після аварій, і т. д.
Загалом я вирішив пошукати ще варіанти.
У результаті де-то (вже не згадаю точно, де) знайшов посилання на прекрасний проект Zalando Patroni, і все заверте…


Читати далі →

Використання HAproxy iptables+еtcd+confd для автоматичного service discovery в мінливих мережах



Сергій Пузирьов (Mail.Ru Group)
Мене звуть Сергій Пузирьов, я системний адміністратор в Mail.ru я займаюся проектом «Пошук». Так, на подив, у Mail.ru є пошук. Я люблю сервіси, які не вимагають уваги. Я системний адміністратор, і я не люблю працювати системним адміністратором дуже багато, я люблю робити так, щоб роботи було менше, тому одне з рішень, яке ми намагаємося використовувати у своїй роботі, я вам опишу.



Читати далі →

Виконуємо кластеризацію на прикладі BitrixVM: просто і зрозуміло

Забезпечення відмовостійкості – запорука безперервної роботи і взагалі повного задоволення як користувачів, так і адмінів. У нашому сьогоднішньому матеріалі мова піде про те, як можна виконати кластеризацію BitrixVM за допомогою простих і доступних засобів, щоб усім було радісно і ніщо не заважало спокійно працювати.
Читати далі →

Виявлення сервісів в Stripe

Кожен рік з'являється стільки нових технологій (таких як Kubernetes або Habitat), що легко забути про тих інструментах, які тихо і непомітно підтримують наші системи в промисловій експлуатації. Одним з таких інструментів, який ми використовуємо в Stripe протягом декількох років, є Consul. Consul допомагає у виявленні сервісів (тобто допомагає знаходити тисячі працюючих у нас серверів з запущеними на них тисячами різних сервісів і повідомляти, які з них доступні для використання). Це ефективне і практичне архітектурне рішення не було чимось зовсім новим і особливо помітним, але він вірою і правдою служить справі надання надійних сервісів нашим користувачам по всьому світу.
У цій статті ми збираємося поговорити про наступне:
  • Що таке виявлення сервісів і Consul.
  • Як ми управляли ризиками, що виникали при впровадженні критично важливого програмного продукту.
  • Виклики, з якими ми зіткнулися, і наші відповіді на ці виклики.

Читати далі →

КЛАСТЕР високої доступності на postgresql 9.6 + repmgr + pgbouncer + haproxy + keepalived + контроль через telegram

image
На сьогоднішній день процедура реалізації «failover» Postgresql є однією з найбільш простих і інтуїтивно зрозумілих. Для її реалізації необхідно визначитися зі сценаріями файловера — це запорука успішної роботи кластера, протестувати його роботу. В двох словах — налаштовується реплікація, найчастіше асинхронна, і в разі відмови поточного майстра, інша нода(standby) стає поточному «майстром», інші ноди standby починають слідувати за новим майстром.
На сьогоднішній день repmgr підтримує сценарій автоматичного Failover — autofailover, що дозволяє підтримувати кластер в робочому стані після виходу з ладу ноди-майстра без миттєвого втручання співробітника, що важливо, так як не відбувається великого падіння UPTIME. Для повідомлень використовуємо telegram.

З'явилася необхідність у зв'язку з розвитком внутрішніх сервісів реалізувати систему зберігання БД на Postgresql + реплікація + балансування + failover(відмовостійкість). Як завжди в інтернеті начебто і є, але все воно застаріле або на практиці не реалізується в тому вигляді, в якому воно подано. Було вирішено представити дане рішення, щоб в майбутньому у фахівців, які вирішили реалізувати подібну схему було уявлення, як це робиться, і щоб новачкам було легко це реалізувати дотримуючись даної інструкції. Постаралися описати все якомога детальніше, вникнути у всі нюанси і особливості.

Читати далі →

Барух Садогурський і Кирило Толкачов про DevOps на jug.msk.ru

Я календар переверну
І знову третє вересня
І знову восьме вересня
8 вересня 2016 року пройшла зустріч jug.msk.ru, зібрала, можливо, максимальне число учасників. Гостями були Барух Садогурський і Кирило Толкачов, темою їх доповіді — DevOps. Що ж чекало слухачів на зустрічі, можна прочитати далі.



Читати далі →

NGINX як балансувальник навантаження для MySQL або MariaDB Galera Cluster

Дана стаття є перекладом оригінальної статьи з сайту Severalnines.

Nginx добре відомий усім за свої розширені можливості і ефективність в якості проксі і/або балансувальника веб-додатків з низьким споживанням пам'яті. Як правило, nginx використовується на першій лінії оборони" веб додатків, щоб розподіляти навантаження на сервера бек-ендом, періодично перевіряючи їх працездатність. Дана технологія досить популярна для додатків, яким потрібна підвищена відмовостійкість.



Читати далі →

HAProxy виповнилося 1.6

HAProxy Logo
Вітаю категорично.
Поспішаю повідомити радісну новину про те, що після півтора років (а не чотирьох) на світ з'явилася стабільна версія HAProxy 1.6 з цікавим функціоналом.

Нагадаю, що це надшвидке рішення, що забезпечує відмовостійкість і забезпечує балансування і проксіювання TCP і HTTP-запитів.
Що вмієБезліч алгоритмів балансування запитів
Маршрутизація і фільтрація запитів по багатьом критеріям
SSL терминирование, з SNI/NPN/ALPN і OCSP stapling в комплекті
Маніпуляції з HTTP заголовками і підтримка ACL
Моніторинг серверів бек-ендом HTTP і TCP перевірками
Простота інтеграції з VRRP (keepalived)
Стиснення (gzip,deflate)
Підтримка syslog, гнучкий формат логів
Практично необмежену кількість серверів, ферм, сервісів
Безпека (ні одного злому за 13 років)
Підтримка IPv6 і UNIX сокетів
… і безліч інших можливостей


Люб'язно прошу про всі знайдені неточності і помилки писати в ЛС — оперативно виправлю.

У цій статті я поділюся, чим примітний вихід версії під номером 1.6, на які нововведення варто звернути увагу і коротко опишу як ці нововведення спробувати. Приклади в статті присутні для ознайомлення, а їх застосування не звільняє від необхідності звернутися сторінці постійно оновлюваною документації.

Читати далі →

Percona XtraDB Cluster пробрасываем ip клієнта

image
Доброго часу доби. На хабре багато писали (пошук про те, як підняти MySQL кластер на основі рішення Percona XtraDB Cluster. Але ось днями до мене підійшов програмер і попросив зробити так, щоб в MySQL можна було призначати хости користувачам для розмежування доступу. Тут я згадав, що ip-то там відображаються далеко не клієнтські, тут все і почалося :). В інтернеті було знайдено рішення аж 2009 року, яке полягало у використанні tproxy патча, iproute2 і iptables, але це вирішило проблему частково, і тільки в межах тієї машини, де стоїть haproxy, але що якщо ми хочемо ще і читати з різних місць? Ось що було зроблено:

Читати далі →

DevOps зоопарк або як 500px обслуговує понад 500TB зображень

Від перекладача: Я вибрав цю статтю для перекладу, як яскравий приклад розвивається західного стартапу з вираженими для цієї групи ознаками: дуже багато нових технологій, використання великої кількості сторонніх сервісів, експерименти з архітектурою. У статті досліджено особливо цікаві теми пов'язані з побудовою платформи з микросервисов, DevOps і зовсім мало освітлене на Хабре явище під назвою ChatOps. Enjoy!


Про 500px
500px — це онлайн спільнота, що сформувалося навколо фотографії. Мільйони користувачів з усього світу переглядають, діляться, продають і купують самі красиві фотографії. Ми цінуємо дизайн, простоту коду і відповідальність.
Я DevOps. В 500px, працюю над платформою: бекенд, моніторинг, управління конфігурацією, автоматизація і звичайно ж розгортання системи.

Читати далі →