Павел Агалецкий, ведущий инженер в Авито, рассказал, как запустить один и тот же образ на разных платформах, почему мультиплатформенные образы удобнее, и как собирать их в режиме кросс-компиляции.
Разработчик(в основном на С#)
Тестируем инфраструктуру и приложение на устойчивость к DDoS-атакам
Сегодня расскажу, как можно протестировать свою ИТ-инфраструктуру или приложение на предмет устойчивости к DDoS-атакам на уровнях L4 и L7. Сразу скажу, что это нельзя назвать серьезным нагрузочным тестированием, это простой и бесплатный метод теста. У него две задачи:
1. Узнать, какой минимальной мощности достаточно, чтобы инфраструктура начала испытывать проблемы или легла вовсе. Это то, что тестировали мы.
2. Эту же методику можно использовать, чтобы оценить скорость реакции используемого сервиса защиты от DDoS-атак. Мы конечно же не будем пытаться заддосить с одной машины мощные узлы фильтрации anti-ddos-сервисов. Но посмотрим, как быстро срабатывает защита и начинает блокировать зловредный трафик, для всех ли типов атак это происходит одинаково быстро и происходит ли вообще?
Практическое руководство по созданию Helm чарта или как избавиться от рутины при работе с YAML манифестами
Бывало ли у вас такое, что вы совершали одни и те же действия из раза в раз и наконец-то решили избавиться от всей этой рутины? Но вы решили отложить это решение на некоторое время, в частности из-за занятости или лени. Но вот вы решаете взять себя в руки и всё изменить! Также было и со мной - и вот в конце концов я решился пойти на оптимизацию развертывания сервисов в Kubernetes при помощи Helm и написать об этом статью!
Я уже успел развернуть несколько приложений в Kubernetes. Но в последнее время взаимодействовать с ресурсами через kubectl становится невыносимо больно. Поэтому я решил осуществить свою давнюю затею - написать свой Helm чарт. Сегодня мы вместе с тобой, Хабрюзер, создадим свой чарт, который можно будет использовать для деплоя собственных приложений!
Подробный обзор методичек ФАС по теме маркировки рекламы
Большинство рекламодателей, агентств и блогеров в курсе, что введение с 01.09.22 закона о маркировке рекламы (официально Статья 18.1 Закона о Рекламе №38-ФЗ) породило большое количество недопонимания со стороны интернет-сообщества, откровенного хаоса и паранойи на тему маркировать всё и вся либо игнорирование маркировки в надежде, что регулирующие органы не смогут их привлечь по каким-либо причинам к ответственности.
Введение в трассировку лучей: простой метод создания 3D-изображений. Часть 4 —добавление отражения и преломления
В этой статье мы добавим в наш рейтрейсер поддержку отражения и преломления света. Приятного чтения!
Другим преимуществом трассировки лучей является то, что, расширяя идею распространения лучей, мы можем очень легко имитировать такие эффекты, как отражение и преломление, которые удобны при моделировании стеклянных материалов или зеркальных поверхностей. В статье 1979 года, озаглавленной "Улучшенная модель освещения для затененного дисплея", Тернер Уиттед был первым, кто описал, как расширить алгоритм трассировки лучей Аппеля для более продвинутого рендеринга. Идея Уиттеда расширила модель испускания лучей Аппелем, включив в нее расчеты отражения и преломления.
Использование MassTransit (RabbitMQ) в ASP.NET Core
В этой статье мы рассмотрим реализацию библиотеки MassTransit в сочетании с RabbitMQ в приложении ASP.NET Core. Для начала, мы затронем некоторые из продвинутых функций RabbitMQ, а также ряд концепций, с которыми можно столкнуться, используя библиотеку MassTransit. Ну и наконец, мы разберёмся, как использовать эту библиотеку в приложении ASP.NET Core Web API.
Разрабатываем свой браузер с нуля. Часть первая: HTML
Всем привет!
Продолжаем цикл статей по разработке браузерного движка.
В данной статье я расскажу как создать самый быстрый HTML-парсер c DOM. Мы рассмотрим HTML спецификацию и чем она плоха относительно производительности и потребления ресурсов при разборе HTML.
С данной темой я докладывался на прошедшем HighLoad++. Конференцию не каждый может посетить, плюс в статье больше деталей.
Я предполагаю, что читатель обладает базовыми знаниями об HTML: теги, ноды, элементы, пространство имён.
Разрабатываем свой браузер. Часть вторая: CSS
Всем привет!
Продолжаем цикл статей по разработке браузерного движка.
Да, лучше поздно, чем никогда. Да, перерыв был большой.
В конце статьи я опишу, как поживает проект lexbor
, что с ним происходит.
В этой статье я постараюсь раскрыть особенности парсинга Cascading Style Sheets (CSS). Расскажу, как вывернуть «ежа» наизнанку и как тестировать полученный результат.
В CSS спецификациях всё разжевано, ну, или почти всё, тут я расскажу, как всё устроено, куда смотреть и с чего начать.
Эта статья больше обзорная, здесь не будет мелких подробностей реализации, скорее, общие сведения и основные алгоритмы. За мельчайшими подробностями прошу в код на GitHub.
И конечно, как это обычно бывает, мы замахнёмся на звание самого быстрого парсера CSS.
Создание масштабируемой и высокодоступной системы Postgres с помощью Patroni 3.0 и Citus
Citus — это расширение для PostgreSQL, которое обеспечивает масштабируемость PostgreSQL за счет прозрачного распределения и/или репликации таблиц на одном или нескольких узлах PostgreSQL. Citus можно использовать как на облачной платформе Azure, так и на собственных серверах, поскольку расширение базы данных Citus имеет полностью открытый исходный код.
Vue 3 на Typescript
Популярность Typescript растет день ото дня. Javascript нетипизированный язык(или слабо типизированный, если точнее), и одна и та же переменная способна принимать и строку, и число, и даже объект. С одной стороны, это делает язык гибким, с другой, потенциально ведет к многочисленным ошибкам. Typescript создан, чтобы решить эту проблему. Vue старается не отставать от моды, и в новой версии фреймворка была значительно улучшена поддержка языка. Теперь переход на Typescript проще и приятнее, чем был раньше. Хороший повод научиться чему-то новому, тем более, что в требованиях к вакансиям он встречается все чаще и чаще.
В этой статье мы перепишем тестовое задание, которое я разбирал ранее, на Vue 3 и Typescript и вдобавок используем обновленные Vue-Router и Vuex(критики, вы были услышаны).
Update: код в статье был улучшен в соответствии с пожеланиями.
GitOps c ArgoCD для конфигурации кластеров K8S/OKD/Openshift и приложений, размещаемых в них
Всем привет, у нас в НЛМК создается множество приложений и систем для производства и поддержки бизнеса. Большинство размещаются в нашей Единой Цифровой Платформе (коротко ЕЦП), а по-современному: Internal Developer Platform.
Мы с коллегами как раз занимаемся развитием Единой Цифровой Платформы НЛМК, частью которой являются кластеры Openshift/OKD/K8S, количество которых постепенно увеличивается, что требует понятного, прозрачного подхода к управлению и конфигурированию как самих кластеров, так и различных приложений, работающих в них. Далее я расскажу, как мы это делаем с помощью ArgoCD и подхода GitOps
9 аналогов известных сервисов (Google Analytics, Slack, GitHub, ChatGPT) с открытым исходным кодом
Все мы пользуемся разными сервисами — какими именно, зависит от специальности и текущей необходимости. GitHub, ChatGPT, Tableau и другие давно и прочно вошли в нашу жизнь. Но есть и аналоги этих востребованных сервисов, причём аналоги с открытым исходным кодом. Эта статья посвящена таким альтернативным сервисам и ПО. Вероятно, многие из них могут оказаться полезны для читателей. Если же у вас есть собственный вариант, расскажите о нём в комментариях.
Пример настройки Linux для высоконагруженных кластеров Kubernetes
Довольно часто можно встретить примеры настройки (тюнинга) сетевого стека Linux для высоконагруженных систем, однако некоторые из этих гайдов сильно устарели и не используют рекомендованные подходы к конфигурированию системы. В этом обзоре мы рассмотрим подготовку Linux, для использования в качестве узла плоскости управления Kubernetes.
Как я познакомился с BouncyCastle в .NET 7
Данная статья будет являться моим опытом, как использовать сертификат и успешно его отправить вместе с запросом. По тому, как BouncyCastle достаточно старая библиотека и на нее мало свежих туториалов и появилась идея написать эту статью.
Данная работа написана исключительно в рамках моих рабочих будней и не является профессиональным гайдом.
Делаем многопользовательскую кроссплатформенную RPG с нуля
Когда-то давно меня очаровал ADOM. Я даже и близко не подошёл к прохождению игры, но мне нравилось бродить по этому миру, собирать предметы с эффектом, который не прочувствуешь, пока не используешь. Нравилось, что монстры в подземельях имели какие-то зачатки собственного интеллекта, подбирали с пола вещи и использовали их. Всё время что-то происходило и менялось, проходишь по тому же месту – смотришь кто-то уже подобрал с пола монеты. Или предметы в инвентаре испортились. Мир как будто живёт своей жизнью. В пещерах можно идти по коридорам, а можно наугад пробивать туннели заклинанием в надежде отыскать потайную комнату, оставляя на полу груду камней. Мир полный возможностей и способов взаимодействия.
Вдохновившись этими впечатлениями, я задумался, а может можно сделать что-нибудь своё, пропитанное подобным духом? И почему бы не попробовать сделать многопользовательскую игру с современной то скоростью интернета? Ведь это даёт особые ощущения, осознание того, что ты идёшь по туннелю, вырытому другим, настоящим, игроком. Или вот-вот встретишь его за углом.
Пройди свой путь в ширину: библиотеки для графов из инди-игры TESTAMENT
Графы — это не только математический объект, но и важный инструмент программистов. Они используются в играх, визуализации данных, социальных сетях и других серьезных проектах. Если вы не знаете, как работать с графами, то вы не программист. Конкретно раскладка графа в плоскости — задача не тривиальная. Но что делать, если вы хотите решить эту задачу легковесно и быстро?
Когда я начал работать над своим пет-проектом TESTAMENT, мне нужно было генерировать и отображать произвольные графы. Я хотел, чтобы локации были в виде простых шагов-событий, соединенных между собой. Примерами могут послужить проекты Slay The Spire, Cult of the Lamb, Darkest Dungeon и другие. Исследовав вопрос, я увидел, что существующие библиотеки слишком тяжелые и сложные для моих нужд.
Классификация аудиофайлов с библиотекой Librosa
Привет Хабр! В этой статье поработаем с аудиофайлами, используя библиотеку librosa и алгоритмы Machine learning.
Сначала немного поговорим о том, что такое аудиосигнал. Аудиосигнал представляет собой сложный сигнал, состоящий из нескольких одночастотных звуковых волн, которые распространяются вместе как изменение давления в среде. Каждый аудиосигнал имеет свои определенные характеристики, например, такие как частота, амплитуда, ширина полосы, децибел и т.д. Число волн, производимых сигналом за одну секунду называется частотой. Амплитуда показывает интенсивность звука, то есть является высотой волны.
Создание сервера для онлайн ММО игр на PHP ч. 7 — Игровые локации (тайловые карты)
Продолжая рассказывать о своем пути создания ПО для догружаемого контента в играх в этой статье хотел бы остановится на игровых картах (локациях).
Как айтишник гигантские арбузы в средней полосе выращивал. Часть 1
Хобби коллег очень многогранны. Сегодня расскажем об ИТ-шном подходе к выращиванию арбузов в регионе, где, казалось бы, нормально вызревать они не должны. Наш девопс, Игорь Иванов, объединил системный подход к сбору информации и комплектующие с AliExpress и из магазинов для садоводов, и уже не первый год собирает отличный урожай.
Своеобразная “инструкцию для начинающих” получилась довольно объемной. Мы разделили ее на две части: в первой автор разбирает теоретические основы, а во второй переходит к практике.
Осторожно, много фото!
Книга «ASP.NET Core Security» в правильном переводе команды DotNetRu
Сообщество DotNetRu совместно с издательством ДМК Пресс договорились на доработку и проверку перевода очередной книги. Напомним, что мы уже помогли выпустить три книги: «Управление памятью в .NET для профессионалов» Конрада Кокосы, «ASP.NET Core в действии» Эндрю Лока и «EF Core в действии» Джона Смита. Издатель делает первоначальный перевод, а ребята из сообщества в качестве экспертов корректируют текст, придавая переводу оригинальный и непротиворечивый смысл.
Мы продолжили использовать хорошо зарекомендовавший себя подход — выделили каждую главу в отдельный документ, создали таблицу, в которой фиксировали процесс по каждой главе. С каждой главой независимо работали два-три редактора и предлагали свои правки. После чего отдельный редактор вычитывал главу и применял внесенные поправки к документу. Это позволило распараллелить работу и быть всем участникам максимально независимыми. После того, как перевод был готов, несколько редакторов прочли всю книгу и внесли финальные изменения.
Рады представить вам очередной результат совместных усилий: книга Кристиана Венца «Безопасность ASP.Net Core» в правильном переводе DotNetRu. В продолжении поста — впечатления о процессе перевода от непосредственных участников и промокод на скидку от издательства.
Информация
- В рейтинге
- 6 319-й
- Зарегистрирован
- Активность