Openstack. Детективна історія або куди пропадає зв'язок? Частина перша

Ця історія про OpenStack + KVM. Все почалося, коли все працювало добре. «Стара» платформа всіх задовольняла. Її піднімали без нас, і вона злегка застаріла. Це була Juno. При цьому вона працювала.

В принципі вона була тестової, поки в один прекрасний день не стала бойовою. Ми знати не знали проблем, з якими зіткнулися потім. Начальство, радісно потираючи руки, вирішило оновити парк систем. В тому числі і тестову платформу OpenStack.

Читати далі →

Локальний мультиплеєр в Unity за допомогою Unet

Всім привіт! Сьогодні хотілося б розповісти про один із способів, як можна створити локальний мультиплеєр в Unity. Дане рішення підходить для шоукейсов, тесту фіч або локального мультиплеєра. Наприклад, якщо вам хочеться бачити, що робить гравець, але не хочеться скажімо на андроїд витрачати зайві ресурси і забирати скрінкасти з допомогою ADB, то можна просто підняти сервер на якийсь машинці у вигляді копії додатку, яке працює на телефоні, і слати туди інформацію про дії гравця.


Читати далі →

Балансування навантаження з Pacemaker і IPaddr (Active/Active cluster)


Хочу розповісти вам ще про один спосіб балансування навантаження.
Про Pacemaker і IPaddr (ресурс-агент) і встановлення для Active/Passive кластера сказано вже досить багато, але інформації щодо організації повноцінного Active/Active кластера, використовуючи цей модуль я знайшов вкрай мало. Спробую виправити цю ситуацію.
Для початку розповім детальніше ніж такий метод балансування примітний:
  • Відсутність зовнішнього балансувальника — На всіх ноди в кластері настроюється один загальний віртуальну IP-адресу. Усі запити надсилаються на нього. Ноди відповідають на запити на цю адресу випадково і за домовленістю між ссобой.
  • Висока доступність — Якщо одна нода падає її обов'язки підхоплює інша.
  • Простота налаштування — Настройка здійснюється в 3-5 команд.

Читати далі →

Реліз альфа-версії стека протоколів для Інтернету речей

Всім привіт! Святкова атмосфера вже стукає в екрани моніторів і прилітає спамом на ваші електронні адреси. Ось і ми вирішили виконати свою обіцянку і вивести у світ наш стек.


Читати далі →

Syncookied — OpenSource ddos protection system

Коли в нашій компанії LTD BeGet постало завдання прозорою фільтрації атак на 4 рівні моделі OSI, ми написали своє рішення Syncookied. Цим рішенням ми б хотіли поділитися з Internet співтовариством, так як на поточний момент аналогів йому ми не знайшли (або ми про них не знаємо). Є платні рішення на подобі Arbor, F5, SRX, але коштують вони зовсім інших грошей у них використовуються інші технології захисту.

Чому для розробки ми вибрали мову Rust і фреймворк NetMap, з якими труднощами ми зіткнулися в процесі — буде розказано в цій статті.

» GitHub
» GitHub модуль ядра
» Сторінка проекту



Читати далі →

Docker: гнучка мережа без NAT на всі випадки життя

image

Час на місці не стоїть, і гаряче улюбленого всіма Docker від версії до версії з'являється новий функціонал. Трапляється так, що коли читаєш Changelog для нової версії, бачиш там те, що може стати в нагоді і зробити якісь речі краще, ніж є на даний момент.

Так було і в моєму випадку. Хочу зауважити, що багато завдань, які доводиться робити, я роблю за принципом keep it simple. Тобто майже завжди, якщо для вирішення завдання можна використовувати прості інструменти і кроки, я виберу цей шлях. Я розумію, що простий або складний крок або інструмент — оцінка суб'єктивна, але оскільки ми працюємо в команді, то ось такі критерії можуть підходити при виборі інструментів:

  • використовується інструмент в інфраструктурі?
  • якщо потрібно щось нове, то чи не можна використовувати те, що вже є?
  • наскільки сильно обслуговування (оновлення, перезапуск) сервісу буде відрізнятися від інших сервісів?
  • <...>
У цій статті мова піде про мережевому аспекті Docker. Розповім про все по порядку, але хочу зауважити, що на цей раз я не буду говорити «ми використовуємо мережа хоста, всіляко уникаючи застосування NAT».

Читати далі →

Домашнє завдання на літо: Топ-10 курсів Microsoft Virtual Academy

Прокачайте свої скіли в віртуальної академії Microsoft MVA. У цьому огляді ви знайдете найцікавіші курси для новачків: з чого почати розробку на C#, Python, як використовувати Xamarin, з чого почати розробку для Windows 10, як почати роботу з ASP.NET Web API і полегшити роботу завдяки Entity Framework, як навчитися створювати ігри з нуля, про розробку додатків віртуальної реальності і про створення доменної мережі з нуля, а також основи роботи з web-технологіями.



Читати далі →

SO_TIMESTAMPING в картинках. Прийом пакету

Буває, що додатком потрібно дізнатися точний час прийому або відправлення мережевого пакету. Наприклад, для синхронізації годин (див. PTP, NTP або тестування затримок в мережі (див. RFC2544).
Наївним рішенням буде запам'ятовувати в додатку час відразу після отримання пакету від ядра (або перед відправкою ядру):
recv(sock, buffer, length, flags);
clock_gettime(CLOCK_REALTIME, timespec);

Ясно, що отримане таким чином час може помітно відрізнятися від моменту, коли пакет був отриманий Мережевим стройством. Для отримання більш точного часу потрібна підтримка від опереционной системи, драйвера та/або Мережевого Пристрою.
Починаючи з версії 2.6.30 Лінукс підтримує опцію сокета SO_TIMESTAMPING. Вона дозволяє користувачу сокету отримувати тимчасові мітки для відправлених і прийнятих пакетів. Тимчасові мітки можуть бути зняті самим ядром, драйвером або мережевим пристроєм (див. список підтримуючих пристроїв і драйверів). Про те, що це взагалі таке і як цим користуватися, варто почитати Documentation/networking/timestamping.txt
У цій статті я розповім про те, як пакети доставляються від мережевого пристрою користувачеві, коли при цьому знімаються тимчасові мітки, як вони доставляються користувачеві і наскільки вони точні. Наведені приклади коду ядра взяті з версії 4.1.
Читати далі →

Продуктивність додатків на основі PostgreSQL: явні та приховані затримки

Якщо ви намагаєтеся оптимізувати продуктивність Вашого заснованого на PostgreSQL програми, Ви напевно користуєтесь базовими інструментами: EXPLAIN (BUFFERS, ANALYZE), pg_stat_statements, auto_explain, log_statement_min_duration, і т. д.

Можливо Ви дивіться в бік конфліктів блокувань за допомогою log_lock_waits, стежте за поведінкою ваших контрольних точок і т. д.

Але задумывалились Ви про затримки в мережі? Гравці знають про неї, але чи має це відношення до Вашого сервера?

image

Читати далі →

Візуалізація статичних і динамічних мереж на R, частина 3

першої частини:
  • візуалізація мереж: навіщо? яким чином?
  • параметри візуалізації
  • best practices — естетика і продуктивність
  • формати даних і підготовка
  • опис наборів даних, які використовуються в прикладах
  • початок роботи з igraph
У другий частини: кольору і шрифти в графіках R.

У цій частині: параметри графів, вершин і ребер.

Читати далі →