Рубрика «Серверное администрирование» - 10

Это — пятый материал из серии статей, посвящённой разработке REST-серверов на Go. Здесь мы поговорим о middleware. У меня есть материал, посвящённый жизненному циклу HTTP-запросов в серверах, написанных на Go. Для того чтобы разобраться в том, о чём пойдёт речь ниже, вам нужно ориентироваться в этой теме.

Разработка REST-серверов на Go. Часть 5: Middleware - 1
Читать полностью »

Кто копает под мой MikroTik? - 1


В статье обобщены результаты работы honeypot на базе Cloud Hosted Router от MikroTik, поднятого на ресурсах отечественного провайдера RUVDS.com и намеренно открытого для посещения всему интернету. Устройство подвергалось многократному взлому со стороны известной с 2018 года малвари Glupteba. Полученные данные свидетельствуют о прекращении ее активного функционирования, однако отдельные зомби хосты продолжают существовать на бесконечных просторах цифровой сети и вмешиваться в работу слабо защищенных устройств на базе операционной системы RouterOS.
Читать полностью »

Не тварь! Часть 1. Обзор сервера Compaq Prosignia VS с ОС Novell NetWare 3.12 - 1

Сегодня у нас будет целых два главных героя — и сервер, и выполняющаяся на нем операционная система. За исключением, по понятным причинам, Apple Xserve, все серверы, что были представлены в предыдущих статьях цикла, работали под Windows NT — от самой первой NT 3.1 до уже вполне зрелой NT 4.0.

Так было проще — системы относительно понятные и привычные, учитывая, что сложных сервисов на них поднимать не требовалось, а сами эти системы действительно были достаточно распространены, что отвечает требованию аутентичности. Но лидером рынка Windows NT не была примерно до 1998 года, до этого момента, в течении 15 лет самой популярной серверной ОС для локальных сетей была другая система — Novell NetWare.

Прежде я встречал ее только однажды, когда в старших классах ходил на курсы по HTML — именно на ней была построена сеть университета, где они проходили. И то — знал я это лишь по окну входа в сеть в Windows 95. Теперь пришла пора восполнить этот пробел, присоединяйтесь — будет ностальгично!
Читать полностью »

Тележка, витая пара, три свитча: как я перевозил сервер с нулевым даунтаймом - 1

Самое тупое, что я делал за всю свою жизнь.

Один из моих клиентов купил новое офисное помещение в том же бизнес-комплексе и захотел, чтобы его сервер виртуального хостинга (7 виртуальных машин Windows) переместили в новую «серверную». Сначала я подумал: «Отлично! Быстро управлюсь. Просто отключу всё, сниму, пронумерую, упакую накопители, перетащу, а затем соберу, как было. Займёт максимум пару часов».

(Вчера)

Не-а… Я начал излагать свой план владельцу, и он прервал меня на первом же шаге:

Владелец: Постойте, нельзя ничего отключать. Наши клиенты заходят на сервер весь день.

Я: Вы не сообщили им о плановом техобслуживании, как мы договаривались в пятницу?

В: Нет, у нас не может быть никакого даунтайма.

Я: Придётся потерпеть даунтайм.

В: Если он будет, я вам не заплачу.

Я: Ладно, есть другой способ, но потребуется примерно 5 минут даунтайма. Мы можем поднять новый виртуальный хост в новом месте и провести миграцию через временный VPN.

В: Ни за что! Никакого даунтайма!

Я: Ладно, до свидания.

Читать полностью »

Сегодня, в третьей части серии материалов, посвящённых разработке серверов на Go, мы займёмся реализацией нашего REST-сервера с использованием Gin — одного из самых популярных веб-фреймворков для Go. Вот код, который мы будем тут обсуждать.

Перевод предыдущих частей:
Разработка REST-серверов на Go. Часть 1: стандартная библиотека.
Разработка REST-серверов на Go. Часть 2: применение маршрутизатора gorilla/mux

Разработка REST-серверов на Go. Часть 3: использование веб-фреймворка Gin - 1
Читать полностью »

Перед вами второй материал из серии статей, посвящённой разработке REST-серверов на Go. В первом материале этой серии мы создали простой сервер, пользуясь стандартными средствами Go, а после этого отрефакторили код формирования JSON-данных, вынеся его во вспомогательную функцию. Это позволило нам выйти на достаточно компактный код обработчиков маршрутов.

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

Разработка REST-серверов на Go. Часть 2: применение маршрутизатора gorilla-mux - 1

Это — проблема, с которой сталкиваются все, кто пишет HTTP-сервера, не используя зависимости. Если только сервер, принимая во внимание систему его маршрутов, не является до крайности минималистичной конструкцией (например — это некоторые специализированные серверы, имеющие лишь один-два маршрута), то оказывается, что размеры и сложность организации кода маршрутизатора — это нечто такое, на что очень быстро обращают внимание опытные программисты.
Читать полностью »

Это — первый материал из серии статей, посвящённой разработке REST-серверов на Go. В этих статьях я планирую описать реализацию простого REST-сервера с использованием нескольких различных подходов. В результате эти подходы можно будет сравнить друг с другом, можно будет понять их относительные преимущества друг перед другом.
Разработка REST-серверов на Go. Часть 1: стандартная библиотека - 1
Первый вопрос разработчиков, которые только начинают применять Go, часто выглядит так: «Какой фреймворк стоит использовать для решения задачи X». И хотя это — совершенно нормальный вопрос, если задавать его, имея в виду веб-приложения и серверы, написанные на многих других языках, в случае с Go при ответе на этот вопрос нужно принять во внимание множество тонкостей. Существуют серьёзные аргументы как «за», так и «против» использования фреймворков в Go-проектах. Я, работая над статьями из этой серии, вижу своей целью объективное разностороннее исследование этого вопроса.
Читать полностью »

Падение Slack 4 января 2021 - 1

4 января 2021 года для многих людей во всем мире, также как и для большинства работников Slack был первым рабочим днем после нового года (за исключением специалистов горячей линии и службы поддержки, которые никогда не спят). В день Азии и утро в Европе прошло спокойно, но когда забрезжил рассвет в Америке мы стали получать сообщения от внешней службы мониторинга о росте количества ошибок. Мы начали разбираться, в чем дело. Ситуация с ошибками ухудшалась и мы инициировали процесс расследования инцидентов (о том, как у нас устроено управление инцидентами подробнее можно почитать в статье Райана Каткова (Ryan Katkov) All Hands on Deck https://slack.engineering/all-hands-on-deck/).

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

image

GPS/WWAN/LTE-модем телефона PinePhone

В процессе разработки ПО на PinePhone я наткнулся на любопытное сообщение в dmesg:

[   25.476857] modem-power serial1-0: ADB KEY is '41618099' (you can use it to unlock ADB access to the modem)

Для контекста скажу, что в PinePhone есть модем Quectel EG25-G, отвечающий за GPS и беспроводную связь PinePhone. Это оборудование — один из немногих компонентов телефона с закрытыми исходниками.

Когда я увидел это сообщение и упоминание ADB, я сразу же подумал об Android Debug Bridge, то есть о ПО, стандартно используемое для общения с Android-устройствами. Я подумал: «Разумеется, это не может быть тот самый ADB». Ну, оказалось, что так оно и есть.
Читать полностью »

В моём предыдущем материале речь шла о сравнении производительности ASP.NET Core-приложений, запускаемых в Windows и в среде Linux + Docker, работающих в службе приложений Azure. Эта тема интересна многим — поэтому я решил написать продолжение.

Сравнение производительности ASP.NET Core-проектов на Linux и Windows в службе приложений Azure. Продолжение - 1

Я снова провёл испытания, используя подход, отличающийся от прежнего лучшей воспроизводимостью, такой, который даёт более надёжные результаты. Теперь я генерирую веб-нагрузку на серверы с помощью облачных инструментов Azure Cloud Agents, применяя Visual Studio и VSTS. И, более того, в то время как ранее я выполнял тесты с использованием HTTP, теперь тестирование проводилось с применением HTTPS.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js