Букварь по дизайну систем (Часть 1 с дополнениями по микросервисам)
Несколько лет назад, для закрытия одного их предметов мне довелось перевести данный букварь. Де-факто этот вариант стал официальным переводом. Но развитию этого перевода мешает, тот факт, что он был написан в Google Drive и закрыт на редактирования. Сегодня я уделил время на переформатирования всего этого текста в MD формат с помощью редактора Хабра, с радостью публикую здесь и вскоре отдам текущим контрибьюторам.
Словарь
Node — нода — узел с каким либо ресурсом
Content — контент — данныe
Traffic — трафик — запрос/ответ, данные которые передаются от сервера клиенту и наоборот
Hardware — железо — аппаратная часть
Instance — инстанс — созданный объект какой либо сущности. Например инстанс сервера API
Headers — хедеры — заголовки (как правило TCP пакета, но может быть и HTTP запроса)
Почему проекты по повышению КПД терпят неудачу
Проекты, связанные с тестированием и аналитикой производительности, терпят неудачу по целому ряду причин. Большинство этих проблем происходит по различным и весьма сложным причинам на каждом этапе жизненного цикла разработки и тестирования производительности. Иногда проблемы с производительностью просто не поддаются контролю и их не под силу решить ни менеджеру проекта, ни ИТ-архитекторам или даже непосредственно инженерам по производительности. По моему опыту (как деловому, так и личному) — большинство проектов по повышению КПД терпят неудачу из-за простого недостатка общения между инженерами по производительности, разработчиками, DBA (администраторы баз данных), бизнес-командами и заинтересованными сторонами (стейкхолдеры).
Это, в конце концов, вызывает множество других проблем, которые будут непосредственно влиять на производительность приложения и рентабельность инвестиций. Единственной целью стратегически эффективного тестирования по эффективности любого приложения или продукта является достижение удовлетворительного возврата инвестиций. Проектирование, тесты приложений и их производительности всегда сопряжено с рисками. Начиная с ранних этапов разработки, требуется большое количество проб и ошибок с их последующим тщательным разбором.