Как стать автором
Обновить
48
Карма
0
Рейтинг

немного программист, немного админ

  • Подписчики 16
  • Подписки 5
  • Публикации
  • Комментарии

pgSCV — экспортер метрик для PostgreSQL

Open source *PostgreSQL *

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

Читать далее
Всего голосов 12: ↑12 и ↓0 +12
Просмотры 2.3K
Комментарии 5

Отклонение RPKI-Недопустимых (Invalid) Маршрутов BGP

Блог компании OTUS Сетевые технологии *
Перевод

Назначение

Полноценный фильтр для любой конфигурации BGP (Border Gateway Protocol) должен отклонить RPKI (Resource Public Key Infrastructure)-недопустимые (invalid) маршруты BGP.

При этом определяется, является ли маршрут RPKI недопустимым (invalid) или нет, в соответствии с RFC 6811 и RFC 8893.

Считается небезопасным манипулировать атрибутами пути (Path Attributes) BGP (например, LOCAL_PREF или COMMUNITY) на основе состояния проверки происхождения (Origin Validation state) RPKI. Сделать атрибуты пути BGP зависимыми от состояний проверки RPKI означает привнести излишнюю хрупкость в глобальную систему маршрутизации, как это объяснено здесь. Кроме того, использование RFC 8097 НАСТОЯТЕЛЬНО НЕ РЕКОМЕНДУЕТСЯ. RFC 8097 стал причиной проблем для операторов сетей с несколькими поставщиками.

В проекте документации RPKI перечислены различные программные пакеты Relaying Party.

Читать далее
Всего голосов 6: ↑5 и ↓1 +4
Просмотры 1.4K
Комментарии 0

Стоит ли переходить с Powershell DSC на Ansible и как это сделать

Блог компании Mindbox IT-инфраструктура *DevOps *
Об IaC под Windows пишут мало, потому что DevOps/SRE ассоциируется в основном c Linux и Kubernetes. Мы решили исправить эту ситуацию и сравнить инструменты, которыми можно управлять IaC на базе Windows. Статья будет полезна разработчикам, которые работают с Windows-инфраструктурой и выбирают способы управления, и тем, кто уже внедрил Powershell DSC или Ansible, но сомневается в своем решении. Ниже поделимся опытом и расскажем:
  • как устроен Powershell DSC и чем он отличается от Ansible при управлении инфраструктурой на Windows;
  • почему мы перешли на Ansible;
  • с какими проблемами столкнулись и как их решали;
  • как соотносятся ожидания и реальность после перехода на Ansible;
  • кому стоит выбрать Powershell DSC, а кому — Ansible.
Читать дальше →
Всего голосов 7: ↑7 и ↓0 +7
Просмотры 3K
Комментарии 5

Всё, о чём должен знать разработчик Телеграм-ботов

Мессенджеры *API *

Вы вряд ли найдете в интернете что-то про разработку ботов, кроме документаций к библиотекам, историй "как я создал такого-то бота" и туториалов вроде "как создать бота, который будет говорить hello world". При этом многие неочевидные моменты просто нигде не описаны.

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

Подробный гайд о том, как работать с ботами — под катом.

Читать далее
Всего голосов 127: ↑127 и ↓0 +127
Просмотры 104K
Комментарии 61

Устойчивое хранение данных и файловые API Linux

Блог компании RUVDS.com Системное администрирование *Хранение данных *
Перевод
Я, исследуя устойчивость хранения данных в облачных системах, решил проверить себя, убедиться в том, что понимаю базовые вещи. Я начал с чтения спецификации NVMe для того чтобы разобраться с тем, какие гарантии, касающиеся устойчивого хранения данных (то есть — гарантии того, что данные будут доступны после сбоя системы), дают нам NMVe-диски. Я сделал следующие основные выводы: нужно считать данные повреждёнными с того момента, как отдана команда записи данных, и до того момента, как завершится их запись на носитель информации. Однако в большинстве программ для записи данных совершенно спокойно используются системные вызовы.

В этом материале я исследую механизмы устойчивого хранения данных, предоставляемые файловыми API Linux. Кажется, что тут всё должно быть просто: программа вызывает команду write(), а после того, как работа этой команды завершится, данные будут надёжно сохранены на диске. Но write() лишь копирует данные приложения в кеш ядра, расположенный в оперативной памяти. Для того чтобы принудить систему к записи данных на диск, нужно использовать некоторые дополнительные механизмы.



В целом, этот материал представляет собой набор заметок, касающихся того, что я узнал по интересующей меня теме. Если очень кратко рассказать о самом важном, то получится, что для организации устойчивого хранения данных надо пользоваться командой fdatasync() или открывать файлы с флагом O_DSYNC. Если вам интересно в подробностях узнать о том, что происходит с данными на пути от программного кода к диску, взгляните на эту статью.
Читать дальше →
Всего голосов 33: ↑33 и ↓0 +33
Просмотры 6.9K
Комментарии 2

Я принес вам решение проблемы с исключениями в C#. Но вам не понравится

Блог компании VDSina.ru Программирование *Совершенный код *.NET *C# *


Я каждый день пишу код на сишарпе, и натыкаюсь на одну проблему: я трачу кучу времени на то, чтобы решить, как быть, если что-то идёт не по плану.

У меня есть приличный опыт работы с другими языками программирования, и стандартный подход по работе с ошибками в C# мне не нравится. Но языки и платформы устроены так, что ты решаешь проблемы не как считаешь нужным, а так, как принято.

Эти размышления меня измучили, и я систематизировал свои знания и идеи по обработке исключительных случаев.
Читать дальше →
Всего голосов 97: ↑74 и ↓23 +51
Просмотры 38K
Комментарии 478

Потроха IPsec, меримся с TLS 1.3, ГОСТ и Go

Информационная безопасность *Криптография *Go *
Приветствую! Очень хочется рассказать про устройство современного стэка IPsec протоколов ESPv3 и IKEv2. IPsec, как мне кажется, незаслуженно обходится многими стороной и детального разбора его работы, его протоколов и возможностей я не видел на русском языке. Кроме того, сделаю странное — сравню IPsec ESPv3 и IKEv2 (оба 2005-го года) с современным, модным, state-of-art TLS 1.3 2018-го года.


Почему я вообще так увлечён темой IPsec — возможно самого сложного стэка протоколов для защиты сетей? Ведь сложность это главный враг надёжности и безопасности! Во-первых, чем больше узнаёшь про его протоколы, особенно IKEv2, тем больше понимаешь как много возможностей в него закладывалось и впечатляешься его продуманностью, в отличии от распространённого подхода разработчиков «костыль костылём погоняет» и решением серьёзных проблем «пока гром не грянет». Во-вторых, IPsec протоколы хорошо продуманы с криптографической точки зрения и, даже старые ESP/IKEv1, фактически являются единственными промышленными массово используемыми протоколами в которых не было сколь либо серьёзных уязвимостей. Тот же SSL (1995-ый год) стал достойно продуманным только с версии 1.3. А нелюбовь к IPsec у многих связана с монструозной сложностью IKEv1, которой больше нет в v2.
Читать дальше →
Всего голосов 26: ↑25 и ↓1 +24
Просмотры 9.5K
Комментарии 12

WSJ: Amazon анализирует продукцию сторонних продавцов и выпускает товары-конкуренты; Евросоюз подаёт в суд

Законодательство в IT Финансы в IT IT-компании

Еврокомиссия планирует подать в суд на компанию Amazon. Корпорацию могут обвинить в сборе данных от сторонних продавцов и использовании этой информации для разработки собственных товаров. Об этом сообщает The Wall Street Journal.

Читать дальше →
Всего голосов 26: ↑26 и ↓0 +26
Просмотры 16K
Комментарии 151

Облачный 1С. Все безоблачно

Блог компании билайн бизнес IT-инфраструктура *Облачные сервисы
Переезд — это всегда стресс, каким бы он ни был. Съехать из менее комфортабельной двушки в более комфортабельную, переехать из города в город, или вообще взять себя в руки и съехать от мамы в свои 40. С переносом инфраструктуры всё тоже не так просто. Одно дело, когда у тебя небольшой сайт на пару тысяч уников в день, и ты готов потратить на перенос данных несколько часов и пару кружек кофе. Другое — когда у тебя сложная инфраструктура с кучей зависимостей и костылей, подставленных под определенные места в конкретном облаке.

А если к этому еще и добавить 1С, то процесс начинает играть новыми красками.



Меня зовут Сергей Кондратьев, я отвечаю за наше полосатое облако, BeeCLOUD, и в этом посте я расскажу вам про переезд в наше облако компании «АэроГео».
Читать дальше →
Всего голосов 22: ↑15 и ↓7 +8
Просмотры 6K
Комментарии 15

Как я чинил поломанную базу и что из этого вышло

Microsoft SQL Server *
Из песочницы
Однажды ко мне обратились с просьбой помочь «исправить» одну базу данных. CHECKDB при проверке выдавал список ошибок, некоторые из которых отмечались как «неисправимые». Приложение при этом работало, но все равно было как-то неспокойно.

Да, правильным решением в такой ситуации было бы взять бэкап от того момента, когда ошибки еще не появляются, локализовать испорченные данные и перезаписать их из чистой копии. Но… как это часто бывает, ошибку поймали слишком поздно, так что восстанавливаться, по сути, было не с чего. С другой стороны – был бы бэкап, не было бы этой истории.
Читать дальше →
Всего голосов 18: ↑18 и ↓0 +18
Просмотры 6.1K
Комментарии 3

Сохраняем данные в EEPROM на Arduino транзакционно

Программирование микроконтроллеров *Разработка под Arduino *DIY или Сделай сам
Наличие EEPROM дает разработчикам удобный инструмент для сохранения конфигурационных параметров или медленно меняющегося состояния, которое должно переживать выключение питания. В этой статье мы рассмотрим, как это делать максимально безопасно и удобно, чтобы ничего не забывать и не вспоминать того, чего не было.
Читать дальше →
Всего голосов 23: ↑23 и ↓0 +23
Просмотры 14K
Комментарии 50

Очередь задач в PostgreSQL

PostgreSQL *Программирование *SQL *

Очередь слонов - pixabay.com


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


Как правило, используются готовые системы очередей сообщений (MQ — message queue), но иногда нужно организовать ad hoc очередь или какую-нибудь специализированную (например, очередь с приоритетом и отложенным перезапуском не обработанных из-за исключений задач). О создании таких очередей и пойдёт речь ниже.


Ограничения применимости


Предлагаемые решения предназначены для обработки потока однотипных задач. Они не подходят для организации pub/sub или обмена сообщениями между слабо связанными системами и компонентами.


Очередь поверх реляционной БД хорошо работает при малых и средних нагрузках (сотни тысяч задач в сутки, десятки-сотни исполнителей), но для больших потоков лучше использовать специализированное решение.


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


select ... for update skip locked
Читать дальше →
Всего голосов 30: ↑27 и ↓3 +24
Просмотры 17K
Комментарии 58

Автобэкапы сетевого оборудования и хранение их в системе контроля версий

Системное администрирование *Сетевое оборудование
Из песочницы
Уточнение: решение настроено для D-Link DFL, cisco 29xx и WatchGuard Firebox, но подходит для всего, что умеет делать бэкапы при подключении по ssh и/или заливать их по расписанию/событию на ftp/tftp сервер.

Всё началось с того, что мой знакомый программист спросил: «А почему ты не хранишь сетевые конфиги в системе контроля версий?». А и правда – подумала я – почему? Большая часть конфигурационных файлов может быть выгружена в текстовом формате (ну, это бинарники, конечно, но в текстовом редакторе открываются и отображается читабельная информация).
Читать дальше →
Всего голосов 17: ↑17 и ↓0 +17
Просмотры 8.3K
Комментарии 14

CreateRemoteThread для Linux

Ненормальное программирование *Системное программирование *C *Разработка под Linux *
Tutorial

Мицуха несёт новые потокиВ WinAPI есть функция CreateRemoteThread, позволяющая запустить новый поток в адресном пространстве другого процесса. Её можно использовать для разнообразных DLL-инъекций как с нехорошими целями (читы в играх, кража паролей, и т. д.), так и для того, чтобы на лету исправить баг в работающей программе, или добавить плагины туда, где они не были предусмотрены.


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


Я подробно расскажу о том, как с помощью спецификации ELF, некоторого знания архитектуры x86_64 и системных вызовов Linux написать свой маленький кусочек отладчика, способный загрузить и исполнить произвольный код в уже запущенном и работающем процессе.


Для понимания текста потребуются базовые знания о системном программировании под Linux: язык Си, написание и отладка программ на нём, осознание роли машинного кода и памяти в работе компьютера, понятие системных вызовов, знакомство с основными библиотеками, навык чтения документации.

Читать дальше →
Всего голосов 76: ↑75 и ↓1 +74
Просмотры 11K
Комментарии 27

Функциональное программирование — это не то, что нам рассказывают

Программирование *Совершенный код *.NET *C# *Функциональное программирование *

Функциональное программирование — это очень забавная парадигма. С одной стороны, про неё все знают, и все любят пользоваться всякими паттерн матчингами и лямбдами, с другой на чистом ФП языке обычно мало кто пишет. Поэтому понимание о том, что же это такое восходит больше к мифам и городским легендам, которые весьма далеко ушли от истины, а у людей складывается мнение, что "ФП подходит для всяких оторванных от жизни программок расчетов фракталов, а для настоящих задач есть зарекомендовавший себя в бою проверенный временем ООП".



Хотя люди обычно признают удобства ФП фич, ведь намного приятнее писать:


int Factorial(int n)
{
    Log.Info($"Computing factorial of {n}");
    return Enumerable.Range(1, n).Aggregate((x, y) => x * y);
}

чем ужасные императивные программы вроде


int Factorial(int n)
{
    int result = 1;
    for (int i = 2; i <= n; i++)
    {
        result *= i;
    }
    return result;
}

Так ведь? С одной стороны да. А с другой именно вторая программа в отличие от первой является функциональной.


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

Читать дальше →
Всего голосов 267: ↑259 и ↓8 +251
Просмотры 106K
Комментарии 795

Чем плох GNU make?

Разработка веб-сайтов *
GNU make — широко известная утилита для автоматической сборки проектов. В мире UNIX она является стандартом де-факто для этой задачи. Являясь не такой популярной среди Windows-разработчиков, тем не менее, привела к появлению таких аналогов, как nmake от Microsoft.

Однако, несмотря на свою популярность, make — во многом ущербный инструмент.
Читать дальше →
Всего голосов 120: ↑104 и ↓16 +88
Просмотры 23K
Комментарии 84

Обсуждаем PostgREST — open source веб-сервер на Haskell

Блог компании 1cloud.ru Разработка веб-сайтов *PostgreSQL *Haskell *API *
Рассказываем об инструменте, который позволяет настроить API для работы с запросами PostgreSQL. Говорим о возможностях, достоинствах и недостатках утилиты, а также об альтернативных решениях.

Читать дальше →
Всего голосов 23: ↑18 и ↓5 +13
Просмотры 7.7K
Комментарии 4

О чем молчит EXPLAIN, и как его разговорить

Блог компании Тензор PostgreSQL *Администрирование баз данных *
Из песочницы
Классический вопрос, с которым разработчик приходит к своему DBA или владелец бизнеса — к консультанту по PostgreSQL, почти всегда звучит одинаково: «Почему запросы выполняются на базе так долго?»

Традиционный набор причин:

  • неэффективный алгоритм
    когда вы решили сделать JOIN нескольких CTE по паре десятков тысяч записей
  • неактуальная статистика
    если фактическое распределение данных в таблице уже сильно отличается от собранной ANALYZE'ом в последний раз
  • «затык» по ресурсам
    и уже не хватает выделенных вычислительных мощностей CPU, постоянно прокачиваются гигабайты памяти или диск не успевает за всеми «хотелками» БД
  • блокировки от конкурирующих процессов

И если блокировки достаточно сложны в поимке и анализе, то для всего остального нам достаточно плана запроса, который можно получить с помощью оператора EXPLAIN (лучше, конечно, сразу EXPLAIN (ANALYZE, BUFFERS) ...) или модуля auto_explain.

Но, как сказано в той же документации,
«Понимание плана — это искусство, и чтобы овладеть им, нужен определённый опыт, …»
Но можно обойтись и без него, если воспользоваться подходящим инструментом!
Читать дальше →
Всего голосов 38: ↑38 и ↓0 +38
Просмотры 15K
Комментарии 77

Решение проблемы с переключением по alt+shift в Linux, в приложениях на Electron

Настройка Linux *
Из песочницы
Здравствуйте, коллеги!

Хочу поделиться поделиться своим решением проблемы, которая указана в заголовке. Написанием статьи вдохновился от коллеги brnovk, который не поленился и предложил частичное (для меня) решение проблемы. Я сделал свой «костыль», который помог мне. Делюсь с вами.
Читать дальше →
Всего голосов 23: ↑20 и ↓3 +17
Просмотры 23K
Комментарии 59

Разработка IoT-шлюза на базе Raspberry CM3+

Разработка под Linux *Разработка на Raspberry Pi *Компьютерное железо Интернет вещей DIY или Сделай сам
image
Рисунок 1 — Плата устройства

Большой опыт работы в сфере промышленной автоматизации и АСУТП, казалось бы, должен способствовать тому, что со временем уже много всего видел и много всего знаешь. Но не тут-то было. Оказывается, иногда могут возникать задачи и проекты, которые трудно реализовать стандартными средствами. Так под один крупный проект по мониторингу и управлению в «облаке» одного небезызвестного завода N требовалось найти подходящее железо. Однако оказалось, что в России по требованиям помехозащищенности устройства и открытости системы ничего подходящего не существует. Попытка заказать идеально подходящее нам устройство из-за рубежа провалилась, поскольку на территорию нашей страны оборудование с пометкой «IoT» весьма трудно ввести в промышленных масштабах. Другие же поставщики не устроили сроками доставки в 12 недель при небольших объемах и ценой. Поэтому в голове родилась и плотно осела мысль о создании своего устройства. Причем такого, чтобы оно было универсальным и подходило не только конкретно под этот один проект, а под множество других. В итоге от момента зарождения идеи, подбора поставщиков и корпуса, разработки платы, её отладки и тестирования, написания инструкций и технической документации прошло весьма много времени. Но зато теперь я держу с легким трепетом в руках полностью законченное и рабочее устройство, и могу заявлять, что мы это сделали!
Читать дальше →
Всего голосов 14: ↑9 и ↓5 +4
Просмотры 12K
Комментарии 53

Информация

В рейтинге
3,877-й
Откуда
Россия
Зарегистрирован
Активность