vSphereTools - инструмент для автоматизации работы с vSphere | Тимур ГильмуллинPositive Hack Days
1. VIX API против pysphere.
2. vSphereTools - это набор скриптов от DevOps для поддержки работы с vSphere и виртуальными машинами.
3. Описание инструмента, его достоинства и недостатки, возможные доработки.
Инструментарий для создания дистрибутивов продуктов | Владимир СелинPositive Hack Days
1. Что такое дистрибутив большого продукта?
2. Проблема: знаниями о процессе установки продукта владеет малое число людей.
3. Шаблоны + DSL - решение всех проблем!
Система мониторинга Zabbix в процессах разработки и тестирования | Алексей БуровPositive Hack Days
1. Система мониторинга ресурсов различных отделов
2. Шаблоны и роли серверов, разграничение доступа и зон ответственности
3. ptzabbixtools - конфигурация мониторинга на целевых серверах
4. Пример встраивания системы мониторинга в процессы разработки/тестирования
Автоматизация нагрузочного тестирования в связке JMeter + TeamСity + Grafana ...Positive Hack Days
1. Описание старого процесса сбора данных о тестах: как было до, что хорошего, что плохого
2. Influxdb, как хранилище time-series данных,
3. Zabbix - мониторинг нагрузочных стендов: windows и linux агенты, активный сбор данных, autodiscovery виртуальных машин в esx
4. Grafana, как способ превратить графики и дашборды в конфетку
5. Автоматизация нагрузки от пользователей через web-UI при помощи Jmeter, отображение статистики в реальном времени, CI в Teamcity
От простого к сложному: автоматизируем ручные тест-планы | Сергей ТимченкоPositive Hack Days
1. Смотрим по сторонам - обычный процесс авто-тестирования
2. Убираем лишнее - реалистичный целевой процесс
3. DataDrivenTesting - создание спец. инструментов для конкретных сценариев
4. RobotFramework - что делать, если простых сценариев слишком много
vSphereTools - инструмент для автоматизации работы с vSphere | Тимур ГильмуллинPositive Hack Days
1. VIX API против pysphere.
2. vSphereTools - это набор скриптов от DevOps для поддержки работы с vSphere и виртуальными машинами.
3. Описание инструмента, его достоинства и недостатки, возможные доработки.
Инструментарий для создания дистрибутивов продуктов | Владимир СелинPositive Hack Days
1. Что такое дистрибутив большого продукта?
2. Проблема: знаниями о процессе установки продукта владеет малое число людей.
3. Шаблоны + DSL - решение всех проблем!
Система мониторинга Zabbix в процессах разработки и тестирования | Алексей БуровPositive Hack Days
1. Система мониторинга ресурсов различных отделов
2. Шаблоны и роли серверов, разграничение доступа и зон ответственности
3. ptzabbixtools - конфигурация мониторинга на целевых серверах
4. Пример встраивания системы мониторинга в процессы разработки/тестирования
Автоматизация нагрузочного тестирования в связке JMeter + TeamСity + Grafana ...Positive Hack Days
1. Описание старого процесса сбора данных о тестах: как было до, что хорошего, что плохого
2. Influxdb, как хранилище time-series данных,
3. Zabbix - мониторинг нагрузочных стендов: windows и linux агенты, активный сбор данных, autodiscovery виртуальных машин в esx
4. Grafana, как способ превратить графики и дашборды в конфетку
5. Автоматизация нагрузки от пользователей через web-UI при помощи Jmeter, отображение статистики в реальном времени, CI в Teamcity
От простого к сложному: автоматизируем ручные тест-планы | Сергей ТимченкоPositive Hack Days
1. Смотрим по сторонам - обычный процесс авто-тестирования
2. Убираем лишнее - реалистичный целевой процесс
3. DataDrivenTesting - создание спец. инструментов для конкретных сценариев
4. RobotFramework - что делать, если простых сценариев слишком много
In this talk, I will tell you about Vapor and will share our successful experience of moving from regular AWS EC2 servers to AWS Lambda and how everything changed after the appearance of Lambda on our project.
- When serverless architecture is the best choice.
- Overview Vapor - a platform for deploying and managing Laravel applications in AWS Lambda from Laravel.
- Our experience of migrating to Lambda, difficulties, best practices.
- How we predicted the cost and how much we pay in fact.
- Ways to optimize costs.
Продуктовые проблемы при создании очередной Docker PaaS / Владимир Ярцев (Cas...Ontico
РИТ++ 2017, Root Conf
Зал Пекин + Шанхай, 5 июня, 16:00
Тезисы:
http://rootconf.ru/2017/abstracts/2826.html
Благодаря Docker'у, контейнеры стали доступны каждому. Однако, чтобы развернуть production-систему на Docker'е, нужно решить ряд инфраструктурных задач: логи, мониторинг, бэкапы, отказоустойчивость, апдейты, безопасность. Решить эти задачи "для себя" не сложно, но при попытке превратить свое контейнерное решение в программный продукт возникают проблемы: "глупые" пользователи, нестабильный хостинг, коварные конкуренты и неясное будущее продукта. Эти трудности - системные, и лучше о них знать заранее. Я расскажу о них на примере проекта dockhero.io.
Доклад на конференции Selenium Camp 2012.
http://seleniumcamp.com/program/#parallel-testing
Видео: http://video.yandex.ru/users/xpinjection/view/105/#hq
Эволюция процесса деплоя в проекте — Денис Яковлев, 2ГИС2ГИС Технологии
Если наш проект это не коробочный продукт, а, например, веб-сервис, на который постоянно ходят пользователи, их много и они сразу видят изменения, то в жизненном цикле разработки у нас возникает еще одна задача — задача деплоя готово кода в боевое окружение. В самом начале, когда наш проект маленький и простой на эту задачу никто может и не обращать внимание, так как все происходит быстро и просто. Процесс деплоя состоит из 2-3 общеизвестных шагов - git pull, yii migrate, etc...которые легко запомнить и в которых сложно ошибиться.
С развитием проекта его сложность возрастает — он уже крутится на нескольких серверах, появляются новые компоненты (утилититы, библиотеки и т.д.), новые сущности (балансеры, кешы, и т.д.). Держать всю инфраструктуру в голове становится невозможным, ведение документации привносит больше проблем чем решений, люди ошибаются чаще и т.д.
В докладе:
— Рассмотрим подробно вышеуказанные проблемы, с которыми неизбежно сталкиваются проекты.
— Обсудим какие решения существуют в индустрии (chef, ansible, etc), чем они отличаются, в чем их задача и какое решение выбрать;
— Поговорим про административные вопросы, которые с этим связаны.
«Миллион открытых каналов с данными по сети» – Илья Биин (Zenhotels)AvitoTech
Поговорим о том, почему это далеко не самая простая задача, и как следует разбираться с возникающими трудностями. Рассмотрим и покритикуем существующие решения. Научимся создавать свой собственный велосипед.
In this talk, I will tell you about Vapor and will share our successful experience of moving from regular AWS EC2 servers to AWS Lambda and how everything changed after the appearance of Lambda on our project.
- When serverless architecture is the best choice.
- Overview Vapor - a platform for deploying and managing Laravel applications in AWS Lambda from Laravel.
- Our experience of migrating to Lambda, difficulties, best practices.
- How we predicted the cost and how much we pay in fact.
- Ways to optimize costs.
Продуктовые проблемы при создании очередной Docker PaaS / Владимир Ярцев (Cas...Ontico
РИТ++ 2017, Root Conf
Зал Пекин + Шанхай, 5 июня, 16:00
Тезисы:
http://rootconf.ru/2017/abstracts/2826.html
Благодаря Docker'у, контейнеры стали доступны каждому. Однако, чтобы развернуть production-систему на Docker'е, нужно решить ряд инфраструктурных задач: логи, мониторинг, бэкапы, отказоустойчивость, апдейты, безопасность. Решить эти задачи "для себя" не сложно, но при попытке превратить свое контейнерное решение в программный продукт возникают проблемы: "глупые" пользователи, нестабильный хостинг, коварные конкуренты и неясное будущее продукта. Эти трудности - системные, и лучше о них знать заранее. Я расскажу о них на примере проекта dockhero.io.
Доклад на конференции Selenium Camp 2012.
http://seleniumcamp.com/program/#parallel-testing
Видео: http://video.yandex.ru/users/xpinjection/view/105/#hq
Эволюция процесса деплоя в проекте — Денис Яковлев, 2ГИС2ГИС Технологии
Если наш проект это не коробочный продукт, а, например, веб-сервис, на который постоянно ходят пользователи, их много и они сразу видят изменения, то в жизненном цикле разработки у нас возникает еще одна задача — задача деплоя готово кода в боевое окружение. В самом начале, когда наш проект маленький и простой на эту задачу никто может и не обращать внимание, так как все происходит быстро и просто. Процесс деплоя состоит из 2-3 общеизвестных шагов - git pull, yii migrate, etc...которые легко запомнить и в которых сложно ошибиться.
С развитием проекта его сложность возрастает — он уже крутится на нескольких серверах, появляются новые компоненты (утилититы, библиотеки и т.д.), новые сущности (балансеры, кешы, и т.д.). Держать всю инфраструктуру в голове становится невозможным, ведение документации привносит больше проблем чем решений, люди ошибаются чаще и т.д.
В докладе:
— Рассмотрим подробно вышеуказанные проблемы, с которыми неизбежно сталкиваются проекты.
— Обсудим какие решения существуют в индустрии (chef, ansible, etc), чем они отличаются, в чем их задача и какое решение выбрать;
— Поговорим про административные вопросы, которые с этим связаны.
«Миллион открытых каналов с данными по сети» – Илья Биин (Zenhotels)AvitoTech
Поговорим о том, почему это далеко не самая простая задача, и как следует разбираться с возникающими трудностями. Рассмотрим и покритикуем существующие решения. Научимся создавать свой собственный велосипед.
Осуществим вводный экскурс в Node.JS. Действительно это что-то новое и гениальное? Что оно может, а что нет? Кому будет полезен? В каких случаях применять, а в каких нет? На все эти вопросы я постараюсь ответить в своём докладе.
Azure web apps - designing and debuggingAlexey Bokov
Проектирование и отладка веб приложений с использованием облака Microsoft Azure. Технологии для повышения отказоустойчивости и надежности веб приложений, в том числе при использовании своего хостинга.
Семинар по Node.js в КПИ 20 октября 2014. Докладчики: Тимур Шемсединов, Никита Савченко, Максим Петренко. Краткое содержание:
* Что такое Node.js и как работает JavaScript в V8
* Профессионалы расскажут, почему они выбрали Node.js
* Вы узнаете его сильные и слабые стороны и где его лучше применять
* Будет полный обзор особеностей и внутреннего строения Node.js
* Примеры внедрения и Highload-проекты
* Вопросы развертывания, хостинг, тестирования, и отладки
* Где и что учить, что читать, как осваивать
Приемы Сontinuous Integration при разработке приложений на CachéInterSystems CEE
Об организации автоматизированного рабочего процесса в InterSystems Caché, Лебедюк /
Implementing modern developement practices with InterSystems Caché, Eduard Lebedyuk
Approach on how make Continuous Integration development cycle with InterSystems Caché.
Caché Object Script solution for CI with Github
https://github.com/intersystems-ru/CacheGitHubCI
2. Workflow
Библиотекакомпонент
Описание операцийдействий в рамках процесса
История развития:
Версия 3.5
Версия 4.0
Версия 4.5
Используется в Sharepoint
Исходники на referencesource.microsoft.com
3. Что такое workflow?
Персистеность
SQL хранилище
PostgreSQL
Активности
Bookmarks
Обновление схем
Транзакционность
4. Когда нужно использовать workflow?
Процесс/алгоритм имеет длительный срок выполнения. (распределённый,
несколько участников)
Требуется настройка без участия программиста
6. Хостинг Workflow
WorkflowServiceHost – хост для размещения службы
Workflow-сервис
• Создание новых экземпляров рабочих процессов
• Загрузка существующих экземпляров из хранилища
• Выполнение
• Персистентность
• Закладки
• Обработка входящих запросов от сервиса
(!) Обработка нескольких рабочих процессов
8. Хостинг Workflow
Workflow-сервис
Типы хостинга:
• Статический
Определение маршрута в xamlx-файле, находится в каталоге приложения
• Динамический
Определение маршрута в сторонней сборке в bin-каталоге. В каталоге
приложения svc-файл со ссылкой на определение маршрута
<%@ServiceHost
Factory="System.ServiceModel.Activation.WorkflowServiceHostFactory“
Service=“SampleService" %>
• Явный подъём хоста
10. Workflow-сервис
/* Точка выхода */
SendReply
{
// Запрос
Request
// Ответные данные
Response: […]
}
Интеграция с WCF
/* Точка входа */
ReceiveRequest
{
// Имя контракта сервиса
ServiceContract
// Метод сервиса
Operation
// Параметры
Parameters: [...]
// Создать новый процесс ?
CanCreateInstances
}
(!) Контракт сервиса выводится автоматически на основе Receive и SendReply
11. Workflow-сервис
Виды корреляций (1)
Корреляция через контекст
двухсторонний протокол (например, http)
передaча через контекст (в заголовках или cookie-файлах)
• Неявная
работает автоматом в парах Receive/SendReply и
Send/ReceiveReply
• Явная
отправка и получение cвязаны через дескриптор
CorrelationHandle
Receive: RequestReplyCorrelationInitializer (handle)
SendReply (handle)
12. Workflow-сервис
Виды корреляций (2)
Корреляция на основе содержимого
протокол не поддерживает обмен контекстом
некоторые данные в сообщениях уникально идентифицируют нужный
экземпляр рабочего процесса
QueryCorrelationInitializer (handle, MessageQuery(k1, k2))
Receive:
CorrelatesWith (handle)
CorrelatesOn: MessageQuery(k1, k2)
18. Workflow-сервис
Версионирование
• Несколько версий маршрута на одной конечной точке
• Новые экземпляры рабочих процессов стартуют по
актуальной версии, а старые экземпляры дорабатывают
по старым версиям
• Все версии имеют одинаковое имя сервиса и
уникальные номера
• Контракт всех версий должен быть одинаковым
19. Хостинг Workflow
• Создание новых экземпляров рабочих процессов
• Загрузка существующих экземпляров из хранилища
• Выполнение
• Персистентность
• Приостановка на закладке и возобновление
• Прекращение
• Входные и выходные параметры
• Передача параметров в закладки при возобновлении
• События жизненного цикла процесса
WorkflowApplication
Контейнер (среда выполнения) для WorkflowInstance:
(!) Только один экземпляр рабочего процесса
22. Workflow в DirectumRX
Разработка схем маршрутов
RouteScheme.xml
Активности:
(1) Задание/Уведомление
(2) Подзадача
(3) Условие
(4) Сценарий
(5) Мониторинг
Переходы:
1 2
2 3
3 4
3 5
(True)
(False)
Описание в виде графа
Параллельные ветки, OR/AND
23. Преобразование из схемы в WF-маршрут Задание
Создавать
параллельно ?
ParralelForEach (performers) ForEach (performers)
Create Assignment
CompleteAssignment
Receive
AssignmentCompleted
Event
CreateNext ?
Create Assignment
CompleteAssignment
Receive
AssignmentCompleted
Event
CreateNext =
CheckCreateNext(complete)
True False
True
24. Кастомные кодо-активности
// Активность для создания задания.
CreateAssignment: CodeActivity {
// Идентификатор задачи | Идентификатор исполнителя задания
InArgument<int> TaskId, PerformerId;
// Идентификатор созданного задания.
OutArgument<int> AssignmentId;
// Логика активности.
protected override void Execute(CodeActivityContext context) {
using (var session = new Session()) {
// Получаем данные из контекста.
performer = context.GetValue(this.PerformerId);
mainTask = context.GetValue(this.TaskId);
// Создаём задание.
assignment = session.Create<IAssignment>;
assignment.Performer = performer;
assignment.Status = AssignmentStatus.InProcess;
...
// Сохраняем данные в контекст.
context.SetValue(this.AssignmentId, assignment.Id);
25. Кастомные кодо-активности
• Хранение данных в контексте
• Доступ к закладкам
• Доступ к инфраструктуре
• Дочерние активности + операции с ними
(Schedule, Idle, Abort)
• Максимум логики в коде
26. Проблемы
Есть ограничения на обновление схем workflow
Мониторинги сделаны не оптимально
Сломанный экземпляр просто так поднять не получится
Сложно реализовать хранилище экземпляров workflow