понедельник, 13 февраля 2023 г.

Детектор аномальных объёмов — анализируем спрос и предложение с помощью платформы TKSBrokerAPI

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

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

Следующий скриншот иллюстрирует стакан цен с объёмами предложений продавцов и покупателей, которые трейдер визуально может принять за аномалии:

Но как же их определять автоматически?

суббота, 11 февраля 2023 г.

Как сделать +16% на бирже за 2 часа? Помогут роботы!

Всем привет! Недавно я упоминал про REST API от Тинькофф Инвестиции и про платформу ⚙️TKSBrokerAPI на Python, для упрощения автоматизации работы с биржей через брокера Тинькофф. Сам я тоже использую эту платформу: для получения кастомных отчётов и автоматизации трейд-роботов и различных ботов-оповещалок.

На этой неделе очень порадовал $KROT, который последние дни невероятно волатилен (в том числе из-за новостей об ограничениях биржи на бумаги третьего эшелона), но зато хорошо подходит для тестов, спасибо ему за это! А также порадовал алгоритм моего нового торгового робота в основе которого используется ⚙️TKSBrokerAPI: впервые удалось протестировать его на сильных движениях и заметить в телеметрии, что он достаточно неплохо поймал второй откат на пятиминутках, самостоятельно вошёл в позицию, дождался хорошей возможности и вышел в плюс (изобразил это на графике ниже).

На одном лоте получилось более +16% прибыли, 280 рублей разницы в цене и 2800 руб. профита 🙂 Неплохой результат, так как до этого рынок был, в основном, спокойный и удавалось поймать роботом не более +0.5-1.5% за сделку. Поэтому я долгое время не знал, как он себя поведёт при сильных движениях, сможет ли дождаться большей прибыли и устоит ли на волатильном рынке. Сейчас убедился на тестовом счёте, что сможет 😊

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

  • 10:25 UTC "message": "BUY-стоп выставлен по цене первого покупателя: [1695 rub], лотов: [1]"
  • 12:04 UTC "message": "SELL-маркет исполнен по [1975 rub], ср. [1695 rub], лотов [1], профит 16.52%"
Конечно же, любому роботу нужна (авто-)оптимизация, потому что далее через пару часов, если посмотреть график $KROT за 9.02.2023, можно было выйти ещё рублей на 200 выше, но робот этого уже не дождался.

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

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

суббота, 7 января 2023 г.

How to quickly find anomalies in number series using the Hampel method

Translated from Russian. The original article is here:

In practice, there are issues for the solution of which it is required to find anomalies in the numerical series. For ease of understanding, we can assume that these are values that differ from most numbers in the series in some way (outlier, non-standard value, deviation from the norm). Such tasks are found in various areas:

  • cleaning of noisy data in Data Science;
  • outlier filtering in the training sample for neural networks in Machine Learning;
  • search for abnormal network hacker activity, while monitoring traffic and events in Cybersecurity;
  • detection of outliers or tails in the stock data stream in Algorithmic Trading;
  • as well as in any anomaly search tasks, where data can be presented as a numerical series.

The concepts of a number series in mathematical analysis and in statistics are different. We accept a numerical series as its statistical understanding, that is, a finite sequence of numbers (analogous to a sample). There are various interpretations of the anomaly in the numerical series. We will consider them further.

The article also shows examples of how to find anomalies quickly and efficiently in numerical series using the modified Hampel method (Hampel F.R.).

пятница, 6 января 2023 г.

Jupyter Notebook: теория и практика фильтрации данных методом Хампеля

Всем привет! Я сделал примеры с фильтрацией данных методом Хампеля в Jupyter Notebook, где можно поэкспериментировать с различными параметрами функции HampelFilter(). Показано применение этого фильтра для поиска аномальных выбросов в числовых рядах, полученных из биржевых цен. А также написал простой скрипт на Python, который можно запустить, и посмотреть, о чём идёт речь.

Эти примеры написаны для недавно опубликованной статьи: «Как быстро найти аномалии в числовых рядах с помощью метода Хампеля».

Поддержать проект: https://yoomoney.ru/to/410015019068268

PriceGenerator: release-1.3.81

Опубликован очередной релиз платформы PriceGenerator: v1.3.81. Рассмотрим основные изменения.

Дайджест

Внимание! Поддерживаемая версия Python не ниже 3.9.

Теперь можно добавлять кастомные линии (например, линии собственных индикаторов, рассчитанных заранее) и маркеры на основной график вместе с ценовыми свечами. Для этого используется метод RenderBokeh().

Появилась возможность задавать направления генерируемых трендов простыми словами: updownno или буквами: udn совместно с ключом --split-trend (в дополнение к уже существующей возможности указывать тренды символами /\-), например, --split-trend=up-down-no-up--split-trend=u-d-n-u.

Также можно выбирать тёмную или светлую темы для графиков, построенный через метод RenderBokeh(), при помощи нового параметра darkTheme (если True, то используется тёмная тема, иначе — светлая тема).

Пример графика со светлой темой и с дополнительными кастомными маркерами и новой линией:


Поддержать проект: https://yoomoney.ru/to/410015019068268

вторник, 27 декабря 2022 г.

Как быстро найти аномалии в числовых рядах с помощью метода Хампеля

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

  • очистка зашумлённых данных в датасайнс (Data Science);
  • фильтрация выбросов в обучающей выборке для нейросетей в машинном обучении (Machine Learning);
  • поиск аномальной сетевой хакерской активности, при мониторинге трафика и событий в  кибербезопасности (Cybersecurity);
  • выявление выбросов или хвостов в потоке биржевых данных в алгоритмической торговле (Algorithmic Trading);
  • а также в любых задачах на поиск аномалий, где данные могут быть представлены в виде числового ряда.
Понятия числового ряда в математическом анализе и в статистике отличаются. Мы принимаем под числовым рядом его статистическое понимание, то есть конечную последовательность чисел (аналог выборки). Существуют различные толкования аномалии в числовых рядах. Их мы рассмотрим далее.

Также в статье показаны примеры, как быстро и эффективно найти аномалии в числовых рядах с помощью модифицированного метода Хампеля (Hampel F.R.).

четверг, 24 ноября 2022 г.

TKSBrokerAPI Trade Automation Platform: release-1.5.120

Опубликован очередной релиз платформы TKSBrokerAPI: v1.5.120. Рассмотрим основные изменения.

Release notes (in english)
Issues included in the release

PyPI: 1.5.120 (2022-11-21)

Дайджест

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

четверг, 10 ноября 2022 г.

Получаем и расширяем биржевые данные с помощью TKSBrokerAPI — платформы для автоматизации торговых сценариев

В прошлый раз я показал, как можно автоматизировать торговый сценарий на Python с помощью TKSBrokerAPI. Это платформа для упрощения автоматизации торгов на бирже, которая работает через Tinkoff Invest REST API. Всё начинается с вашей гениальной торговой идеи и завершается автоматизацией сценария, а TKSBrokerAPI берёт на себя всю работу с инфраструктурой брокера.

Но откуда же взять этот «гениальный торговый алгоритм»? Платформа TKSBrokerAPI поможет и для решения задачи получения первичных, «сырых» данных по торговым инструментам (акции, облигации, фонды, фьючерсы и валюты) с сервера брокера, для их последующего анализа в любом удобном для вас аналитическом инструменте.


Поддержать проект: https://yoomoney.ru/to/410015019068268

суббота, 1 октября 2022 г.

TKSBrokerAPI: демонстрация некоторых возможностей торговли на бирже через Python API


Поддержать проект: https://yoomoney.ru/to/410015019068268

В прошлой статье я рассказал про опенсорс разработку — платформу TKSBrokerAPI — это Python API для работы с Tinkoff Open API через REST протокол. Также этим инструментом можно пользоваться из консоли или встраивать его в CI/CD-системы, для автоматизации рутинных операций на бирже, через брокера Тинькофф Инвестиции.

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

Неважно, какую основную систему принятия торговых решений о покупке или продаже вы используете. Это может быть технический анализ, нейросети, парсинг отчётов или слежение за сделками других трейдеров. Но всё равно вам потребуется выполнять базовые торговые операции: получать рыночные данные, выставлять лимитные и стоп-ордера, открывать и закрывать сделки по рынку. Модуль TKSBrokerAPI будет выступать как посредник между кодом с логикой торгов и сервисной инфраструктурой брокера, а также выполнять рутинные задачи от вашего имени в брокерском аккаунте.

Схема разработки с помощью TKSBrokerAPI очень простая:
  1. Вы придумываете гениальный торговый алгоритм.
  2. Записываете его пошагово в виде некоторого плана или торгового сценария.
  3. Автоматизируете сценарий на Python при помощи TKSBrokerAPI.
  4. TKSBrokerAPI берёт на себя всю работу с инфраструктурой брокера Тинькофф Инвестиции.
  5. Профит!

пятница, 29 июля 2022 г.

TKSBrokerAPI — python API для работы с Tinkoff Open API и доступа к торговому серверу брокера Тинькофф Инвестиции через REST протокол

TKSBrokerAPI

Build Status pypi license en-doc api-doc gift

Ссылка на проект: https://github.com/Tim55667757/TKSBrokerAPI

Поддержать проект: https://yoomoney.ru/to/410015019068268

Если вы занимаетесь одновременно инвестированием, автоматизацией и алгоритмической торговлей, то наверняка слышали про Tinkoff Open API (к нему есть неплохая Swagger-документация) — это API, предоставляемое брокером Тинькофф Инвестиции для автоматизации работы биржевых торговых роботов. Если ещё не слышали, то можете завести себе аккаунт и протестировать его возможности сами.

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

TKSBrokerAPI — это более простой инструмент, который можно использовать как обычный python-модуль или запускать из командной строки, и сразу из коробки получить возможность работать со счётом у брокера Тинькофф Инвестиции: получать информацию о состоянии портфеля, включая элементарную аналитику, открывать и закрывать позиции, получать общую информацию о торгуемых на бирже инструментах, запрашивать цены и получать отчёты об операциях за указанный период. Все данные выводятся сразу в консоль: в текстовом виде или сохраняются в файлах формата Markdown.

вторник, 11 января 2022 г.

PriceGenerator — модуль python для генерации тестовых данных по биржевым котировкам

PriceGenerator

Build Status pypi license

Ссылка на проект: https://github.com/Tim55667757/PriceGenerator

Иногда для целей тестирования автоматизированных торговых алгоритмов бывает необходимо получить набор данных с биржевыми ценами, которые попадают под определённые статистические ограничения. Обычно трейдеры и аналитики используют модель цен вида OHLCV-candlesticks (open, high, low, close, volume), так называемые японские свечи. Одна строка таких данных представляет собой набор цен для построения одной японской свечи: дата открытия, цена открытия, наибольшая цена, наименьшая цена, цена закрытия на данном временном интервале и значение объёма торгов.

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

Из статьи далее вы узнаете:

  • как установить и использовать библиотеку PriceGenerator из командной строки, либо через импорт модуля;
  • про метод генерации цен, используемый в библиотеке;
  • как сгенерировать набор ценовых данных с параметрами по умолчанию, получить по ним статистику и нарисовать график (интерактивный или упрощённый);
  • как загрузить ранее сохранённые данные по ценам, построить график и посчитать статистику;
  • как переопределить статистические параметры генератора, заданные по умолчанию;
  • как разделить ценовые данные по трендам, чтобы цена вела себя по разному для различных временных периодов.

понедельник, 10 января 2022 г.

AVStockParser — модуль python для работы с сервисом Alpha Vantage и получения данных с биржи NASDAQ

AVStockParser

Build Status pypi license

Ссылка на проект: https://github.com/Tim55667757/AVStockParser

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

Для автоматизации работы с историческими данными есть множество онлайн-сервисов, которые предоставляют API для этого бесплатно, но с некоторой задержкой. Например, Alpha Vantage. Основной источник данных для этого сервиса — биржа NASDAQ. Если вам нужна автоматизация работы с этой американской биржей и вы используете python, то далее расскажу, как это можно сделать с помощью Alpha Vantage API и библиотеки AVStockParser.

воскресенье, 9 января 2022 г.

MT4ForexParser — модуль python для работы с файлами истории MetaTrader 4

MT4ForexParser

Build Status pypi license

Ссылка на проект: https://github.com/Tim55667757/MT4ForexParser

У всех трейдеров периодически возникает необходимость получить исторические данные по валютам Forex (или по акциям) для дальнейшего анализа цен и построения графиков. Чаще всего эти данные поставляются на платной основе, либо вам приходится тратить много времени на ручную выгрузку данных на специальных сайтах.

Однако большинство Forex брокеров работают с торговой платформой MetaTrader 4 и загружают туда данные в специальном бинарном .hst-формате для MetaTrader 4 (не в .csv). Этим можно воспользоваться и получить исторические свечи подключившись к серверу брокера в демо-режиме, который есть почти у всех брокеров. При этом сжатый бинарный .hst-файл будет скачан локально в рабочий каталог MetaTrader 4.

вторник, 12 октября 2021 г.

Безопасная разработка: как жить в цифре, писать много кода и не стать жертвой хакеров

Хочу поделиться ссылкой на прошедшую 2 сентября 2021 года встречу пресс-клуба Positive Tech Press Club, на которых обсудили эволюцию угроз и технологий информационной безопасности. На встрече была затронута актуальная тема DevSecOps или безопасной разработки.

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

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

пятница, 4 июня 2021 г.

Содержание коротких технических статей

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

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

четверг, 3 июня 2021 г.

Разбор полётов

Как я говорил ранее, мы с коллегами, DevOps-инженерами, создали общедоступный репозиторий dohq-doc-templates, где лежат шаблоны инженерной документации. Они нужны для упрощения сопровождения различных регламентных работ. Шаблоны были созданы в процессе повседневной работы наших инженеров и автоматизаторов. Они могут пригодиться и вашим инженерам, для разработки регламентов и внутренней технической документации.

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


среда, 2 июня 2021 г.

Анализ и планирование работ по долгосрочным задачам

В нашем общедоступном репозитории 
dohq-doc-templates лежат шаблоны инженерной документации. Они нужны для упрощения сопровождения различных регламентных работ. Эти шаблоны были созданы в процессе повседневной работы DevOps-инженеров и автоматизаторов. Они могут пригодиться и вашим инженерам, для разработки регламентов и внутренней технической документации.

Сегодня поговорим про анализ и планирование работ по долгосрочным задачам. 


вторник, 1 июня 2021 г.

Технологическая карта производственного процесса

Продолжаю выкладывать в общедоступный репозиторий dohq-doc-templates шаблоны инженерной документации. Она нужна для упрощения и сопровождения различных регламентных работ. Шаблоны были созданы в процессе повседневной работы DevOps-инженеров и автоматизаторов. Они могут пригодиться и вашим инженерам, для разработки регламентов и внутренней технической документации.

Сегодня познакомлю вас с понятием "технологической карты производственного процесса".

понедельник, 31 мая 2021 г.

Карта компетенций инженеров DevOps


Мы с коллегами из PT решили создать общедоступный репозиторий dohq-doc-templates, куда будем выкладывать шаблоны инженерной документации для упрощения и сопровождения различных регламентных работ. Они были созданы в процессе повседневной работы DevOps-инженеров и автоматизаторов. Шаблоны могут пригодиться и вашим инженерам, для разработки регламентов и внутренней технической документации.

Сегодня познакомлю вас с понятием "карты компетенций" инженеров DevOps, что это такое и как ей пользоваться.

среда, 26 мая 2021 г.

DevSecOps. PT Application Inspector в разработке ПО: блокировка релиза

 

Вышла новая обзорная статья на Хабре по одному из направлений в DevSecOps: про то, как разработчики используют анализатор кода PT Application Inspector в релизном цикле разработки своих продуктов.

Оригинал статьи по ссылке, копия под катом.

среда, 21 апреля 2021 г.

Как работает команда DevOps в Positive Technologies


Всем привет! Меня зовут Тимур Гильмуллин, я работаю в отделе технологий и процессов разработки Positive Technologies. Внутри компании нас неформально называют DevOps-отделом. Мы занимаемся автоматизацией внутренних процессов и помогаем разработчикам и тестировщикам. В прошлой статье я уже писал, как выстроен карьерный рост у инженеров, а сегодня хочу рассказать про «внутреннюю кухню» — о том, что делают DevOps-инженеры у нас в компании. Вы узнаете, что лежит в основе идей DevOps, какие плюсы дает бизнесу работа по принципам DevOps и как при этом изменяется процесс разработки.

вторник, 22 декабря 2020 г.

DevSecOps: как мы внедряли PT Application Inspector в наш продуктовый конвейер

PT AI

Вышла новая обзорная статья на Хабре по одному из направлений в DevSecOps: про то, как мы внедряли анализатор кода PT Application Inspector в корпоративный сборочный конвейер.

Первоисточник: статья на Хабре. Копия под катом.

вторник, 1 сентября 2020 г.

Чем занимается DevOps-инженер в команде современных разработчиков

Вышла моя новая статья в журнале TProger. В ней я рассказал о роли DevOps-инженера, чего мы добились в нашей компании, используя принципы DevOps, и немного про инструментарий. Только личный опыт.

Ключевая мысль статьи:

«В отличие от классических сисадминов мы не работаем по шаблонам и инструкциям 24×7×365, мы не техподдержка, в наши обязанности не входят поддержка «железной» части инфраструктуры и круглосуточное обеспечение работоспособности серверов. Я предлагаю считать DevOps-инженеров современными инженерами-технологами в производстве ПО. Такие специалисты квалифицированно решают не только задачи своей роли, но и видят весь производственный конвейер целиком, понимают, как результаты их работы будут использованы далее и интегрированы в общую производственную цепочку.»

вторник, 11 августа 2020 г.

Aptly. Как организовать контроль пакетов из внешних репозиториев и делегировать управление в продуктовые команды

Всем привет! Решил отрепостить и сюда тоже нашу совместную с коллегами из Positive Technologies Сашей Паздниковым и Никитой Драчёвым статью про Aptly: будет полезной тех-лидам от разработки. Оригинал размещён на Хабре по ссылке.

Сейчас многие компании работают без возможности прямого управления составом пакетов внешних репозиториев, даже если применяют зеркалирование, проксирование и кэширование. Это приводит к тому, что окружение выполнения постоянно меняется, в частности состав докер-образов меняется чаще, чем требуется производству.

Возможны ситуации, когда в состав разрабатываемого продукта могут попадать нежелательные изменения, которые содержатся во внешних зависимостях. Это особенно актуально во время сертификации продукта. Как следствие — затягивание сертификаций, сбои ночных тестов и интеграционного тестирования, поломки on-premise production (производственной среды, расположенной на собственных ресурсах организации) при накатывании хотфикса и прочее. В новой статье мы описали подход, который позволит избежать таких проблем.

вторник, 21 апреля 2020 г.

Личный опыт: карьерный рост в DevOps-отделе компании разработчика ПО

Всем привет! Меня зовут Тимур Гильмуллин, я заместитель руководителя отдела технологий и процессов разработки в компании Positive Technologies. Сегодня расскажу, как я попал в профессию, как в нашем отделе мы видим карьеру DevOps-инженера, что такое карта компетенций и как она помогает обеспечивать рост сотрудников.

Статья написана по материалам рассказа для митапа (2020-01-20), на который нас любезно пригласили коллеги из Hays для обмена опытом (можно посмотреть презентацию и текст).

вторник, 17 декабря 2019 г.

Управление хаосом: наводим порядок с помощью технологической карты

Всем привет! На Хабре вышла наша совместная, с коллегой из DevOps (Сашей Паздниковым), статья "Управление хаосом: наводим порядок с помощью технологической карты".

Мы  инженеры-автоматизаторы из компании Positive Technologies и занимаемся сопровождением разработки: поддерживаем весь сборочный конвейер от коммита строчки кода разработчиками до публикации готовых продуктов и лицензий на серверах обновлений. Неформально нас называют DevOps-инженеры. Мы хотим рассказать вам про технологические этапы процесса производства ПО, как мы их видим и как классифицируем.


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

Подробнее по ссылке.

понедельник, 25 ноября 2019 г.

Как рисовать схемы текстом при помощи сервиса PlantUML

Confluence (корпоративная вики-система) и GitLab поддерживают PlantUML-диаграммы: можно описать схему простым текстом, а специальные плагины её отрисуют. Это очень удобно и быстро — можно создавать картинку со схемой, не используя сторонние графические редакторы, только текст. Выглядит это примерно так:


пятница, 15 ноября 2019 г.

Нагрузочное тестирование как сервис

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

Как решить некоторые проблемы с организацией тестирования вы можете прочитать в моей предыдущей статье: "Тестирование в общем сборочном конвейере: решение организационных проблем". В этой статье я расскажу про возможность интегрировать ваши нагрузочные тесты в общий CI-конвейер на GitLab CI используя концепцию "Нагрузочное тестирование как сервис" (Load testing as a service).  Также вы узнаете: как и какие докер-образы источников нагрузки Apache JMeter и Yandex.Tank можно использовать в CI-конвейере; как подключить источники нагрузки в свой проект при помощи шаблона .gitlab-ci.yml; как выглядит демо-пайплайн для запуска нагрузочных тестов и публикации результатов. Статья будет полезна инженерам по тестированию ПО и инженерам-автоматизаторам.

пятница, 8 ноября 2019 г.

Тестирование в общем сборочном конвейере: решение организационных проблем

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

Статья может быть полезна тест-архитекторам, руководителям команд и отделов QC и QA, CI-инженерам, а также всем, кто сталкивался с проблемами внедрения процесса тестирования в разработку ПО.

вторник, 23 апреля 2019 г.

Codacy: онлайн-сервис для статического анализа кода приложений

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

вторник, 9 апреля 2019 г.

AutoIt: автоматизация работы с интерфейсом Windows программ

AutoIt — это бесплатное приложение для автоматизации работы с Windows UI. Его можно использовать для имитации действий пользователя в ОС Windows, открытия и закрытия окон, перемещения мыши, нажатия кнопок клавиатуры и мыши, получения статусов элементов окон, открытия программ и управления ими. 

вторник, 18 декабря 2018 г.

Моделирование производственных процессов в ИТ-компании

Моделирование производственных процессов — это очень сложная и кропотливая работа: нужно собирать, анализировать и обрабатывать множество данных по различным отделам и производственным цепочкам. В статье я расскажу вам о моделировании процесса производства программных продуктов на примере компании Positive Technologies, где я работаю. Тема достаточно сложная и обширная, тем не менее я попытаюсь доступным языком объяснить, из каких крупных этапов состоит разработка и представлю так называемую технологическую карту производственных процессов. Надеюсь, что после этого рассказа у вас сформируется достаточно общее представление о производстве программных продуктов и о роли DevOps в обеспечении непрерывной работы конвейера по производству и доставке продуктов заказчикам.

Статья может быть полезна продуктовым менеджерам, руководителям команд и отделов, а также всем, кому интересно как устроен типовой процесс разработки программных продуктов, как выглядит технологическая карта и основные этапы Continuous Integration и Continuous Delivery.

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

вторник, 26 декабря 2017 г.

Как мы в Positive Technologies внедряли идеи DevOps


В этой статье расскажу, как мы в Positive Technologies создавали и развивали отдел автоматизации разработки, внедряли идеи DevOps в практику разработки и какие инструменты и технологии для этого использовали, а также как организовали процессы CI/CD. В том числе поделюсь успехами и планами на будущее.

пятница, 1 декабря 2017 г.

Митап Op!DevOps! 2017

Открытое сообщество
DevOps-разработчиков
Open DevOps Community
Митап Op!DevOps! 2017 прошёл 21 октября в московском офисе компании Positive Technologies. Мы провели приятный субботний вечер и в узком, почти семейном кругу, обсудили проблемы автоматизации, которые удалось решить нашей DevOps-команде за прошедший год. Кроме того, мы рассмотрели некоторые технологии и инструменты, поделились планами развития DevOps в нашей компании.

Немного о докладах, видео и фоточки с митапа ниже.

среда, 2 августа 2017 г.

Проект учебника по Истории Математики

https://boomstarter.ru/projects/tgilmullin/istoriya_matematiki

UPD от 22.02.2018. Книга уже опубликована!

Купить печатную книгу "История математики":
Купить электронную книгу "История математики":

Друзья и коллеги! Мы с моим отцом, учёным и преподавателем математики, издаем книгу — познавательный и современный иллюстрированный учебник по Истории Математики. Поддержите, пожалуйста, наш проект :) 

На Бумстартере можно сделать предзаказ на книгу и её электронный вариант, или оставить спонсорский взнос: https://boomstarter.ru/projects/tgilmullin/istoriya_matematiki

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