
Привет, Хабр!
В этой статье рассмотрим, как NGINX обрабатывает TCP/UDP-соединения: от принятия запроса до логирования.
Привет, Хабр!
В этой статье рассмотрим, как NGINX обрабатывает TCP/UDP-соединения: от принятия запроса до логирования.
Когда‑то давно общался с коллегой на тему всякого разного и в ходе беседы, он как‑то вскользь сказал, «А в линуксе же кроме дефолтного STP ничего не поддерживается, ну вот я и...».
Дальше уже ничего слышно не было.
Как это не поддерживается? GENEVE мы умеем, а MST нет?... на что получил положительный ответ и примечание, что по крайней мере такое было в какой-то относительно свежей версии Debian.
Короче, решил покопаться сам, почему-то мне казалось, что это де-факто стандарт и такое должно там быть.
Ну и покопался, вот мои копания в виде статейки.
Добро пожаловать под кат.
Тема облачных услуг и облачных сред популярна уже довольно давно. Мы используем облака в своих проектах, арендуем облачные ресурсы. Однако, не все инженеры и архитекторы хорошо знают, что лежит в основе облачных сред.
В этой статье мы рассмотрим облачную основу — модульную и масштабируемую конфигурацию, позволяющую заказчикам использовать облака как своих бизнес‑потребностей.
Рекомендации по построению этой облачной основы, приведенные в статье, базируются на материалах одного западного гиганта облакостроения, но я полагаю, что они будут полезны и при использовании других облачных сред.
Привет, Хабравчане! Этот пост - продолжение предыдущей статьи об опыте создания умного домофона (тык), но теперь за написанными буквами прячусь не я один. Со мной этот материал пишет глубокоуважаемый мной Человек (именно с большой буквы), автор аппаратной платформы Ge1mer, он же Ильмир Гайнутдинов. С материалами этой статьи мы выступали на недавней конференции "Стачка" в Санкт-Петербурге. Ниже, для интересующихся оставлю и ссылку на выступление. А пока, наливайте себе чаёчку с имбирем и лимончиком, а мы начинаем...
Проблема, которую решает проект
Представьте, Вы сидите и работаете – перед Вами коллеги на созвоне, Вы рассказываете что-то интересно или обсуждаете результаты спринта. И тут, внезапно, звонит курьер в домофон. Вы вынуждены прерваться. Ещё и не один раз. Кому такое знакомо?
В мире разработки и эксплуатации ПО мажорные обновления — это всегда стресс. Независимо от того, насколько хорошо вы тестируете изменения, всегда есть риск, что что-то пойдёт не так. Особенно это касается обновлений, которые затрагивают пользовательские данные. В какой-то момент мы задумались о том, как нам минимизировать риски и сделать обновления более предсказуемыми.
Меня зовут Кристина Демидович, я DevOps‑инженер в СберТехе, занимаюсь автоматизацией в команде СУБД Pangolin — это целевая СУБД в Сбере и не только. Я расскажу о нашем подходе к обновлению СУБД Pangolin, который позволил нам превратить часть мажорных обновлений в обновление данных системного каталога — что проще, удобнее и занимает вдвое меньше времени.
Надеюсь, наш опыт будет полезен тем, кто занимается автоматизацией и имеет дело с обновлением сложных систем.
Как получить денежную компенсацию за вред, причиненный спамерами, перестать злиться самому и заставить злиться спамеров. Продолжение статьи.
Этот кейс будет полезен всем, кто занимается подготовкой и поддержкой учебных устройств в образовательных учреждениях и EdTech проектах. Если в вашей организации сотни компьютеров и планшетов Apple, которые нужно оперативно настраивать, готовить к учебному процессу, обновлять и очищать, автоматизация этих процессов становится критически важной. Мы расскажем, как один корпоративный университет упростил администрирование своего парка устройств с помощью Ринго MDM.
Немного о клиенте
Это корпоративный университет. Назвать его не можем, поэтому обозначим его Университет N.
Году в 2014-2015 я пошла учиться на сисадмина, а точнее, на администратора Windows Server и немного сетевого оборудования Cisco. Обучение было очным, но я к нему не относилась как к общей жизненной цели. Уже тогда я писала статьи для Хабра как внешний автор разных компаний и понимала, что время меняется и моего инженерного опыта из начала 2010-х становится мало, а гнать пургу не хочется. В общем, пошла я за твёрдым пониманием разного сетевого, безопасного и прочих групповых политик. Тогда на это был спрос. И тогда же я словила лёгкую зависть к программистам: для них — сотни и тысячи статей и туториалов, а для админов один Эукариот с сетями для самых маленьких, ну и так, от случаю к случаю крутой и доходчивый материал. Админские задачки было проще решать с помощью админских же форумов. Потом как-то быстро случился DevOps, стал хитом, и про классическое системное администрирование писать стали ещё меньше. В этом году так вообще: нет ни серверов, ни мониторинга, один только YouTube :-)
Но тем не менее каждый год мы запускаем номинацию «Системное администрирование» в конкурсе Технотекст. И у нас есть 10 мифов и дурацких отговорок, из-за которых мы это упорно делаем.
Когда в компании работа выстроена в Excel, проблем нет, пока в таблице несколько тысяч строк. Но бизнес растёт, и вот в файле уже миллион записей. Поиск тормозит, сложные формулы зависают. А если сотрудник случайно удалит столбец — восстанавливать придётся вручную. Это первые сигналы, что Excel не справляется.
В этой статье разберём, когда Excel перестаёт быть удобным инструментом и как SQL помогает решать эти проблемы. А приглашённые эксперты поделятся практическими примерами и советами по переходу.
В этой статье я хотел бы поделиться с вами моим опытом написания юнит-тестов для базы данных (БД) в рамках легаси-проекта. Я выбрал формат ретроспективы, чтобы показать, как все начиналось, к чему мы пришли и какой путь был пройден в разработке юнит-тестов для проекта «Цифровая карта магазина». Возможно, статья будет полезна начинающим разработчикам баз данных или тем, кто хочет начать писать юнит-тесты для Oracle, но не знает, с чего начать.
Доверие — очень классная штука. О нём можно говорить высокопарно, им можно манипулировать, в него можно играть, его можно имитировать. В представлении большинства доверие — это предоставление полной свободы действий сотруднику, партнёру, ребёнку… Но если рассматривать проблему рационально, доверие — это возможность делегировать и разделять ответственность с адекватной мерой самостоятельности и с возможностью безболезненного контроля. Если я доверяю своему ребёнку делать домашки самостоятельно, то разве проверка тетрадок вечером будет недоверием? Это скорее будет частью командной работы, в которой я подстраховываю ребёнка от значительной неудачи и контролирую наличие грубых ошибок, которые в конечном итоге оставят материал непонятым, расстроят учителя и ученика, огорчат родителей.
Аналогично: если я доверяю код программистам, но вечером что-то поправлю, оптимизирую и отрефакторю для лучшей работы приложения на проде, я кто — ведущий разработчик или тимлид-тиран? 🙂
Хуже приходится руководителям команд, которые работают вне офиса. Ведь основная задача руководителя - выстроить эффективную и, что не менее важно, управляемую модель работы подразделения.
Привет, Хабр! Меня зовут Александр Фикс, и я менеджер продукта в K2 Cloud. В этой статье я хотел бы рассказать о том, как мы решали задачу замены корпоративных облачных ресурсов собственным сервисом. Под катом — подробный рассказ про архитектуру NextCloud в K2 Cloud, а также разбор нашего опыта разработки плагинов, чтобы довести файловое хранилище до корпоративного уровня.
Чтобы эффективно осваивать вложенные в покупку или аренду GPU ресурсы, важно использовать весь потенциал видеокарт. Первые сложности возникают при настройке оборудования в контексте его потенциальных возможностей. С одной стороны — недостаточная утилизация ресурсов, с другой — бесконечное горизонтальное масштабирование и кратное удорожание ИТ-инфраструктуры.
В этой статье мы разберем базовые принципы и настройки оптимизации проверенных моделей GPU, чтобы эффективнее справляться с задачами машинного обучения. Посмотрим, как настраивать драйверы и библиотеки, управлять памятью, активировать Tensor Cores для ускорения вычислений, использовать технологию MIG для распределения задач и проводить разгон GPU для получения максимальной производительности. Следуя этим рекомендациям, вы сможете ускорить вычислительные процессы и сократить затраты на оборудование, увеличив эффективность работы с большими данными. Разбираться будем на примерах популярных моделей NVIDIA: A30, A100, L40s и L4.
Недавно на Хабре вышел обзор того-о-чём-не-стоит-говорить-в-этом-блоге. И, в числе прочих способов того-о-чём-не-стоит-говорить, автор упомянул использование «транспорта HttpUpgrade».
Так как я использую заголовок Upgrade на практике, меня смутило, что в поиске в русскоязычном сегменте интернета найти корректное описание механизма непросто. Конечно, метод является достаточно редко используемым «вчистую» (то есть не в паре с протоколом WebSocket), но тем не менее.
Статья может пригодиться всем, кому требуется создать полнодуплексное tcp-соединение (то есть такое соединение, в котором и читать данные, и писать их могут и клиент, и сервер, причем в любой момент времени жизни соединения).
Я расскажу о том, что есть «HttpUpgrade», как наш ЦК использует его для создания соединения, по которому клиент и сервер могут обмениваться пакетами: клиент запрашивает видео, а сервер передаёт клиенту пакеты. Ну и разумеется, поделюсь кодом клиента и сервера, создающим между собой «апгрейднутое» соединение в .NET 8.
Меня зовут Андриевский Леонид, я тимлид команды .NET в ЦК Видеонаблюдения Ростелеком. Давайте приступим!
Всем привет! Я — Java-разработчик с пятилетним опытом в финтехе, и сегодня я расскажу, как настроить CI/CD для деплоя Spring Boot приложения из Bitbucket через Jenkins в MicroK8s. Это не просто теория — я поделюсь реальным кейсом, разберу ошибки, с которыми столкнулся, и дам рабочий код. Если вы хотите автоматизировать деплой и не наступать на грабли — поехали!
Представьте: у вас есть микросервис на Spring Boot, который нужно быстро и без ошибок доставить в продакшен. Ручной деплой отнимает время, а команда требует стабильности. Я решил эту задачу с помощью Bitbucket, Jenkins и MicroK8s, но путь оказался не таким гладким, как хотелось бы. Проблемы с аутентификацией, конфликты портов и настройка окружения заставили меня попотеть. Как я справился? Об этом — в статье.
CI/CD (Continuous Integration/Continuous Deployment) — это must-have для современных разработчиков. Автоматизация сборки, тестирования и деплоя приложений экономит время, снижает вероятность ошибок и ускоряет доставку кода до продакшена. В этой статье мы разберем, как настроить полноценный CI/CD-пайплайн для Spring Boot приложения, используя связку Bitbucket, Jenkins и MicroK8s.
Суть моего труда заключается в том, чтобы определить функцию для нахождения n-ого числа Фибоначчи с линейной сложностью поиска. Вот какие методы я попробовал:
Возможно получится по простым данным постоить полином большой степени, используя метод неопределённых коэффициентов и использовать его для подсчёта последующих значений последовательности.
Проблема повреждённых жёстких дисков знакома многим. Диск начинает работать со сбоями, система зависает, файлы исчезают. В этой статье мы разберём, как спасти данные: создадим образ повреждённого диска с ddrescue, подключим его через losetup, смонтируем разделы и извлечём файлы. Также рассмотрим восстановление удалённых данных с помощью утилит TestDisk и PhotoRec и разберём, что делать в случае проблем с NTFS.
Что делает AI агента умнее обычного LLM? AI агенты помогают преодолеть фрагментарность традиционных подходов, сохраняют контекст между операциями и адаптируются к задачам на лету.
Узнайте, как создать своего первого AI агента с помощью LangGraph, не погружаясь в сложности.
Репозиторий автора с примерами AI агентов собрал уже более 6000 звезд на GitHub!