Pull to refresh
1
0.1
Send message

Создание гигабитного коммутатора на Linux

Level of difficultyMedium
Reading time9 min
Views12K

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

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

Однако есть и вторая категория управляемых коммутаторов, о которых вспоминают не сразу, это коммутаторы, находящиеся внутри маршрутизаторов потребительского уровня. Эти маршрутизаторы — небольшие устройства на Linux, имеющие внутри чип коммутатора, один или несколько портов с внутренним подключением к CPU, а остальные выведены наружу как физические порты.

Читать далее
Total votes 22: ↑22 and ↓0+29
Comments15

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

Level of difficultyMedium
Reading time7 min
Views3.1K

Часто задается вопрос: как эффективно и быстро обработать огромные объемы информации? Ответом на этот вызов стала концепция MapReduce, разработанная в недрах Google.

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

Читать далее
Total votes 11: ↑9 and ↓2+12
Comments2

Что делать, чтобы любопытство не сгубило кошку. Биохимия и инженерия. Guest Post

Reading time11 min
Views6K

Вашему вниманию предлагается очередной гостевой пост в исполнении уважаемой Анастасии Лазукиной @anastasiamrr, которая уже и ранее любезно писала некоторые посты для моего блога, чтобы я мог немного отдохнуть летом. Сегодня автор затрагивает едва рассмотренную на Хабре тему - какие существуют способы эффективно и при этом нетравматично ограничивать проникновение котиков куда не следует в пределах человеческого местообитания. Приятного вам чтения. Котам текст не показывать, не палите базу!

Читать далее
Total votes 22: ↑20 and ↓2+35
Comments19

Введение в DPI: Состав системы и схемы подключения

Reading time3 min
Views15K
Привет, Хабр! Мы в VAS Experts специализируемся на создании и внедрении сервисов в области контроля и анализа интернет трафика. В нашем блоге мы будем делиться собственным опытом работы и рассказывать о том, как устроены те или иные технологии, имеющие отношение к нашей сфере деятельности.


/ Flickr / Andrew Hart / CC

Глобальный рынок систем глубокого анализа трафика (DPI) в 2013 году оценивался практически в 742 млн долларов США. По прогнозу аналитиков, к 2020 он вырастет более чем в 6 раз и будет оцениваться в 4,7 млрд. DPI-системы в основном применяют интернет-провайдеры и операторы связи, которые стремятся защитить своих абонентов и оптимизировать полосу пропускания до клиента за счет фильтров, приоритетов и кешей.

DPI выполняет анализ всех проходящих через неё пакетов вплоть до 7 уровня модели OSI и распознает приложения, не использующие для обмена данными заранее известные заголовки и структуры. Однако система DPI сама по себе не решает проблемы и задачи, описанные выше. Она взаимодействует с другими устройствами и сервисами сети передачи данных оператора. Об этом сегодня и поговорим.
Читать дальше →
Total votes 24: ↑19 and ↓5+14
Comments10

Домашний DPI, или как бороться с провайдером его же методами

Reading time16 min
Views280K

Долгое время я терпел ограничения РосКомНадзора и соответствующие действия провайдеров по различным ограничениям доступа к сайтам - но с определённого момента устал, и начал думать как бы сделать так, чтобы было и удобно, и быстро, и при этом с минимумом заморочек после настройки... Хочу оговориться, что цель анонимизации не ставилась.

Вообще, эта проблема имеет несколько решений... Но я решил бороться с провайдером их же методом.

...При помощи NGINX!
Total votes 179: ↑178 and ↓1+244
Comments187

Как ломаются большие системы и как их траблшутить — инсайты из интенсива ШАДа Яндекса

Reading time10 min
Views6.4K

Привет, меня зовут Руслан Савченко, я руководитель службы разработки динамических таблиц в Yandex Infrastructure и преподаватель в Школе анализа данных. Сегодня я поделюсь актуальными инсайтами о том, как ломаются большие системы и как их траблшутить. Думаю, это будет полезно разработчикам и студентам, которые интересуются Site Reliability Engineering. Вообще, мало где сейчас обучают SRE, хотя в индустрии такие задачи очень востребованы.

В основе статьи — материалы SRE Week, открытого интенсива ШАДа по работе с большими нагруженными системами.

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

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

Reading time13 min
Views22K

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

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

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

Укрощаем мультимедиа с помощью ffmpeg

Reading time3 min
Views89K

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





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

Читать дальше →
Total votes 38: ↑35 and ↓3+32
Comments33

Как обновить ноутбук при помощи 3-d принтера

Level of difficultyEasy
Reading time7 min
Views21K

Здравствуйте меня зовут Дмитрий. Как известно модернизировать можно только десктопы. Ноутбуки-же в случае устаревания просто выбрасываются на помойку. Но сегодня я расскажу вам про свой опыт модернизации ноутбука. И мне для этого понадобился всего лишь 3-d принтер.

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

Дак вот ситуация с ноутбуками ещё более ужасна. Если у вас устарел ноутбук, то нельзя поменять процессор с материнской платой, надо выкинуть старый ноутбук и купить новый. И это ужас, ведь например у меня остался старый ноутбук в котором работает матрица и клавиатура и SSD, и все это я получается должен выкинуть на свалку. Но благодаря тому что у нас есть 3-d принтер мы можем разорвать этот ужасный порочный круг. Итак давайте приступим.

Читать далее
Total votes 68: ↑66 and ↓2+84
Comments58

Выжимаем из Go максимум производительности

Level of difficultyMedium
Reading time11 min
Views18K

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

Меня зовут Никита Галушко. Я старший программист-разработчик в отделе высоконагруженных систем и оптимизации ВКонтакте. В статье поделюсь, какие хитрости помогут использовать Go на полную мощность.

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

Windows 11 Enterprise G – Что за издание для правительства Китая и зачем оно вам?

Level of difficultyHard
Reading time11 min
Views57K

Сегодня я бы хотел рассказать вам немного информации об особенном, в чем-то уникальном издании, существующем в Windows 10 и Windows 11, выпускаемом Microsoft для китайского госсектора. Что такое Windows Enterprise G, она же Windows Enterprise Government China, чем она отличается от других изданий, и самое главное, как (и зачем) вам ее получить.

Читать далее
Total votes 120: ↑120 and ↓0+137
Comments360

Надежный обход блокировок в 2024: протоколы, клиенты и настройка сервера от простого к сложному

Level of difficultyMedium
Reading time46 min
Views210K

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

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

Читать далее
Total votes 445: ↑437 and ↓8+489
Comments363

Не статья, а позорище какое-то! Sentiment-анализ комментариев из блога Selectel на Хабре

Reading time12 min
Views8.8K

Каждый месяц в блоге Selectel на Хабре появляется 35-40 публикаций. Сбор статистики по ним мы давно автоматизировали, но до последнего времени не охватывали sentiment-анализ, то есть оценку тональности комментариев средствами машинного обучения.

У нас есть своя ML-платформа, серверное железо и опыт в развертывании IT-инфраструктуры. Вполне логично, что в какой-то момент возник вопрос: что, если проанализировать эмоциональный окрас комментариев в блоге на Хабре с помощью LLM?

Под катом рассказываем, что из этого получилось.
Читать дальше →
Total votes 54: ↑48 and ↓6+62
Comments18

Основы DNS: понятие, иерархия, записи

Level of difficultyMedium
Reading time7 min
Views26K

DNS (Domain Name System) – это система, которая переводит понятные человеку доменные имена в IP-адреса, которые используют компьютеры для связи друг с другом. Представьте, что DNS – это как телефонная книга интернета. В обычной телефонной книге, если вам нужно найти номер телефона человека, вы ищете его по имени, и книга предоставляет вам номер. Точно так же DNS помогает находить IP-адреса, когда вы вводите доменное имя.

Когда вы вводите адрес веб-сайта, например, www.example.com, в строку браузера, DNS помогает найти нужный IP-адрес, чтобы ваш браузер мог подключиться к нужному серверу. IP-адрес – это уникальный числовой идентификатор, который используется для идентификации устройства в сети. Всякий раз, когда вы отправляете запрос на веб-сайт, ваш браузер отправляет этот запрос через интернет на сервер, который затем отвечает данными, которые вы видите на экране.

Читать далее
Total votes 27: ↑25 and ↓2+24
Comments30

Увольнение без компенсаций: как этого избежать и что вам положено по закону

Reading time9 min
Views18K

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

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

Происходит так вот почему.

Читать далее
Total votes 37: ↑32 and ↓5+32
Comments11

Красавица и HTML Injection. Почему HTMLi не только про дефейс

Level of difficultyMedium
Reading time27 min
Views6.5K

Привет, Хабр. Сегодня мы посмотрим на достаточно тривиальную тему с совсем нетривиальной стороны. Пожалуй, для каждого вебера HTML-инъекции являются темой, которой зачастую уделяют не очень много внимания. Взять даже собеседования: когда в последний раз вас спрашивали не об XSS'ках, а об HTML-инъекциях?

Сегодня я попробую рассказать про большую часть интересных векторов, которые мы можем использовать при ограничении в применении JS. Не стесняйтесь пользоваться оглавлением, потому что статья подготовлена для разного уровня читателей. Чтобы не обделять новичков, я достаточно подробно описал работу HTML, ее структуры и даже то, как HTML парсится браузером!

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

Разработка Технического задания по ГОСТ 34 легко и просто

Reading time45 min
Views315K
Нередко слышишь мнение, что составление Технического задания по ГОСТ 34 (ТЗ) занятие не только трудоемкое, но и крайне раздражающее, поскольку приходится писать много всякой ерунды, воды. Но подумайте: разработкой этого ГОСТа занимались целые НИИ, это был проект на государственном уровне, обобщен опыт сотен проектов автоматизации, сложных проектов. Неужели они могли написать чушь?

На самом деле, при грамотном подходе ГОСТ очень сильно помогает не только при разработке ТЗ, но и в ходе реализации проекта автоматизации в целом (и не только в госконтрактах, но и для коммерческой разработки). Грамотные люди его писали. Но чтобы воспользоваться плодами их трудов, нужно немного понять замысел не только ТЗ, но и ГОСТ 34 в целом.

В данной статье мы пункт за пунктом разберем все требования ГОСТа и попробуем сделать разработку ТЗ по ГОСТ 34 не обременением, а большой помощью в проекте.
Читать дальше →
Total votes 28: ↑27 and ↓1+26
Comments21

А в чем проблема работать с файлами?

Level of difficultyMedium
Reading time53 min
Views32K

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

Меня увлекла тема отказоустойчивости, а конкретно - отказоустойчивой работы с файлами. В этой статье я попытался соединить все полученные знания:

Кто участвует в процессе записи

Ошибки, которые могут произойти

Что от нас зависит, а что нет

И самое главное - как это этого защититься

Читать далее
Total votes 141: ↑140 and ↓1+169
Comments23

Реализация бизнес-логики на уровне хранимых функций PostgreSQL

Reading time10 min
Views14K
Побудительным мотивом к написанию этюда послужила статья «В карантин нагрузка выросла в 5 раз, но мы были готовы». Как Lingualeo переехал на PostgreSQL с 23 млн юзеров. Так же показалось интересной статья опубликованная 4 года назад — Реализация бизнес-логики в MySQL.

Показалось интересным то, что одна и та же мысль-"реализовать бизнес-логику в БД".



пришла в голову не только мне одному.

Также на будущее хотелось сохранить, для себя в первую очередь, интересные наработки возникшие по ходу реализации. Особенно учитывая то, что относительно недавно было принято стратегическое решение о смене архитектуры и переносе бизнес-логики на уровень backend. Так, что все, что было наработано, скоро никому не понадобится и никому будет не интересно.

Описанные методы не являются каким то открытием и исключительным know how, все по классике и было реализовано неоднократно (я например подобный подход применил 20 лет назад на Oracle).Просто решил собрал все в одном месте. Вдруг кому пригодится. Как показала практика — довольно часто одна и та же идея приходит независимо разным людям. Да и для себя оставить на память, полезно.
Конечно, же ничто в этом мире не совершенно, ошибки и опечатки к сожалению возможны. Критика и замечания всячески приветствуются и ожидаются.И еще одна маленькая деталь — конкретные детали реализации опущены. Все таки всё используется пока в реально работающем проекте. Так, что статья как этюд и описание общей концепции, не более того. Надеюсь для понятия общей картины, деталей достаточно.
Читать дальше →
Total votes 18: ↑9 and ↓9+5
Comments166

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

Reading time9 min
Views20K
image

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

Также, изучая множество ресурсов, начиная от вопросов на stackoverflow и заканчивая платными курсами по архитектуре, можно наблюдать, что в IT-сообществе сложилось неоднозначное отношение к исключениям и к тому, как их использовать.

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

Есть разные мнения о том, стоит ли создавать собственные типы исключений или использовать стандартные, поставляемые в .NET.

Кто-то делает валидацию на исключениях, а кто-то повсеместно использует монаду Result. Справедливо, что Result позволяет по сигнатуре метода понять, возможно ли не только успешное выполнение. Но не менее справедливо, что в императивных языках (к которым относится C#) повсеместное использование Result приводит к плохо читаемому коду, засыпанному конструкциями языка настолько, что с трудом можно разглядеть исходный сценарий.

В данной статье я расскажу о практиках, принятых в нашей команде (если кратко — мы используем все подходы и ни один из них не является догмой).

Речь пойдет об enterprise-приложении, построенном на базе ASP.NET MVC+WebAPI. Приложение построено по луковой архитектуре, общается с базой данных и брокером сообщений. Используется структурированное логирование в ELK-стек и настроен мониторинг при помощи Grafana.
Читать дальше →
Total votes 35: ↑33 and ↓2+31
Comments15

Information

Rating
2,813-th
Registered
Activity