Search
Write a publication
Pull to refresh
1
0
Артур Краев @RaveNoX

User

Send message

25 новых проектов в песочнице CNCF: мегаобзор

Level of difficultyEasy
Reading time40 min
Views7.9K

Cloud Native Computing Foundation (CNCF) — международная некоммерческая организация, основанная The Linux Foundation в 2015 году. Её основные цели — содействие развитию контейнерных технологий и координация технической отрасли вокруг них. В число учредителей входят такие компании, как  Google, CoreOS, Mesosphere, Red Hat, Twitter, Huawei, Intel, RX-M, Cisco, IBM, Docker, Univa и VMware. На сегодняшний день CNCF поддерживают более 450 членов.

CNCF Sandbox (или песочница CNCF) — это место, куда попадают новые проекты на ранней стадии развития. Например, на момент написания статьи в ней заходятся 113 проектов, один из которых — werf, проект нашей компании, в декабре 2022 года ставший частью CNCF.

В этой статье мы посмотрим на другие проекты, попавшие в CNCF Sandbox за последний год — с января 2023 года.

Читать далее

Переделываем обычный хамбакер в широкополосный

Level of difficultyEasy
Reading time8 min
Views9.2K


Привет, Хабр! Сегодня я продемонстрирую простую, действенную и хорошо звучащую модификацию сдвоенного гитарного датчика, называемого хамбакером (англ. humbucker, что означает подавитель гула наводок от сети переменного тока).

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

Как я делал сеть на 10 гигабит с минимальным бюджетом

Level of difficultyMedium
Reading time11 min
Views84K


Решил я ускорить тривиальную задачу в виде передачи файлов с одного компьютера на маленький домашний NAS. Раньше 10 гигабит были для меня чем-то заоблачным (с учётом цены на свичи, а также сетевые карты). Но благодаря апгрейду дата-центров, а также свежим чипам для свичей от Realtek, апгрейд оказался недорогим и безболезненным.

О выборе железа и тестах — под катом.
Читать дальше →

Conc: новая библиотека для управления конкурентностью в Go

Reading time3 min
Views6.7K

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

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

Давайте посмотрим, на что она способна.

Читать далее

3 истории о выгорании с happy end'ом

Level of difficultyEasy
Reading time9 min
Views4.4K

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

Читать далее

Прыжок сквозь время или Как обновиться с Asterisk 11 до 18

Reading time9 min
Views4.9K

Однажды мы решили обновить Asterisk с 11 версии до 18. История получилась интересной и поучительной. Расскажем о полученном преимуществе, возникших трудностях и способах их решения.

Читать далее

Проводим GPON от МГТС в свой сервер на Linux + своя мини-атс на asterisk

Level of difficultyMedium
Reading time11 min
Views28K

На Хабре и на профильных форумах (типа 4pda) уже достаточно статей на тему того, как отказаться от GPON-роутера от МГТС и вывести интернет напрямую в свой роутер.
Большинство статей описывают опыт подключения к роутерам Mikrotik, прошивок SFP-GPON терминалов, странных хаков по выдёргиванию настроек и прочего. Мне же это всё не подошло и я пошёл иным путём. Требования я составил следующие:

Читать далее

RabbitMQ: дополнительные возможности

Reading time8 min
Views13K

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

Что конкретно разберём:

расчёт количества консьюмеров по формуле Эрланга;

шардирование — различные способы балансировки;

дедупликацию сообщений в очереди;

многоуровневую очередь повторных попыток;

приоритеты сообщений.

Читать далее

Go. О покрытии кода интеграционными тестами и флаге -cover

Level of difficultyEasy
Reading time7 min
Views7.1K

Инструменты покрытия кода помогают понять, какая часть кодовой базы выполняется (или, как еще говорят, покрывается) при выполнении данного набора тестов. Какое-то время Go поддерживал измерение покрытия кода на уровне пакета, введенное в Go 1.2, она включалась флагом команды go test -cover.


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


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


Двоичные файлы интеграционных тестов создаются командой go build, а не go test, поэтому инструментарий Go до сих пор не предоставлял простого способа сбора профиля покрытия этих тестов.


С версии Go 1.20 программы с инструментированием покрытия можно создавать командой go build -cover, а затем, чтобы расширить область покрытия, передавать эти инструментированные двоичные файлы в интеграционный тест.


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

Читать дальше →

Через реки, через лес прямо к PowerDNS

Level of difficultyHard
Reading time43 min
Views38K

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

В Ozon много различных сервисов и систем. Они общаются друг с другом и внешним миром по доменным именам. DNS — центральное звено, без которого не обходится почти ни одна инфраструктура. Понятно, что когда DNS отдаёт некорректные данные, то это неприятно, когда таймаутит — плохо, когда прилёг — очень плохо, когда прилёг надолго — в принципе, можно расходиться. Значит, одна из основных задач команды инфраструктуры — обеспечить сервисам надёжное и, желательно, быстрое разрешение доменных имён. Об этом мы и поговорим. Также затронем вопросы управления ресурсными записями, жизнь в Multi DC-среде, обслуживание DNS, кеширование, журналирование запросов и возможные проблемы.

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

Читать далее

Архитектура S3: 3 года эволюции Mail.ru Cloud Storage

Reading time12 min
Views22K


Storage Corridor by St-Pete


Всем привет! Я Mons Anderson, архитектор платформы Mail.ru Cloud Solutions, расскажу, как мы построили наше S3-хранилище, как оно работает, какие решения оказались удачными, а какие стоило изменить, если бы мы начали такой же проект с нуля сейчас.


Статья подготовлена на основе доклада на @Databases Meetup by Mail.ru Cloud Solutions & Tarantool. В статье поговорим:


  • как было устроено хранилище Mail.ru, поверх которого мы строили S3-хранилище;
  • что мы добавили, чтобы сделать Mail.ru Cloud Storage;
  • как работает объектная модель хранения и какие сделаны шаги для выхода в продакшен;
  • про доработки боевой системы: фейловер и масштабирование;
  • как мы реализовали шардирование и решардинг;
  • а также про работу с SSL-сертификатами.

Если не хотите читать, можно посмотреть.

Читать дальше →

Повышаем живучесть Raft в реальных условиях

Reading time14 min
Views5.2K
Популярность алгоритма Raft в последние годы растёт. У него достаточно ясное описание, а реализации появляются во всё большем количестве проектов. На бумаге, будь то математика или рекламные статьи, выглядит хорошо. Но на практике не все обещания Raft можно реализовать без дополнительных решений.

Меня зовут Сергей Останевич. Я архитектор репликации в проекте Tarantool, платформе in-memory-вычислений с гибкой схемой данных для эффективного создания высоконагруженных приложений. Над материалом этой статьи мы работали вместе с Бориславом Демидовым. Мы поделимся нашим опытом реализации Raft, расскажем о поддержке работоспособности кластера Tarantool в условиях частичной связности и приведём реальные примеры того, как чистый Raft не справился с задачей.


Читать дальше →

Пара HTTP-заголовков, о которых, похоже, не знают разработчики

Reading time5 min
Views18K

Вот какое дело: как показывают мои изыскания, большинство веб-разработчиков поразительно мало знают об HTTP-заголовках или, в целом, о стандарте HTTP. Я имею в виду, что я понимаю то, что во многих университетах и школах, вероятно, этому не учат (там, где я учился, определённо, так и было). А кто будет, сидя дома праздным воскресным утром, думать о том, чтобы развлечь себя чтением стандарта HTTP? Да никто. Знаю, но… есть одно важное обстоятельство: отсутствие хоть какого-то понимания стандарта HTTP — это зияющая дыра в знаниях веб-разработчиков, в знаниях многих из тех, кто это читает. Предлагаю это исправить.

Читать далее

Как мы ищем документы в Naumen Disk или еще один вариант организации FTS

Reading time14 min
Views3.6K

В процессе работы над проектом мы рассмотрели различные способы организации Full Text Search (FTS) по файлам. И… отказались от них в пользу своего решения, которое базируется на стандартных методах. В статье я опишу путь построения полнотекстового поиска по файлам для веб приложения с акцентом на задачи FTS.

Читать далее

Админка для Private Docker Registry (Registry Admin)

Reading time10 min
Views21K

Концепция контейнеризации на базе Docker, и ему подобных технологий, для многих разработчиков стала незаменимым инструментом доставки своих продуктов в виде образов. В большинстве случаев для распространения используются бесплатные реестры такие как Docker Hub или GitHub Container Registry. Но иногда требуется развернуть свой собственный registry и управлять доступом к нему. Вариантов для развертывания своего собственного container registry предостаточно, но я решил сделать свой вариант админки для управления Private Docker Registry.

Читать далее

Как рождаются *Ops'ы

Reading time10 min
Views6.3K

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

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

Порефлексировать на тему культуры

Сравнили 80-ядерный ARM-процессор Ampere Altra с AMD EPYC и довольны результатом. Протестируйте и вы

Reading time8 min
Views23K

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

На этот раз к нам попал сервер GIGABYTE E252-P30 с 80-ядерным процессором от Ampere Altra Q80-30. Этот ARM-процессор уже отметился характеристиками: процессоры с таким числом ядер с частотой 3.0 ГГц при TDP в 210 Вт не предлагает ни один «звездный» вендор.

Прогнали этот сервер через ряд тестов и сравнили с наиболее близким по характеристикам AMD EPYC 7513. Под катом — результаты бенчмарков и предложение протестировать процессор бесплатно.
Читать дальше →

Настраиваем Gitlab CI для сборки Android-проекта

Reading time5 min
Views13K

Привет! Меня зовут Даша, я Android-разработчик в команде онлайн-кинотеатра PREMIER и я хочу с вами поделиться историей как мы начали приводить в порядок Gitlab CI скрипты :)

В нашем проекте стало много вариантов сборок и чтобы не тратить кучу времени на ожидание и поиск необходимого билда нам нужно было хотя бы получить отбивку об окончании работы джобы. А затем - решить неудобства с копипастой, чтобы поддержка скриптов не вызывала выгорание:) Погнали!

Погнали!

Гайд по межсетевому экранированию (nftables)

Reading time32 min
Views69K


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

В качестве межсетевого экрана будем использовать nftables, функционирующий под управлением ОС Debian GNU Linux.
Читать дальше →

Установка полноценного кластера Kubernetes на основе k3s

Reading time12 min
Views17K

Большинство читателей уже так или иначе пробовали устанавливать Kubernetes с помощью kubespray или других средств автоматизации, доступных у большинства поставщиков облачных решений. Можно также всё делать с нуля с использованием kubectl, ведь сам процесс в принципе достаточно неплохо обкатан. Но что если нужна тестовая лаборатория, или даже не сильно крупная серверная ферма, построенная на собственных серверах с ограниченными ресурсами, либо просто на устаревшем оборудовании?

Можно воспользоваться k3s, минималистичной сборкой Kubernetes, особенностью которой является возможность работать как на мелких компьютерах типа Raspberry Pi и небольших виртуальных машинах, так и на обычных железных серверах. Данной статьей начинается небольшой цикл статей о построении домашнего или небольшого производственного кластера Kubernetes.

Читать дальше
1
23 ...

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity