Pull to refresh
0
0
Alex Kamedov @alekam

User

Send message

Как перенести 1,4 ТБ с MS SQL на PostgresSQL за 13 часов

Level of difficultyEasy
Reading time7 min
Views16K

Привет, Хабр! Меня зовут Павел Кузьмин, я работаю ведущим разработчиком в РСХБ-Интех. Однажды в своей работе мы столкнулись с острой необходимостью перенести БД объемом 1,4 ТБ (более 1,5 млрд строк) с MS SQL на PostgresSQL не более чем за 20 часов. Неожиданно для нас, все имеющиеся готовые варианты не подходили, поэтому мы решили взять библиотеку Npgsql на C# и написать свой код. В итоге созданное решение справилось с поставленной задачей за 13 часов. Рассказываем, как мы это сделали, и делимся кодом. Возможно, он вам пригодится в работе.

Читать далее
Total votes 25: ↑23 and ↓2+28
Comments23

Автоматическое обновление зависимостей в GitLab-проектах с помощью Renovate

Level of difficultyMedium
Reading time6 min
Views4.1K

Автоматическое обновление зависимостей становится все более важным аспектом в процессах непрерывной интеграции и непрерывной доставки (CI/CD) в сфере разработки программного обеспечения. В статье описана настройка автоматического обновления зависимостей в GitLab-проектах с помощью Renovate.

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

Что недоговаривают Тинькофф Инвестиции. Вытаскиваем все данные по портфелю через API в большую таблицу Excel

Reading time11 min
Views241K

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

Собираем все данные по портфелю и по всем операциям через Tinkoff API.

Строим огромную Excel таблицу со всеми данными.

Узнаём, сколько комиссий и налогов с нас уже содрали и что нам останется при выводе.

Пытаемся понять, что нам с этим делать.

Read more
Total votes 117: ↑114 and ↓3+152
Comments112

Знакомство с Тестированием в Python. Ч. 3

Reading time7 min
Views18K
Друзья, у нас для вас отличные новости. Во-первых на улице наконец-то светит солнышко, а это значит, что весна начинает полноправно вступать в свои права. Вторая новость более профильная — уже 20 марта стартует первое занятие в новом потоке по курсу «Разработчик Python», в связи с этим мы публикуем заключительную часть статьи «Знакомство с Тестированием в Python», предыдущие части которой можно прочитать здесь и здесь.

Тестирование в Нескольких Средах

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


Читать дальше →
Total votes 20: ↑18 and ↓2+16
Comments0

Эксплуатационный чек-лист для Redis в Kubernetes

Reading time7 min
Views8.7K


Команда Kubernetes as a Service в Mail.ru Cloud Solutions перевела контрольный список для запуска Redis внутри кластера Kubernetes. С ним стоит ознакомиться до того, как перейти к использованию Redis под рабочей нагрузкой.


Redis — популярное in-memory хранилище данных и кэш с открытым исходным кодом. Этот продукт стал важным компонентом построения масштабируемых микросервисных систем. Многие облачные провайдеры предлагают полностью управляемые сервисы Redis: Amazon ElastiCache, Azure Cache for Redis, GCP Memorystore (и на платформе MCS тоже есть такой управляемый сервис — прим. переводчика). Однако Redis также можно легко развернуть в Kubernetes, если вам нужно полнее контролировать его конфигурации. Прямо из коробки у него уже достойная производительность, но если вы собираетесь использовать Redis с рабочей нагрузкой, то сначала проверьте, выполняются ли все пункты этого чек-листа.

Читать дальше →
Total votes 29: ↑29 and ↓0+29
Comments2

Умная хрущёвка на максималках

Reading time10 min
Views62K
Моя статья про проводной умный дом была популярной на Хабре (159 тысяч просмотров) — в ней я описал положительный опыт от идеи до реализации умного дома в новостройке.

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

  1. мониторинг приборов учета;
  2. датчики контроля: домофона, температуры, шума, открытия дверей, ...;
  3. единая панель управления умным домом;
  4. подъездное видеонаблюдение;
  5. настенный дисплей для текущего времени и температуры за окном;
  6. освещение в квартире, включая кнопку «выключить всё»;
  7. удаленное обесточивание квартиры;
  8. удаленное перекрытие воды.


3D модель этой двухкомнатной квартиры 47 кв.м, которая была автоматизирована, нарисованная в Sweet Home 3D
Хрущёвка в полном фарше
Total votes 44: ↑42 and ↓2+58
Comments106

Сказ о том, как я автоматизировал квартиру с помощью Node-RED. Часть I

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


Total votes 70: ↑69 and ↓1+83
Comments42

Полная домашняя автоматизация в новостройке. Продолжение

Reading time9 min
Views91K
Неожиданно статья про мой опыт автоматизации однокомнатной квартиры площадью 41 кв. м. в новостройке, опубликованная две недели назад, стала популярна и на 10 марта её добавил в закладки 781 image человек, просмотрели 123 921 раз и Хабр даже запилил рекламный блок в разделе «Рекомендуем» с пометкой «Интересно».


1500 метров проложенных кабелей после окончания ремонта не видны. На фото спальня

Перед вами продолжение истории, где я отвечу на комментарии, приведу фотографии квартиры с мебелью, получившиеся электрические щиты, а также расскажу о тех сложностях, с которыми я столкнулся после того, как перешёл c openHAB в другую систему домашней автоматизации — Home Assistant.
Самая умная однушка ...
Total votes 42: ↑40 and ↓2+53
Comments368

Как сэкономить 15 000 рублей при регистрации ПО

Reading time6 min
Views19K


Прошёлся недавно по поисковой выдаче гугла и выяснил, что регистрация прав на программу для ЭВМ стоит около 15 тыс. рублей. 15 тыс. рублей! И это ещё без пошлины.


Я удивился, потому что подготовка документов занимает минут тридцать. Чёрт с ним, пускай даже один час, но 15 тыс. рублей за час — это более чем достойное вознаграждение.


Зашёл на сайт Роспатента: инструкции там есть, но четкой картины не дают. На месте руководителя маленького IT-проекта я бы не стал подавать заявление сам — вдруг что-то сделаю не так.


Но я же юрист, и процедуру эту проходил не раз. Так почему бы мне не помочь стартаперам? Подумал-подумал, и не нашёл аргументов против. Так что давайте вместе попробуем подготовить документы и направить их в Роспатент, сэкономив при этом в среднем 15 тыс. рублей.

Читать дальше →
Total votes 58: ↑58 and ↓0+58
Comments30

Golden canon grid: страшилка для фронтендеров

Reading time12 min
Views27K


Большая часть людей, так или иначе причастных к верстке сайтов, проходят через… Назовем это “путь бутстрапа”. Это такая философская позиция, когда у тебя есть 12 колонок и ничего больше. Ты берешь элементы, кладешь их в определенные колонки и все у тебя хорошо. Можно выключить мозг, погрузиться в нирвану и руки будут сами расставлять элементы. Красота… Но тут появляется современный дизайнер, который рисует что-то, что ну совсем не сходится с этой замечательной концепцией. Колонок явно больше, они все разной ширины, да еще и по высоте что-то нужно выравнивать. Жуть. А встречается такое все чаще, особенно если сделать шаг в сторону от магазинов или админок. Сегодня мы поговорим о том, что же это за чудо такое там используется и как его можно готовить в современном CSS. Кода будет совсем немного, в основном – размышления и картинки.

Читать дальше →
Total votes 39: ↑39 and ↓0+39
Comments29

Аудио мультирум своими руками. Многокомнатная музыкальная система на основе бесплатного Logitech Media Server

Reading time4 min
Views60K
По специфике работы мне часто приходится давать советы профессиональным инсталляторам, каким образом решить ту или иную задачу при создании системы домашней автоматизации.


Проект Tobias на основе HiFiBerry

Один из вопросов, удивляющих своим постоянством — как организировать музыкальную систему на объекте таким образом, чтобы было легко включить её в единый интерфейс управления домом, наравне с освещением, климатом и другими системами. Вспоминая, что сам в первый раз делал это с большими сложностями и ошибками, я решил описать этот процесс подробнее для всех интересующихся.
Читать дальше →
Total votes 10: ↑10 and ↓0+10
Comments17

Перекрестная репликация между PostgreSQL и MySQL

Reading time15 min
Views12K


Я в общих чертах расскажу о перекрестной репликации между PostgreSQL и MySQL, а еще о методах настройки перекрестной репликации между этими двумя серверами базы данных. Обычно базы данных в перекрестной репликации называются однородными, и это удобный метод перехода с одного сервера реляционной СУБД на другой.


Базы данных PostgreSQL и MySQL принято считать реляционными, но с дополнительными расширениями они предлагают возможности NoSQL. Здесь мы обсудим репликацию между PostgreSQL и MySQL, с точки зрения реляционных СУБД.


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

Читать дальше →
Total votes 20: ↑19 and ↓1+18
Comments2

Шпаргалка с командами Docker

Reading time5 min
Views710K
Прим. перев.: Неделю назад Aymen El Amri, руководящий компанией eralabs и создавший обучающий курс «Безболезненный Docker», опубликовал свой Docker Cheat Sheet — шпаргалку по основным командам Docker. Git-репозиторий этого документа на GitHub уже набрал 1000+ stars и несколько сторонних контрибьюторов, что подтвердило его актуальность и пользу.



Представленные здесь команды описаны минимально (с акцентом на читаемость как есть) и включают в себя установку Docker, работу с реестрами и репозиториями, контейнерами, образами, сетью, Docker Swarm. Ниже представлен перевод шпаргалки в её состоянии на 2 сентября с дополнениями из комментариев ниже.
Читать дальше →
Total votes 46: ↑42 and ↓4+38
Comments15

Prometheus

Reading time9 min
Views24K
Доброго всем. Делимся тут очень интересной статьёй, на которую натыкались в рамках подготовки нашего курса. Перевод идёт, как есть целиком (за исключением некоторых комментариев).

Предыстория

В двух словах — вступление о мониторинге и аппеляционности убеждений. Как многим известно, я сопровождаю Riemann — инструмент обработки потоков событий для мониторинга распределенных систем. В моей книге, посвященной мониторингу, я использовал Riemann, как основной инструмент для изучения новых подходов и паттернов мониторинга, и описал архитектуру whitebox-мониторинга (с выборочным blackbox-мониторингом), используя push модель.

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

В свою очередь, whitebox-мониторинг сфокусирован на том, что происходит внутри сервиса или приложения. Приложение, обладающее соответствующим инструментарием, возвращает состояние самого себя или внутренних компонентов, результат выполнения транзакций или событий. Эти данные отвечают на вопрос “как работает приложение”, а не на вопрос “работает ли приложение”. Whitebox-мониторинг передает события, логи или метрики в специальный инструмент для мониторинга или предоставляет информацию наружу для последующего сбора инструментом мониторинга.
Читать дальше →
Total votes 12: ↑12 and ↓0+12
Comments5

Autoscaling своими руками с помощью AWX, Ansible, haproxy и Облака КРОК

Reading time15 min
Views5.9K

image


Какое-то время назад мы сделали безагентский (Agentless) мониторинг и алармы к нему. Это аналог CloudWatch в AWS с совместимым API. Сейчас мы работаем над балансировщиками и автоматическим скейлингом. Но пока мы не предоставляем такой сервис — предлагаем нашим заказчикам сделать его самим, используя в качестве источника данных наш мониторинг и теги (AWS Resource Tagging API) как простой service discovery. Как это сделать покажем в этом посте.

Читать дальше →
Total votes 19: ↑18 and ↓1+17
Comments0

Пробую .NET Core + Kubernetes + appmetrics + prometheus + grafana + jobs + health checks

Reading time14 min
Views26K
Краткое знакомство с kubernetes для разработчиков на примере разворачивания простого шаблонного сайта, с постановкой его на мониторинг, выполнением джобов по расписанию и health checks (все исходники прилагаются)

Установка Kubernetes
Установка UI
Запуск своего приложения в кластере
Добавление кастомных метрик в приложение
Сбор метрик через Prometheus
Отображение метрик в Grafana
Выполнение задач по расписанию
Отказоустойчивость
Выводы
Заметки
Список литературы
Читать дальше →
Total votes 21: ↑20 and ↓1+19
Comments4

Онлайн вещание через Nginx-RTMP: несколько готовых рецептов

Reading time5 min
Views154K
Недавно я наткнулся на топик "Сервер онлайн-вещаний на базе nginx" о замечательном модуле Романа Арутюняна (@rarutyunyan) для nginx: nginx-rtmp-module. Модуль очень прост в настройке и позволяет на основе nginx создать сервер публикации видеозаписей и живого вещания.

Про сам модуль можно прочитать на его странице на GitHub, я же хочу привести несколько простых примеров использования. Надеюсь, топик поможет новичкам в видеоделах (таким как я).

Читать дальше →
Total votes 38: ↑34 and ↓4+30
Comments22

Безопасность клиентских приложений: практические советы для Front-end разработчика

Reading time11 min
Views18K

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


На примере моего проекта я расскажу о том, как сегодня атакуют клиентские приложения и как вам избежать этих угроз.

Читать
Total votes 15: ↑13 and ↓2+11
Comments2

Service Workers. Инструкция по применению

Reading time9 min
Views140K


Количество выходов в интернет с мобильных устройств ежегодно растёт на 2-4% в год. Качество связи не успевает за такими темпами. Как итог, даже самое лучшее веб-приложение обеспечит ужасный опыт, если пользователь не сможет его загрузить.

Проблема в том, что до сих пор нет хорошего механизма управления кэшем ресурсов и результатов сетевых запросов. В своей статье я хочу рассказать как Service Worker (SW) может помочь в решении этой задачи. Объясню в формате рецептов — какие элементы и в какой пропорции смешать, чтобы получить нужный результат, исходя из задачи и требований.
Поехали!
Total votes 57: ↑57 and ↓0+57
Comments40

Погружаемся в Docker: Dockerfile и коммуникация между контейнерами

Reading time8 min
Views384K
В прошлой статье мы рассказали, что такое Docker и как с его помощью можно обойти Vendor–lock. В этой статье мы поговорим о Dockerfile как о правильном способе подготовки образов для Docker. Также мы рассмотрим ситуацию, когда контейнерам нужно взаимодействовать друг с другом.


В InfoboxCloud мы сделали готовый образ Ubuntu 14.04 с Docker. Не забудьте поставить галочку «Разрешить управление ядром ОС» при создании сервера, это требуется для работы Docker.
Читать дальше →
Total votes 34: ↑33 and ↓1+32
Comments23

Information

Rating
4,613-th
Location
Россия
Date of birth
Registered
Activity