Как стать автором
Поиск
Написать публикацию
Обновить

Компания БАРС Груп временно не ведёт блог на Хабре

Сначала показывать

Логирование запросов к приложению Django

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


Привет, меня зовут Дмитрий Чернышов, я ведущий разработчик компании «БАРС Груп». Последние несколько лет среди прочих задач нам в команде приходится сталкиваться с необходимостью анализа производительности приложений на Django с большим количеством пользователей и постоянно меняющимися профилями нагрузки. В данной статье я хочу поделиться наработками, которые появились у нас в процессе работы.

Предыстория/Описание проблемы


В Django достаточно средств для того, чтобы организовать логирование запросов к приложению с целью получения ответов на следующие вопросы:

  • Какие запросы в среднем работают дольше всего с точки зрения пользователей?
  • Каких запросов выполняется больше всего?
  • Какие запросы создают больше всего запросов к СУБД?
  • В каких запросах самые длинные транзакции?
Читать дальше →

Знакомство с pg_probackup. Вторая часть

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

Продолжаем знакомиться с инструментом pg_probackup.

В первой части мы установили pg_probackup, создали и настроили экземпляр, сняли два бэкапа — полный и инкрементный в режиме DELTA, научились просматривать и изменять конфигурацию экземпляра. Получили список бэкапов, написали скрипт (bkp_base.sh), производящий резервное копирование кластера и отправку результатов последней операции по снятию бэкапа в систему мониторинга. Сегодня будем решать не менее интересные задачи.

Задача 2


Дано: У нас есть два сервера, на первом у нас располагается наша база данных (имя хоста srv_db1, пользователь postgres), а на втором мы будем хранить бэкапы (имя хоста srv_bkp, пользователь backup_user). Но помимо бэкапов на этом же сервере мы будем хранить копии журналов предварительной записи, чтобы иметь возможность восстановления на произвольный момент времени (Point-in-time recovery) в течение последних 3х дней.
Читать дальше →

Кто победит: человек — венец творения или обратный слэш?

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

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

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

Знакомство с pg_probackup. Первая часть

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

Привет, я Александр Никитин, главный системный администратор компании «БАРС Груп». В этой статье я хочу познакомить вас с инструментом pg_probackup.

Pg_probackup — разработка компании Postgres Professional, которая помогает делать резервные копии СУБД PostgreSQL. В отличие от стандартной утилиты pg_basebackup этот инструмент позволяет создавать инкрементные резервные копии на уровне блоков данных (по умолчанию 8Kb), производить валидацию резервных копий и СУБД, задавать политики хранения и многое другое.

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

Будут рассмотрены следующие варианты использования:

  • создание автономных бэкапов на отдельном сервере
  • создание архива wal-файлов и создание бэкапов в этом режиме
  • развёртывание реплики из бэкапа и настройка создания бэкапов с реплики
  • различные варианты восстановления

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

Некоторые мысли о том, что такое автоматизированная информационная система (АИС)

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


Я в ИТ-сфере официально около 15 лет, и большую часть этого времени занимался проектированием систем. Очень часто в работе или при знакомстве с новыми коллегами возникают споры на профессиональные темы, одним из которых является ответ на вопрос – «Что такое система?». Каждый понимает это понятие по-своему, чаще всего опираясь на свой опыт и знания, полученные в ИТ-сфере; другие трактуют определения, взятые из интернета или учебников. И чаще всего эти споры не приводят к единому мнению, так и сейчас я не претендую на 100% принятия моих рассуждений.

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

Экономим время, нервы и человеко-часы

Время на прочтение9 мин
Количество просмотров3.1K
Проекты наши обычно региональные, и заказчики, как правило — министерства. Но, помимо госсектора, нашими системами пользуются и частные организации. С ними проблем практически нет.

Так вот, основные проекты — региональные, а с ними порой бывают проблемы. Например, с производительностью, когда в регионах от 20к наших драгоценных пользователей в период выкатывания нового функционала на продуктовые серверы. Это боль…

Зовут меня Руслан и занимаюсь я сопровождением информационных систем «БАРС Груп» и разработкой бота-убийцы для жестоких серийных DBA. Пост не для слабонервных — много букв и картинок.


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

Оценка тестирования: как высчитать точное время на тестирование системы или «Когда тесты будут готовы?!»

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

Доброго времени суток всем! Меня зовут Денис, я руководитель службы тестирования в «БАРС Груп». Это мой первый пост на Хабре.

Прочитав очень много интересных статей и почерпнув оттуда много полезной информации, захотелось что-то дать взамен. Тогда я начал анализировать темы: одни были уже озвучены, другие слишком просты («как войти в IT?»). P.S. ничьи чувства задеть не хотелось :)

Как высчитать время на тесты – проблема и решение


Как руководитель службы, я постоянно сталкиваюсь с вопросом от менеджеров: «Когда будет готово?» или «Сколько времени надо на тестирование?». Казалось бы что тут сложного, бери оценку по предыдущему проекту и плюс-минус тоже самое… но нет. Я понял, что задача не тривиальна и требует детальной проработки. И хочу поделиться ее решением.
Читать дальше →

На вкус и цвет: градации подходов к Умному дому

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


Сегодня я буду Капитаном Очевидность и расскажу банальные вещи применительно к теме домашней автоматизации, он же “Умный дом”. Для чего? Чтобы показать новичкам, как глубока кроличья нора, скрывающаяся под этим названием, и облегчить (или усложнить) муки выбора в том или ином случае. Это не прямая протоптанная дорога, а ветвящаяся тропа, когда приходится выбирать, как поступить и куда пойти.


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

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

Trio – асинхронное программирование для людей

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

В Python существует библиотека Trio – библиотека асинхронного программирования.
Знакомство с Trio в основном будет интересно тем, кто работает на Asyncio, потому что это хорошая альтернатива, позволяющая решать часть проблем, с которыми не может справиться Asyncio. В этом обзоре рассмотрим, что из себя представляет Trio и какие фичи она нам дает.
Читать дальше →

BarsUP.AM: как мы разрабатывали средство защиты информации web-приложений

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

BarsUp.Access Manager (BarsUp.AM) — наш программный комплекс по защите конфиденциальной информации. При проектировании и разработке этой системы в соответствии с требованиями нормативных документов ФСТЭК России мы столкнулись со сложностями по управлению доступом к web-приложениям с использованием сертифицированных средств защиты информации.

Приказ ФСТЭК России № 17 говорит, что должен осуществляться выбор средств защиты информации, сертифицированных на соответствие требованиям по безопасности информации, с учетом их стоимости, совместимости с информационными технологиями и техническими средствами. Мы посмотрели, что было на тот момент на рынке и поняли: стоимость решений, совместимых с нашими информационными системами, зачастую превышала стоимость самих систем, либо они были несовместимы.
Читать дальше →

Советы айтишника заказчику, или как нельзя автоматизировать бардак

Время на прочтение12 мин
Количество просмотров13K
Всем привет, я работаю в ИТ-бизнесе (в той части, которая занимается созданием ИТ-систем) более 20 лет. Захотелось обобщить опыт в нескольких советах заказчику, как сделать автоматизацию деятельности организации эффективным и успешным проектом.

О целях и границах проекта




Начнем с определения целей, которых вы хотите достичь путем реализации ИТ-проекта. В конечном счете, ИТ – не более чем технологии со своими возможностями. Но создание информационной системы не может быть самоцелью. Цель должна быть сформулирована в терминах вашего бизнеса.
Читать дальше →

Эволюция HighLoad приложения на примере регионального портала госуслуг

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

«Завтра 20-е число, а значит снова будет шторм. Остановить его невозможно, только подготовиться и надеяться, что в этот раз пронесет, случится чудо, и наш озерный паром покорит океан». Такие мысли одолевали команду, занимающуюся поддержкой портала муниципальных услуг еще несколько лет назад. Как мы попали в эту ситуацию и как мы из нее нашли выход будет рассказано ниже.
Читать дальше →

Мой путь к секционированию в PostgreSQL

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


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

Привет, Хабр! Меня зовут Алмаз и сейчас я хочу поделиться методом, который помог мне реализовать секционирование.
Читать дальше →

Разработка ПО как важнейшее из искусств (сразу после кино)

Время на прочтение7 мин
Количество просмотров4K
Во многих источниках упоминается, что программирование — это творчество. Другие же сравнивают его со строительством. А третьи с выращиванием сада. Но в общем сходятся во мнении, что это больше похоже на искусство. А как известно, важнейшим из искусств для нас является — кино.
Задумывались ли вы о том, насколько похожи процессы искусства кино и искусства разработки ПО (раз уж мы относим себя к творческим людям)? В обоих этих случаях результатом является произведение искусства… либо гадость, которой конечный потребитель останется не удовлетворен. Для еще большего понимания сравнения сделаем несколько шагов от фильма до приложения.
Первый шаг. Ближайший родственник фильма — мультфильм, анимация. Но по большому счету, большинство современных фильмов являются по своей сути мультфильмами.
Следующий шаг. Мультфильмы (особенно современные) безумно похожи на видео-игры. Им недостает интерактивности от поведения зрителя. В свою очередь, современные игры лишь чуть-чуть уступают качеству картинки мультфильмам и даже фильмам.
И вот мы уже в разработке игр, от которых рукой подать до производства прикладных программных систем. Цели разные, а вот процесс и подход к разработке одинаков.
Предлагаю взглянуть на процесс разработки ПО, через призму кинопроизводства. Быть может кто-то просто потешит себя сравнением и этой аллегорией, а кто-то начнет больше понимать и ценить свою роль в этом процессе.
(Скажу сразу — не снимал и не снимался в кино, но участвовал и участвую в разработке. Это фантазия — не судите строго.)
Итак, с чего начинается кино?
Читать дальше →

Ближайшие события

Отчет о прошедших 26-го марта мастер-классах

Время на прочтение1 мин
Количество просмотров1.3K
Доброго времени суток!

Как и обещали, мы провели второй мастер-класс по python и django в прошлую субботу. Было много интересного.

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

Ведение периодических сведений в информационных системах

Время на прочтение5 мин
Количество просмотров6.6K
Все разработчики информационных систем сталкиваются с периодической информацией, т.е. данными изменяющимися во времени. Например:
— Цены на товары
— Курсы валют
— Должности
и т.п. Также, одна периодическая информация меняется часто, другая — редко. К редко меняющейся информации можно отнести, например:
— Фамилия и имя
— Адрес проживания
— Статус семьи
Так вот, в большинстве случаев, нет необходимости хранить историю изменения этой редко меняющейся информации, т.к. никто и никогда не будет строить отчет задним числом, чтобы в нем отображалась эта информация, действующая на дату отчета.
В таких случаях достаточно хранить просто факт изменения информации, предыдущее значение и дату изменения — это понадобиться в самых редких случаях.

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

Отчет о первых мастер-классах от «Барс Груп» по питону в Казани

Время на прочтение1 мин
Количество просмотров2.2K
Добрый день, %username%. Мы уже давно хотели и, наконец, провели эти самые курсы для начинающих по питону и джанге.
Читать дальше →