Как стать автором
Обновить
-6
0

Пользователь

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

Внутреннее устройство DRBD: алгоритмы работы отказоустойчивого хранилища

Уровень сложностиСложный
Время на прочтение13 мин
Количество просмотров6.2K

DRBD


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


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

Читать дальше →
Всего голосов 26: ↑25 и ↓1+24
Комментарии1

Настраиваем память JVM-приложения в Kubernetes

Время на прочтение6 мин
Количество просмотров18K

Друзья, всем привет! Как известно, в Kubernetes у каждого pod’а есть ограничение на  использование памяти (limits.memory), и, как показывает опыт, далеко не всегда очевидно, как JVM-приложение интерпретирует эту настройку, что порой может приводить к OOMKill.

 

Читать далее
Всего голосов 42: ↑40 и ↓2+38
Комментарии9

Массивный BASH

Время на прочтение3 мин
Количество просмотров8.8K

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

бомбить
Всего голосов 27: ↑26 и ↓1+25
Комментарии53

Одна из причин потерь на сети 802.11

Время на прочтение2 мин
Количество просмотров9.5K

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

Читать далее
Всего голосов 12: ↑11 и ↓1+10
Комментарии16

Когда и зачем нужен RabbitMQ

Время на прочтение5 мин
Количество просмотров117K

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

Читать далее
Всего голосов 36: ↑26 и ↓10+16
Комментарии27

Отказоустойчивая архитектура контентной платформы на 4 Тбит/с — опыт VK Видео

Время на прочтение16 мин
Количество просмотров20K

Представьте идеальный мир с бесконечными ресурсами, в котором можно сколько угодно линейно масштабироваться под нагрузку: просто доставлять серверы, диски, видеокарты, как только потребуется больше мощностей. Звучит хорошо? Только оказывается, что когда серверов 5 000 и дисков 100 000, то несколько из них обязательно находятся в состоянии maintenance или repair, куда их привели обстоятельства непреодолимой силы. И главная задача здесь — обеспечить доступность сервиса в условиях постоянных сбоев. 

В статье разберём, как построить отказоустойчивую платформу, с какими неочевидными corner cases может столкнуться сервис с UGC-контентом, а ещё — как жить в реальном, а не идеальном мире и оптимизировать железо. Чтобы раздавать 4 Тбит/с можно, конечно, использовать 400 серверов по 10 Гбит/с, но гораздо интереснее грамотно всё потюнить и выжать 100 Гбит/с с Java-сервера.  

Читать далее
Всего голосов 59: ↑58 и ↓1+57
Комментарии15

Обзор Harvester — гиперконвергентного Open Source-решения на базе Kubernetes

Время на прочтение7 мин
Количество просмотров12K

Немецкая компания SUSE известна в Open Source-сообществе своими дистрибутивами Linux. Но этим ее деятельность не ограничивается. В конце прошлого года SUSE представила новый проект с открытым кодом — гиперконвергентное решение Harvester. Как говорит компания, Harvester — это альтернатива существующим гиперконвергентным платформам enterprise-уровня типа VMware vSAN и Nutanix HCI, адаптированная к cloud native-среде, к тому же полностью бесплатная.

В статье сделаем небольшой обзор Harvester: посмотрим на компоненты, возможности, сильные и слабые стороны.

Читать далее
Всего голосов 29: ↑29 и ↓0+29
Комментарии8

Рецепты Nginx: локализация страниц об ошибках

Время на прочтение3 мин
Количество просмотров4.8K

Для приготовления локализации страниц об ошибках нам понадобится сам nginx и его плагины error_page_inherit и include_server. Конечно, такую локализацию можно сделать и без этих плагинов, но у неё будет несколько недостатков. Во-первых, если в каком-то локейшене задаётся своя страница об ошибке, то все страницы об ошибках из предыдущих уровней не наследуются для этого уровня. Эту проблему решает первый плагин, позволяя наследовать страницы сообщений об ошибках. А, во-вторых, для каждого сервера придётся вручную включать локейшен обработки страницы об ошибке. И эту проблему как раз решает второй плагин, позволяя наследовать подключение файлов из главной конфигурации во все сервера.

Итак
Всего голосов 11: ↑11 и ↓0+11
Комментарии3

GitOps с GitLab: CI/CD Tunnel

Время на прочтение5 мин
Количество просмотров7.3K

GitLab можно использовать как первоклассный инструмент GitOps, и здесь мы покажем как. Это пятое практическое руководство из серии, посвящённой разным задачам пользователей, включая подготовку базовой инфраструктуры, управление ей и развёртывание поверх неё различных сторонних и кастомных приложений. 

Здесь мы посмотрим, как получить доступ к кластеру Kubernetes с помощью GitLab CI/CD и зачем это нужно, если вы взяли курс на GitOps.

Читать далее
Всего голосов 14: ↑12 и ↓2+10
Комментарии1

Пишем свои модули для Ansible на Python

Время на прочтение27 мин
Количество просмотров16K

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

Материал объёмный. Рекомендуем сразу открыть итоговый код файла clickhouse.py для удобной работы со статьей.

Читать далее
Всего голосов 19: ↑18 и ↓1+17
Комментарии5

Amazon S3 — детективное расследование внутренней архитектуры

Время на прочтение9 мин
Количество просмотров17K

Мне понравился опыт прошлого расследования по фейсбуку, и я решил организовать очередную серию, теперь про Amazon. Для нетерпеливых — в самом конце статьи описан итоговый вариант архитектуры Amazon S3 и проанализированы его свойства.



Не так давно Амазон объявил о переходе S3 с модели eventual consistency на strong consistency, то есть, предоставления гарантии read-after-write, чтения того, что было только что записано. Сообщество отреагировало, но как-то очень вяло: Amazon S3 Now Delivers Strong Read-After-Write Consistency


Первое, что лично мне подумалось в ответ на эти новости: а как же теорема CAP?

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

Когда TCP быстрее UDP

Время на прочтение6 мин
Количество просмотров48K
Я знаю отличную шутку про UDP, но не факт, что она до вас дойдёт.

Все, кто хоть раз в жизни, по работе открывал файл /etc/services знают, что одни сетевые службы используют транспортный протокол TCP, другие же — UDP. Каждый из них имеет свою область применения. Если надёжность соединения имеет приоритет над скоростью передачи данных, то TCP предпочтительнее. Например, для SMTP, или IMAP больше подходит TCP. Обратное тоже верно там, где важна скорость передачи данных, а потеря дейтаграмм или их порядок не критичны — используют UDP. К их числу относятся SNMP, DNS, VoIP и другие службы.
Читать дальше →
Всего голосов 82: ↑81 и ↓1+80
Комментарии16

Разбираем Log4j уязвимость в деталях… с примерами и кодом

Время на прочтение11 мин
Количество просмотров58K

Все о той же критической уязвимости в Log4j, но с примерами и кодом.

Читать далее
Всего голосов 75: ↑74 и ↓1+73
Комментарии55

Погружение в Helm Package Manager. Часть вторая

Время на прочтение11 мин
Количество просмотров17K

Helm — один из самых популярных пакетных менеджеров для Kubernetes, так что познакомиться с ним поближе стоит всем, кто сталкивается с задачами деплоя приложений. Эта статья завершает мое краткое, но достаточно полное введение в Helm.

Читать далее
Всего голосов 7: ↑7 и ↓0+7
Комментарии9

Как мы логшипим в Elasticsearch и что думаем о Filebeat

Время на прочтение11 мин
Количество просмотров18K

Привет, я - Эдгар, backend-разработчик личного кабинета МегаФон, поделюсь решением проблемы log shipping-процесса в централизованное хранилище Elasticsearch, которое мы нашли вместе с командой. 

Читать далее
Всего голосов 8: ↑7 и ↓1+6
Комментарии3

Погружение в Helm Package Manager. Часть первая

Время на прочтение12 мин
Количество просмотров37K

Helm — один из самых популярных пакетных менеджеров для Kubernetes. Познакомиться с ним полезно любому DevOps-инженеру и всем, кто сталкивается с задачами деплоя приложений. Эта статья — первый из двух материалов, которые можно вместе можно рассматривать как краткое, но достаточно полное введение в Helm.

Читать далее
Всего голосов 15: ↑15 и ↓0+15
Комментарии13

Углубленное знакомство с пространствами имен Linux. Часть 2

Время на прочтение19 мин
Количество просмотров21K


В предыдущей части мы разобрали, чем являются пространства имен, и какую роль они играют в современных системах, после чего познакомились с двумя их видами: PID и NET. Во второй и заключительной части материала мы изучим пространства имен USER, MNT, UTS, IPC и CGROUP, а в завершении объединим полученные знания, создав полностью изолированную среду для процесса.
Читать дальше →
Всего голосов 60: ↑59 и ↓1+58
Комментарии1

Представляем Waypoint от HashiCorp

Время на прочтение8 мин
Количество просмотров3.8K


Устойчивый рабочий процесс для сборки, деплоя и релиза приложений на любых платформах.


Сегодня мы рады представить Waypoint компании HashiCorp. Это новый проект с открытым исходным кодом, предлагающий разработчикам стабильный процесс для сборки, развертывания и релиза приложений на любых платформах. Waypoint дает разработчикам возможность работать с приложениями от разработки до запуска в продакшн в едином файле и деплоить их с помощью единственной команды: waypoint up.

Читать дальше →
Всего голосов 6: ↑5 и ↓1+4
Комментарии9

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

Уровень сложностиПростой
Время на прочтение10 мин
Количество просмотров105K

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

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

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

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

Читать далее
Всего голосов 44: ↑41 и ↓3+38
Комментарии16

Пошаговый запуск программы в Linux x86, или как добраться до main()?

Время на прочтение18 мин
Количество просмотров23K


Статья предназначена для тех, кто хочет понять процесс загрузки программ в Linux. В частности, здесь пойдет речь о динамической загрузке файлов ELF x86. На основе изложенной информации вы сможете лучше понять, как устранять проблемы, возникающие в программе еще до запуска main.
Читать дальше →
Всего голосов 60: ↑59 и ↓1+58
Комментарии10
1
23 ...

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность