Pull to refresh
8
0
Руслан Федосеев @martin74ua

Linux администратор

Send message

Пишем REST-приложение на Delphi

Level of difficulty Easy
Reading time 7 min
Views 3.8K

Привет, Хабр!

Я Ануар, работаю в GlowByte и профессионально играю на нервах (шутка 😂).

К написанию статьи подвигла ситуация отсутствия в Рунете информации, как с использованием Delphi реализовать классическое трехзвенное приложение без использования фреймворков и каких-то приближенных к Microsoft технологий. Ниже следует текст немного в шутливой форме о мини-квесте «Как быстро написать распределенное многозвенное приложение на Delphi, использующее REST API». 

Целью было написать статью, которая бы коротко и ясно показывала, как реализовать такой функционал, так как не нашел статей и примеров именно по этой тематике и проблематике. Может, кому-то пригодится при освоении и понимании азов REST API. Возможно, кому-то статья покажется «для самых маленьких», но я надеюсь, что она будет полезна как в практическом смысле, так и теоретическом и поможет понять, как все это работает.

Поехали!
Total votes 14: ↑13 and ↓1 +12
Comments 52

Новое железо или тонкости интеграции RoCEv2 в VMware vSAN ESA

Reading time 14 min
Views 3.9K

В этом году руководство приняло решение обновлять железо в серверной. Но, с учетом уго древности, требовалось обновить если не всё, то почти всё.
На момент принятия решения об обновлении мы имели полку HP C3000 с блэйд серверами g6-g7 поколений, подключенную к дисковым хранилищам, через ethernet 1GbE аплинки. Дисковые хранилища с sas 10k без кэша. Все это добро работало по iSCSI протоколу, на блэйд серверах были старенькие ESXi. Из нагрузки имелось порядка 70-80 vm разной направленности - начиная от 1С с базами данных до высоконагруженных сервисов. Признаюсь, я умолчал о standalone сервере на nvme под сверх нагруженный сервис, но об этом, может, расскажу позже, если статья зайдет.

Итак. Хотелось чего то современного, быстрого, чтоб аж волосики назад, желательно на nvme дисках и не сильно бьющее по бюджету организации. Ну и надежного, как без этого.

В итоге согласовали покупку 4 серверов hp dl360g10 в nvme исполнении backplane, сетевых карт 2*25GbE, свитчей mellanox SN2410-CB2FC, nvme дисков с минимум 3 DWPD. Всё оборудование с поддержкой RDMA/RoCE.

О том, как всё это новое добро настраивалось и какие решения были приняты далее.

Читать далее
Total votes 12: ↑12 and ↓0 +12
Comments 25

Открытой системе — открытый курс: автоматизированный Linux курс для корпоративного обучения

Level of difficulty Medium
Reading time 6 min
Views 14K

Возможно, вы ловили себя на мысли, что было бы неплохо провести для коллег-новичков в Linux небольшой курс с практическими задачками. Такой курс, чтобы после его прохождения, они могли использовать ОС на уровне продвинутого пользователя, активно пользоваться терминалом, писать bash-скрипты, шарить за wildcard и SSH-туннели и прочую магию Linux. При этом было бы здорово, чтобы оценка за выполнение практической работы выставлялась в LMS автоматически, а вы бы только отслеживали прогресс коллег в электронном журнале и помогали с затыками. Если вы узнали себя в описании - эта статья для вас. Материалы этого курса также могут быть полезными для преподавателей учебных заведений, желающих добавить практики в свои курсы по Linux.

Читать далее
Total votes 27: ↑27 and ↓0 +27
Comments 17

Сетевая отладка в Linux kernel — пара полезных инструментов для мониторинга отброшенных пакетов

Reading time 3 min
Views 5.2K

Сегодня мы решили обсудить вопросы сетевого мониторинга и рассмотреть несколько утилит, позволяющих заглянуть под капот процессов обмена фреймами в ядре Linux. Далее, говорим про pwru, dropwatch и KGDBoE.

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

Как за полчаса написать простую читалку книг FB2 для десктопа на Java

Level of difficulty Easy
Reading time 13 min
Views 17K

Недавно мне для личных целей понадобилось написать читалку FB2. И сразу я столкнулась с тем, что информации по теме минимум. Палочка-выручалочка под названием ChatGPT выдал что-то невразумительное в ответ на довольно подробный запрос. К тому же, никаких готовых библиотек, чтобы по-быстренькому наваять ридер, я также не смогла обнаружить. Хотя искала долго и упорно, как Чубакка расческу.

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

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

Читать далее
Total votes 23: ↑18 and ↓5 +13
Comments 69

Network configuration compliance и как его готовить

Reading time 7 min
Views 3K

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

Если вы работаете с сетевой инфраструктурой средних или крупных размеров, то наверняка сталкивались с ситуацией, когда коробка настроена «слегка» неправильно. Ну т. е. прямо сейчас все работает, аварии нет, но все же проблема есть. Это может быть какой‑то неправильно настроенное резервирование, которое выстрелит в самый неподходящий момент (например, VRRP только на одном роутере), либо просто какая‑то штука, которая ухудшает эксплуатацию (на интерфейсе в сторону клиента нет дескрипшена и теперь вам придется лезть в ненавистный GUI: CRM/OSS/BSS/WTF).

Configuration compliance (или валидация конфигураций) — это процесс автоматической проверки конфигурации на соответствие некоторым правилам.

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

Каверзные сетевые вопросы

Reading time 14 min
Views 221K
Давно была идея собрать воедино интересные вопросы, касающиеся сетей.

Объединяет их то, что все они довольно простые, но мы подчас о них не задумываемся (я во всяком случае о них не задумывался).
В общем я их собрал, подбил, нашёл ответы.
Итак, блиц опрос:

Начнём с самых низких уровней и с самых простых вопросов



В1. Почему для витой пары выбран такой странный порядок: синяя пара на 4-5, разрывая зелёную, которая на 3, 6?




Ответ
О1: Сделано это в угоду двухконтактному телефонному разъёму. Таким образом, например, в патч-панель можно вставить как телефонный кабель, так и витую пару.
Можно даже через один кабель вывести и сеть и телефонию, но я вам этого не говорил!

habrahabr.ru/post/158177.


В2. В стандарте Ethernet между кадрами всегда имеется промежуток, называемый IFG (Inter Frame Gap) длиною 12 байтов. Для чего он нужен, и почему он присутствует в современных стандартах?

Читать дальше →
Total votes 166: ↑153 and ↓13 +140
Comments 209

VS Code, python, контейнеры — как обуздать эту триаду и разрабатывать внутри контейнера

Level of difficulty Medium
Reading time 16 min
Views 34K

Как пользоваться VS Code в полную силу


image


Это небольшой туториал о настройке VS Code для работы с python. Здесь вы не увидите каких-то божественных откровений — тут будет просто мой опыт о том, как сделать свою работу/хобби немного комфортнее и почему я пришел именно к такой конфигурации.

Читать дальше →
Total votes 59: ↑57 and ↓2 +55
Comments 18

Пишем простой чат с консольным интерфейсом используя трубно-ориентированное программирование с котами

Level of difficulty Easy
Reading time 8 min
Views 4.4K

Если в процессе изучения gRPC хотите попрактиковаться с Bidirectional Streaming (двунаправленная потоковая передача данных), c запросами в рамках одного соединения, инициированием событий со стороны сервера, то создание простого чата может быть отличным способом.

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

Собираем NAS на базе китайской материнской платы N5095 Nas Motherboard

Level of difficulty Easy
Reading time 11 min
Views 40K

Всем привет! Делюсь опытом сборки NAS сервера на базе очень интересной (на мой взгляд) материнской платы.

Читать далее
Total votes 61: ↑60 and ↓1 +59
Comments 104

Универсальный VPN с WireGuard, MikroTik и Keenetic

Reading time 7 min
Views 47K

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

Читать далее
Total votes 10: ↑10 and ↓0 +10
Comments 39

Управление доступом к операционным системам на серверах. Как и какие проблемы решает RBAC

Reading time 4 min
Views 6.2K

Всем привет!

Про принципы работы Role Based Access Control (он же RBAC) слышали многие. Но реальное применение встречается довольно редко. Меня зовут Корняков Дмитрий, более 6 лет занимаюсь поддержкой инфраструктуры в команде Мир Plat.Form (НСПК). В статье расскажу про предпосылки создания, практическую реализацию и профит, который мы получили от ролевого доступа к ОС на инфраструктуре из 5000+ серверов в десятке доменов в разных ЦОД под управлением FreeIPA и Active Directory.

"Да что тут рассказывать – ещё на начальных курсах по админству про ролевую модель предоставления доступа рассказывают, и все всё знают."(с) Аноним

Под кат
Total votes 9: ↑9 and ↓0 +9
Comments 0

VPN уровня Enterprise для всех

Reading time 15 min
Views 14K

Привет! Мне захотелось раскрыть потенциал Pritunl, прикрыв его недостатки некоторыми доработками. Осмотрев все доступные по стоимости решения, Pritunl оказался единственным сервисом, который смог закрыть наши потребности.

В этой статье описан процесс сборки кластера и базовые настройки, чтобы пользователь подключался с паролем от AD DS и вторым фактором в виде OTP кода. Мы получили возможность ограничивать доступ групп пользователей не только по ip адресам, но и по портам, а также идентифицировать их по подсетям на конечных сервисах (а при желании и по связке ip с логином) внутри облака, не потеряв отказоустойчивость.

Дополнительно пара слов о том, как использовать API.

Читать далее
Total votes 3: ↑2 and ↓1 +1
Comments 20

Насколько хорошо у вас настроен OSPF/IS-IS или помогатор для сетевых инженеров

Reading time 12 min
Views 9.4K

Коллеги-сетевики, привет. К написанию данной статьи меня сподвигли задачи, с которыми приходилось сталкиваться во время работы с OSPF/IS-IS и тот набор решений, к которому я в конечном итоге пришел. Речь идет о насущном вопросе сетевых инженеров, когда приходится применять настройки на живой сети (пусть и с программируемым откатом на крайний случай) без возможности посмотреть как это отразится на всей сети в целом. Если отдельные команды и сценарии еще можно проверить в лабе, то получить полную реплику сети практически невозможно. В связи с этим я задался вопросом о наличии инструмента, который позволял бы строить слепок сети и рассчитывать её реакцию на ранее примененные настройки. Об этом сегодняшний туториал.

Читать далее
Total votes 13: ↑13 and ↓0 +13
Comments 7

Продлеваем сертификаты vCenter правильно

Reading time 5 min
Views 15K

TL;DR: Тут описано продление внутренних сертификатов VMware vCenter Server до 10 лет с корректными данными в CN, а также vcert, lsdoctor и vdt.

Наверное все администраторы VMware vSphere слышали про проблему с истечением двухлетнего сертификата STS, который используется для выпуска SAML-токенов и от него зависит взаимная аутентификация всех сервисов внутри vCenter Server.

Похоже разработчкики решили внедрить рекомендации CA/B Forum по сокращению сроков действия сертификатов, но слишком широко применили политику.

Пострадавшие запускали fixsts и certificate-manager из KB76719 для восстановления доступа к инфраструктуре и забывали об этом ещё на 2 года.

Но решение оказалось неполным и не совсем корректным:

Читать далее
Total votes 1: ↑1 and ↓0 +1
Comments 9

Обновление Zabbix 5.2 до Zabbix 6.0 на CentOS 8

Reading time 15 min
Views 17K

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

Читать далее
Total votes 7: ↑6 and ↓1 +5
Comments 5

Shellinabox — если вдруг заблокируют SSH

Reading time 3 min
Views 15K

Сейчас мы живём в период, когда блокировки непредсказуемым образом усложняют нам жизнь. Одной из возможных угроз, которые стоит учесть, является блокировка протокола SSH (по причине того, что он позволяет организовывать туннели), и, хотя мы наверняка найдём способ достучаться до своих VPS, возможно стоит подстелить соломки и рассмотреть такой вариант, как SSH-клиент в браузере, что позволяет сделать программа Shellinabox.

Читать далее
Total votes 17: ↑14 and ↓3 +11
Comments 13

Автодискаверинг и автопостановка на мониторинг или как попивать кофе вместо подготовки ответов пользователям

Reading time 8 min
Views 3.5K

Современная ИТ-инфраструктура – это живая экосистема, которая пребывает в динамическом состоянии. Она расширяется, меняется, обрастает новыми элементами и связями. Это полноценный организм, за которым нужно следить и ухаживать, не забывая при этом учитывать все его изменения.

Представим ситуацию: решили вы повысить производительность информационной системы. Команда девелоперов для этой цели развернула новые ноды, добавила элементы ИС, зарелизила изменения, система работает эффективнее, и, казалось бы, все счастливы. Да только от радости забыли поставить новые элементы на мониторинг. Так и будете вы спокойно пить кофе, любуясь зелеными огоньками на экране рядом с каждым компонентом системы, пока разъяренные пользователи не cымитируют DDoS атаку на внешний интерфейс вашего хелпдеска, когда один из новых элементов откажет.

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

Настройка PostgreSQL под Linux

Level of difficulty Easy
Reading time 10 min
Views 102K

Время от времени приходится слышать мнение от некоторых системных администраторов, а также некоторых 1С-разработчиков, что установка, настройка и поддержка PostgreSQL под Linux очень сложна. Что гораздо дешевле покупать лицензии Windows и Microsoft SQL Server, чем нанимать высококвалифицированных администраторов, которые будут администрировать все эти open-source системы.

На наших бизнес-приложениях, использующих в качестве СУБД PostgreSQL, работают 70% крупнейших розничных сетей в Беларуси. Во всех из них одновременно работают от 500 до 1500 пользователей. В приложениях реализованы практически все основные процессы розничных сетей (демо, чтобы оценить сложность). Размер баз данных на данный момент составляет от 2 до 4ТБ. И все они работают практически со стандартными настройками PostgreSQL на одиночных серверах без какой-либо кластеризации. При этом даже в самых загруженных серверах есть еще значительный резерв по ресурсам для дальнейшего увеличения нагрузки без потребности в кластеризации.

Да, конечно же, многое зависит от запросов к СУБД, и несколькими кривыми запросами можно положить весь сервер. Однако, точно также можно положить и Oracle, и MSSQL. Да, платформа lsFusion, на которой написаны наши приложения, делает много различных оптимизаций запросов конкретно под PostgreSQL. Но вручную SQL-запросы можно оптимизировать еще лучше.

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

Читать далее
Total votes 44: ↑41 and ↓3 +38
Comments 16

Как мигрировать Zabbix с MySQL на PostgreSQL с минимальным downtime

Reading time 7 min
Views 19K

image


В свете того, что Zabbix с некоторых пор поддерживает TimescaleDB, а тут еще и вышел новый LTS релиз Zabbix, то наверняка многие заинтересовались, как осуществить миграцию с MySQL на PostgreSQL.


Несмотря на текст на картинке, вполне можно просто так взять и мигрировать Zabbix с MySQL на PostgreSQL. В интернете есть немало рецептов такой миграции, например:


Доклад с Zabbix Meetup
Видео с Youtube канала Dmitry Lambert


Но я не нашел ни в одном из таких докладов информации, как же минимизировать downtime вашего мониторинга в случае, если полная миграция занимает несколько часов, что конечно зачастую является неприемлемым.


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


Важно упомянуть, что я до сих использую Zabbix 4.0. Возможно, в новых версиях схема БД поменялась и поэтапная миграция, описанная ниже, там невозможна.

Читать дальше →
Total votes 16: ↑16 and ↓0 +16
Comments 14

Information

Rating
Does not participate
Location
Луганск, Луганская обл., Украина
Date of birth
Registered
Activity