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

Технотекст

Linux в режиме реального времени

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


Операционная система реального времени необходима, когда к работе процессора или потоку данных предъявляются жесткие временные требования. Таким образом она часто выполняет роль блока управления в специальных устройствах. Проведение научных экспериментов, приложения визуализации в медицине, промышленные устройства управления являются системами реального времени. Механизмы впрыска топлива автомобильных двигателей, контроллеры бытовой и военной техники также являются системами реального времени.

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

Возможности ядра в реальном времени существует уже более десяти лет в экосистеме программ с открытым исходным кодом. Столько же времени доступна поддержка Red Hat Enterprise Linux (RHEL) для ядра реального времени. Тем не менее многие системные администраторы неверно истолковывают его основные концепции и фактическое рабочее поведение. В этой статье я опишу некоторые из его основных функций, отличия от стандартного ядра и шаги по установке.
Читать дальше →

Мониторим парк ИБП. Ч.3, заключительная

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

Или что пригодится знать и уметь, если замена ИБП после поломки – урон профессиональной гордости.

И вновь приветствую, уважаемые коллеги и читатели. За пару лет достаточно плотной работы с бесперебойниками я совершил для себя много "открытий чудных".

Спешу поделиться с вами!

SaaS и ALEPIZ: мониторинг и управление инфраструктурой

Время на прочтение8 мин
Количество просмотров2.1K

В статье пойдет речь о программном продукте для управления и мониторинга критически важной инфраструктуры, который создан с учетом 20-и летнего опыта работы в этой сфере. Создание системы заняло более 6 лет. В настоящее время есть успешные внедрения. Программное обеспечение распространяется бесплатно.

Читать далее

Как настроить маппинг атрибутов в GAL Zimbra OSE

Время на прочтение5 мин
Количество просмотров1.7K

GAL, или Глобальная адресная книга в Zimbra OSE представляет из себя динамически формируемую на основе различных атрибутов из LDAP адресную книгу. В ней содержатся почтовые адреса, имена и различные контактные данные всех пользователей домена, а доступ к ней автоматически предоставляется всем пользователям домена. Данные из GAL используются для поиска пользователей, а также при автозаполнении e-mail адресов во время написания писем, создании встреч и совещаний. Глобальная адресная книга создается автоматически одновременно с новым почтовым доменом и хранится в системной учетной записи Galsync. Тем не менее, внесение изменений в уже сформированный GAL является нетривиальной задачей и именно для этого используется маппинг атрибутов. 

Читать далее

Клонируем GPT-диск с 512B-сектором на диск с 4K-сектором в Linux. Подводные камни с EFI, NTFS и LVM

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

Для современного компьютера диск с 4К сектором выглядит предпочтительнее, чем с олдскульным 512B. Так как почти все современные ФС имеют размер кластера по-умолчанию 4KiB или больше. Поэтому использование 512B сектора несколько снижает производительность, а также увеличивает коэффициент умножения записи (Write Amplication) у SSD, что уменьшает ресурс.

Более того, сложно найти современные диски более 4ТБ с сектором 512N. Если диск и рапортует сектор в 512 байт, то, как правило, это 512E — эмулируемый, который используется в основном для совместимости со старыми контроллерами. А в реальности на физическом уровне используется 4К или даже больше (больше в основном у SSD).

Поэтому при покупке нового диска я выбрал диск с сектором 4КiB. И передо мной встала задача клонирования старого диска с 512B сектором (GPT) на новый c сектором 4KiB. Я хотел сохранить установленные Linux, Windows 10, Windows 7 и тома LVM, чтобы не заниматься переустановками ОС. В процессе чего всплыло несколько подводных камней.
Поехали!

Does the latency matter?

Время на прочтение12 мин
Количество просмотров9.9K

Есть исследование от Google, которое говорит, что если ваш сайт открывается больше трех секунд, то вы потеряете около 40% десктопных пользователей и более 50% — мобильных. Еще есть репорт от Amazon, который говорит, что для Amazon каждые 100 мс дополнительного latency стоит им 1% продаж. В объемах Amazon это миллионы долларов.

В зависимости от вашего бизнеса вам стоит тоже ответить на вопрос: Does the latency matter?

Я работаю как системный инженер уже более 8 лет. Хочу поделиться опытом, который получил в процессе решения задач в компании Big Data Technologies. У нас есть какой-никакой highload. В пике это 30 тысяч rps, и вопрос с latency довольно остро стоит перед бизнесом.

Читать далее

Установка Ispconfig3 на ubuntu 20.04 (nginx+php-fpm+mysql)

Время на прочтение12 мин
Количество просмотров15K

ISPConfig - бесплатная панель управления хостингом с открытым исходным кодом c возможностью управлять несколькими серверами из одной панели управления. Это один из лучших вариантов для веб-студий, хостинг-компаний, а так же для всех, кто ищет бесплатную панель управления хостингом с широким функционалом. В данной статье мы рассмотрим как выполнить установку Ispconfig3 с nginx, php-fpm и mysql на ubuntu 20.04.

Читать далее

Визуальное автотестирование сайтов с помощью Codeception

Время на прочтение8 мин
Количество просмотров6.4K

Автоматические end-to-end тесты хороши тем, что позволяют сымитировать действия пользователя на сайте. Мы можем запрограммировать в скрипте теста действия типа открыть страницу, нажать на кнопку, ввести данные в поля ввода, нажать галочки и радиокнопки, отправить форму, и ждать на выходе нужный результат. Увидел текст "Ваше сообщение принято. Спасибо" - тест пройден. В ином случае - не пройден. Все прозрачно и понятно. Можно написать автотесты на все критично важные модели поведения пользователя на сайте, перед каждым обновлением кода на боевом сервере прогонять их и таким образом значительно повысить качество разработки. Но мы пойдем еще дальше...

Читать далее

Методология и практика нагрузочного тестирования. Опыт Miro

Время на прочтение23 мин
Количество просмотров15K


Всем привет!

Меня зовут Дмитрий Винокуров и я работаю инженером по нагрузочному тестированию в Miro. Я хочу рассказать о личном опыте и опыте нашей команды в развитии направления нагрузочного тестирования (для краткости НТ). В статье я расскажу самые основы НТ, как на эти основы ложится наш процесс и на какие конкретные шаги он делится. Наш опыт местами может быть специфическим, но по большей части он будет применим ко многим компаниям, разрабатывающим веб-приложения и не только.

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

Описываемый подход основывается на нашем опыте и множестве просмотренных и прочитанных материалов. Подобный доклад делался на конференции DUMP в Екатеринбурге 14 мая 2021 г., эта статья представляет собой значительно дополненный и переработанный вариант выступления.

Автор арта на «обложке» — Orest Terremoto.
Читать дальше →

Record-and-Replay тестирование — сочетание достоинств юнит и интеграционных тестов

Время на прочтение27 мин
Количество просмотров8.7K

Вступление

Привет, Хабр. Сегодня я расскажу вам про Record-and-Replay подход к тестированию т. к. я его понимаю. Оговорка про мое понимание не случайна. Про этот подход не так много общедоступных материалов, чтобы иметь некий common agreement относительно значения этого термина. Многое из того, что я опишу, является моими личными оригинальными находками, но, тем не менее, фраза record-and-replay, на мой взгляд, наилучшим образом описывает применяемые мной решения. Так что я буду использовать именно ее.

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

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

Ключевой постулат

Итак без лишних предисловий к ключевой идее статьи. В ней будет немало оценочных суждений, и думаю необходимо сразу сказать, в свете какой идеи я делаю эти оценки. Итак… Ключевой постулат - «Ресурсы на тестирование ограничены».

Читать далее

Вжух, и прогоны автотестов оптимизированы. Intellij IDEA плагины на службе QA Automation

Время на прочтение12 мин
Количество просмотров6.2K


Привет, Хабр. Я работаю QA Automation инженером в компании Wrike и хотел бы поговорить о том, как нам удалось оптимизировать процесс код-ревью для репозитория с 30 000+ автотестов при помощи IntelliJ IDEA плагина. Я расскажу о внутреннем устройстве плагина и о том, какие проблемы он решает в нашей компании. А еще в конце статьи будет ссылка на Github репозиторий с кодом плагина, с помощью которого вы сможете попробовать встроить плагин в ваши процессы.
Читать дальше →

Код-ревью без очередей

Время на прочтение8 мин
Количество просмотров8.6K

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

Читать далее

Битва снифферов: Charles vs Proxyman

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

Привет, меня зовут Даша, я работаю тестировщицей клиентского мобильного приложения в компании Ozon.

Сегодня поговорим о снифферах в тестировании мобильных приложений –– программах для перехвата, анализа и модификации трафика. Пожалуй, самый популярный сниффер из тех, о которых мне доводилось слышать — Charles. Про него уже не раз писали на Хабре, есть довольно детальные разборы. Но не Charles-ом единым! 

Читать далее

Как найти 0day

Уровень сложностиСложный
Время на прочтение8 мин
Количество просмотров9.6K

Решил написать о часто встречающейся ошибке в сетевых приложениях и сетевых устройствах. Постараюсь объяснить проблему, на примере Linux стека. И буду больше рассуждать Абстрактно, пытаясь объяснить принцип. Ведь все приложения разные, хоть суть одна. (Переносят биты туда-сюда.) И к каждому сетевому приложению, или к сетевому устройству нужен свой подход, чтоб исправить допущенные в нём ошибки.

Посмотрим

Юзер-стори идеальная, а багов 100500? Как мы тестируем документацию

Время на прочтение8 мин
Количество просмотров19K

Представьте, в требованиях ошибка или документация составлена криво. Требование уходит в разработку, программист неверно его истолкует и реализует фичу с искаженной функциональностью. Если это заметит тестировщик, отправит баг-репорт. И это ещё хороший сценарий! В реальной жизни не все баги исправляют с первого раза, а порой они попадают в прод с печальными последствиями. Как мы тестируем документацию — в продолжении.

Читать далее

Как приручить Charles Proxy?

Время на прочтение10 мин
Количество просмотров386K
Привет! Многие из тех, кто приходит к нам на собеседование на должность тестировщика, с гордостью заверяют, что они могут пользоваться Charles Proxy. Но когда погружаешься в техническую часть, то становится очевидно, что кандидат только слышал об этом инструменте. Давайте уже наконец скорее приручим эту вазу!


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

Как сохранить нервы тестировщика или ускорить регресс с 8 до 2 часов

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

Кукусики!

Меня зовут Юля, и я Mobile QA в компании Vivid Money.

В тестировании уже давно — столько всего интересного видела. ​ Но как показывает практика, проблемы и заботы у всех одинаковые. Разница только в анализе, подходах и реализации решений.

В этой статье я расскажу, КАК ОБЛЕГЧИТЬ ЖИЗНЬ ТЕСТИРОВЩИКУ ВО ВРЕМЯ РЕГРЕССА!

Расскажу по порядку:

Читать далее

[Пятничное] Сколько стоит держать 100 запросов в секунду в Azure на .NET Core MVC и MSSQL

Время на прочтение13 мин
Количество просмотров15K

How much does it cost to handle 100RPS with .NET MVC and Azure


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


И вот, спустя пять лет случается флешбэк — выходит статья о нагрузочном тестировании Azure, в которой автор добивается 4 запроса в секунду за 250$ в месяц. Тут уж я просто не мог пройти мимо. Ведь не может такого быть, чтобы второе по величине облако давало так мало за не самые маленькие деньги, правильно? Поэтому я очень быстро набросал простейшее веб приложение на .NET, накатил базу StackOverflow за 2010 год, запустил туда скромную нагрузку в 100 RPS и стал судорожно протирать свои глаза. Даже такую нагрузку мое приложение не держало, причем вообще. 50 RPS тоже оказались слишком высокой планкой, как, впрочем, и 25. И тут я понял, что так дело не пойдет — к вопросу надо подходить системно.


Итак, кому интересно сколько стоит 100 RPS в Azure с .NET Core MVC + .NET 5 + MSSQL на Kestrel — берите кофей и прошу под кат.

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

Работа с GraphQL через Hasura для системных аналитиков и QA

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

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

Я аналитик, который сам недавно оказался в ситуации первого типа (вообще не слышал ничего о GraphQL и Hasura, каюсь), поэтому статья не претендует на глубокое погружение в тему и нацелена скорее на аналитиков и тестировщиков, которые не работали с упомянутыми инструментами.

Теперь всё, переходим к контенту с чистой совестью.

Читать далее