Привет, ясно, что на разработке существует огромное разнообразие навыков и опыта. К. У каждого человека, вероятно, есть 1% от того, что есть у всех, может быть, 0,01%.
Обо мне В настоящее время я работаю над стартапом платформы недвижимости (Findigl) и строительство ассоциированных продуктов для моей компании с ограниченной ответственностью. Это означает, что я не работаю, но начинаю искать контракты и работы клиента.
Info Rhino Limited Мой блог Платформа недвижимости — WIP
Осмеливается быть другим
Tldr В этом посте есть вопрос, мне нужна помощь в понимании способов, которыми вы пытаетесь достичь автоматизации рабочей нагрузки? Бонус в том, что вы можете увидеть, как это делают предприятия. Вы также можете увидеть, как платформы развиваются посредством планирования и препятствий.
Могу я попросить вас прокомментировать вопросы, поднятые в конце, пожалуйста?
Запуск процессов в организации
Недавно я закончил и успешно проверил набор приложений, которые я называю IRPA (Info Rhino Process Automation). Эта статья просто для того, чтобы понять типы проблем, с которыми вы сталкиваетесь с автоматизацией рабочих нагрузок.
Я .net/Разработчик бизнес -разведки, многие бывшие контракты всегда влекали за собой бегущие партии. Было два типа клиентов;
- Те, кто ничего не понимает о запуске партий и использует агент SQL Server или планировщик Oracle, думая, что этого достаточно.
- Те, кто хочет привить общему подходу для предприятия, используя структуру пакетной обработки, такую как Control-M (Best), Dollar Universe (ужасная), Autosys (So-So).
Два бесконечно лучше, но у него много недостатков. Некоторые из них включают;
- Эзотерический и, следовательно, требуется высокая передача знаний.
- Скучно для разработчиков.
- Помимо возможностей функциональных тестеров, чтобы понять (извините тестеров).
- Сложные процессы высвобождения.
- Часто не создается в разработке из -за проблем лицензирования.
- Плохое качество партийного развития, потому что сотрудники не заинтересованы в его изучении.
- Узкие места в развертывании. Артефакты приложения могут быть готовы к выпуску, а теперь и необходимо развивать партии.
Вау, это звучит так архаично?
Большинство зрелых предприятий имеют существенные архитектуры обработки данных. Естественно, потоковая передача, машинное обучение, noSQL, микросервисы могут помочь облегчить необходимость партий, но по одной важной причине. Большинство приложений никогда не будут работать с масштабируемыми архитектурами, целостность их данных, надежности и производительности лучше всего обслуживаться вне этих подходов.
Что такое пакетная обработка (BPFS)?
Для тех, кто не знает. BPF запускают последовательность процессов в задаче.
Как правило, эти процессы могут быть приложением, хранимой процедурой, вызовом веб -службы, операцией управления файлами или пакетом ETL. Есть очень веская причина, почему BPF очень эффективны — они прекращают разработку огромных монолитных применений. Они поощряют логические единицы работы — то есть обязанности, и позволяют вам определить точки неудачи. Их лучшая функция — разные команды могут просматривать статус партии предприятия графически.
Еще одним большим преимуществом для BAFS они скрывают специализированные знания. Пакетные операторы/вспомогательный персонал могут не понимать, как кодировать Python, Java или записать отчеты. Они могут, посмотреть на коды ошибок и определить, где не удалась партия.
Простой пример процесса с использованием BAF
Каждый из них будет работой.
- Обнаружение нового файла.
- Таблица усечения в базе данных и файл загрузки.
- Запустите приложение издателя. Каждая задача объединяется вместе через зависимости. BAF рассматривает каждое задание как процесс, способный принимать входные данные и возвращать выходы. Как правило, каждое приложение возвращает код со значением 0 для успеха или другим кодом для представления сбоя. Конечно, определение того, что сбой, является сложной вещью — возможно, файлы журналов контролируются через Nagios, может также обнаружить ошибки.
Дальнейшие концепции, связанные с партиями
- Параллелизация Анкет Позволить заданиям работать одновременно, чтобы сократить время обработки.
- Исполнение событий Анкет Иногда работа должна быть активирована/запускается на основе события. Например, просмотр файла.
- Запланированное исполнение Анкет Влечет за собой настройку времени, в котором должна работать работа.
- — Дата заказа/Дата блокировки/дата бизнеса Анкет (Даже не уверен, как их называют). На предприятиях, выполняющих ежедневную отчетность, очень важно иметь дату, на которую может ссылаться вся система. Это позволяет повторить рабочие места и процессы за несколько дней до этого, и даже будущие даты при тестировании данных.
Мысли о BAFS
Они зверь. Ни один разработчик не влюблен в них, но без них у нас было бы огромное количество различных подходов к выполнению приложений без контроля. Который, когда ваша организация может иметь миллионы логических единиц работы, проходившие в день, потребности в управлении.
Почему мне пришлось создать новый подход для сочетания выполнения, развертывания, планирования и конфигурации
Архитектурное видение платформ, над которыми я работаю, простое — «я никогда не хочу писать какой -либо код». Естественно, это редко случается, примеры включают в себя;
- Я мог бы использовать что -то вроде командной линии Winzip, а не писать свою собственную версию (которую я написал, но в любом случае).
- Публикация данных через FTP может использовать командную линию WINSCP.
Из работы на предприятиях казалось очевидным, что есть все эти очень умные люди, неспособные технически общаться друг с другом, потому что их навыки настолько разнообразны. То, что эти сложности должны быть над чем -то столь, кажущимся тривиальным, как автоматизация партии, но жизненно важная, ошеломляет.
Начальные проблемы
- Было слишком много задач, чтобы справиться без лидера (так я подумал).
- Я не хотел платить большую лицензию за инструмент планирования предприятия.
- Большинство/все процессы были исполняемыми файлами с различными конфигурациями.
- Некоторые процессы выиграли от работы параллельно.
- Я не хотел вручную настраивать каждую работу. (В конце концов я написал подход сопоставления шаблонов для обнаружения рабочих мест).
- Параллель имел разные настройки экземпляров. ### возможные решения после большого анализа, были некоторые возможные .NET Основанные подходы;
- Wexflow (многому научиться).
- Кварц. Сеть
- Схема. Io.
- Azure Parath (предполагайте, что это довольно хорошо, но не использует облачный банкомат). Основная проблема со всеми партийными заданиями типа программиста заключается в том, что они требуют дополнительных усилий по разработке для настройки. Они, казалось, были экспозицией беглых интерфейсов с магическими струнами.
Мне нравятся все из них, все, все — если бы у меня была команда, определенно рассмотрел бы их использование, поскольку они все потрясающие.
Дальнейшие проблемы
Помните, как я упоминал, что было много приложений? Ну, это было больше, что было много способов, которыми можно было запустить программы. Одним из них был двигатель скребки, другой — анализатор содержимого файла, один специализированный архивер. В других случаях я называю SQLCMD.Exe с файлом параметров (а не настройкой пакета SSIS).
Управление выпуском было полностью проблемой для этого. Интеграционное тестирование показало, что было много небольших ошибок, но развертывание было очень сложным.
Итак, я рассмотрел подход с непрерывной интеграцией/сервером сборки;
- Дженкинс (работал с этим раньше). Огромное количество плагинов, которые могут быть немного пробными и ошибками.
- Octopus развернут (никогда не использовал его, но выглядел хорошо).
- Решил не использовать бамбук (использовал его раньше, хороша, требуется лицензия), и вам действительно нужно начать рассмотреть возможность использования большого количества набора Atlassian.
- Командный город.
Что я нашел, как только начал пилотировать инструмент непрерывной интеграции?
- Многое научиться.
- Много для настройки.
- Я чувствовал, что необходимо начать писать проекты MSBuild для запуска модульных тестов, тестов данных, управления развертыванием конфигурации.
- Управление выпуском само по себе является ролью (DevOps).
- Это не помогло мне распутать различные конфигурации в производстве, уже развернутые.
Перенесемся в IRPA и мой новый набор продуктов
В конце концов я сдался. Я бросил попытку добавить больше коммунальных услуг и приложений, чтобы управлять всем, потому что я чувствовал, что это было за пределами одного человека. В настоящее время существуют три приложения;
- Исполнитель (оригинал) Анкет Учитывая файл определения задания, запускает задание один за другим и параллельно, если это необходимо. Нет необходимости (кроме улучшений) для написания кода этого приложения.
- Процессор исполнителя (исходный/усиленный) Анкет Принимает настроенные партии, исполняемые файлы и задания для создания файла определения задания. Важно отметить, что теперь мы можем объединить несколько партий и открывать для себя исполняемые файлы.
- Полный развертыватель Анкет Выполняет множество функциональности и была недостающейся ссылкой, основная функциональность включает в себя; — Обнаружает конфигурацию производства и неисполняющие возможности, возвращая соответствующие артефакты (файлы конфигурации, файлы настроек) к разработке. — При необходимости создает фиктивные артефакты в области шаблона. Помогает сотрудникам знать, что ожидается. — Развертывает приложения и конфигурацию для интеграции/производства. — По желанию выполняет приложения после выпуска. ### Результаты, которые у меня были каким -то образом, до того, как я создал irfulldeployer, кропотливо настроив дополнительные приложения PowerShell, пакетные файлы, MSBuild. Я считаю, что у меня было около 350 экземпляров приложений, работающих более 9 партий.
После улучшения приложения процессора исполнителя и создания полного приложения развертывания. Мне удалось распутать этот беспорядок в течение 2 дней, повторно используя существующий пакетный руководитель.
Теперь я могу развернуть весь набор приложений в течение десяти минут. Когда я нахожу ошибки, я могу перераспределить и начать тестирование.
Это, безусловно, не идеально, должен быть фронт, и планируется много будущих улучшений.
Будущее IRPA?
Ну, у меня запланировано много функций, и все же — не слишком много. Я хотел бы перенести его в .net Ядро (честно говоря, это не имеет большого значения). Я не вижу этого как инструмент планирования партий или решение непрерывного интеграции, но у него есть очень мощные варианты использования, которые помогут предприятиям оптимизировать свои процессы и для таких стартапов, как я — оставаться конкурентоспособными с очень низким количеством разработчиков (один в момент). Я не хочу, чтобы это стало этим обширным решением. Набор приложений, вероятно, занял у меня несколько месяцев разработки за пару лет. Что захватывающе, так это то, о чем могут подумать другие разработчики (исключенный ужасный код: D).
Могу я попросить вас ответить на следующее;
- Что .net Планирование, CI и инструменты автоматизации вы используете? Можете ли вы уточнить свой опыт?
- Вы использовали Hangfire, Quartz. Net, Wexflow, другие?
- Вы использовали платформы планирования предприятий/BAF? Что вам нравится и не нравится в них?
- Вы поняли, о чем был мой блог, или были неясны определенные очки?
- Хотели бы вы сотрудничать со мной в будущем. Есть планы на части этого открытого исходного кода. Одна идея, которую я имею, состоит в том, чтобы построить фронт-конец и инструмент отчетности?
- Как вы думаете, предполагая, что вы работаете в организации, они заплатили бы за это? Вы знаете, что они платят за другие продукты? (Мне нравится Hangfire.io, потому что они дают цену).
- Как бы вы приступили к тому, что я сделал только с одним разработчиком?
Я очень ценю ответы — хорошие или плохие.
Написано с Stackedit Анкет
Оригинал: «https://dev.to/zakwillis/please-help-me-understand-my-target-product-better-how-do-you-automate-your-artefacts-and-applications-4pdf»