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

Разработка

Сначала показывать
Порог рейтинга
Уровень сложности

Накатить ось на 500+ серверов и настроить всё за 10 минут: наш опыт использования Foreman

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

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

Я Иван Протченко, инженер из команды Cloud.ru, и сегодня я расскажу, как немного нестандартное использование Foreman помогло нам оптимизировать процесс установки и настройки операционных систем на серверное оборудование в облачной инфраструктуре. Даже отсыплю немного кода для тех, кто тоже хочет накатить ось на сотню-другую серверов и не сойти с ума. Очень пригодится всем, кто имеет дело с территориально распределенной инфраструктурой или масштабируется за счет аренды bare metal серверов.

Читать дальше
Рейтинг0
Комментарии0

Новости

Решение проблем общего кода в микросервисах Spring Boot и не только

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

Привет, Хабр! Меня зовут Александр Митин, я работаю в Т1 на проектах одного крупного банка. Занимаюсь развитием продкутовых сервисов компании (проект по обслуживанию и проведению ЧДП/ПДП клиентов). Опыт разработки 13 лет, последние 5 лет — в финтехе.

Сегодня микросервисная архитектура используется во многих проектах. Зачастую в таких системах применяют журналирование, авторизацию и прочие служебные сервисы, общие для всех приложений. А при разработке возникает огромное желание не дублировать одну и ту же логику, а вынести её в отдельную библиотеку, тем самым переиспользовав код. Что мы имеем в итоге? В лучшем случае одну библиотеку «common», которая разрастается до огромных размеров и становится ядром распределённого монолита. В дальнейшем новые версии этой библиотеки теряют обратную совместимость, а каждое её обновление в проектах сильно осложняет поддержку. Более того, становится невозможным разобраться, где и какие классы используются, что делает архитектуру хрупкой и уязвимой.

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

Машинное обучение в браузере

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

Меня зовут Алексей, сегодня мы с вами поговорим, как можно ускорить вычисления машинного обучения веб приложения с помощью WASM, WebGL или WebGPU.

Когда фронтенд‑разработчик слышит о машинном обучении в браузере, первое, что приходит ему на ум, это вопрос: «Как это может быть применено? Мы же работаем в браузере на JS, который, как известно, медленный (по сравнению с компилируемыми языками)».

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

Разбираемся, как настроить алертинг из OpenSearch по email

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

Ни одно внедрение платформ для запуска контейнеризованных приложений в продуктивном контуре не должно обходиться без настройки логирования происходящих событий. В нашей платформе для управления контейнерами «Штурвал» для этих целей используется модуль OpenSearch.

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

Изначально в кластере была настроена Audit Policy, определяющая, какие события должны записываться в журнал аудита и какие данные они должны содержать, а также Fluentbit Operator, отправляющий всё в OpenSearch. Кстати, подробнее о том, как мы настраиваем политику аудита в «Штурвале», я буду рассказывать 5 июня на конференции БеКон.

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

С настройкой SMTP действительно не возникло никаких проблем, алертинг на нужные ресурсы тоже настраивался нативно. Но когда понадобилось вытащить данные из тела запроса и добавить их в отправляемое письмо, OpenSearch сказал, что «у него лапки». В открытых источниках я нашла множество тикетов без ответов или с сомнительными советами, которые не помогали решить проблему.

В итоге алертинг я настроила и попутно сделала инструкцию. Надеюсь, она будет для вас полезной.

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

Истории

Клеман Лефевр, создатель Linux Mint

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров1.1K

Клеман Лефевр (Clement Lefebvre) — создатель Linux Mint. Долгое время это был самый популярный дистрибутив Linux, то есть по сути самая популярная в мире свободная ОС для настольных ПК.

Дистрибутив на базе Ubuntu и Debian обогнал по популярности и Ubuntu, и Debian. Хотя он не получает широкой медийной огласки, но если спросить самих линуксоидов, то многие порекомендуют Mint.
Читать дальше →
Всего голосов 7: ↑7 и ↓0+12
Комментарии6

Создаем простой AI чат-бот Telegram с помощью Ollama и нескольких строк кода на Python

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров395

Чтобы создать простого чат-бота для Telegram, который будет использовать возможности LLM llama3, достаточно выполнить несколько команд в терминале и написать несложный код на Python. В этой статье мы расскажем о том, как мы пытались создать такого чат-бота на основе Ollama и какой результат получили.

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

Свой S3-server: что делать, если ваши десятки петабайт уже не лезут в коробочные объектные хранилища

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

В 2024 году уже незачем рассказывать об S3-интерфейсе и сравнивать его с другими вариантами организации объектного хранилища. Вот и мы в Ozon, конечно, предоставляем такое платформенное решение широкому спектру внутренних потребителей. От сервисов, которые хранят картинки товаров для каталога, до бэкапов баз данных. От собственных внутренних разработок, до open-source-решений, таких как Gitlab и Thanos.

Пока у вас десятки терабайт и сотни RPS, вас устраивают такие решения, как MinIO. Но по мере роста объёмов и запросов приходится смотреть в сторону таких решений, как Ceph с RGW (RADOS Gateway / Object Gateway). Ну, а когда у вас 3 дата-центра, десятки петабайт данных, миллиарды объектов и десятки тысяч запросов в секунду — в таких условиях и у RGW начинаются проблемы.

Эта история началась с того, что и мы с проблемами масштабирования столкнулись. Под хабракатом вы узнаете, как мы прошли через отрицание проблемы, гнев на Ceph, торг с CTO и разработку собственного решения. Как выбирали технологии, на какие грабли наступили, и что в итоге получилось.

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

Selectel Network Meetup: регуляторика, защита сетей, инцидент-менеджмент, сети Clos

Время на прочтение2 мин
Количество просмотров172

Недавно мы провели митап по работе с сетями. В нем спикеры рассказали, как соблюдать постоянно обновляющиеся требования регуляторов, защитить сеть на этапе построения и подготовиться к инцидентам, которых не избежать.
Читать дальше →
Всего голосов 5: ↑5 и ↓0+8
Комментарии0

Обзор отладочной платы ALINX AXU15EGB

Уровень сложностиСредний
Время на прочтение12 мин
Количество просмотров542
Давненько ко мне в руки не попадалось ничего интересного, но ситуация поменялась 🙂. Попутным ветром принесло тут платку, и я решил, мол, а почему бы мне не сделать на неё небольшой обзорчик? Итак, отладочная плата с Zynq MPSoC от небезызвестной компании Alinx, которая торгует всяким интересным на Aliexpress.

Давайте посмотрим вместе, что есть на этой плате и какие возможности предоставляет разработчикам данный отладочный набор.

Кому интересно – добро пожаловать под кат!



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

Недельный геймдев: #176 — 2 июня, 2024

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров364

Из новостей: продажи стратегии Songs of Conquest превысили 500к копий, SEGA несколько раз отказывала авторам Yakuza, поколение PS5 — самое прибыльное в истории компании, превью DirectSR, новая книга про DOTS.

Из интересностей: про зкрытие Arkane Austin и будущее Immersive Sims с Диллоном Роджерсом, анимации Little Kitty Big City, секрет фотореалистичной и стилизованной графики, lerp smoothing is broken.

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

Блюда и блоки: как «Программатор» помог улучшить бизнес-процессы в сети ресторанов

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

Сеть ресторанов запустила акцию в честь 8 марта: забронируйте столик в праздник, приходите в одиночку или с друзьями, затем закажите праздничный ужин и получите бесплатный десерт. Рекламу  акции настроили через Facebook Ads. Менеджерам приходили уведомления об отклике.

Они звонили, но в ответ слышали удивленные и раздраженные вопросы: «А вы кто? Какой ресторан? Акция? Я никуда не нажимал, как вы мне позвонили?»  

Менеджеры объясняли, кто они и какую акцию устраивает ресторан. Люди отказывались или сразу сбрасывали трубку.

Вместо того, чтобы бронировать столики для потенциальных клиентов, менеджеры тратили время на объяснения. А заинтересованные в акции не дозвонились.  

Давайте разбираться, почему так вышло:

Люди, которым звонили менеджеры, оставляли номер телефона в рекламном посте часто по случайности или из любопытства. Спустя время забыли об этом и не поняли, почему им звонят. 

Как не допустить такой ситуации в будущем?

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

Человек через рекламу Google Ads, Яндекс.Директ, Facebook Ads или другую будет сразу попадать в бота. Тот задаст необходимые вопросы, а пользователь сможет принять решение. 

Для таких случаев мы разработали сценарий в ChatApp Конструкторе ботов. Давайте взглянем на него.

Читать далее
Всего голосов 2: ↑0 и ↓2-2
Комментарии1

Два типа рефлексий в C++

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров1K

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

Задумывались ли вы когда-нибудь, что вашему коду стоило бы пройти сеанс психотерапии? В C++ это возможно благодаря такой замечательной штуке, как рефлексия. Она позволяет вашему коду буквально видить в зеркале себя и понимать свои ошибки и достоинства.

Итак, рефлексия — это процесс, при котором программа может инспектировать и изменять структуру и поведение во время выполнения.

Рефлексия в C++ бывает двух основных типов: компиляционная и рефлексия времени выполнения. Оба типа имеют свои особенности и применяются в различных сценариях.

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

await vs yield на примере Effection 3.0 и React

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

18 декабря 2023 года вышел релиз Effection 3.0 - типизированная альтернативна async/await на генераторах (Structured Concurrency and Effects for JavaScript).

В статье сравним подходы на генераторах и async/await и расскажу как использовать Effection в React для решения типичных проблем с асинхронным кодом:

- Race condition

- AbortController

- Clean up

- Debounce

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

Ближайшие события

Конференция «IT IS CONF 2024»
Дата20 июня
Время09:00 – 19:00
Место
Екатеринбург
Summer Merge
Дата28 – 30 июня
Время11:00
Место
Ульяновская область

Усиленные пароли или 2FA

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров970

Двухфакторная аутентификация (2FA) и усиленная парольная политика - два разных подхода к повышению безопасности учетных записей. Оба метода направлены на защиту от несанкционированного доступа, но они существенно различаются в реализации и уровне обеспечиваемой защиты. Давайте разберем каждый вариант подробнее, что бы понять, какой из них выбрать.

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

Как будет развиваться GNOME дальше: возможности, перспективы и ближайшие планы

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

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

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

Как создать аудиоплеер. Часть 2. Использование ExoPlayer

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

Всем привет! Меня зовут Дмитрий Булгаков, я Android-разработчик в HiFi-стриминге Звук, и я продолжаю рассказывать вам о том, как можно создать аудиоплеер в приложении. Во второй части гайда мы поговорим об использовании ExoPlayer.

Добро пожаловать на разбор!

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

Реализация принципа единственной ответственности на Python

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров1.8K

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

Сегодня мы рассмотрим одну из основополагающих концепций SOLID-принципов — принцип единственной ответственности или сокращенно - SRP. Разберем, что такое SRP и как правильно его применять в Python.

Читать далее
Всего голосов 10: ↑3 и ↓7-4
Комментарии8

NIST NICE – модель компетенций в области ИБ

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

Давайте продолжим ход мысли недавней публикации про модели зрелости в области кибербезопасности. Допустим, провели мы оценку уровня своей защищенности по SAMM, CSF или другой модели, выбрали лучи-вектора для улучшения и целевые уровни. Ответ на вопрос «ЧТО мы строим?» у нас появился. А дальше? Вспоминая добрым словом архитектурных гуру — Джона Шервуда и его тезку-вдохновителя — Джона Закмана, когда-то задавших моду задавать (sic!) вопросы, понимаем, что нам не хватает понимания КТО у нас для этой стройки есть. И главное: КТО нам нужен, чтобы нашу «сказку сделать былью»? Под «КТО» я имею ввиду конкретных специалистов и руководителей с требуемым опытом, знаниями и умениями. И тут на сцену выходят модели компетенций.

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

Мобильная разработка за неделю #540 (27 мая — 2 июня)

Время на прочтение4 мин
Количество просмотров705
В новом дайджесте разбираем основы iOS-разработки в Revolut и оцениваем финалистов Apple Design Award 2024, обновляем адаптивные макеты на примерах с I/O и продолжаем ставить на Flutter, тираним пользовательские интерфейсы, катим MobAIle-разработку, делаем кондиционер умным и многое другое. Подключайтесь!

Подписывайтесь на наш Telegram-канал Mobile Insights, где еще больше материалов для мобильных разработчиков. А в IT Insights — много об интересном коде и технологиях.

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

Краткое сравнение популярных функций измерения времени

Уровень сложностиПростой
Время на прочтение11 мин
Количество просмотров2.6K

Какую реальную точность можно ожидать от функции возвращающей время, а сколько времени она выполняется сама? Попытка замерить и сравнить несколько десятков функций, доступных программисту на C++.

Вот что получилось
Всего голосов 18: ↑18 и ↓0+21
Комментарии6
1
23 ...