Олексій Акулович пояснює життєвий шлях высоконагруженного проекту на PHP. Це — розшифровка Highload ++ 2016.

Мене звати Льоша, я пишу на PHP.

На щастя, доповідь не про це. Доповідь про ретроспективу розвитку мережі — того, як проект розвивався. Які рішення капітанські або вельми специфічні для нашої навантаження ми застосовували, що можна використовувати в інших проектах, які відчувають навантаження.

Почнемо.

Читати далі →


У статті "Tarantool: Хороший, Поганий, Злий" був описаний простий сервіс голосування з чинним прикладом на PHP. Ми побачили, як легко підключити і використовувати цю NoSQL базу даних у своїх програмах. Однак залишився без уваги один важливий питання – навіщо це? Який виграш в продуктивності дає використання NoSQL порівняно із звичайними базами даних?


Читати далі →

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

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



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

Читати далі →

Ми знову публікуємо розшифровку доповіді конференції HighLoad++ 2016, яка проходила в підмосковному Сколково 7-8 листопада минулого року. Володимир Протасов розповідає, як розширити функціональність NGINX з допомогою OpenResty і Lua.

Всім привіт, мене звати Володимир Протасов, я працюю в Parallels. Розповім трохи про себе. Три чверті свого життя я займаюся тим, що пишу код. Став програмістом до мозку кісток в прямому сенсі: я іноді уві сні бачу код. Чверть життя — промислова розробка, написання коду, який йде прямо в продакшн. Код, яким деякі з вас користуються, але не здогадуються про це.

Щоб ви розуміли наскільки все було погано. Коли я був маленьким джуниором, я прийшов, і мені видали такі двухтерабайтные бази. Це зараз у всіх highload. Я ходив на конференції, запитував: «Хлопців, розкажіть, у вас big data, все круто? Скільки у вас там бази?» Мені відповідали: «У нас 100 гігабайт!» Я говорив: «Круто, 100 гігабайт!» А про себе думав, як би акуратненько зберегти покерфейс. Думаєш, так, хлопці круті, а потім повертаєшся і ковыряешься з цими многотерабайтными базами. І це — будучи джуниором. Уявляєте собі, який це удар?

Я знаю більше 20 мов програмування. Це те, чим мені довелося розібратися в процесі роботи. Тобі видають код на Erlang, C, С++, на Lua, Python, Ruby, на чомусь ще, і тобі треба це все пиляти. Загалом довелося. Точну кількість порахувати так і не вдалося, але десь на 20 число загубилося.

Читати далі →

CloudFlare + nginx, або економимо при допомоги «кавоварки»


Добрий день, шановний %username%, жадібний читач і борець за справедливість в інтернеті!

Всі ми пам'ятаємо (гугл точно пам'ятає!), була така стаття CloudFlare + nginx = кешируем все на безкоштовному плані. У якій розглядалися основні принципи економії на тарифах і серверах, шляхом всеїдного кешування на стороні CloudFlare файлів до 512Мб.

У даному матеріалі ми пограємо з кодами відповідей нашого сервера, щоб зекономити ще більше золота щоб побудувати зіккурат і не переходити на «enterprise plan» які нам «offer» схожий результат у своїх «offers».

Читати далі →

Впровадження Docker для невеликого проекту Production, частина 3

image

У попередніх частинах ми свамі підготували сервер до використання контейнерів:
Частина 1. Установка CoreOS
Частина 2. Базове налаштування і налаштування безпеки SSH

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

Різниця між nginx і apache з прикладами

Під час співбесід на роль linux/unix адміністратора у багатьох IT-компаніях запитують, що таке load average, ніж nginx відрізняється від apache httpd і що таке fork. У цій статті я постараюся пояснити, що розраховують почути відповідь на ці питання, і чому.
Тут дуже важливо добре розуміти основи адміністрування. В ідеальній ситуації при постановці завдання системного адміністратора виставляють ряд вимог. Якщо ж ситуація не ідеальна, то, по суті, вимога до адміністратора одне: «Хочу, щоб все працювало». Іншими словами, сервіс повинен бути доступний 24/7 і, якщо якесь рішення не задовольняє цим вимогам (масштабування і відмовостійкість відносяться до доступності), то можна сказати, що адміністратор погано зробив свою роботу. Але якщо різні рішення двох адміністраторів працюють 24/7, як зрозуміти, яка з них краще?
Хороший системний адміністратор при виборі рішення при заданих вимогах орієнтується на дві умови: мінімальне споживання ресурсів та їх збалансований розподіл.
Варіант, коли одному фахівцю потрібно 10 серверів для виконання завдання, а другого всього 2, ми розглядати не будемо, що тут краще – очевидно. Далі під ресурсами я буду розуміти ПРОЦЕСОР (cpu), ОЗУ (ram) і диск (hdd).
Давайте розглянемо ситуацію: один адміністратор створив рішення, яке вимагає 10% cpu, 5% ram і 10% hdd від усього вашого обладнання, а другий використовував для цього 1% cpu, 40% ram і 20% hdd. Яке з цих рішень краще? Тут все стає вже не так очевидно. Тому хороший адміністратор завжди повинен вміти грамотно підібрати рішення, виходячи з наявних ресурсів.

Читати далі →