Pull to refresh
20
137
Send message

Как подружить микросервисы и Kafka

Level of difficultyEasy
Reading time6 min
Views667

С увеличением вычислительных мощностей и пропускной способности каналов связи увеличились также и объемы обрабатываемых данных, а также требования к скорости обработки. Сейчас все больше систем требуют, чтобы работа с данными велась в режиме реального времени. Apache Kafka является распределённым программным брокером сообщений с открытым исходным кодом. Цель Kafka является создание горизонтально масштабируемой платформы для обработки потоковых данных в реальном времени с высокой пропускной способностью и низкой задержкой.

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

Читать далее
Total votes 4: ↑2 and ↓2+2
Comments1

ЦОД: топологии и архитектуры

Reading time5 min
Views1.5K

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

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

Для начала поговорим о том, какие топологии могут использоваться в сетях ЦОД.

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

Шаблоны проектирования для баз данных

Reading time4 min
Views8.7K

Существуют различные шаблоны проектирования облачных сервисов. Про тот же Sidecar или Ambassador, я думаю, слышали многие. Шаблоны предназначены для решения определенных задач и те два шаблона, о которых речь пойдет в сегодняшней статье, тоже нужны для конкретной задачи — работы с базами данных.

СУБД является неотъемлемой частью хоть сколько‑нибудь серьезного современного приложения. Соответственно, при проектировании приложения может возникнуть вопрос, как лучше сервисам взаимодействовать с базой данных: предоставляя общий доступ к одной базе или же у каждого микросервиса должна быть своя база данных. Мы рассмотрим два шаблона, предназначенных для решения данной задачи — это Shared database и Database per Microservice. Начнем с Shared database.

Читать далее
Total votes 19: ↑10 and ↓9+6
Comments9

Разбираемся с сетевым программированием на Rust

Reading time5 min
Views4.6K

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

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

Читать далее
Total votes 20: ↑11 and ↓9+9
Comments8

Немного о подходе Architecture Decision Records

Level of difficultyEasy
Reading time7 min
Views2K

В процессе разработки проектного решения мы, как правило вносим множество изменений. Нет, конечно есть проекты, где все требования жестко «приколочены гвоздями» в ТЗ и внесение каких‑либо изменений практически невозможно. Но большинство проектов в той или иной степени используют знаменитую методологию Agile, позволяющую проявлять гибкость при реализации проектов.

При этом, мы не всегда можем четко определить, какие из принятых нами решений в процессе работы являются архитектурными, то есть требующими обязательного документирования, а какие таковыми не являются, хотя также очень важны для проекта. Когда архитектура программного обеспечения развивается в результате принятия командой ряда решений, командам разработчиков требуется способ отслеживать принятые ими архитектурные решения. И здесь им на помощь приходит отчет об архитектурных решениях Architecture Decision Records (ADR). По сути, ADR — это документы, которые описывают принятые архитектурные решения в проекте или системе. Они используются для сохранения и передачи информации о принятых решениях и обосновании их принятия.

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

Dorks на новый лад – ищем то, что открыто

Reading time4 min
Views548

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

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

Казалось бы, все просто, необходимо проверить доступные файловые ресурсы на предмет… Вот тут возникает отдельный вопрос, а что собственно искать? Как должна выглядеть искомая пара логин/пароль. Здесь нам на помощь приходят старые добрые дорки.

Напомним, что Google Dorking — это техника конкретизированных поисковых запросов, с помощью которых облегчается процесс поиска информации в открытых источниках. Собственно, использовать дорки можно не только в поисковике Google, но известны они стали именно благодаря этой поисковой машине.

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

Практические примеры работы с БД на Python

Reading time5 min
Views2.4K

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

Для того, чтобы обеспечить такое взаимодействие с БД нам необходима собственно библиотека для работы с базами, а также библиотека для асинхронной работы на Python.

В Python есть несколько библиотек для работы с СУБД. В этой статье мы рассмотрим работу с SQLAlchemy, которая является одной из самых популярных и широко используемых библиотек для работы с базами данных.

А для обеспечения асинхронной работы мы воспользуемся Asyncio. Это популярная библиотека для написания асинхронного кода на Python, которая предоставляет эффективный способ работы с базами данных.

Читать далее
Total votes 14: ↑6 and ↓8+4
Comments4

Нативные библиотеки для Android

Reading time6 min
Views2K

В этой статье мы рассмотрим работу с нативными библиотеками, которые могут содержаться в приложениях для Android. Нативные библиотеки — это код, который разработчик написал, а затем скомпилировал для конкретной архитектуры компьютера. Чаще всего этот код написан на C или C++. Наиболее распространенными причинами, по которым разработчик может это сделать, являются математически сложные или требующие больших затрат времени операции, такие как работа с графическими библиотеками.

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

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

Читать далее
Total votes 17: ↑15 and ↓2+19
Comments8

ROP: код, которого нет

Reading time7 min
Views1.7K

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

Итак, возвратно-ориентированное программирование (return oriented programming, ROP) это метод эксплуатации уязвимостей в программном обеспечении, используя который атакующий может выполнить необходимый ему код при наличии в системе защитных технологий, например, технологии, запрещающей исполнение кода с определённых страниц памяти.

С помощью ROP атакующий может получить контроль над стеком вызовов, найти в коде последовательности инструкций, выполняющие нужные действия и называемые «гаджетами», выполнить «гаджеты» в нужной последовательности.

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

Проблемы защиты персональных данных в мире искусственного интеллекта

Reading time5 min
Views1.3K

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

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

API-шлюзы и сервисные сети

Reading time5 min
Views1.9K

В этой статье поговорим об одном из ключевых компонентов в архитектурах микросервисов и веб-приложений — API шлюзах. Данные шлюзы являются централизованной точкой входа для управления запросами клиентов и перенаправления их к соответствующим микросервисам или внутренним службам внутри целевой системы.

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

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

Произвольная запись файлов

Reading time4 min
Views1.4K

Мир уязвимостей достаточно многообразен. Обычно хакеры стараются добиваться своих целей с помощью уязвимостей эксплуатации произвольного кода, та самая аббревиатура RCE. Но на практике часто для того, чтобы выполнить свой код необходимо сначала выполнить запись в нужный файл. И здесь нам на помощь приходит другой тип уязвимостей Arbitrary File Write (AFW). Это уязвимости произвольной записи файлов (AFW). Они могут стать достаточно мощным инструментом в руках атакующего, например, при атаке на веб сайт, или при поднятии привилегий в ОС. Также AFW могут использоваться при реализации атак удаленного выполнения кода.

Читать далее
Total votes 8: ↑6 and ↓2+6
Comments0

CISO и CIO: В чем разница?

Reading time6 min
Views835

Понятия CIO — Chief Information Officer, директор по информационным технологиям и CISO — Chief Information Security Officer, директор по информационной безопасности, часто путают из-за того, что и тот и другой во многих организациях выполняют схожий набор задач.

Во многих российских компаниях ИТ директора зачастую выполняют часть или даже все (в зависимости от размеров организации) обязанности по обеспечению информационной безопасности. Связано это с тем, что часто в организациях нет соответствующих бюджетов для того, чтобы нанять отдельно CISO. И кроме того, часто инфобез в компаниях вырастает из обычного ИТ и логично, что именно CIO руководит всем, что связано с информационными технологиями, включая ИБ.

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

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

Astra Linux и HAproxy

Reading time5 min
Views2K

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

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

Читать далее
Total votes 10: ↑9 and ↓1+14
Comments3

Gitea и ее безопасность

Reading time4 min
Views4.6K

Рано или поздно, при работе с системой контроля версий Git у разработчиков появляется необходимость в использовании веб интерфейса. Существует несколько различных решений, предоставляющих подобный функционал, разной степени “платности”, однако, у многих разработчиков пользуется популярностью решение Gitea, о безопасности которого мы и поговорим сегодня.

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

Удобные шпаргалки по Msfvenom

Reading time5 min
Views786

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

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

Управление киберграмотностью сотрудников

Reading time6 min
Views2K

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

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

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

Чистая архитектура для начинающих

Reading time7 min
Views10K

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

Читать далее
Total votes 21: ↑12 and ↓9+7
Comments32

Практическая работа с BPMN

Reading time5 min
Views2.4K

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

Нотация BPMN (Business Process Model and Notation) это система условных обозначений и их описания средствами языка разметки XML для моделирования бизнес-процессов. Разработана Business Process Management Initiative (BPMN.org) и поддерживается Object Management Group, после слияния обеих организаций в 2005 году. Последней версией BPMN на текущий момент является 2.0 (2.0.2).

Читать далее
Total votes 9: ↑5 and ↓4+4
Comments5

Настраиваем дампы ядра в Linux

Level of difficultyMedium
Reading time5 min
Views2.9K

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

В этой статье мы поговорим о том, как правильно настраивать создание дампов ядра.

Читать далее
Total votes 14: ↑11 and ↓3+14
Comments3
1
23 ...

Information

Rating
37-th
Works in
Registered
Activity