Как стать автором
Обновить
-3
0

Пользователь

Отправить сообщение

Spring-потрошитель: жизненный цикл Spring Framework

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров57K

Ни для кого не секрет, что Spring Framework один из самых популярных фреймворков для приложений на языке Java. Он интегрировал в себя самые полезные и актуальные технологии, такие как i18n, JPA, MVC, JMS, Cloud и т.п.

Но насколько хорошо вы знакомы с жизненным циклом фреймворка? Наверняка вы сталкивались с проблемами поднятия контекста и освобождением ресурсов при его остановке, когда проект разрастается. Сегодня я попытаюсь наглядно показать вам это.

Читать далее
Всего голосов 15: ↑11 и ↓4+11
Комментарии9

USE, RED, PgBouncer, его настройки и мониторинг

Время на прочтение13 мин
Количество просмотров26K
Pgbouncer USE RED

Мы начали обновлять в нашем сервисе мониторинг для PgBouncer и решили все немного причесать. Чтобы сделать всё годно, мы притянули самые известные методологии перформанс мониторинга: USE (Utilization, Saturation, Errors) Брендана Грегга и RED (Requests, Errors, Durations) от Тома Уилки.


Под катом рассказ с графиками про то, как устроен pgbouncer, какие у него есть конфигурационные ручки и как используя USE/RED выбрать правильные метрики для его мониторинга.

Читать дальше →
Всего голосов 33: ↑33 и ↓0+33
Комментарии0

8 вещей, о которых забывают разработчики при переносе приложения в Kubernetes

Время на прочтение11 мин
Количество просмотров15K

Kubernetes становится стандартом разработки, при этом порог входа в него остается довольно высоким. Вместе с архитектором отдела администрирования сервисов Selectel Михаилом Вишняковым собрали список рекомендаций для разработчиков приложений, которые мигрируют их в оркестратор. Знание перечисленных пунктов позволит избежать потенциальных проблем и не создавать ограничений на месте преимуществ k8s.

Наш субъективный список — под катом. Пополните его своими рекомендациями в комментариях!
Читать дальше →
Всего голосов 59: ↑57 и ↓2+72
Комментарии2

Основные архитектурные шаблоны построения ПО

Время на прочтение7 мин
Количество просмотров33K

Краткий обзор восьми наиболее востребованных архитектурных шаблонов с иллюстрациями:

Читать дальше →
Всего голосов 42: ↑39 и ↓3+55
Комментарии6

Как я стала системным архитектором без инженерного бэкграунда, и почему это нормально

Время на прочтение8 мин
Количество просмотров5.6K

Системными архитекторами чаще всего становятся бывшие инженеры, проектировщики и системные администраторы. Я же пришла в эту профессию совсем другим путем. Начинала товароведом, была маркетологом и затем через разные позиции в ИТ доросла до системного архитектора. Хочу поделиться опытом и рассказать, почему для системных архитекторов важны не только технические навыки, и показать, что люди из околотехнических специальностей могут также состояться в этой профессии.

Читать далее
Всего голосов 25: ↑16 и ↓9+9
Комментарии35

Как оставаться программистом, если у тебя память как у дрозофилы

Время на прочтение15 мин
Количество просмотров62K

Мой мадригал тем инструментам разработки, которые изменили мою жизнь

Программирование стало гораздо более многогранным ремеслом с тех пор, как в середине 1990-х я впервые попробовал AmigaBASIC. В те времена еще можно было купить один большой том о компьютере, на котором вы программируете – и там бы нашлось 99% всей нужной информации. Эта книга, где на множестве страниц уголки загнуты в качестве закладок, обклеенная стикерами, лежала бы у вас под рукой, пока вы вбивали бы команды в монохромный текстовый редактор.

Современная книга по клиентскому веб-фреймворку может быть толще, чем во времена программирования под C64 бывали мануалы, достаточные для создания полноценных игр. С другой стороны, сегодня информация по любым платформам, для которых требуется писать код, находится буквально в одном клике.

Сегодня никто бы больше и не подумал покупать документацию по разработке – и Microsoft, и Apple свободно выкладывают свою документацию в Интернете для всех желающих. А что говорить о проектах с открытым исходным кодом!

Во времена npmPyPI и GitHub сложно объяснить, насколько неоднозначным решением (которое требовалось всесторонне обдумывать) раньше считалось потребовать хоть какие-нибудь возможности, которые выходили бы за рамки функционала операционной системы. Часто вместе с продуктом приходилось сдавать и все его зависимости.

Читать далее
Всего голосов 39: ↑35 и ↓4+43
Комментарии40

Блин! Да не сложно похудеть! Даже работая в IT

Время на прочтение5 мин
Количество просмотров46K

Очень хочется выругаться прямо в текст! Прочитал длинную статью про похудение. Да вот она - Почему похудеть, работая в ИТ, так сложно. Хотел бы я увидеть фото автора в полный рост. Сомневаюсь что он в хорошей форме.

Первое что меня возмутило и зацепило - это сам заголовок. Смысл который этот заголовок несёт. Сразу понятно что автор будет обосновывать сложность процесса. Приведёт массу доводов, формул, исследований, ссылок. Это же — Хабр. Тут так положено.

А ещё то кол-во лайков к посту. Люди, вы серьёзно? Вы серьёзно хотите верить в то, что жиреть за компом - это неизбежно, а похудеть нереально?

В статье автор был так убедителен, что я сам чуть было не поверил. Но вовремя вспомнил что сам похудел с 96кг до 82кг следуя одному правилу - 16/8. За 3 месяца, а не за всю жизнь, как пишет автор. Вес полгода стоит на этой отметке, а в спортзал я так и не записался.

Читать далее
Всего голосов 114: ↑98 и ↓16+107
Комментарии234

Когда и как переходить с монолита на микросервисы. Предпосылки и общие понятия

Время на прочтение5 мин
Количество просмотров7.2K

В серии из трех статей рассказываем о переходе с монолитной на микросервисную архитектуру. Разбираемся, когда и кому это действительно нужно, рассматриваем 7 миграционных шаблонов и самый больной вопрос: «Как быть с данными?».

Читать далее
Всего голосов 7: ↑5 и ↓2+3
Комментарии10

WAL в PostgreSQL: 1. Буферный кеш

Время на прочтение13 мин
Количество просмотров69K
Предыдущий цикл был посвящен изоляции и многоверсионности PostgreSQL, а сегодня мы начинаем новый — о механизме журналирования (write-ahead logging). Напомню, что материал основан на учебных курсах по администрированию, которые делаем мы с Павлом pluzanov, но не повторяет их дословно и предназначен для вдумчивого чтения и самостоятельного экспериментирования.

Этот цикл будет состоять из четырех частей:


Читайте и другие серии.

Индексы:

  1. Механизм индексирования;
  2. Интерфейс метода доступа, классы и семейства операторов;
  3. Hash;
  4. B-tree;
  5. GiST;
  6. SP-GiST;
  7. GIN;
  8. RUM;
  9. BRIN;
  10. Bloom.

Изоляция и многоверсионность:

  1. Изоляция, как ее понимают стандарт и PostgreSQL;
  2. Слои, файлы, страницы — что творится на физическом уровне;
  3. Версии строк, виртуальные и вложенные транзакции;
  4. Снимки данных и видимость версий строк, горизонт событий;
  5. Внутристраничная очистка и HOT-обновления;
  6. Обычная очистка (vacuum);
  7. Автоматическая очистка (autovacuum);
  8. Переполнение счетчика транзакций и заморозка.

Блокировки:

  1. Блокировки отношений;
  2. Блокировки строк;
  3. Блокировки других объектов и предикатные блокировки;
  4. Блокировки в оперативной памяти.


Читать дальше →
Всего голосов 38: ↑37 и ↓1+36
Комментарии23

Обкафкился по полной: 3 фейла с Apache Kafka

Время на прочтение6 мин
Количество просмотров22K

Недавно мы проводили вебинар «Обкафкился по полной. Фейлы с Apache Kafka». На нём спикер Всеволод Севостьянов, Engineering Manager в HelloFresh, поделился фейлами из личной практики, а ещё рассказал, как мастерски ходить по тонкому льду Kafka и прокачать свой бэкенд. Для тех, кто пропустил или предпочитает читать, а не смотреть, подготовили текстовый вариант.

Читать далее
Всего голосов 28: ↑26 и ↓2+27
Комментарии27

Еще один гайд по переходу с Linux на Mac

Время на прочтение15 мин
Количество просмотров20K

Вот вот начнется продажа ноутбуков Apple с чипами M2. Для кого-то этот факт будет сигналом к обновлению рабочей машинки. Наверняка, найдутся и те, кто впервые пересядит за мак. И среди пересевших на мак обязательно будет какая-то небольшая доля линуксоидов. Решил написать небольшой обзор актуальных инструментов, поделиться опытом перехода. Знаю, по теме на Хабре есть десятки статей. Где-то повторюсь, где-то раскрою тему хуже коллег, но я уверен, каждый читатель найдет для себя что-то новое.

Читать далее
Всего голосов 55: ↑36 и ↓19+24
Комментарии68

Kubernetes в НСПК

Время на прочтение5 мин
Количество просмотров7.6K

Всем привет! Меня зовут Назаров Алексей, я работаю в отделе администрирования инфраструктурных сервисов автоматизации Мир Plat.Form (НСПК) и сегодня расскажу о том, как устроены наши кластеры Kubernetes и как мы ими управляем.

Читать далее
Всего голосов 14: ↑13 и ↓1+17
Комментарии5

SQL ключи во всех подробностях

Время на прочтение18 мин
Количество просмотров249K
В Интернете полно догматических заповедей о том, как нужно выбирать и использовать ключи в реляционных базах данных. Иногда споры даже переходят в холивары: использовать естественные или искусственные ключи? Автоинкрементные целые или UUID?

Прочитав шестьдесят четыре статьи, пролистав разделы пяти книг и задав кучу вопросов в IRC и StackOverflow, я (автор оригинальной статьи Joe «begriffs» Nelson), как мне кажется, собрал куски паззла воедино и теперь смогу примирить противников. Многие споры относительно ключей возникают, на самом деле, из-за неправильного понимания чужой точки зрения.

Содержание



Давайте разделим проблему на части, а в конце соберём её снова. Для начала зададим вопрос – что же такое «ключ»?
Читать дальше →
Всего голосов 36: ↑33 и ↓3+30
Комментарии120

Архитектура Архитектуры. Шаг 9: Успех на каждый день

Время на прочтение23 мин
Количество просмотров5.6K

Хотели когда-нибудь примерить на себя костюмчик успешного архитектора из мира больших бизнесов? Ну тех, кто зарабатывает на лекциях и подкастах больше, чем на основной работе. Рецепт то не особенно сложный: пара успешных проектов и кул стори в интернетах. Впахивай и впаривай! Иногда в комплекте к костюму идут одноцветные тапочки…

Шагаем дальше
Всего голосов 12: ↑9 и ↓3+8
Комментарии7

Псс, парень… индекс нужен?

Время на прочтение8 мин
Количество просмотров22K

Самый больной вопрос для любого разработчика, которому приходится вычитывать данные из базы: "Как сделать мой запрос быстрее?". Классический ответ - необходимо создать подходящий индекс. Но куда именно его стоит "накатывать", да и как вообще он должен выглядеть?..

Мы научили наш сервис визуализации планов PostgreSQL отвечать на эти вопросы, и под катом расскажем, чем именно он руководствуется в своих рекомендациях.

Читать далее
Всего голосов 22: ↑22 и ↓0+22
Комментарии24

50 оттенков нагрузочного тестирования

Время на прочтение11 мин
Количество просмотров28K

С нарастающими скоростями и распределёнными системами всё сложнее бывает создать приложение удобным для конечного пользователя. Программы обладают кучей фич. Но выполняют ли они то, что нужно юзерам? А скорость их выполнения достаточная? А производительность при выполнении не хромает? На эти вопросы помогает ответить нагрузочное тестирование (НТ).

Меня зовут Саша, я работаю в команде тестирования Ozon Fintech и расскажу про разнообразный спектр вариантов НТ: как именно мы его применяем и какие инструменты используем. Статья будет полезна тем, кто уже что-то слышал про НТ и хочет добавить его в свой проект, но пока страшновато. Давайте разбираться!

Читать далее
Всего голосов 21: ↑20 и ↓1+25
Комментарии15

Лучшие книги по Golang: что стоит почитать как начинающему, так и опытному разработчику

Время на прочтение6 мин
Количество просмотров77K

Мы в Quadcode любим Golang и можем рассказать о языке и его преимуществах много интересного. Все это неспроста - не так давно мы переписали некоторые наши продукты или отдельные их модули именно на Go, чему радуемся до сих пор. Подробности самых интересных кейсов вскоре планируем раскрыть на Хабре, а пока что поделимся подборкой любимых книг, которые посвящены этому языку. Некоторые из них подходят для начинающих разработчиков, другие - для программистов с опытом. Объединяет все представленные в подборке книги одно - они могут оказаться ну очень полезными для тех, кто так или иначе связан с Go. Подборка - под катом, и, кстати, если вы уже читали какую-то из рекомендованных нами книг, расскажите о своих впечатлениях в комментариях. Поехали!

Да, кстати, еще одна ремарка - некоторые книги переведены на русский, некоторые - нет. Если перевода (пока, как хотелось бы надеяться) нет, то мы об этом скажем.

Читать далее
Всего голосов 7: ↑6 и ↓1+7
Комментарии16

Как мы ускорили выполнение запросов PostgreSQL в 100 раз

Время на прочтение10 мин
Количество просмотров41K

Существует великое множество статей об оптимизации PostgreSQL — эта «кроличья нора» весьма глубока. Когда несколько лет назад я начал разрабатывать бэкэнд аналитического сервиса, у меня уже был опыт работы с другими СУБД, такими как MySQL и SQL Server. Тем не менее, раньше мне не приходилось так фокусироваться на производительности. В прошлых проектах, над которыми я работал, либо не было жестких требований к времени обработки (DS/ML), либо не требовалось обрабатывать много строк одновременно (обыкновенные веб-приложения). Однако в этот раз мои запросы:

состояли из 3-10 JOIN-ов по коррелирующим запросам;

уielded от 10 до 1,000,000 строк;

должны были выполняться в течение времени, определенного UX-ом;

не могли быть hinted — пока Cloud SQL, управляемый PostgreSQL в Google Cloud, не стал поддерживать pg_hint_plan в конце 2021 года;

запрещали прямой доступ к серверному процессу, чтобы, например, хакнуть некоторые perf — потому что PostgreSQL был managed.

Получение целого миллиона строк в одном API endpoint сигнализирует о проблеме в алгоритме или архитектуре. Конечно, все можно переписать и перепроектировать, но за это нужно платить.

У нас не нашлось «заклинания», которое решило бы все проблемы с производительностью SQL. Тем не менее, я упомяну здесь несколько дельных предложений, которые помогли нам и, надеюсь, смогут помочь читателю. Разумеется, это не какие-то сакральные знания. Но когда мы начинали оптимизацию, я был бы рад их прочитать или услышать.

Читать далее
Всего голосов 27: ↑24 и ↓3+24
Комментарии2

Я учусь на тестировщика. Сравнение двух онлайн школ. Часть 4

Время на прочтение4 мин
Количество просмотров8.1K

Здравствуйте, меня зовут Екатерина, уже 11 лет я работаю учителем в школе. Почти год назад я решила сменить профессию и пошла на курсы тестировщиков в одну разрекламированную онлайн школу, разочаровалась в ней, а теперь учусь в другой. Мне стало интересно сравнить методики преподавания, чтобы понять, что-то не так со мной или с курсом? Предыдущую часть можно посмотреть здесь.

Читать далее
Всего голосов 4: ↑3 и ↓1+2
Комментарии10

Kafka и микросервисы: обзор

Время на прочтение9 мин
Количество просмотров121K


Всем привет. В этой статье я расскажу, почему мы в Авито девять месяцев назад выбрали Kafka, и что она из себя представляет. Поделюсь одним из кейсов использования — брокер сообщений. И напоследок поговорим о том, какие плюсы мы получили от применения подхода Kafka as a Service.

Читать дальше →
Всего голосов 53: ↑53 и ↓0+53
Комментарии109

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность