Pull to refresh
-2
0
Send message

Apache Kafka: основы технологии

Reading time9 min
Views414K

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


Статья подготовлена на основе открытого занятия из видеокурса по Apache Kafka. Авторы — Анатолий Солдатов, Lead Engineer в Авито, и Александр Миронов, Infrastructure Engineer в Stripe. Базовые темы курса доступны на Youtube.

Total votes 29: ↑29 and ↓0+29
Comments10

Большое руководство по сетям и шифрованию трафика в Linux (часть 1)

Level of difficultyMedium
Reading time23 min
Views16K

Приветствую вас, читатели Хабра! В этой статье я бы хотел уделить внимание такой вещи как шифрование трафика на Linux системах. Наверно каждый из нас прекрасно понимает, насколько важна защита нашей приватности. Ведь в эпоху когда многие компании собирают данные, а иногда хакеры могут перехватить наш трафик, это становится особенно важно. Просто необходимо позаботиться о безопасности своих данных. Например, быть уверенным, что какая-либо корпоративная сеть не прослушивается злоумышленниками. Информационная безопасность сегодня — это не просто мода, а насущная необходимость. Постоянно растет киберпреступность, и защита трафика от перехвата — это основной аспект цифровой жизни человека или бизнеса.

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

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

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

Математика надёжности. Доклад Яндекса

Level of difficultyEasy
Reading time18 min
Views11K

Вадим Мартынов, руководитель команды платформы надёжности в Яндекс Go, в своём докладе рассказал, как влияют те или иные решения на надёжность системы и как это учитывать при разработке.

Читать далее
Total votes 76: ↑72 and ↓4+85
Comments28

MVCC-1. Изоляция

Reading time25 min
Views142K
Привет, Хабр! Этой статьей я начинаю серию циклов (или цикл серий? в общем, задумка грандиозная) о внутреннем устройстве PostgreSQL.

Материал будет основан на учебных курсах по администрированию, которые делаем мы с Павлом pluzanov. Смотреть видео не все любят (я точно не люблю), а читать слайды, пусть даже с комментариями, — совсем «не то».

Конечно, статьи не будут повторять содержание курсов один в один. Я буду говорить только о том, как все устроено, опуская собственно администрирование, зато постараюсь делать это более подробно и обстоятельно. И я верю в то, что такие знания полезны прикладному разработчику не меньше, чем администратору.

Ориентироваться я буду на тех, кто уже имеет определенный опыт использования PostgreSQL и хотя бы в общих чертах представляет себе, что к чему. Для совсем новичков текст будет тяжеловат. Например, я ни слова не скажу о том, как установить PostgreSQL и запустить psql.

Вещи, о которых пойдет речь, не сильно меняются от версии к версии, но использовать я буду текущий, 11-й «ванильный» PostgreSQL.

Первый цикл посвящен вопросам, связанным с изоляцией и многоверсионностью, и план его таков:

  1. Изоляция, как ее понимают стандарт и PostgreSQL (эта статья);
  2. Слои, файлы, страницы — что творится на физическом уровне;
  3. Версии строк, виртуальные и вложенные транзакции;
  4. Снимки данных и видимость версий строк, горизонт событий;
  5. Внутристраничная очистка и HOT-обновления;
  6. Обычная очистка (vacuum);
  7. Автоматическая очистка (autovacuum);
  8. Переполнение счетчика транзакций и заморозка.

Ну, поехали.
Читать дальше →
Total votes 34: ↑34 and ↓0+34
Comments37

Запросы и лимиты в Kubernetes: разбираемся в деталях

Level of difficultyHard
Reading time10 min
Views7.3K

Управление ресурсами в Kubernetes немного напоминает зефирный тест, который иногда выходит из-под контроля. Если тщательно не лимитировать, сколько ресурсов может потреблять контейнер, он пойдёт вразнос, примерно как малыш, способный слопать большую пачку Skittles за один присест.

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

Вот почему настолько важно правильно настроить в Kubernetes лимиты и работу с запросами. Понимая, какова роль запросов и лимитов при управлении ресурсами и производительностью в Kubernetes, а также умея настраивать и/или задавать запросы и лимиты, вы гарантируете, что на обработку каждой рабочей нагрузки будет выделено ровно столько ресурсов, сколько нужно — ни больше, ни меньше.

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

Читать далее
Total votes 25: ↑21 and ↓4+33
Comments8

Тестирование кластеров Kubernetes инструментом Sonobuoy

Level of difficultyEasy
Reading time3 min
Views707

Сегодня Kubernetes доминирует на рынке как основное средство для оркестрации контейнеров, что делает тестирование этих систем чрезвычайно важным. Для большинства стандартных тестов достаточно использовать команду kubectl, однако для более глубокого тестирования сертификации версий Kubernetes идеально подходит инструмент Sonobuoy. 

Sonobuoy — это инструмент для диагностики и тестирования кластеров Kubernetes. Он используется для проверки соответствия кластера стандартам и спецификациям CNCF (Cloud Native Computing Foundation) и для обнаружения потенциальных проблем в работе кластера.

Sonobuoy запускает серию тестов на кластере Kubernetes, включая тесты из набора End-to-End (E2E) тестов Kubernetes, чтобы проверить, правильно ли настроен и работает ли кластер. Эти тесты включают проверки на соответствие стандартам CNCF, а также могут включать дополнительные плагины для расширенного тестирования.

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

MVCC-3. Версии строк

Reading time13 min
Views39K
Итак, мы рассмотрели вопросы, связанные с изоляцией, и сделали отступление об организации данных на низком уровне. И наконец добрались до самого интересного — до версий строк.

Заголовок


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

(Как обычно, на самом деле все сложнее: номер транзакций не может все время увеличиваться из-за ограниченной разрядности счетчика. Но эти детали мы рассмотрим подробно, когда дойдем до заморозки.)
Читать дальше →
Total votes 22: ↑22 and ↓0+22
Comments25

Простая автоматизация с Bash для новичков

Level of difficultyEasy
Reading time8 min
Views25K

Приветствую, это Денис из команды BagrovChibirev, и в статье я на простом примере расскажу об автоматизации процессов в Linux с помощью bash скриптов (сценариев командной строки).

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

Рассматривать я буду свой минималистичный скрипт для разворачивания простого python Django проекта при помощи системных юнитов (демонов) на удалённом сервере. Для тех, кто не в курсе: демоны - это специальные системные сервисы, которые следят за состоянием сторонних процессов и поддерживают их работоспособность. В современном мире для таких целей на микросервисах применяется Docker, но когда проект небольшой и состоит из пары-тройки процессов, их намного легче, проще и дешевле для системы (в разы), развернуть при помощи встроенных в линукс демонов.

Читать далее
Total votes 12: ↑11 and ↓1+14
Comments10

Продираемся сквозь сети в Kubernetes: Load-Balance, BGP, IPVS и все такое прочее

Level of difficultyMedium
Reading time6 min
Views7.9K

Привет, Хабр! Мы в команде Nova Container Platform сделали перевод статьи для тех, кто хочет разобраться, как строить сети в Kubernetes. Делюсь им, надеюсь, вам будет полезно.

В мире Kubernetes мы каждый день слышим, как ipvs сравнивают с iptables, или, скажем, pureLB с metalLB, или же виртуальную топологию (overlay) с физической (underlay), или Nodeport с Loadbalance, и т.д. Сейчас я вам все растолкую.

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

Сетевые плагины (CNI) в Kubernetes

Level of difficultyHard
Reading time14 min
Views5.6K

Сеть Kubernetes — это сложная и увлекательная тема, наполненная множеством подвижных частей. Одним из ключевых компонентов, обеспечивающих сетевую связность и взаимодействие различных элементов кластера, является CNI (Container Networking Interface).

CNI  - это спецификация, разработанная CNCF (Cloud Native Computing Foundation) для стандартизации процесса подключения сетевых интерфейсов к контейнерам. CNI обеспечивает гибкость и адаптивность сетевой инфраструктуры, позволяя интегрировать различные сетевые решения в Kubernetes.

Давайте подробнее разберем, что такое Container Network Interface?

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

WAL в PostgreSQL: 1. Буферный кеш

Reading time13 min
Views69K
Предыдущий цикл был посвящен изоляции и многоверсионности PostgreSQL, а сегодня мы начинаем новый — о механизме журналирования (write-ahead logging). Напомню, что материал основан на учебных курсах по администрированию, которые делаем мы с Павлом pluzanov, но не повторяет их дословно и предназначен для вдумчивого чтения и самостоятельного экспериментирования.

Этот цикл будет состоять из четырех частей:


Читайте и другие серии.

Индексы:

  1. Механизм индексирования;
  2. Интерфейс метода доступа, классы и семейства операторов;
  3. Hash;
  4. B-tree;
  5. GiST;
  6. SP-GiST;
  7. GIN;
  8. RUM;
  9. BRIN;
  10. Bloom.

Изоляция и многоверсионность:

  1. Изоляция, как ее понимают стандарт и PostgreSQL;
  2. Слои, файлы, страницы — что творится на физическом уровне;
  3. Версии строк, виртуальные и вложенные транзакции;
  4. Снимки данных и видимость версий строк, горизонт событий;
  5. Внутристраничная очистка и HOT-обновления;
  6. Обычная очистка (vacuum);
  7. Автоматическая очистка (autovacuum);
  8. Переполнение счетчика транзакций и заморозка.

Блокировки:

  1. Блокировки отношений;
  2. Блокировки строк;
  3. Блокировки других объектов и предикатные блокировки;
  4. Блокировки в оперативной памяти.


Читать дальше →
Total votes 38: ↑37 and ↓1+36
Comments23

Безопасность CI/CD

Level of difficultyMedium
Reading time7 min
Views4.5K

Обычно, когда начинается разговор о DevSecOps, все сразу вспоминают о необходимости встраивать в конвейер SAST, DAST, SCA инструменты, проводить различные тесты на безопасность приложения и регулярно сканировать работающее в продуктивной среде решение.

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

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

Высокая доступность в Kubernetes

Reading time9 min
Views2.5K

Обсудили высокую доступность в k8s: эксперт Слёрма Кирилл Борисов — SRE, инцидент-менеджер и спикер конференций Highload++, Devops, DevOops, ProITFest — рассказал про использование Affinity и Anti-Affinity, Tolerations, PodDiscruption Budget и Horizontal Pod Autoscaler.

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

Этапы формирования навыков программирования

Level of difficultyEasy
Reading time12 min
Views14K

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

Читать далее
Total votes 11: ↑8 and ↓3+9
Comments25

5 книг, которые стоит почитать начинающему ИТ-архитектору

Reading time5 min
Views41K

Привет, Хабр! Меня зовут Александр Бардаш, я главный архитектор интеграционных платформ в МТС. Сегодня расскажу, почему ИТ-архитекторам важно хотя бы иногда всегда читать книги, и поделюсь подборкой для начинающих. Жду вас под катом и в комментариях!

Читать далее
Total votes 25: ↑19 and ↓6+19
Comments17

Переадресация портов в Kubernetes: команда kubectl port-forward

Level of difficultyEasy
Reading time4 min
Views2.2K

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

Переадресация портов — это процесс перенаправления сетевого трафика с одного порта на другой, что позволяет получать доступ к внутренним сервисам кластера Kubernetes из внешней сети.

Команда kubectl port-forward позволяет перенаправлять трафик с локального компьютера на определенный порт внутри пода

Рассмотрим подробней.

Читать далее
Total votes 9: ↑7 and ↓2+9
Comments2

Процессы и потоки in-depth. Обзор различных потоковых моделей

Reading time10 min
Views120K
Здравствуйте дорогие читатели. В данной статье мы рассмотрим различные потоковые модели, которые реализованы в современных ОС (preemptive, cooperative threads). Также кратко рассмотрим как потоки и средства синхронизации реализованы в Win32 API и Posix Threads. Хотя на Хабре больше популярны скриптовые языки, однако основы — должны знать все ;)
Далее
Total votes 64: ↑62 and ↓2+60
Comments45

VPN vs Proxy vs XRay: что лучше?

Level of difficultyEasy
Reading time9 min
Views12K

Всем привет, это TechTalk! 

Мы пишем и говорим про IT, цифровые права и свободу интернета в Телеграм и на YouTube, а сегодня решили зайти с другим форматом, поэтому это первый хабрапост.

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

Читать далее
Total votes 16: ↑16 and ↓0+20
Comments5

А давайте сравнивать облака

Level of difficultyEasy
Reading time13 min
Views2.8K

Всем привет. Меня зовут Соловьёв Артём, я несколько лет занимаюсь развитием корпоративного облака, и сегодня хочу поговорить об основных отличиях корпоративных и коммерческих облаков.

Сейчас уже сложно найти людей, связанных с ИТ, которые не слышали об облачных технологиях и таких провайдерах как Amazon Web Services, Microsoft Azure, Google Cloud и т. п. Многие крупные компании строят свои ИТ-системы по облачному принципу. Хочу сосредоточиться на различиях, которые есть между коммерческими и корпоративными облаками, и на том, что стоит учитывать, если вы хотите начать переходить к облачной модели в своей организации. Также мы посмотрим, что происходит в коммерческом облаке, а что — в корпоративном.

Читать далее
Total votes 11: ↑6 and ↓5+4
Comments0

Каких фич не хватает K8s по мнению юзеров Reddit: толковый менеджер пакетов и устранение болей с sidecar-контейнерами

Level of difficultyEasy
Reading time8 min
Views3.6K

Представьте, что у вас появилась возможность включить новую фичу в Kubernetes или что-то в нём кардинально поменять. Что бы вы добавили или изменили? Похожие вопросы постоянно появляются на Reddit.

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

Читать далее
Total votes 23: ↑23 and ↓0+29
Comments3
1
23 ...

Information

Rating
Does not participate
Registered
Activity