Pull to refresh
4
0
Send message

WAL в PostgreSQL: 4. Настройка журнала

Reading time 17 min
Views 30K
Итак, мы познакомились с устройством буферного кеша и на его примере поняли, что когда при сбое пропадает содержимое оперативной памяти, для восстановления необходим журнал предзаписи. Размер необходимых файлов журнала и время восстановления ограничены благодаря периодически выполняемой контрольной точке.

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

Уровни журнала


Основная задача журнала предзаписи — обеспечить возможность восстановления после сбоя. Но, если уж все равно приходится вести журнал, его можно приспособить и для других задач, добавив в него некоторое количество дополнительной информации. Есть несколько уровней журналирования. Они задаются параметром wal_level и организованы так, что журнал каждого следующего уровня включает в себя все, что попадает в журнал предыдущего уровня, плюс еще что-то новое.
Читать дальше →
Total votes 29: ↑29 and ↓0 +29
Comments 9

CephFS vs GlusterFS

Reading time 16 min
Views 33K

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


Читать дальше →
Total votes 20: ↑20 and ↓0 +20
Comments 7

Экстремальная настройка производительности HTTP: 1,2M API RPS на инстансе EC2 с 4 виртуальными процессорами (vCPU)

Reading time 54 min
Views 18K

Прим. перев.: автор данного исследования — Marc Richards, Solutions Architect и DevOps-инженер — продемонстрировал потрясающую настойчивость и тщательность в тотальной оптимизации производительности веб-приложения. Получившийся материал — кладезь полезных знаний для расширения своего кругозора в области оптимизации, особенностей сетевого стека в Linux и не только, даже вне зависимости от практической заинтересованности в конечном результате автора. Приготовьтесь к по-настоящему длинному техническому путешествию с обилием терминологии, увлекательных графиков и полезных ссылок.

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

Ещё 20+ игр, которые прокачивают логику, алгоритмы и радуют умный мозг [по следам комментариев на Habr]

Reading time 9 min
Views 116K
image

Я выложила вчера подборку «15 игр, которые прокачивают логику, алгоритмы, ассемблер и силу земли». И столько классных ссылок в комментарии накидали, что я чуток опухла, но сделала отдельную подборку, по горячим следам. Спасибо большое всем, кто внес свой вклад.

Еще я веду канал в Telegram: GameDEVils, делюсь там клевыми материалами (про геймдизайн, разработку и историю игр).
Читать дальше →
Total votes 83: ↑82 and ↓1 +81
Comments 59

Настройка отказоустойчивого кластера Kubernetes на серверах с публичной и приватной сетью с помощью Kubeadm

Reading time 27 min
Views 20K

У меня возникла задача настроить отказоустойчивый Bare Metal кластер для комплексного приложения, в связи с чем и возникла данная статья. Сразу хочу сказать, что не являюсь экспертом в K8S, однако имею опыт развертывания продуктовых кластеров DC/OS (экосистемы, основанной на Apache Mesos).

Долгое время K8S меня отпугивал тем, что, при попытке его изучения, тебя закидывают кучей концепций и терминов, отчего мозг взрывается.

Читать далее
Total votes 13: ↑12 and ↓1 +11
Comments 9

Теория и практика бэкапов с Borg

Reading time 11 min
Views 58K


К нашему огромному удивлению на хабре не оказалось ни одного материала про замечательный Open Source-инструмент для резервного копирования данных ­— Borg (не путать с одноимённым прародителем Kubernetes!). Поскольку уже более года мы с удовольствием используем его в production, в этой статье я поделюсь накопленными у нас «впечатлениями» о Borg.
Читать дальше →
Total votes 39: ↑38 and ↓1 +37
Comments 46

Как научиться разработке на Python: новый видеокурс Яндекса

Reading time 6 min
Views 243K
Осенью прошлого года в московском офисе Яндекса прошла первая Школа бэкенд-разработки. Мы сняли занятия на видео и сегодня рады поделиться на Хабре полным видеокурсом Школы. Он позволит вам научиться промышленной разработке на Python. Авторы лекций — опытные разработчики в Яндексе. К каждому видео приложены ссылки на примеры и полезные материалы.

Для изучения курса нужно знать основы Python и понимать, как приложения развёртываются на серверах. Мы ждём, что вы умеете делать запросы к базам данных и знаете, как создаются веб‑приложения, — хотя бы на начальном уровне.
Читать дальше →
Total votes 70: ↑70 and ↓0 +70
Comments 41

Как начать тестировать Ansible, отрефакторить проект за год и не слететь с катушек

Reading time 10 min
Views 8.7K


Это расшифровка выступления на DevOps-40 2020-03-18:


Начиная со второго коммита любой код становится legacy, т.к. изначальные задумки начинают расходиться с суровой реальностью. Это не хорошо и не плохо, это данность с которой сложно спорить и необходимо уживаться. Частью этого процесса является рефакторинг. Рефакторинг Infrastructure as Code. Да начнется история как отрефакторить Ansible за год и не слететь с катушек.

Читать дальше →
Total votes 13: ↑13 and ↓0 +13
Comments 28

Ansible: Миграция конфигурации 120 VM c CoreOS на CentOS за 18 месяцев

Reading time 5 min
Views 5K


Это расшифровка выступления на DevopsConf 2019-10-01 и SPbLUG 2019-09-25.


Это история проекта, на котором использовалась самописная система управления конфигурациями и почему переезд на Ansible затянулся на 18 месяцев.

Читать дальше →
Total votes 9: ↑9 and ↓0 +9
Comments 17

Ansible playbooks — это код: проверяем, тестируем, непрерывно интегрируем. Иван Пономарёв

Reading time 20 min
Views 20K

Предлагаю ознакомиться с расшифровкой доклада Ивана Пономарёва «Ansible playbooks — это код: проверяем, тестируем, непрерывно интегрируем».


Рефакторинг кода может быть увлекательным, особенно если это код вашей инфраструктуры. К тому же Ansible-роли почему-то имеют тенденцию к быстрому увеличению сложности. И это добавляет «изюминку» в вашу задачу. Иван расскажет, как можно преодолевать сложность Ansible-кода с помощью тестирования. В Docker-контейнерах.
По мере разрастания кодовой базы в Ansible приходят знакомые проблемы: сложность поддержки кода, ошибки и страх изменений. У знакомых проблем есть знакомое решение: автоматическое тестирование и CI. В докладе Иван покажет, как с использованием ряда инструментов решить проблемы «хрупкости» Ansible-кода, выполнить статический анализ, протестировать Ansible-скрипты и настроить CI-системы для публикации ролей в Ansible Galaxy.


Total votes 14: ↑14 and ↓0 +14
Comments 18

PostgreSQL Antipatterns: редкая запись долетит до середины JOIN

Reading time 3 min
Views 18K
Если писать SQL-запросы без анализа алгоритма, который они должны реализовать, ни к чему хорошему с точки зрения производительности это обычно не приводит.

Такие запросы любят «кушать» процессорное время и активно почитывать данные практически на ровном месте. Причем, это вовсе не обязательно какие-то сложные запросы, наоборот — чем проще он написан, тем больше шансов получить проблемы. А уж если в дело вступает оператор JOIN…


Само по себе соединение таблиц не вредно и не полезно — это просто инструмент, но и пользоваться им надо уметь.
Читать дальше →
Total votes 18: ↑18 and ↓0 +18
Comments 25

Loki — сбор логов, используя подход Prometheus

Reading time 7 min
Views 54K
Салют, хабровчане! В преддверии старта нового набора на курс «DevOps практики и инструменты» подготовили для вас перевод интересного материала.





Эта статья — краткое введение в Loki. Проект Loki поддерживается Grafana и направлен на централизованный сбор логов (с серверов или контейнеров).

Основным источником вдохновения для Loki был Prometheus с идеей применения его подходов к управлению логами:

  • использование меток (labels) для хранения данных
  • потребление малого количества ресурсов

Мы еще вернемся к принципам работы Prometheus и приведем несколько примеров его использования в контексте Kubernetes.

Несколько слов о Prometheus


Чтобы полностью понять, как работает Loki, важно сделать шаг назад и немного вспомнить Prometheus.

Одной из отличительных характеристик Prometheus является извлечение метрик из точек сбора (через экспортеры) и сохранение их в TSDB (Time Series Data Base, база данных временных рядов) с добавлением метаданных в виде меток.
Читать дальше →
Total votes 17: ↑15 and ↓2 +13
Comments 7

Современный курс по Node.js в 2020

Reading time 4 min
Views 110K


Дорогие товарищи инженеры, сообщество Метархия представляет вашему вниманию современный курс по Node.js, который включает глубокий разбор всех возможностей и аспектов платформы. Основной упор делается на то, как создавать надежные высоконагруженные сервера приложений и API без привязки к конкретному фреймворку и даже протоколу, т.е. абстрагировать бизнес-логику в отдельный слой. К лекциям прикреплено множество примеров кода, демонстрирующих гибкую структуру приложений и архитектурные приемы, в том числе работу с СУБД через слой доступа к данным, создание интерактивных приложений на вебсокетах, обеспечение безопасности, Graceful shutdown, межпроцессовое взаимодействие, предотвращение утечек памяти, масштабирование и кластеризацию при помощи процессов и потоков. На текущий момент в курсе 38 лекций (около 35 и ½ часов видео), 37 репозиториев с примерами кода, 4 PDF со слайдами. Перед основной частью курса по Node.js нужно сначала освоить хоть частично курс по асинхронному программированию.

Читать дальше →
Total votes 40: ↑40 and ↓0 +40
Comments 15

«Автоматизация инфраструктуры. Зачем мы это делаем?» (Денис Яковлев)

Reading time 11 min
Views 3.4K

Предлагаю ознакомиться с расшифровкой доклада Дениса Яковлева "Автоматизация инфраструктуры. Зачем мы это делаем?"


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


Доклад о том, как мы в компании 2ГИС автоматизировали работу с инфраструктурой.


«Нужно бежать со всех ног, чтобы только оставаться на месте, а чтобы куда-то попасть, надо бежать как минимум вдвое быстрее» (Алиса в стране чудес).


Что эта фраза означает для нас? В условиях жесткой конкуренции, компании должны стремиться доставлять свои продукты до пользователей максимально быстро. Уменьшение параметра time to market — задача многоуровневая. Чтобы ее решить надо менять как процессы разработки, так и инструменты. Важной основой всего процесса разработки является инфраструктура. Чем больше инфраструктура, тем больше с ней проблем, use case'ов и т.д. Если все операции с ней не автоматизированы, то число проблем увеличивается. Одной из них является время, которое разработчик тратит на инфраструктурные вопросы вместо того, чтобы писать бизнес логику.


Поговорим о том:


  • Какие проблемы с инфраструктурой стояли перед командами;
  • Как от этого страдали процессы разработки и тестирования;
  • Как мы внедрили OpenStack;
  • Какие у нас есть сценарии использования OpenStack;
  • Как автоматизация получила дополнительный толчок в развитии и начали появляться новые внутренние продукты;
  • Какие аспекты у нас остались не автоматизированы.

Total votes 8: ↑7 and ↓1 +6
Comments 11

«На чём корпорации вертели вашу приватность», Артур Хачуян (Tazeros Global)

Reading time 46 min
Views 45K
День защиты персональных данных, Минск, 2019 год. Организатор: правозащитная организация Human Constanta.

Ведущий (далее – В): – Артур Хачуян занимается… Можно сказать «на тёмной стороне» в контексте нашей конференции?

Артур Хачуян (далее – АХ): – На стороне корпораций – да.

В: – Он собирает ваши данные, продаёт их корпорациям.

АХ: – На самом деле нет…

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



АХ: – Расскажу, расскажу. На самом деле долго рассказывать не буду, но на предыдущем мероприятии мне представили человека, которому «Фейсбук» даже аккаунт собаки заблокировал.
Всем привет! Меня зовут Артур. Я действительно занимаюсь обработкой и сбором данных. Конечно же, я не продаю никому никакие персональные данные в открытом доступе. Шучу. Моя сфера деятельности – это извлечение знаний из данных, находящихся в открытых источниках. Когда что-то юридически является не персональными данными, но из этого можно извлечь знания и сделать их такими же по значимости, как если бы эти данные были получены из персональных данных. Ничего на самом деле страшного рассказывать не буду. Здесь, правда, про Россию, но про Белоруссию у меня тоже есть цифры.
Total votes 78: ↑71 and ↓7 +64
Comments 92

Использование websocket в приложениях Extjs

Reading time 9 min
Views 14K
Websocket, наверное, самое серьезное и полезное расширение протокола HTTP с момента его появления в начале девяностых. Использование websockets для обмена данными с сервером намного более выгодно, чем привычный AJAX. Экономия трафика в стандартных приложениях существенна, особенно, при активном обмене клиента и сервера небольшими сообщениями. Также, существенно сокращается время отклика при запросах данных. Основным препятствием на пути широкого распространения этой технологии долгое время было то, что многие прокси-сервера криво поддерживали расширенную версию http-протокола. Что приводило, в худшем случае, к проблемам безопасности (пруф). За последние пару лет ситуация с поддержкой вебсокетов стала выправляться и сейчас, на мой взгляд, настало их время.

В этой статье описаны рецепты использования вебсокетов в стандартных компонентах Extjs (gridpanel, treepanel, combobox). И, также, в качестве замены Ext.Ajax.
Читать дальше →
Total votes 15: ↑13 and ↓2 +11
Comments 3

Тюнинг Firebird и Linux для БД размером 691 Гб с 1000+ пользователей

Reading time 7 min
Views 19K
Firebird является очень популярной открытой СУБД в России, и, несмотря на отсутствие шумных маркетинговых акций, используется в большом количестве ответственных систем, особенно в медицинских и государственных системах автоматизации.

Размер БД и количество активных пользователей в таких системах обычно достаточно большие, поэтому в этой статье я расскажу об опыте оптимизации настроек Firebird и Linux, основываясь на конкретных примерах больших БД Firebird в компаниях БудьЗдоров (Ингосстрах), АльфаЗдрав, и затрону опыт других компаний по оптимизации Firebird+Linux.

Давайте подробнее познакомимся с предметом оптимизации — СУБД Firebird 3.0.5 (с расширениями HQbird), обслуживает БД размером 691Гб (на текущий момент) с ежедневными 1000-1100 пользователями, работает на Linux CentOS 7, сервер — железный HP DL380. Для БД настроена репликация на резервный сервер (вопрос о репликации вне рамок этой статьи).
Читать дальше →
Total votes 13: ↑12 and ↓1 +11
Comments 28

Как сделать ваш HTML отзывчивым, добавив одну строку кода на CSS

Reading time 4 min
Views 64K
Привет, Хабр! представляю вашему вниманию перевод статьи «How to make your HTML responsive by adding a single line of CSS» автора Per Harald Borgen.



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

Самое крутое, что для добавления отзывчивости потребуется написать одну строчку кода на CSS
Читать дальше →
Total votes 79: ↑69 and ↓10 +59
Comments 38

Атаки и безопасность современных Windows систем

Reading time 1 min
Views 18K
image

В данной статье будут представлены видеозаписи методов атак и защиты современных Windows систем: различные вектора и способы перехвата учетных записей, атаки контроллера домена, использование IPv6 и многое другое.
Total votes 65: ↑37 and ↓28 +9
Comments 2

Высокая производительность и нативное партиционирование: Zabbix с поддержкой TimescaleDB

Reading time 11 min
Views 21K
Zabbix — это система мониторинга. Как и любая другая система, она сталкивается с тремя основными проблемами всех систем мониторинга: сбор и обработка данных, хранение истории, ее очистка.

Этапы получения, обработки и записи данных занимают время. Немного, но для крупной системы это может выливаться в большие задержки. Проблема хранения — это вопрос доступа к данным. Они используются для отчетов, проверок и триггеров. Задержки при доступе к данным также влияют на производительность. Когда БД разрастаются, неактуальные данные приходится удалять. Удаление — это тяжелая операция, которая также съедает часть ресурсов.



Проблемы задержек при сборе и хранении в Zabbix решаются кэшированием: несколько видов кэшей, кэширование в БД. Для решения третьей проблемы кэширование не подходит, поэтому в Zabbix применили TimescaleDB. Об этом расскажет Андрей Гущин — инженер технической поддержки Zabbix SIA. В поддержке Zabbix Андрей больше 6 лет и напрямую сталкивается с производительностью.

Как работает TimescaleDB, какую производительность может дать по сравнению с обычным PostgreSQL? Какую роль играет Zabbix для БД TimescaleDB? Как запустить с нуля и как мигрировать с PostgreSQL и производительность какой конфигурации лучше? Обо всем этом под катом.
Total votes 28: ↑26 and ↓2 +24
Comments 4
1

Information

Rating
Does not participate
Registered
Activity