Мы – небольшая команда разработчиков из четырёх человек, и хотим представить на ваш суд свою PaaS, аналог Heroku.
Работая достаточно длительное время на рынке веб-разработки, мы в какой-то момент столкнулись с проблемой грамотного управления приложениями. Настройка своих серверов оказалась для нас не очень быстрым решением, а разнообразие технологий создало дополнительную нагрузку.
Попробовав Heroku в качестве решения, мы поняли, что такое качество и удобство. Единственное, что кусалось – цены. Поэтому около 4-х месяцев назад мы поставили цель сделать свою собственную платформу. И мы ее сделали. Знакомьтесь: Dokkur – первый полноценный PaaS из России!
Что такое Dokkur?
Это дешёвый, но качественный PaaS для сайтов и приложений. Основные компоненты управления на данный момент – web-кабинет, консольный тулбелт и iOS приложение. Начиная с простого, мы постарались сделать максимально удобный и практичный программный комплекс для деплоя приложений небольших проектов.
Одна из его фишек – использование билдпаков (кто не в курсе, смотрите информацию тут), которое позволяет охватить одним махом Ruby, Node.js, Clojure, Python, Java, Gradle, Grails, Scala, Play, PHP, Go, а также custom Docker image.
Поддерживаемые СУБД: CouchDB, Elasticsearch, MariaDB, Memcached, Mongo, MySQL, Nats, Postgres, RabbitMQ, Redis, RethinkDB.
Конечно, если ваше приложение представляет собой комплексную микросервисную систему из миллиона компонент или если вы используете сложную кастомную конфигурацию фронт-сервера, балансировку, а также хотите иметь свой собственный
Основные функции Web-версии
- управление своим аккаунтом;
- CRUD над приложениями;
- управление доменами;
- управление SSL сертификатами;
- управление переменными окружения;
- получение логов операций.
Демонстрация работы и пример деплоя простого «Hello, World!» приложения NodeJS:
Особенности мобильной версии
Можно быстро получить логи и актуальный статус приложения.
Начали с iOS, на очереди Android и Windows Phone. Скриншоты:
|
|
|
|
В ближайшее время (после завершения бета-тестирования) появятся:
- централизованное управление базами данных из веб-интерфейса (пока управление осуществляется из консольного тулбелта);
- получение логов веб-сервера в реалтайм режиме из веб и мобильного клиентов (сейчас доступно в консольном тулбелте);
- централизованное управление Cron-тасками;
- apps team collaboration и совместный доступ к приложениям;
- интеграция с GitHub и Bitbucket;
- быстрое масштабирование количества рабочих процессов веб-сервера.
И самое интересное: мы планируем создание единой базы популярных приложений на множестве технологий для удобного развертывания в 1 клик. Таким образом, если понимаешь, что делаешь – настраивай и деплой приложение руками, если нет – используй готовые конфигурации и разворачивай в один клик. Кстати, вы можете предложить свои варианты этих приложений – их окончательный список еще не сформирован.
Куда нести ваши деньги?
Бета-тестирование запустится в первой половине мая 2016 года. В связи с этим знаменательным событием мы запускаем аттракцион невиданной щедрости. Зарегистрировавшись на нашем сайте до 23:59 MSK 30.04.2016, вы получите полнофункциональный аккаунт с возможностью создавать неограниченное количество приложений. Неограниченное, Карл! Самые активные участники тестирования имеют право получить депозит в нашей системе и ряд дополнительных бонусов.
Активация аккаунтов начнется в первых числах мая. Объемы наших ресурсов пока ограничены, поэтому процесс этот будет происходить порционно.
Провайдерам
Несмотря на достаточную степень определенности нашего инфрастуктурного инструментария, мы открыты к стратегическим предложениям и сотрудничеству с провайдерами. Если у вас есть мысли/идеи по этому поводу или вы располагаете определенными вычислительными ресурсами – будем рады вас выслушать, пишите на business@dokkur.com.
Лирическое отступление директора
Копать землю можно и руками, но есть лопата. Программировать можно и в блокноте, но существуют IDE. Деплоить можно с помощью капистрано и самому писать все скрипты, но есть билдпаки. Приложение можно перезагрузить из консоли, но удобнее нажать одну кнопку на мобильном телефоне – и это тот сервис, к которому мы стремимся.
И так как здесь, на Хабре, собрались лучшие умы российского сегмента IT (считаем, что прогиб засчитан, да?), было бы расточительным не обратиться к нему за комментариями относительно желаемых и ожидаемых фич такого рода продукта.
Рынок PaaS в России достаточно молодой – давайте развивать его вместе!
Комментарии (65)
crezd
06.04.2016 14:57+1А что значит название? И как основан хостинг плане виртуализации/контейнерезации.
onlinevik
06.04.2016 15:10+2Здравствуйте. Спасибо за вопрос. Какие вопросы в плане контейнеризации интересны? Используется Docker, из репозитория приложения (или из тарболла) билдится соответствующий image (тут определяется тип приложения, поднимается весь инвайронмент), каждое запущенное приложение представляет собой контейнер (или несколько контейнеров), далее происходит экспоуз портов и линковка фронт-сервера и друхих запущенных контейнеров данного приложения, если таковые имеются. Семантика названия — суть достаточно неоднозначная, сложно сказать какой именно тут посыл. На данном этапе мы больше акцентируем внимание на функциональной части. Другими словами, название было выбрано практически случайно, но более точно сможет ответить мой коллега, который отвечает за наше развитие. Касаемо технических особенностей, думаю, мы будем делать отдельный обзор. Если есть какие-нибудь конкретные вопросы, пишите в комментарии и мы с радостью включим их в список озвучиваемого материала, интересных моментов было более чем достаточно, есть чем поделиться.
AdaStreamer
06.04.2016 15:26Как отметил мой коллега, мы готовим материал для технического обзора. Если у вас есть список интересных вопросов, мы могли бы их охватить в нем. Общие же архитектурные моменты будут озвучены безоговорочно — система распределенных инстансов, билдпаки, линковка, конфигурация фронт-сервера, балансировка.
crezd
06.04.2016 15:31+1Вопросы такие
— Где находятся сервера(География)
— Если это shared хостинг, есть ли система мониторинга наглых клиентов которые грузят сервер?
— Есть ли auto-scalling?
— Хероку сидит на амазоне поэтому если я буду загружать файлы на s3 — то трафик будет бесплатный. А у вас есть решения хранения файлов?AdaStreamer
06.04.2016 15:561. Основные регионы, доступные для всех инстансов на данный момент: US East, US West, EU Central, EU East, EU West, North Asia.
2. Есть, безусловно, есть. Мы ограничиваем использование памяти и процессорного времени на уровне Докера, приложение не сможет задействовать больше ресурсов, чем ему выделено.
3. Да, из п.2 вытекает возможность увеличения лимитов используемых ресурсов — как в автоматическом, так и в ручном режимах. На этапе бета-теста эта возможность не будет доступна из личного кабинета, но вы можете написать нам заявку на желаемые ресурсы (per application) и мы выставим соответствующие лимиты на ваш акк (или приложение).
4. Мы тоже сидим на амазоне, а если быть точнее, то у нас в данный момент есть комбо из амазона и азура. Насчет хранилища — да, можно использовать тот же s3 (нам для удобства пользователей нужно тогда отмечать, каким провайдером предоставлен тот или иной инстанс — будет сделано), но мы также прорабатываем вариант с перманентным хранилищем, которое будет монтироватся в момент запуска/перезапуска приложения (быстрое, но небольшое хранилище, которое лежит на том же инстансе, что и само приложение), это уже не ephemeral filesystem, как у Хероку, но полноценная фс.crezd
06.04.2016 16:10+2Спасибо за ответы.
Честно, мне не хватает поддержки docker-compose, все мои проекты содержат в корневой папке конфиг компоса и было бы супер удобно если бы деплой система просто бы брала этот конфиг без всяких там билдпаков.
zharikovpro
06.04.2016 17:21+1> 1. Основные регионы, доступные для всех инстансов на данный момент: US East, US West, EU Central, EU East, EU West, North Asia.
При всей важности идеи и начинания это во многом подрывает идею российского PaaS. Если у вас инфраструктура за рубежом, то с Heroku или другими PaaS вы сможете конкурировать разве что по цене, и то с большим трудом (хотя конечно же — успехов!). При этом очень сложно конкурировать по цене с AWS + SysAdmin или c Heroku Free / Hobby.
Также этим решением вы отказываетесь от немалой доли рынка, т.к. в соответствии с законами РФ, сервера и приложения, которые обрабатывают персональные данные, необходимо разворачивать на базе российских хостеров. Если бы вы делали все это на российской инфраструктуре, можно было бы рассматривать данную платформу как вариант в тех случаях, когда хочется удобства близкого к Heroku, но невозможно его использовать указанным выше причинам.AdaStreamer
06.04.2016 17:42Да, вы правы. Мы не отказываемся от размещения на территории РФ, просто с арендой в вышеперечисленных регионах оказалось все достаточно просто. Если не найдем надежного провайдера на территории РФ, нужно будет строить свой ДЦ :-)
biziwalker
06.04.2016 17:27+1По географии еще вопрос: Россия будет? Все таки у нас в стране действует закон №152-ФЗ о персональных данных, обязывающий хранить данные на территории РФ (часть 5 статьи 18).
PS: а вы соблюдаете как компания этот закон?AdaStreamer
06.04.2016 17:40Да, Россия будет. Мы сейчас пытаемся найти надежного Российского провайдера для заключения партнерства.
pachman
06.04.2016 18:30Получается вся текущая архитектура построена на ресурсах Microsoft Azure?
AdaStreamer
06.04.2016 18:31В данный момент это ресурсы MS Azure, AWS и несколько серверов на DigitalOcean
biophreak
06.04.2016 16:21Я так понял, что Вы используете Dokku для менеджмента билдпаков и для деплоя (в т.ч. создания поддомена итд)?
Какие плагины dokku используете?biophreak
06.04.2016 16:26+1В частности интересуют вот эти (https://github.com/Zenedith/dokku-varnish-plugin, github.com/dokku/dokku-maintenance и github.com/dokku/dokku-letsencrypt).
Есть ли в планах их добавить? Спасибо.
Я просто для проекта сейчас использую dokku, но хотелось бы полностью hosted решения.AdaStreamer
06.04.2016 16:30+1На данный момент из тех, которые не идут в дефолтной поставке, используем только плагины для всех СУБД. С вашими плагинами ознакомимся, включим в список. Спасибо.
onlinevik
06.04.2016 16:42+1Только что получил информацию, что плагин dokku-maintenance будет доступен в бета-версии.
Мы сделаем список плагинов и поддерживаемых версий.
leoismyname
06.04.2016 16:28Зарегистрировался на платформе давненько, но ни привета, ни ответа. Нужно дождаться мая?
AdaStreamer
06.04.2016 16:31Да, у нас до недавнего времени была неопределенность в отношении команды и мы не делали никаких публичных заявлений и анонсов. Если не секрет, то откуда вы узнали о нас?
leoismyname
06.04.2016 16:34Блок «Новые компании» на главной странице Хабра, какое-то время там висел Dokkur. Регнулся еще в феврале.
AdaStreamer
06.04.2016 16:38Мы развивались постепенно и не планировали до каких-либо публичных заявлений открывать регистрацию. Я видел новых пользователей, но в условиях полной неопределенности с серверами/инфраструктурой, решил не активировать аккаунты до бета-теста.
AdaStreamer
06.04.2016 16:38Теперь заявление о запуске сделано публично, отступать некуда, в мае ждите письмо с активационной ссылкой :-)
AlekseyArh
06.04.2016 16:42-5Почему всё на басурманском? Что за мода пошла делать проекты для всех, кроме русскоговорящих?
onlinevik
06.04.2016 16:46+5Аудитория шире. Как правило, IT специалисты знают английский язык достаточно хорошо. Это международный язык, поэтому именно он и был выбран. Плюс, мы утрясали определенные моменты с руководством проекта Dokku (в отношении прав использования), и нам было необходимо предоставить полную информацию о продукте на доступном для всех языке. Двух зайцев, так сказать. Мы добавим поддержку русского языка, но следующей итерацией, ибо переводу подлежит не только фронт-часть, но и ряд серверных компонент, уведомления и пр.
Makito
06.04.2016 16:54-1Просто вы и в статье и на сайте уточняете что сервис из России..., давайте развивать PaaS в России вместе..., а сам ресурс на инглише. Лицемерненько как то, имхо.
AdaStreamer
06.04.2016 17:02+3Соглашусь, в этом есть определенный диссонанс, но причины для использования английского языка достаточно весомые. Призыв к совместному развитию — призыв показать всему миру, что в России мы можем сделать отличный продукт. Ограничившись одним русским языком, в мире никто нас не сможет понять. Повторюсь, что мы добавим русский язык, но следующей итерацией.
AlekseyArh
06.04.2016 17:59-2Я в эту новость попал после поиска статей по Heroku. Сидеть тупить в интерфейсе Heroku или найти переведённый аналог.
Меня привлёк заголовок «из России», я на радостях подскочил и выкинул англо-русский словарь в окно, а оказалось что всё так же как и у всех.
Никто не просит ограничиваться, приложения нужно делать максимально мульти язычными.
Тут не вопрос патриотизма, тут вопрос удобства интерфейса на подсознательном уровне. Язык который знаешь != родной язык.
В общем надеюсь фраза: «мы добавим русский язык» это не кормление завтраками как у продуктов jetbrains.
litvin
06.04.2016 17:20Почему решили писать свое? Чем не устроили CloudFoundry/OpenShift/Kubernetes?
Высокий порог вхождения? Отсутствие какого то функционала?AdaStreamer
06.04.2016 17:39Тут еще стоит вопрос в масштабируемости, простоте расширения плагинами, различными субд и пр. Как говорится, в истории не может быть предположений и слов «если», и сейчас мы имеем то, что имеем, но ваш вопрос корректен. Мы делали ресерч на предмет готовых платформ/решений. Тестированием разных платформ занимались разные люди, решение не использовать их было принято в сознательном режиме :-)
Если интересен сам ресерч, я могу поднять записи и чуть позже выдать отчет, но скорее всего, это будет материал для другой статьи. Сейчас мы анонсируем бета-запуск и набираем аудиторию.litvin
07.04.2016 10:17Конечно материалы исследований были бы интересны, хотя если им более полу-года то высока вероятность устаревания.
Я из мира Cloud Foundry и не по наслышке знаю, как быстро может меняться функционал и даже архитектура. Знаю и количество вопросов которые приходиться решать при построении такой системы. Успехов вам.
wiredRequired
06.04.2016 17:22А когда прайс можно будет посмотреть?
Очень интересно, на сколько от Heroku отличаться будете в цене.onlinevik
06.04.2016 17:30Фин модель находится в процессе корректировки, мы проводим нагрузочное тестирование. Как только прайс будет готов, мы сделаем рассылку. Подпишитесь на наши новости.
onlinevik
06.04.2016 17:47Да, будут.
ihormanchik
06.04.2016 18:47+1Как вы собираетесь заходить на рынок хостинг и сервис провайдеров? Ведь очевидно продукту еще необходим биллинг и вся остальная экосистема, без которой продукт пока не более чем прототип, совершенно не подготовлен для бизнеса.
Хотя вынужден признаться — выглядит интересно, хоть и очень сыро еще.
Успехов вам.onlinevik
06.04.2016 19:05Мы идем по концепции MVP, в данный момент нас больше всего интересует обратная связь. Биллинг и прочее это про деньги все же, на данном этапе нас интересует мнение пользователей. Биллинг будет в тот момент, когда мы будем готовы брать деньги за наш продукт, в данный момент это больше прототип как вы верно подметили. Но до этапа приема оплаты еще очень много работы.
Мы рады что вам понравилось, спасибо.
onlinevik
06.04.2016 19:05Система учета пользовательских ресурсов у нас имеется, биллинг — в процессе, после окончания нагрузочного тестирования и бета-тестирования, мы включим этот модуль. Мы посчитали, что в демонстрацию включать формочки, где мы просим пользователя вбить данные CC — неуместно, ибо чем тут хвастаться? «Смотрите, мы можем списать с вас деньги»? Сейчас у нас такой посыл, что прежде всего — работоспособность самого продукта. Для фин. модели есть несколько вариантов — ребята сейчас выбирают наиболее жизнеспособную и без нагруз.тестирования это, к сожалению, сделать невозможно. «Вся остальная экосистема» — это что?
ihormanchik
06.04.2016 19:21+1спасибо за ответ
>>> «Вся остальная экосистема» — это что?
— встроенный мониторинг для приложений и система оповещений
— система репортов (если таки собираетесь работать с провайдерами)
— failover и disaster recovery (для пользовательских данных, т.к. они будут скорее всего жить не в контейнерах, а рядом)
— система колаборации и разграничения прав в рамках одного совместного проекта для проектов, над которыми работают более одного человека
— локализации под провайдеров (куда без этого)
— шаблоны для CI/CD паттернов, если хотите, чтоб это действительно приносило пользу, а не только симпатишно крутило helloworld
— поддержка оверлейных сетей (возможно я не был очень внимательный, но этого я не увидел, а ведь если это PaaS для публичного облака, то без этого будет тяжело, ведь среды пользователей необходимо изолировать)
— в конце-концов cli клиент / открытый API
— вагон документации
и уж поверьте, это только начало из огромнейшего списка…
тем не менее, если мотивации у вашей команды предостаточно, то все у вас получится
good luck ;)AdaStreamer
06.04.2016 19:28Множество из того, что вы перечислили у нас уже имеется, но множество — нет, отдельное спасибо за упоминание про CI — этот вопрос стоит достаточно остро. Спасибо, что верите в нас :-)
leoismyname
06.04.2016 23:40Платформа построена на решении под названием Dokku (не отечественная разработка, внезапно). Там есть и клиент, и документация, и плагины, и куча всего другого. Про CI не понял, публикуется, как и на Heroku – через git push, а прогон тестов и сбор каких-то аналитических данных, думаю, будет на плечах самих пользователей сервиса – тебе предоставляют платформу, а ты уже крутишь, как хочешь.
ihormanchik
06.04.2016 23:49leoismyname, не просто CI, а CI/CD (значит включая continuous delivery), запушить изменения гитом и собрать имедж, пушнуть его в регистри — это 1% от всего процесса, а вот если платформа умеет еще прозначно редеплоить без даунтайма, использовать живую миграцию для statefull исключений из on-premise на хибридное облако по регионам, уметь балансировать автоматически ворклоады (по континентам через оверлейные сети) и что самое важное делать это на лету без ручных вмешательств оператора (концепция NoOps) — тогда это уже next level.
Уверен, что ребята из Dokku и это прикрутят, но все постепенно. Чтоб научиться ходить — сначала нужно научиться ползать, иначе не бывает.leoismyname
07.04.2016 00:25Частично, ответственность за это лежит на Docker и Heroku – источниками решений, за которыми неспешно идет Dokku. Стоит, наверное, отметить, что сам по себе Dokku минимален, написан на Bash, по заверениям авторов укладывается в 200 строк и построен всего на трех компонентах – Buildstep (сборка), Docker (контейнеры), Gitreceive (хук для git push).
Вместо реализации pre-deploy хуков, в Dokku есть CHECKS-файлы, точнее один, который обеспечивает подобие zedo-downtime deployment (рядом с опубликованным контейнером поднимается еще один, тестируется согласно правилам описанным в CHECKS и, если все ок, контейнеры переименовываются, старый контейнер удаляется через несколько минут). Роллбэки так же можно делать, опять таки, используя написанный кем-то плагин для Dokku + свой/чужой Docker registry (это если про код).
Сам я Heroku не использовал, но знаю, что тонкие настройки приложения там описываются в, скажем так, «манифест» файле в формате json, в котором перечисляются зависимости разворачиваемого приложения (например, нужно поднять инстанс монго), указываются пути для пре и пост деплой хуков.
Документация в Dokku скромна, потому что сам инструмент звезд с неба не хватает. Если есть интерес, можно так же посмотреть в сторону Flynn и Deis. Тоже Open source, тот же подход с билдпаками, но более размашисто.
whimzey
06.04.2016 20:45+1Прямо вау! Приятно видеть, что кто-то в России занимается подобными разработками. У меня вопрос: вы намерены поддерживать популярные php cms? В частности интересует Wordpress. Если да, то будут ли какие-нибудь демо-материалы, наподобие того, что уже есть в статье, но только с комментариями? Спасибо.
AdaStreamer
06.04.2016 20:54Да, поддержка WP будет, материалы тоже снимем. Смело регистрируйтесь!
whimzey
06.04.2016 21:12+2Ок, спасибо. Надеюсь, вы обойдете хероку, это будет прям национальная гордость)))
zartdinov
07.04.2016 06:35Dokkur ..., cвоя PaaS,… из России… Простите, но пост немного высокомерный по отношению к сообществу и разработчикам Dokku, несмотря на вашу работу по написанию интерфейса с биллингом и развертыванием. В любом случае, искренне рад вашему успеху. Всегда существовало недопонимание, почему в России везде всякие VDSmanager и доступ по FTP, когда даже обычные разработчики пишут на хабре посты как поднимать свою инфраструктуру с помощью Docker Swarm и тд.
AdaStreamer
07.04.2016 06:50Я не соглашусь, что наши действия высокомерны.
1. Мы написали не просто интерфейс с биллингом и «развертыванием». Сам докку однопользовательский и не поддерживает кластеризацию. У нас написана огромная прослойка между докку и пользователем в виде инстанс-апи, коммуникацию с которым делает центральное приложение. Это, наверное, самая большая наша собственная разработка в данном проекте, помимо автоматизации управления ДНС, системы делегирования доступов пользователей к cli и api методам. И это только верхушка айсберга, поверьте.
2. Все наши действия целиком и полностю согласованы с Джефом Линдсеем (создателем и правообладателем того самого Докку). 25 января этого года у нас была конференция с их командой, по результатам которой мы получили одобрение своих действий.zartdinov
07.04.2016 11:09Спасибо, этот комментарий куда интересней статьи в стиле «Ubuntur — первая OSaaS из России, недорогой аналог Microsoft»
onlinevik
07.04.2016 15:17+1Эта статья, анонс сервиса, технические подробности будут, но это будет совершенно другая статья, подписывайтесь на наш блог, мы только начали рассказывать о нашем проекте. Будет еще много всего интересного, и конечно будут именно технические статьи, где мы осветить технические и архитектурные особенности нашего проекта.
VolCh
08.04.2016 10:42+1Вторая часть комментария интересна даже больше первой :) Как раз в анонсе это надо было упомянуть, что не просто взяли чужое решение (пускай и опенсорс) и написали обертку к нему, а сотрудничаете с его разработчиками.
IvanPanfilov
07.04.2016 12:19-3взяли бы готовую OpenShift платформу и разворачивали для клиентов на Российских серваках
-> понятная платформа, наработаная база типовых приложениий и картриджей
https://www.openshift.com/features/cartridges.html
https://marketplace.openshift.com/
и проработанные методы создания своих картриджей -> профит
к чему эти велосипеды? вобщем вангую — что загнется.
itruf
Успехов, парни!
AdaStreamer
Здравствуйте. Спасибо большое!