Pull to refresh
10
0
Немировский Лев @Apokalepsis

CTO

Send message

Выбираем базовые образы для приложений на .NET: минимум уязвимостей, максимум быстродействия

Level of difficultyMedium
Reading time14 min
Views3.1K

Микросервисы и контейнеры для их развертывания сейчас являются стандартом в крупных компаниях. Для разработчиков и DevOps-инженеров это удобный подход: он дает больше возможностей и ускоряет процессы.

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

Меня зовут Саша Рахманный, я разработчик в команде информационной безопасности в Lamoda Tech. В этой статье я сравню разные базовые образы для .NET с точки зрения безопасности их компонентов и быстродействия. 

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

Читать далее
Total votes 32: ↑33.5 and ↓-1.5+35
Comments6

Структурированное логирование в Go с помощью Slog

Reading time22 min
Views6.1K

Более 10 лет разработчики на Go жаловались на отсутствие структурированного логирования в ядре Golang. Участники сообщества Golang даже создали несколько собственных пакетов, таких как Logrus, Zap и Zerolog. В 2023 году, команда разработчиков Google Go наконец-то представила Slog — высокопроизводительный пакет для структурированного ведения логов в стандартной библиотеке Go. Мы перевели гайд о возможностях slog.

Читать далее
Total votes 15: ↑14 and ↓1+13
Comments4

Секреты observability. Часть 3: распределённая трассировка с Jaeger и OpenTelemetry

Reading time8 min
Views15K

image
Фото Bertrand Bouchez, Unsplash.com


В прошлой статье мы с помощью Prometheus AlertManager настроили правила, чтобы отправлять уведомления через Slack при срабатывании алертов. И хотя алерты и уведомления — это удобно и полезно, сами по себе метрики не до конца объясняют проблему. Они просто показывают, что значения одного экземпляра вышли за установленные лимиты, но в распределённых системах метрики не могут отследить запрос, который проходит через несколько компонентов. С распространением микросервисов системы усложняются, поэтому мы должны проследить весь путь запроса, чтобы понять, что пошло не так. Для этого можно использовать распределённую трассировку, которая записывает действия, выполняемые в связи с запросом, и дает контекст, который мы не найдем в метриках и логах.


В этой статье мы расширим возможности observability (наблюдаемости) приложения — создадим спаны (span) и экспортируем их в распределённую опенсорс-систему Jaeger. Но сначала разберемся, что такое трейс.

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

Лонгрид для быстрого погружения в HR-аналитику

Reading time16 min
Views514

HR-аналитика — процесс сбора, анализа и интерпретации данных о человеческом капитале компании для принятия обоснованных решений в области HR (и не только!). Она включает в себя анализ данных о результативности и эффективности сотрудников, текучести персонала, обучении и развитии (L&D), компенсациях и льготах (C&B), а также других аспектах работы с сотрудниками.

HR-аналитика необходима для оптимизации процессов в области HR. Она помогает принимать обоснованные решения, связанные с наймом, L&D, мотивацией и удержанием персонала, и т.д. 

Читать далее
Total votes 10: ↑6.5 and ↓3.5+3
Comments1

Siemens LOGO, Home assistant, или моё видение умного дома

Level of difficultyMedium
Reading time5 min
Views6.6K

Привет! Меня зовут Максим, и работаю я DevOps инженером. Год назад я купил квартиру в новостройке, а это значит что я волен полностью все сделать под себя. Профессия обязывает всё автоматизировать, и мне это очень нравится, поэтому я не упустил возможность отыграться даже тут. В данном посте я расскажу, как с помощью Siemens LOGO немного облегчить себе жизнь и добавить удобства в свою квартиру.

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

Нет у меня никакого первого имени

Level of difficultyEasy
Reading time4 min
Views16K

Открываю исходники очередного enterprise-проекта: о да-а-а, вот они, старые знакомые, лучшие друзья разработчика — first name и last name.

Читать далее
Total votes 71: ↑55 and ↓16+39
Comments163

Алгоритм Diffie-Hellman: Пишем приватный мессенджер на Go

Level of difficultyMedium
Reading time11 min
Views4.4K

Это продолжение прошлой статьи про данный алгоритм. Где я рассказывал про возможность общения между двумя пользователями без прямого обмена ключом шифрования.

Я уже описывал идею создания прозрачного Open-Source мессенджера на основе этого алгоритма и хочу представить вам его самую простую реализацию с примерами кода.

Кода будет много...

Читать далее
Total votes 16: ↑14 and ↓2+12
Comments4

Что есть реальность, или эффективен ли SCRUM

Level of difficultyEasy
Reading time3 min
Views7.9K

Меня зовут Султанов, и я тимлид (тяжелый вздох). Стараюсь делать разработку эффективной. Иногда даже получается.

Вместо предисловия

Agile. Кругом Agile. Наверное не осталось людей, команд и организаций, которые работают не по Agile. Слово «SCRUM» прочно вошло в жизнь разработчика. Я уже и не помню, была ли разработка иной. А когда спрашиваешь, почему у вас в организации насаждается Agile, в ответ получаешь либо цитату из эпиграфа, либо, если человек более откровенен, слова "так все делают". Ну не может же быть, чтобы миллионы мух ошибались то, что делают все, было ошибочным?

Но, как известно, есть некоторые особенные люди, которые могут попытаться проверить, ошибаются ли мухи верно ли то, что делают все? Приятно, черт возьми, ощущать себя особенным!

Для начала попробуем подсчитать стоимость ритуалов SCRUM

Я, как руководитель команды разработки, имею возможность видеть время, затрачиваемое командой на все активности. Вообще-то это одна из обязанностей руководителя разработки – контролировать командные затраты времени. И я могу довольно точно посчитать, во что обходятся команде ритуалы SCRUM. Можем посчитать вместе:

- дейли митинг, он же стендап митинг. Вообще-то он должен занимать до 15 минут, но моя команда обычно хорошо если укладывается в 30 минут. Каждый день.

- планирование работ на будущий спринт. Тот самый процесс, где мы всей командой весело играем в карты. Обычно это занимает минимум 2 часа в спринт. Включает в себя декомпозицию задач из беклога, оценку и распределение. Да, в моей команде распределение проводится на планировании, нет такого, что на доске висят задачи, и сотрудники берут какую хотят.

Читать далее
Total votes 33: ↑24 and ↓9+15
Comments58

Покрытие архитектуры as Code тестами

Level of difficultyEasy
Reading time16 min
Views5.1K

💬 На самом деле, моя идея написания тестов на архитектуру настолько проста, легко реализуема и при этом полезна, что я до сих пор толком не понимаю, почему я не встречал материалов на эту тему, и сама тема всё ещё не используется повсеместно 🙂
Статья написана по следам моих докладов на трёх крупных ИТ-конференциях, на каждой из которых ко мне подходили архитекторы и разработчики российских бигтехов, говорили, что я очень точно попал в их боли и предложил суперпрактику, которую они теперь будут внедрять. На всех трёх конференциях я получил высшие оценки от аудитории, а на двух из них доклад был признан лучшим в своей секции. В конце статьи приведена ссылка на видео доклада с одной из конференций.
В статье я поделюсь своей идеей и OpenSource-реализацией решения для написания тестов, разберу примеры тестов на небольшой учебной микросервисной архитектуре, а также расскажу про личный опыт и профит от применения этой практики.
Для разработчиков монолита тоже есть небольшой бонус: в OpenSource-репозитории появилась реализация и примеры тестов на архитектуру модульного монолита.

Читать далее
Total votes 26: ↑24 and ↓2+22
Comments8

Авторизация для бедных или как сделать RBAC для REST API с помощью OPA

Reading time9 min
Views7.6K

Когда речь заходит про права доступа в приложении, то из этой ситуации появляется два результата:

Либо в коде приложения появляются привязки к неким ролям/scope’ам;

Либо разработчик обрастает бородой и начинает сыпать фразами вроде abaс, xacml и матрица доступа; 

Если вам интересно как можно из подручных средств собрать RBAC на любой сервис соблюдающий REST, то добро пожаловать.

Читать далее
Total votes 10: ↑9 and ↓1+8
Comments8

Как я обработал один миллиард строк в PHP

Level of difficultyMedium
Reading time12 min
Views19K

Вероятно, вы уже слышали о соревновании под названием "The One Billion Row Challenge" (1brc), если же нет, то предлагаю ознакомиться с репозиторием 1brc Гуннара Морлинга.

Моё участие в проекте было мотивировано присутствием в нём двух моих коллег, которые достигли лидирующих позиций.

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

Читать далее
Total votes 76: ↑74 and ↓2+72
Comments33

Domain Driven Design в Go – это почти не больно

Reading time13 min
Views17K

Как выглядят паттерны DDD (Domain Driven Design) в большом проекте? А самое главное, стоит ли их вообще использовать? Рассмотрим, какими инструментами можно реализовать DDD на Go и оценим, насколько это больно.

Меня зовут Илья Сергунин, я backend-сочинитель в Авито: занимаюсь тем, что передаю смартфоны в хорошие руки. В этой статье попытаюсь объяснить, как можно натянуть DDD на Go без синтаксического сахара и магии Java-подобных языков, и без больших крутых ORM c Data mapper, которые также отсутствуют в Go.

Читать далее
Total votes 22: ↑21 and ↓1+20
Comments10

Trunk Based Development — кто такой и зачем нужен

Reading time5 min
Views37K

Привет! Меня зовут Павел Лакосников, я тимлид команды бэкенд-инженеров в Авито. Сегодня расскажу про свой любимый подход к разработке Trunk Base Development, сравню его с другими моделями ветвления и подсвечу его достоинства и нюансы.

Краткий обзор трёх моделей ветвления: Central Workflow, Git Flow, Trunk Based Flow, с акцентом на моего фаворита — Trunk Based Flow.

Читать далее
Total votes 31: ↑26 and ↓5+21
Comments44

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

Level of difficultyMedium
Reading time8 min
Views16K

Если у вас есть большая система, состоящая из множества микросервисов, то вы наверняка задавались вопросом: «Что сделать, чтобы архитектурная схема всей системы была всегда на 100% актуальной?».

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

Чтобы решить проблему мы автоматизировали отрисовку схем опираясь на метаданные IT-систем. Мы создали отдельный микросервис, который этим занимается и назвали его «Architect». О том как это происходит и как работает Architect я расскажу в этой статье, а также дам несколько советов, которые помогут внедрить то же самое у вас в компании.

Читать далее
Total votes 31: ↑28 and ↓3+25
Comments24

Микросервисная авторизация для чайников для чайников

Reading time18 min
Views24K
В данной статье рассматривается пример реализации распределенной микросервисной авторизации доступа для множества пользователей к множеству ресурсов или операций. Уровень подготовки читателя может быть любой, кто знаком с программированием и проектированием. Так же рассматриваются примеры использования на практике и одна из задач реализована в виде небольшой микросервисной системы.
Читать дальше →
Total votes 5: ↑4 and ↓1+3
Comments5

Open Source в финансах. Проект Okama

Level of difficultyEasy
Reading time7 min
Views3K

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

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

Умный дом с котом: мой опыт автоматизации домашней рутины

Level of difficultyEasy
Reading time11 min
Views19K

Как автоматизировать дом, чтобы кошачий лоток отправлял в «Телеграм» сообщения, что его пора почистить, а на экране ТВ появлялось сообщение, что ванная комната освободилась. Об этом рассказал наш комьюнити‑менеджер Игорь Губайдуллин, инженер с 20-летним опытом работы. Умный дом стал его хобби пять лет назад — началось всё с робких шагов по освоению Apple HomeKit, а закончилось выделенным сервером умного дома с Home Assistant на борту.

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

Анализ пулл-реквестов через веб-приложение для улучшения код ревью

Level of difficultyEasy
Reading time2 min
Views3.3K

Год назад в нашей команде решили внедрить средства анализа пулл-реквестов, т.к. некоторые разработчики уделяли мало времени код ревью, в итоге фичи долго не могли оказаться на проде. Выбрали решение на основе Github Action, начали собирать статистику, улучшать процессы, но и столкнулись с ограничениями.

Ну а там, где есть недостатки, можно сделать своё веб-приложение, пара недель разработки на Ruby on Rails и минимальный набор функций был реализован в PullKeeper'е. Спустя год доработок функционал приложения значительно улучшился, появились первые сторонние компании, которые стали его использовать и анализировать свои пулл-реквесты.

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

Шпаргалка для алгособеса — алгоритмическая сложность, структуры данных, методы сортировки и Дейкстра

Level of difficultyMedium
Reading time33 min
Views97K

Привет, Хабр!

Так уж повелось, что любой уважающий себя работодатель перенимает передовые^✻ методики FAANG — по этой причине практически во всех IT-собесах есть она: секция алгоритмов. Кто-то ей рад, кто-то не очень, но секция есть и уходить пока не планирует. Поэтому нужно закатать рукава и достойно встретить суровую реальность.

Читать далее
Total votes 216: ↑214 and ↓2+212
Comments77

Регистрация компании в Ирландии

Reading time24 min
Views1.2K

Регистрация компании в Ирландии привлекает мировых предпринимателей благодаря экономической устойчивости, выгодной налоговой политике и доступности европейских рынков. Кроме того, эта страна отмечается прозрачной бизнес-средой, поддержкой инноваций и квалифицированными кадрами, утверждая свою роль как ключевого экономического центра Европы.

Читать далее
Total votes 5: ↑3 and ↓2+1
Comments0
1
23 ...

Information

Rating
3,831-st
Location
Хайфа, Хайфа, Израиль
Date of birth
Registered
Activity

Specialization

Backend Developer, Software Architect
PHP
Ruby
Golang
Linux
Database
Software development
Designing application architecture
Development management