Обновить
10
0
Юрий Дмитриев@gto

Системный администратор

Отправить сообщение

Ethereum Contract ABI Specification. Взаимодействие с контрактом

Уровень сложностиСредний
Время на прочтение11 мин
Охват и читатели6.9K

В данной статье я хочу познакомить вас с тем, как осуществляется кодирование данных в транзакции в соответствии с Contract ABI Specification. Мы вручную разберём весь процесс кодирования, создадим контракт и произведём вызов его методов. В конце я покажу как при помощи Contract ABI создать объект-оболочку через web3.js, и через него вызывать методы контракта.

Читать далее

Пишем роли ansible не ломая прод — особенности check_mode или как правильно его готовить

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели13K

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

чекаем туториал

Нативный способ шифрования данных в Helm

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели7.2K

Привет, Хабр! Меня зовут Миняйлов Лев, я старший разработчик и DevOps-инженер Группы "Иннотех".

Хочу поделиться решением задачи шифрования чувствительных данных в Helm, использующим встроенные функции encryptAES/decryptAES.

Читать далее

Наблюдаемость сетевой инфраструктуры Kubernetes. Часть первая

Уровень сложностиСредний
Время на прочтение23 мин
Охват и читатели16K

В этой статье будут рассмотрены инструменты наблюдения за сетевой инфраструктурой Kubernetes и основные составляющие Observability/Наблюдаемости – мониторинг, журналы событий, метрики, распределенная трассировка и оповещения. Обсудим, как эти инструменты могут помочь обеспечить надежную и эффективную работу кластеров Kubernetes и запущенных на них микросервисах, а также какие преимущества и недостатки существуют при использовании этих решений.

Эта статья для DevOps, Kubernetes administrators и SRE инженеров, которым важно и интересно разобраться в том, как устроена сетевая инфраструктура Kubernetes, какое взаимодействие происходит на уровне ядра Linux и различных приложений (Go, Java, Python и т.п.); изучить две обширные технологии eBPF и OpenTelemetry, активно продвигаемые CNCF сообществом. А главное при помощи каких инструментов можно упростить принятие решений инженерам при использовании Kubernetes в своих проектах и продуктах.

Читать далее

Мониторинг FastAPI-приложения с помощью Grafana и Prometheus — пошаговое руководство

Уровень сложностиПростой
Время на прочтение12 мин
Охват и читатели44K

Мониторинг играет решающую роль в обеспечении производительности, доступности и стабильности FastAPI-приложений. Отслеживание ключевых показателей и выявление потенциальных проблем поможет разработчикам вовремя принимать решения и улучшить его работу. В этом гайде мы рассмотрим, как настроить мониторинг FastAPI-приложения с помощью двух мощных инструментов: Grafana и Prometheus.

Читать далее

Работа Apache Kafka на примерах. Поднимаем Kafka Cluster используя docker-compose

Уровень сложностиСредний
Время на прочтение11 мин
Охват и читатели133K

В этой статье продемонстрирую и объясню работу Kafka, используя как можно меньше определений и больше практики. Мы рассмотрим 3 сценария работы с Kafka. Для последнего сценария мы поднимем Kafka Cluster в Docker и с помощью UI увидим, как происходит общение между сервисами.

Читать далее

Пишем на Python, как будто это Rust

Время на прочтение19 мин
Охват и читатели11K

Я начал программировать Rust несколько лет назад, и эта работа постепенно позволила мне изменить подход к проектированию программ и на других языках. В особенности заметен этот эффект был на Python. Прежде, чем я приступил к использованию Rust, я обычно писал код Python в очень динамичном стиле со свободной типизацией, без подсказок типов. Я повсюду передавал и возвращал словари, от случая к случаю прибегая к интерфейсам со «строковой типизацией». Правда, ощутив на себе всю строгость системы типов Rust и познакомившись со всеми теми проблемами, которые Rust решает «по природе», я вдруг сильно разволновался, когда пришлось вернуться к Python, и оказалось, что там и близко нет таких гарантий, как в Rust.

Читать далее

Коварство метрик памяти Kubernetes (и cgroups)

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

В этой статье мы рассмотрим память внутри контейнера Kubernetes. Какие есть основные типы памяти, как они управляются и какие коварные моменты с ними связаны. В этой статье вы узнаете ответы на интересные вопросы:

Какие метрики памяти считаются неправильно?

Сколько раз надо прочитать файл, чтобы он хорошо закешировался?

Какую память учитывает Out-of-memory killer?

Начать погружение в дебри памяти

Книга «Производительность систем»

Время на прочтение11 мин
Охват и читатели14K
imageПривет, Хаброжители!

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

Брендан Грегг – эксперт в области производительности систем и автор нескольких бестселлеров — лаконично, но емко излагает наиболее важные сведения о работе операционных систем, оборудования и приложений, которые позволят специалистам быстро добиться результатов, даже если раньше они никогда не занимались анализом производительности. Далее автор дает детальные объяснения по применению современных инструментов и методов, включая расширенный BPF, и показывает, как добиться максимальной эффективности ваших систем в облачных, веб- и крупных корпоративных средах.
Читать дальше →

Назад в прошлое: как быстро восстановить MySQL на точку во времени

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

Point in Time Recovery (PiTR) — это восстановление базы данных на какой‑то конкретный момент времени (с точностью до секунд или до конкретной транзакции).

PiTR невероятно полезен для восстановления базы данных после того, как «случилось непоправимое». Если достаточно точно выбрать точку на которую восстанавливать базу, то можно восстановить базу данных практически без потери данных.

В этой статье мы рассмотрим классический PiTR и еще два способа путешествовать во времени быстрее, и уменьшить количество операций, которые надо выполнять руками.

Читать далее

Начинаем работать с Terraform

Время на прочтение6 мин
Охват и читатели13K

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

Читать далее

Двойная бухгалтерская запись в реляционной БД

Время на прочтение9 мин
Охват и читатели24K

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


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


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


Введение


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



Лука Пачоли, автор самой старой (15 век) дошедшей до нас книги с описанием принципов двойной записи


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


Основные правила таковы:

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

Блокировки MySQL: виды, проблемы и способы обнаружения

Время на прочтение27 мин
Охват и читатели73K

Рано или поздно любой разработчик или администратор СУБД, имеющий дело с MySQL, сталкивается с проблемой блокировок. Всё дело в природе MySQL как системы с конкурентным доступом на чтение/запись. Я расскажу о видах блокировок в MySQL, их преимуществах и недостатках, о проблемах, которые они вызывают, а также дам полезные советы по обнаружению и способам борьбы с блокировками.

Читать далее

RabbitMQ: дополнительные возможности

Время на прочтение8 мин
Охват и читатели17K

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

Что конкретно разберём:

расчёт количества консьюмеров по формуле Эрланга;

шардирование — различные способы балансировки;

дедупликацию сообщений в очереди;

многоуровневую очередь повторных попыток;

приоритеты сообщений.

Читать далее

Расширяем возможности Ansible: Ansible Vault

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели40K

Задачи автоматизации развертывания какого-либо ПО или изменения настроек системы практически всегда связаны с использованием учетных записей, обладающих необходимым набором прав для выполнения данных действий. И одна из самых важных проблем при использовании различных скриптов автоматизации состоит в том, что в этом сценарии приходится указывать учетные данные в открытом виде. Соответственно возникает проблема обеспечения безопасности этих данных, ведь к исходному коду скрипта может получить доступ любой пользователь, обладающий соответствующими правами. Кроме того, репозитории, в которых хранится исходный код сценариев тоже нуждаются в защите, так как здесь тоже любой имеющий доступ на чтение может узнать пароли. Конечно, можно попробовать хранить секретную информацию в отдельных файлах и считывать при выполнении сценария, но это не всегда возможно и часто требует дополнительного ручного труда, что несколько снижает преимущества автоматизации.

Читать далее

Тестируем Web Application Firewall

Время на прочтение5 мин
Охват и читатели12K

Итак, вы купили компьютер Web Application Firewall. В каком количестве предстоит ловить ложно-положительные срабатывания (False Positive), вы, как счастливый обладатель коммерческого продукта, вскоре узнаете. Если повезет - их будет мало, если нет - готовьтесь каждые 10 минут составлять правила исключения. Но как вы собираетесь проверять пропуски атак? Сканеры веб-уязвимостей будут не лучшим выбором.

Как проверить WAF на пропуски атак, пока за вас это не сделал злоумышленник?

__main__

Событийно-ориентированный бэктестинг на Python шаг за шагом. Часть 1

Время на прочтение9 мин
Охват и читатели29K


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

Пентест Active Directory. Часть 1

Время на прочтение6 мин
Охват и читатели34K
Перевод статьи подготовлен специально для студентов курса «Пентест. Практика тестирования на проникновение».




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

Полное руководство по модулю asyncio в Python. Часть 1

Время на прочтение11 мин
Охват и читатели221K

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

Перед вами — подробное и всестороннее руководство по использованию модуля asyncio в Python. В частности, здесь будут рассмотрены следующие основные вопросы:

Читать далее

Сертификаты K8S или как распутать вермишель Часть 2

Время на прочтение6 мин
Охват и читатели6.5K

Всем привет. Меня зовут Добрый Кот Telegram.

От коллектива FR-Solutions и при поддержке @irbgeo Telegram : Продолжаем серию статей по сертификатам k8s.

Читать далее

Информация

В рейтинге
Не участвует
Откуда
München, Bayern, Германия
Зарегистрирован
Активность