image
Часто буває, коли щось не працює. І ніхто не хоче, щоб щось не працювало з його вини. В контексті великих інфраструктур і розподілених додатків помилка конфігурації може бути фатальною.
У статті я покажу як правильно тестувати оточення для програми, які інструменти використовувати, наведу приклади вдалого і доцільного тестування.
Стаття буде цікава командам, які практикують DevOps або SRE, відповідальним Dev, і іншим хорошим людям.

Читати далі →

День добрий, п'ятниця ясна, бравий молодець іль дівиця красна!

Можеш мені вірити, можеш мені не вірити, але почався цей розповідь з пари весточек на мою електронну пошту і ось такий ось картини, краси неписаної:



Це 500 бравих молодців онлайн (за депеші від гугла) на движку заморському, wordpress іменованому, на сервері Intel Xeon E3 1245v2 (soyoustart, E3-SSD-3). До полотна була прикладена рукописъ, допомогти в оптимізації цього господарства.

Читати далі →

Дайджест матеріалів по темі Deep Packet Inspection

В нашому першому випуску DPI-дайджесту ми підібрали матеріали експертів по темі аналізу трафіку і блокувань, порівняння платформ та виробників DPI-систем. Сьогодні ми вирішили зробити добірку для тих, хто цікавиться роботою інтернет-провайдером та більш детальною інформацією щодо роботи технологій Deep Packet Inspection.


Читати далі →

Slow Cooker: навантажувальне тестування мережевих сервісів


Linkerd, наша сервісна сітка (service mesh) для хмарних додатків, з обов'язку служби зобов'язана протягом тривалого часу справлятися з великими обсягами мережевого трафіку. Перед випуском чергового релізу відповідність цій вимозі необхідно ретельно перевіряти. У цій статті ми опишемо стратегії навантажувального тестування та використані нами інструменти, а також розглянемо кілька виявлених проблем. В результаті буде представлений slow_cooker — написаний на Go інструмент навантажувального тестування з відкритим вихідним кодом, який був створений для виконання тривалих навантажувальних тестів та виявлення проблем життєвого циклу (life cycle issue identification).
Читати далі →

Керівництво по вирішенню проблем з пам'яттю у Ruby



Напевно є везучі Ruby-розробники, які ніколи не потерпали від проблем з пам'яттю. Але всім іншим доводиться витрачати неймовірно багато сил, щоб розібратися, чому використання пам'яті вийшло з-під контролю, і усунути причини. На щастя, якщо у вас досить сучасна версія Ruby (починаючи з 2.1), то вам доступні чудові інструменти та методики для вирішення поширених проблем. Мені здається, що оптимізація пам'яті може приносити радість і задоволення, але я можу бути самотній у своїй думці.

Читати далі →

Java & PostgreSQL — зустріч з Альваро Ернандесом, Санкт-Петербург

У середу, 6 липня, о 20:00, в пітерському офісі компанії Oracle відбудеться зустріч JUG.ru Альваро Ернандесом, експертом з PostgreSQL. Тема зустрічі — особливості взаємодії Java з PostgreSQL.

Мова зустрічі — англійська. Участь — безкоштовна. Кількість місць обмежена, необхідна реєстрація за посиланням.


Читати далі →

Профілювання та оптимізація програм на Go

Введення
У цій статті я розповім, як профілювати та оптимізувати програми на мові Go з використанням вбудованих і загальних інструментів, доступних в ОС Linux.

Що таке профайлинг і оптимізація? Якщо ваша програма працює недостатньо швидко, використовує занадто багато пам'яті, неоптимально використовує процесор, ви хочете зрозуміти, в чому справа, і виправити — це і є профайлинг і оптимізація.

Я навів таке визначення, щоб відразу відсікти питання некоректної роботи програми. У цій статті ми не будемо говорити про проблеми мультитредового програмування, про дата-рейсах (англ. data race), про пошук помилок (англ. debugging). Для всього цього в Go є свої утиліти і підходи, але залишимо цю тему на майбутнє.




Читати далі →

Створення in-memory кешу першого рівня .NET-клієнтів StackExchange.Redis

Джонатан Карді написав .NET бібліотеку StackRedis.L1 з відкритим вихідним кодом, яка дозволяє створювати кеш першого рівня для Redis. Іншими словами, використовуючи бібліотеку StackExchange.Redis в .NET-додатку, ви можете підключити до неї StackRedis.L1 для прискорення роботи за рахунок локального кешування даних в оперативній пам'яті. Це дозволяє уникнути зайвих звернень до Redis в тих випадках, коли дані не піддавалися змінам. Бібліотека доступна на GitHub і NuGet.
У цій статті розповідається про те, як і чому вона була створена.



Читати далі →

[СПб, Анонс] Зустріч JUG.ru з Андрієм Паньгиным — Все, що ви хотіли знати про стек-трейсах і хіп-дампи

У четвер, 26 травня, о 20:00 в пітерському офісі компанії Luxoft відбудеться зустріч JUG.ru з Андрієм Паньгиным aka apangin, провідним розробником Однокласників. Тема зустрічі — особливості JDK, пов'язані з обходом Heap-a та стеками потоків.



Stack Trace і Heap Dump — не тільки інструменти налагодження, але ще і дверцята до самих надр віртуальної машини Java. Презентація присвячена особливостям JDK, так або інакше пов'язаних з обходом хіпа та стеками потоків. В її основі лежать популярні питання про JVM з StackOverflow і реальні випадки з практики.

  • Впливають стек-трейсы на продуктивність?
  • Як знімати дампи в продакшне без побічних ефектів?
  • Як влаштовані утиліти jmap і jstack зсередини?
  • Чому всі профайлери брешуть, і як з цим боротися?
  • Як сканувати хіп засобами JVMTI і Serviceability Agent?


Участь безкоштовна, реєстрація ТУТ.

Читати далі →

Продуктивність і багатопоточність на Java-конференції JPoint 2016



Всього 8 тижнів залишилося до найбільшої в Росії Java-конференції JPoint 2016. Я вже розповідав на хабре, що нас з вами чекає:
  • два дні під одним дахом у центрі Москви
  • близько 40 доповідей у чотирьох паралельних залах. Ми хотіли зробити 36 доповідей, як на Joker, але мабуть все ж, уплотним сітку і зробимо 44 доповіді
  • море спілкування з колегами — близько 1000 Java-програмістів приїдуть до нас звідусіль


Я спробую потихеньку розповісти про основні теми JPoint і почну з нашої улюбленої — продуктивність і багатопоточність.

На цю тему вже анонсовані такі доповіді:
  • Олексій Шипилев, Oracle — Якщо не Unsafe, то хто: схід VarHandles
  • Сергій Куксенко, Oracle — Quantum Performance Effects, level up. За межами ядра
  • Руслан Черемин, Deutsche Bank — Escape Analysis і скаляризация
  • Володимир Ситніков, NetCracker — Ну і продуктивність вашого OpenSource!
  • Volker Simonis, SAP — HotSpot Intrinsics
  • Олексій Шипилев, Oracle — The Lord of the Strings: Two Scours
  • Тагір Валєєв — Stream API puzzlers
  • Володимир Іванов, Oracle — Native код, Off-heap дані і Java
  • Володимир Озеров, GridGain — (Майже) неблокирующая синхронізація



Читати далі →