NFR Conflicts: 3 practical cases

Over time I noticed some typical contradictions between non-functional requirements (NFR). Let’s consider three typical cases of NFR conflicts I learned from practice. Security vs Ease of Use Security is a huge and ever growing concern these days. No surprise here – we live when IT-systems are unprecedentedly dependable. More and more activities occur in…

Max Performance of Nginx, PHP & PostgreSQL Chain

This blog post is the first in a series of articles on performance engineering (PE) research I did some time ago. I touched the topic of PE a bit in one of previous blog articles. This time it’ll be purely practical. The picture was generated by Nano Banana and contains pretty obvious errors. I decided…

Mental Models for Performance Engineering

I’ve been tinkering with performance engineering (PE) as one of the areas of interest for a while lately. From experience I built up a few mental models / metaphors which help with reasoning about systems performance. Let’s get through these mental models for performance engineering one by one. The most significant achievement thus far was…

Unsettling story of proxy_next_upstream in Nginx

It turns out that there’s quite a bunch of people who bumped into a particular Nginx upstream handling behavior. Not that long ago I also joined the club. It usually manifests as unavailability of some service behind Nginx as a reverse proxy. Clients start to get “502 Bad Gateway” after some change in the service…

How to manage CPU in Kubernetes and keep your foot safe

In today’s complex cloud-native landscapes, Kubernetes (aka k8s) stands as a pivotal technology that simplifies the management and orchestration of containerized applications. However, as developers and operators dive deeper into Kubernetes, it’s essential to understand how resource management within K8s operates, particularly regarding CPU requests and limits. This article aims to shed light on Kubernetes,…

Майндсет зрелого технического специалиста – 3 признака

За мою 15+ лет профессиональную карьеру в ИТ я общался с разнообразными командами разработки как лидер, участник и сторонний эксперт. Замечаю повторяющиеся психологические особенности, по которым можно условно поделить технарей на зрелых и не очень. Это эдакие “кризисы взросления”, через которые я проходил и сам. Сегодня посмотрим на три особенно ярких признака, характеризующих майндсет зрелого…

Мета-подходы к решению проблем

Эта статья – комбинированный перевод оригиналов на английском из подборки Под мета-подходом я имею ввиду технику эффективного решения проблем, которую я смог со временем выделить из опыта в работе и жизни в целом. Интервальные оценки: лучший/худший вариант Вам нужно сделать прогноз для некоторой метрики. Это сложная задача, по сути подвид предсказания будущего. Обычно поведение метрики…