Два года назад я запустил первую версию Cronhub. Я начал его как инструмент Cron Monitoring и помог тысячам разработчиков отслеживать их работу cron. Сегодня я рад объявить о запуске нового продукта, который я называю Scheduler, и немного напишу о своих будущих целях.

Cronhub Scheduler - это планировщик заданий для автоматизации рабочих процессов и выполнения заданий на повторяющейся основе. Я создал планировщики для разработчиков, которые не любят работать с серверами и сложными задачами cron. Думайте об этом как о более удобной альтернативе традиционным заданиям cron.

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

Почему планировщик?

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

Работа с серверами или контейнерами сложна и утомительна. Developer Experience (DX) просто еще не существует. Вместо того, чтобы сосредоточить наши усилия на создании потрясающих продуктов, мы зацикливаемся на написании бэкэнд-конвейеров, планировании заданий cron, службах мониторинга и написании API-интерфейсов для подключения серверной части к нашим сайтам или мобильным приложениям.

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

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

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

Давайте на мгновение вспомним Kubernetes. Думаю, через 5–10 лет мы будем говорить о Kubernetes так же много, как сейчас говорим о Linux. Большинство из нас не работают напрямую с уровнем ОС (операционной системы), а работают с инструментами более высокого уровня, которые помогают нам управлять состоянием системы. Так что, возможно, через 5 лет Kubernetes станет следующей эволюцией ОС, которой большинство людей может пренебречь при написании серверного программного обеспечения. Облачные инновации позволяют это сделать, и мы должны в полной мере использовать их.

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

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

Как работает Планировщик?

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

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

Расписание может быть любым выражением cron (например, 0 0 * * *) или временным интервалом (например, every 3 hours). Мне намного проще работать с простыми временными интервалами, но большинство людей, которым нужны более сложные расписания (например, every Wed on 5 pm EST), предпочитают выражения cron.

Мы запустили планировщик только с целевыми URL-адресами, но с этой целью мы хотели расширить его. Возможности безграничны. Представьте себе рабочий процесс, в котором вы можете включить свои бессерверные функции в Cronhub и легко запланировать их запуск через согласованный пользовательский интерфейс. Это всего лишь один пример, но у меня есть много вещей, над которыми я хочу поработать.

Мониторинг и планирование вместе

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

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

Только платные планы

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

С этого момента я не буду поддерживать ни один бесплатный тарифный план. У нас есть 3 доступных плана для всех разработчиков и команд - Starter (5 долларов / м), Pro (12 долларов / м) и Startup (49 долларов / м). Конечно, мы также предоставляем индивидуальные пакеты для пользователей, которым нужен план, разработанный с учетом их потребностей. Я удалил всех существующих бесплатных пользователей. Они по-прежнему могут продолжать использовать Мониторинг бесплатно.

Честно говоря, я нервничаю по поводу этого изменения. За всю свою карьеру разработчика я построил много сайд-проектов и раздавал их бесплатно. Я не жалею об этом, но знаю, что для меня это не жизнеспособно. Сегодня я меняю это на Cronhub, чтобы сосредоточиться на нем в долгосрочной перспективе. Я очень рад видеть, как это пойдет.

Что дальше?

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

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

Быстрая демонстрация

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

Также я записал небольшое веселое видео, если вам нравится смотреть видео :)

А пока, если вы читаете это, вы можете подписаться на меня в Twitter. У меня также есть список рассылки, в котором я делюсь своими знаниями и мыслями о создании бизнеса по разработке программного обеспечения. Если вам это нравится, то вы можете подписаться здесь.

Первоначально опубликовано на https://blog.cronhub.io 26 мая 2020 г.