Pull to refresh
0
0
Send message

Осваиваем чистую архитектуру кода на Golang: практическое руководство по сущностям и слоям моделей

Level of difficultyMedium
Reading time8 min
Views15K

В архитектуре кода иногда разделяют слой сущностей и слой моделей. В этой статье я расскажу о них и приведу два примера кода на языке Golang.

Читать далее
Total votes 15: ↑11 and ↓4+10
Comments3

Как управлять тимлидами

Level of difficultyMedium
Reading time6 min
Views9.1K

Управление тимлидами сильно отличается от управления инженерами. Это логично, ведь перед вами теперь руководители, а не обычные сотрудники. Тимлиды не любят излишний менеджмент и контроль. И зачастую, сами знают как сделать ту или иную задачу. Поэтому подход должен быть иным.

В статье поделюсь своим мнением о том, как это делать и какие инструменты использовать.

Читать далее
Total votes 16: ↑15 and ↓1+19
Comments2

Как сохранить команду разработчиков, если не хочется платить больше?

Level of difficultyEasy
Reading time9 min
Views11K

Полтора года в нашей компании длился эксперимент, в котором участвовали 150 сотрудников. Он показал, что при разнице уровней оклада в 10-14% по сравнению с рынком разумеется не в нашу сторону специалисты от среднего до высокого уровня готовы продолжать работу при условии наличия программы заботы об их здоровье.
Иными словами, если вы не можете или не хотите платить своим сотрудникам столько, сколько платит рынок, и это "нежелание" не превышает 14%, то вы можете выдавать витамин D, что сокращает выгорание, и как следствие — текучесть кадров.

Читать далее
Total votes 10: ↑5 and ↓5+4
Comments38

Как обрабатывать ошибки в Golang – рассказываем на собственном примере

Level of difficultyMedium
Reading time6 min
Views9.5K

Ошибки это один из самых важных аспектов любого языка программирования. То, как обрабатываются ошибки, влияет на приложения многими способами. То, как определяются ошибки в Golang, немного отличается от таких языков как Java, Python, Javascript. В Go ошибки – это значения.

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

Читать далее
Total votes 7: ↑4 and ↓3+3
Comments6

Алерты Grafana в виде кода: Начните работу с Terraform и Grafana Alerting

Reading time7 min
Views9.4K

Инфраструктура алертинга часто бывает сложной, в ней множество фрагментов пайплайна, которые то и дело находятся в разных местах. Масштабирование такой инфраструктуры для многих команд и организаций является особенно трудной задачей.

Читать далее
Total votes 12: ↑12 and ↓0+12
Comments0

Автоматизируйте всё с помощью Ansible

Reading time7 min
Views16K

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

В этом посте мы рассмотрим, как Ansible может помочь вам автоматизировать всё в вашей инфраструктуре.

Читать далее
Total votes 14: ↑10 and ↓4+8
Comments9

Infrastructure as a Code: ожидания и реальность

Level of difficultyMedium
Reading time14 min
Views7K

Есть такие ребята — SRE (с англ. Site Reliability Engineering), которые выросли из старых добрых и бородатых системных администраторов. Но они устали заниматься ежедневной рутиной и решили всё автоматизировать. Именно поэтому 50% времени SRE пишут код.

Читать далее
Total votes 11: ↑10 and ↓1+11
Comments5

Решаем вечную проблему deployment bottleneck и репликации окружений

Level of difficultyMedium
Reading time6 min
Views2.3K

Подробно и на примере рассматриваем проблему deployment bottleneck и как она появляется. Рассказываю как можно легко и быстро настроить реплицируемые stage-окружения для ее решения, дав разработчикам делать свою магию параллельно и независимо друг от друга.

Подробнее
Total votes 3: ↑3 and ↓0+3
Comments7

Коварство метрик памяти Kubernetes (и cgroups)

Level of difficultyHard
Reading time8 min
Views16K

В этой статье мы рассмотрим память внутри контейнера Kubernetes. Какие есть основные типы памяти, как они управляются и какие коварные моменты с ними связаны. В этой статье вы узнаете ответы на интересные вопросы:

Какие метрики памяти считаются неправильно?

Сколько раз надо прочитать файл, чтобы он хорошо закешировался?

Какую память учитывает Out-of-memory killer?

Начать погружение в дебри памяти
Total votes 37: ↑37 and ↓0+37
Comments15

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

Level of difficultyMedium
Reading time5 min
Views3.8K

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

Этот материал будет интересен тем, кто имеет дело с масштабируемыми сервисами, написанными на Go и развернутыми в Kubernetes, и тем, кто так или иначе связан с поисковыми системами. Я расскажу об интеграции наших собственных сервисов с Amazon SQS и базами данных - как внутренними, так и сторонними.  

Читать далее
Total votes 5: ↑5 and ↓0+5
Comments6

D&D как инструмент тимлида: решаем проблемы команды с помощью разговорных ролевых игр

Level of difficultyEasy
Reading time37 min
Views25K

Если вы сталкивались с недостатком общения и эмпатии у себя в команде, если вы иногда жалеете, что ваша команда редко встречается лично, то, думаю, вам может пригодиться мой опыт.

Команда разработки и вообще любая группа людей — это сложный клубок из межличностных отношений и персональных компетенций. Я руковожу командами разработки и эксплуатации уже 8 лет, и за это время встречался с разными командными проблемами. Хочу предложить вам свою методологию их решения при помощи разговорных ролевых игр (РРИ).

Под катом вас ждет:

История о том, как я сам пришёл к тому, чтобы проводить РРИ для коллег.

Краткий рассказ о том, что из себя представляют такие игры.

Примеры решения реальных командных задач.

Полная методология подготовки и проведения игры. Полезно будет вам и вашему мастеру.

Вперёд к приключениям
Total votes 99: ↑96 and ↓3+107
Comments33

Вас много, а я одна: обзорная система мониторинга на Prometheus и Grafana

Level of difficultyMedium
Reading time11 min
Views16K

Привет, Хабр! Меня зовут Сева, я работаю backend-разработчиком в Doubletapp, а также занимаюсь некоторыми devops-задачами. В этой статье я расскажу о мониторинге наших backend-приложений: сборе метрик, их визуализации и отправке уведомлений. Покажу примеры конфигов с подробными комментами и дам ссылки на гитхаб.

Содержание:
Конфигурация Prometheus
Сбор метрик
Дашборды для визуализации метрик в реальном времени
Настройка уведомлений

Читать далее
Total votes 9: ↑9 and ↓0+9
Comments0

Автоматическое масштабирование потребителей Symfony в Kubernetes [Практическое руководство]

Reading time6 min
Views1.4K

Мы в Debricked уже достаточно давно используем Symfony на нашем веб-сервере. За все это время он очень хорошо послужил нам, и когда разработчики Symfony анонсировали компонент Messenger в Symfony 4.1, мы уже с нетерпением ждали, когда сможем опробовать его. С тех пор мы использовали этот компонент для отправки электронных писем в асинхронную очередь.

Однако недавно у нас возникла необходимость вынести обработку событий GitHub, которые мы получаем из нашей интеграции с GitHub, из нашего веб-сервера в отдельный микросервис (чтобы повысить производительность). Мы решили прибегнуть к паттерну производитель/потребитель (producer/consumer), который предоставляет компонент Messenger, поскольку он позволит нам асинхронно отправлять различные события в очередь, а затем немедленно подтверждать их прием в GitHub.

Читать далее
Total votes 7: ↑6 and ↓1+6
Comments1

Как заонбордиться тимлиду — первые 90 дней на новой работе

Reading time7 min
Views10K

В этой статье обсуждаем, что и как делать тимлиду в новой команде. Расскажем, как поймать коннект с коллегами, поможем составить план на первые три месяца работы, дадим примеры и шаблоны документов.

Ещё дадим несколько советов на тот случай, если всё-таки не удаётся показать результат за отведённое время.

Читать далее
Total votes 12: ↑11 and ↓1+13
Comments5

Как построить систему аналитики с BI-дашбордами в компании

Level of difficultyMedium
Reading time5 min
Views9.9K

Всем привет!

Эта статья будет полезна тем, кто продумывает внедрение системы аналитики и BI-дашбордов в своей компании. Здесь я поделюсь логикой построения, этапами и инструментами. Технической информации тут не будет.

Ещё отмечу, что это не какие-то мои наработки, а лучшие практики рынка, которые я решила собрать в одном месте. Поэтому ссылок будет много)

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

Начнём с того, что я поздравляю вас(потому что начинается всё самое интересное), если наступил тот счастливый момент, когда ваша компания настолько подросла, что для дальнейшего развития, ей просто необходимо познакомиться с целями внедрения системы аналитики:

Читать далее
Total votes 6: ↑5 and ↓1+5
Comments5

Создаём репозиторий в Go через менеджер транзакций

Reading time12 min
Views16K

Всем привет, я Илья Сергунин, веб-разработчик из продуктовой команды Авито. Мы пишем на Go сервис для трейд-ин мобильных телефонов. На его примере покажу, как устроен наш менеджер транзакций.

Читать далее
Total votes 7: ↑7 and ↓0+7
Comments7

Управлять инструментом, который управляет всем: наш путь к GitOps

Reading time5 min
Views4.8K

Вадим Гедзь, ведущий DevOps инженер, Dyninno Technologies

Всем привет! Сегодня я хотел бы рассказать о том, как в компании, где я работаю, происходит переход к GitOps. В команде разработки больше 300 человек, поэтому остро стоит вопрос управления конфигурациями и непрерывной интеграции кода. В этом кейсе я расскажу о том, как при переходе на GitOps мы исключили дрифт конфигурации между git репозиториями и инфраструктурой, отмечу преимущества и недостатки ArgoCD, как решили задачу secret management при использовании ArgoCD. Также затрону вопрос обратной связи после того, как Docker Image залит в Docker Register и до того, как ArgoCD начинает deployment, рассказав, как мы с коллегами в свое свободное время написали сервис Argo Watcher. 

Эта статья может быть интересна тем, кто задумывается о внедрении GitOps в свою инфраструктуру.

Читать далее
Total votes 3: ↑2 and ↓1+3
Comments2

Как составить стратегическую карту компании по методу «снизу-вверх»

Level of difficultyEasy
Reading time9 min
Views8.6K

Стратегические карты — один из инструментов стратегического планирования. Они помогают решить, какие задачи на ближайшее время компания признаёт приоритетными, и наглядно их представить на одной схеме.

В этой публикации я на конкретном примере дам чёткую и понятную инструкцию по разработке стратегической карты, которая как раз и своими вопросами и может проверить стратегию на состоятельность и исполнимость.

Научиться рисовать стратегические карты
Total votes 1: ↑1 and ↓0+1
Comments8

Немного о принципах организации офисных пространств для ИТ-команд и пара историй про наш офис

Level of difficultyEasy
Reading time12 min
Views6.7K

Привет, Хабр! Меня зовут Юля. Почти два года назад IT-команда Россельхозбанка переехала в новый офис для разработчиков, пространство которого мы проектировали практически с нуля. Пережив все это, решили поделиться парой основных принципов организации рабочих пространств для agile-команд, опенспейсов и сателлитных зон, а также всякими мелочами, которые помогут улучшить рабочую атмосферу и повысить производительность. Ну и рассказать немного деталей про сам офис.

Читать далее
Total votes 8: ↑6 and ↓2+6
Comments26

Как устроены интернет-платежи: вопрос—ответ

Reading time10 min
Views11K

Привет! В одном из недавних постов ребята из Додо разбирали устройство интернет‑платежей и в самом конце текста задались десятком вопросов по теме. Меня зовут Антон, я IT‑менеджер в продукте Эквайринга, и мне удалось собрать знающих ребят в QIWI, чтобы довольно подробно ответить на эти вопросы.

Предложение пообщаться

Я думаю, что немного сомневаться в своих решениях и ресёрчить новые возможности просто необходимо на постоянной основе. У меня накопилась целая куча вопросов относительно интернет‑платежей, ответы на которые я пока для себя не нашёл.

@aurokk

Что получилось — под катом.

Читать далее
Total votes 16: ↑15 and ↓1+19
Comments11
1
23 ...

Information

Rating
Does not participate
Registered
Activity