Wiki Category: backend

Когнитивная сложность современного devops

Когнитивная сложность современного devops, с моей точки зрения, перекрывает когнитивную сложность почти любой разработки или СУБД
Какой тут вывод и мораль… DevOps современный – это не просто отдельная профессия, это самые настоящие врата ада и чёрная дыра, куда нужно инвестировать массу времени и денег.
Квалифицированный devops – это примерно 3-4 года обучения и ещё 3-4 года практики.

Читать дальше

Наконец то: Гвидо ван Россум намерен достигнуть двукратного увеличения производительности в CPython 3.11

Наработки проекта публикуются в отдельном репозитории faster-cpython. Один из участников проекта, ранее занимавшийся разработкой JIT-компилятора HotPy для CPython, опубликовал план, в соответствии с которым считает реалистичным поднять производительность в пять раз и добиться этого результата в выпуске Python 3.13.

Читать дальше

Скрытые расходы при переходе на микросервисы

Перед стартом работы над дроблением монолита на микросервисы рекомендую пройтись по чеклисту, чтобы ничего не упустить:

Мастер-данные
Написание кода по-новому
Проектирование IT-продукта заново
Создание новой инфраструктуры
Измерение и проверка SLA
Вклад в fault tolerance на всех уровнях
Реорганизация команд
Работы по обратной совместимости
Интеграция служб поддержки
Догоняющий поток фич

Читать дальше

Тестируем маршрутизатор Symfony 4.1

Вся статья

Суть улучшений – роуты собираются в здоровенное регулярное выражение.

Таблица ниже показывает сколько времени потребовалось, чтобы найти соответствие заданным маршрутам 50.000 раз.

Колонка Diff показывает, насколько быстрее новый маршрутизатор Symfony, по сравнению с нашим нынешним (3.4).

Routes. 3.4 4.1 (7d29a4d) Diff
First static route 448 ms 382 ms -17%
Random static route 1621 ms 474 ms -242%
Last static route 1826 ms 544 ms -234%
First dynamic route 746 ms 527 ms -41%
Random dynamic route 1454 ms 531 ms -174%
Last dynamic route 2039 ms 524 ms -289%
Not Found 2112 ms 522 ms -304%

Как мы видим, все наши маршруты были найдены быстрее, чем раньше. Особенно заметен прирост скорости на случайном, последнем и когда маршрут не был найден.

Вышел PHP 7.1

Вы слушаете «Пятиминутку PHP», выпуск номер 25 — подкаст о новостях из мира PHP, интересных постах в блогах и современных подходах к разработке.

Рад всех поздравить с выходом PHP версии 7.1.0. Давайте сделаем краткий обзор RFC, вошедших в этот релиз.

Читать дальше
book-cover

Designing Data-Intensive Applications (book)

Load from dataintensive.net

Don’t just hack it together

NoSQL… Big Data… Scalability… CAP Theorem… Eventual Consistency… Sharding…

Nice buzzwords, but how does the stuff actually work?

As software engineers, we need to build applications that are reliable, scalable and maintainable in the long run. We need to understand the range of available tools and their trade-offs. For that, we have to dig deeper than buzzwords.

This book will help you navigate the diverse and fast-changing landscape of technologies for storing and processing data. We compare a broad variety of tools and approaches, so that you can see the strengths and weaknesses of each, and decide what’s best for your application

MongoDB

После трех месяцев в разработке все прекрасно работало.

Но однажды в понедельник на планерке клиент сказал, что один из инвесторов хочет новую фичу.
Он хочет иметь возможность кликнуть на имя актера и посмотреть его карьеру в телесериалах.
Он хочет список всех эпизодов во всех сериалах в хронологическом порядке, в которых этот актер снимался.

Почему вы никогда не должны использовать MongoDB


из Почему эти ваши модные NoSQL решения не так уж хороши

Пробовали MongoDB. К счастью, с этой СУБД мне пришлось работать совсем недолго. MongoDB не выдерживает никакой критики, и ее недостатки, похоже, поняли уже все, кроме, разве что, самых упоротых программистов на Node.js. Вручную шардированный PostgreSQL, который, напомню, уже давно умеет формат JSONB, с самым тупым и никем не протестированным скриптом на Python для автофейловера, будет куда более удачным выбором, чем MongoDB. Подробности смотри у Афира и еще, например, вот тут. Выбрав PostgreSQL, вы получите все тоже самое, только куда более стабильное, не теряющее данные, а также с нормальными локами, вьюхами, транзакциями, джоинами и вот этим всем.

Java vs Node.js – быстродействие

Интересная практическая статья, рассказанному верю.

Отрывок:

В общем, все, что можно было сделать малой кровью, сделано. Уже начали подумывать о приобретении второго-третьего сервера и настраивать балансировку.
Но как-то вечером в разговоре с q4x2 у нас вышел спор о том, что не все платформы одинаково полезны. А если проще, то он меня убеждал, что все наши беды из-за NodeJS, и что он готов сделать свой вариант сервера на Java, который “порвет” Node на британский флаг. Я в этом сильно сомневался,

Не успел Node-сервер обрадоваться двум новым ядрам, как q4x2 выкатил свой Java-сервер. Код мне напомнил самый первый вариант Node-сервера: все в одном файле в процедурном стиле. Код мы постепенно привели к божескому виду, но все равно было видно (после избавления от детских болячек), насколько этот вариант быстрее Node. В цифрах загрузки CPU — примерно в четыре раза. В часы пик, при ~500 запросах/сек основным java-процессом используется одно ядро. Для Node-версии на четырехядернике такая нагрузка была недостижимой, а на шестиядернике она была очень близка к предельной.

хабр: Как мы делали XVM — популярный мод для World of Tanks. Часть вторая: развитие серверной части

google-go-logo

Golang

из Почему Go не так хорош

  • Go не делает ничего нового;
  • Go не был великолепно спроектирован с нуля;
  • Go — шаг назад по сравнению с другими современными языками.

For each server, the client would do the following:

  1. Start the server
  2. Warm up the server by doing 10% of the test; 1000 clients for 30 seconds
  3. Do the full test of 10,000 clients for 5 minutes.
  4. Cool down the machine by waiting 15 seconds after stopping the server

Websocket Demo Results V2


Производительность без цикла событий

symfony_black_01
yii2-logo