Dokkur – первый PaaS из России

    Привет, Хабраюзеры!
    Мы – небольшая команда разработчиков из четырёх человек, и хотим представить на ваш суд свою PaaS, аналог Heroku.

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

    Попробовав Heroku в качестве решения, мы поняли, что такое качество и удобство. Единственное, что кусалось – цены. Поэтому около 4-х месяцев назад мы поставили цель сделать свою собственную платформу. И мы ее сделали. Знакомьтесь: Dokkur – первый полноценный PaaS из России!

    image


    Что такое 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.

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

    Основные функции Web-версии


    • управление своим аккаунтом;
    • CRUD над приложениями;
    • управление доменами;
    • управление SSL сертификатами;
    • управление переменными окружения;
    • получение логов операций.

    Демонстрация работы и пример деплоя простого «Hello, World!» приложения NodeJS:



    Особенности мобильной версии

    Можно быстро получить логи и актуальный статус приложения.
    Начали с iOS, на очереди Android и Windows Phone. Скриншоты:

    image

    image

    image

    image


    В ближайшее время (после завершения бета-тестирования) появятся:
    • централизованное управление базами данных из веб-интерфейса (пока управление осуществляется из консольного тулбелта);
    • получение логов веб-сервера в реалтайм режиме из веб и мобильного клиентов (сейчас доступно в консольном тулбелте);
    • централизованное управление Cron-тасками;
    • apps team collaboration и совместный доступ к приложениям;
    • интеграция с GitHub и Bitbucket;
    • быстрое масштабирование количества рабочих процессов веб-сервера.


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

    Куда нести ваши деньги?


    Бета-тестирование запустится в первой половине мая 2016 года. В связи с этим знаменательным событием мы запускаем аттракцион невиданной щедрости. Зарегистрировавшись на нашем сайте до 23:59 MSK 30.04.2016, вы получите полнофункциональный аккаунт с возможностью создавать неограниченное количество приложений. Неограниченное, Карл! Самые активные участники тестирования имеют право получить депозит в нашей системе и ряд дополнительных бонусов.

    Активация аккаунтов начнется в первых числах мая. Объемы наших ресурсов пока ограничены, поэтому процесс этот будет происходить порционно.

    Провайдерам


    Несмотря на достаточную степень определенности нашего инфрастуктурного инструментария, мы открыты к стратегическим предложениям и сотрудничеству с провайдерами. Если у вас есть мысли/идеи по этому поводу или вы располагаете определенными вычислительными ресурсами – будем рады вас выслушать, пишите на business@dokkur.com.

    Лирическое отступление директора


    Копать землю можно и руками, но есть лопата. Программировать можно и в блокноте, но существуют IDE. Деплоить можно с помощью капистрано и самому писать все скрипты, но есть билдпаки. Приложение можно перезагрузить из консоли, но удобнее нажать одну кнопку на мобильном телефоне – и это тот сервис, к которому мы стремимся.

    И так как здесь, на Хабре, собрались лучшие умы российского сегмента IT (считаем, что прогиб засчитан, да?), было бы расточительным не обратиться к нему за комментариями относительно желаемых и ожидаемых фич такого рода продукта.
    Рынок PaaS в России достаточно молодой – давайте развивать его вместе!
    Dokkur
    0,00
    Компания
    Поделиться публикацией
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама

    Комментарии 67

      +4
      Успехов, парни!
        0
        Здравствуйте. Спасибо большое!
        +1
        А что значит название? И как основан хостинг плане виртуализации/контейнерезации.
          +2
          Здравствуйте. Спасибо за вопрос. Какие вопросы в плане контейнеризации интересны? Используется Docker, из репозитория приложения (или из тарболла) билдится соответствующий image (тут определяется тип приложения, поднимается весь инвайронмент), каждое запущенное приложение представляет собой контейнер (или несколько контейнеров), далее происходит экспоуз портов и линковка фронт-сервера и друхих запущенных контейнеров данного приложения, если таковые имеются. Семантика названия — суть достаточно неоднозначная, сложно сказать какой именно тут посыл. На данном этапе мы больше акцентируем внимание на функциональной части. Другими словами, название было выбрано практически случайно, но более точно сможет ответить мой коллега, который отвечает за наше развитие. Касаемо технических особенностей, думаю, мы будем делать отдельный обзор. Если есть какие-нибудь конкретные вопросы, пишите в комментарии и мы с радостью включим их в список озвучиваемого материала, интересных моментов было более чем достаточно, есть чем поделиться.
            0
            Как отметил мой коллега, мы готовим материал для технического обзора. Если у вас есть список интересных вопросов, мы могли бы их охватить в нем. Общие же архитектурные моменты будут озвучены безоговорочно — система распределенных инстансов, билдпаки, линковка, конфигурация фронт-сервера, балансировка.
              +1
              Вопросы такие
              — Где находятся сервера(География)
              — Если это shared хостинг, есть ли система мониторинга наглых клиентов которые грузят сервер?
              — Есть ли auto-scalling?
              — Хероку сидит на амазоне поэтому если я буду загружать файлы на s3 — то трафик будет бесплатный. А у вас есть решения хранения файлов?
                0
                1. Основные регионы, доступные для всех инстансов на данный момент: US East, US West, EU Central, EU East, EU West, North Asia.
                2. Есть, безусловно, есть. Мы ограничиваем использование памяти и процессорного времени на уровне Докера, приложение не сможет задействовать больше ресурсов, чем ему выделено.
                3. Да, из п.2 вытекает возможность увеличения лимитов используемых ресурсов — как в автоматическом, так и в ручном режимах. На этапе бета-теста эта возможность не будет доступна из личного кабинета, но вы можете написать нам заявку на желаемые ресурсы (per application) и мы выставим соответствующие лимиты на ваш акк (или приложение).
                4. Мы тоже сидим на амазоне, а если быть точнее, то у нас в данный момент есть комбо из амазона и азура. Насчет хранилища — да, можно использовать тот же s3 (нам для удобства пользователей нужно тогда отмечать, каким провайдером предоставлен тот или иной инстанс — будет сделано), но мы также прорабатываем вариант с перманентным хранилищем, которое будет монтироватся в момент запуска/перезапуска приложения (быстрое, но небольшое хранилище, которое лежит на том же инстансе, что и само приложение), это уже не ephemeral filesystem, как у Хероку, но полноценная фс.
                  +2
                  Спасибо за ответы.
                  Честно, мне не хватает поддержки docker-compose, все мои проекты содержат в корневой папке конфиг компоса и было бы супер удобно если бы деплой система просто бы брала этот конфиг без всяких там билдпаков.
                    +1
                    > 1. Основные регионы, доступные для всех инстансов на данный момент: US East, US West, EU Central, EU East, EU West, North Asia.

                    При всей важности идеи и начинания это во многом подрывает идею российского PaaS. Если у вас инфраструктура за рубежом, то с Heroku или другими PaaS вы сможете конкурировать разве что по цене, и то с большим трудом (хотя конечно же — успехов!). При этом очень сложно конкурировать по цене с AWS + SysAdmin или c Heroku Free / Hobby.

                    Также этим решением вы отказываетесь от немалой доли рынка, т.к. в соответствии с законами РФ, сервера и приложения, которые обрабатывают персональные данные, необходимо разворачивать на базе российских хостеров. Если бы вы делали все это на российской инфраструктуре, можно было бы рассматривать данную платформу как вариант в тех случаях, когда хочется удобства близкого к Heroku, но невозможно его использовать указанным выше причинам.
                      0
                      Да, вы правы. Мы не отказываемся от размещения на территории РФ, просто с арендой в вышеперечисленных регионах оказалось все достаточно просто. Если не найдем надежного провайдера на территории РФ, нужно будет строить свой ДЦ :-)
                      +1
                      По географии еще вопрос: Россия будет? Все таки у нас в стране действует закон №152-ФЗ о персональных данных, обязывающий хранить данные на территории РФ (часть 5 статьи 18).

                      PS: а вы соблюдаете как компания этот закон?
                        0
                        Да, Россия будет. Мы сейчас пытаемся найти надежного Российского провайдера для заключения партнерства.
                          +1
                          Посмотрите в сторону Selectel, у них хорошая репутация тут)
                        0
                        Получается вся текущая архитектура построена на ресурсах Microsoft Azure?
                          0
                          В данный момент это ресурсы MS Azure, AWS и несколько серверов на DigitalOcean
                  0
                  Я так понял, что Вы используете Dokku для менеджмента билдпаков и для деплоя (в т.ч. создания поддомена итд)?
                  Какие плагины dokku используете?
                    +1
                    В частности интересуют вот эти (https://github.com/Zenedith/dokku-varnish-plugin, github.com/dokku/dokku-maintenance и github.com/dokku/dokku-letsencrypt).
                    Есть ли в планах их добавить? Спасибо.
                    Я просто для проекта сейчас использую dokku, но хотелось бы полностью hosted решения.
                      +1
                      На данный момент из тех, которые не идут в дефолтной поставке, используем только плагины для всех СУБД. С вашими плагинами ознакомимся, включим в список. Спасибо.
                        +1
                        letsencrypt очень интересный, обязательно включим
                        +1
                        Только что получил информацию, что плагин dokku-maintenance будет доступен в бета-версии.
                        Мы сделаем список плагинов и поддерживаемых версий.
                      0
                      Зарегистрировался на платформе давненько, но ни привета, ни ответа. Нужно дождаться мая?
                        0
                        Да, у нас до недавнего времени была неопределенность в отношении команды и мы не делали никаких публичных заявлений и анонсов. Если не секрет, то откуда вы узнали о нас?
                          0
                          Блок «Новые компании» на главной странице Хабра, какое-то время там висел Dokkur. Регнулся еще в феврале.
                            0
                            Мы развивались постепенно и не планировали до каких-либо публичных заявлений открывать регистрацию. Я видел новых пользователей, но в условиях полной неопределенности с серверами/инфраструктурой, решил не активировать аккаунты до бета-теста.
                              0
                              Теперь заявление о запуске сделано публично, отступать некуда, в мае ждите письмо с активационной ссылкой :-)
                                +1
                                Ждем, надеемся и верим.
                          –5
                          Почему всё на басурманском? Что за мода пошла делать проекты для всех, кроме русскоговорящих?
                            +5
                            Аудитория шире. Как правило, IT специалисты знают английский язык достаточно хорошо. Это международный язык, поэтому именно он и был выбран. Плюс, мы утрясали определенные моменты с руководством проекта Dokku (в отношении прав использования), и нам было необходимо предоставить полную информацию о продукте на доступном для всех языке. Двух зайцев, так сказать. Мы добавим поддержку русского языка, но следующей итерацией, ибо переводу подлежит не только фронт-часть, но и ряд серверных компонент, уведомления и пр.
                              –1
                              Просто вы и в статье и на сайте уточняете что сервис из России..., давайте развивать PaaS в России вместе..., а сам ресурс на инглише. Лицемерненько как то, имхо.
                                +3
                                Соглашусь, в этом есть определенный диссонанс, но причины для использования английского языка достаточно весомые. Призыв к совместному развитию — призыв показать всему миру, что в России мы можем сделать отличный продукт. Ограничившись одним русским языком, в мире никто нас не сможет понять. Повторюсь, что мы добавим русский язык, но следующей итерацией.
                                  –2
                                  Я в эту новость попал после поиска статей по Heroku. Сидеть тупить в интерфейсе Heroku или найти переведённый аналог.
                                  Меня привлёк заголовок «из России», я на радостях подскочил и выкинул англо-русский словарь в окно, а оказалось что всё так же как и у всех.
                                  Никто не просит ограничиваться, приложения нужно делать максимально мульти язычными.
                                  Тут не вопрос патриотизма, тут вопрос удобства интерфейса на подсознательном уровне. Язык который знаешь != родной язык.
                                  В общем надеюсь фраза: «мы добавим русский язык» это не кормление завтраками как у продуктов jetbrains.
                                    +1
                                    Вы курс доллара к рублю видели? Подберите обратно англо-русский словарь :P
                                      0
                                      Не учить язык вероятностного противника это скажем так не… ээээ… очень благоразумно :)
                                    +1
                                    из != для

                                    Как минимум :)
                                0
                                Почему решили писать свое? Чем не устроили CloudFoundry/OpenShift/Kubernetes?
                                Высокий порог вхождения? Отсутствие какого то функционала?
                                  0
                                  Совокупность факторов, в т.числе и порог вхождения.
                                    0
                                    Тут еще стоит вопрос в масштабируемости, простоте расширения плагинами, различными субд и пр. Как говорится, в истории не может быть предположений и слов «если», и сейчас мы имеем то, что имеем, но ваш вопрос корректен. Мы делали ресерч на предмет готовых платформ/решений. Тестированием разных платформ занимались разные люди, решение не использовать их было принято в сознательном режиме :-)
                                    Если интересен сам ресерч, я могу поднять записи и чуть позже выдать отчет, но скорее всего, это будет материал для другой статьи. Сейчас мы анонсируем бета-запуск и набираем аудиторию.
                                      0
                                      Конечно материалы исследований были бы интересны, хотя если им более полу-года то высока вероятность устаревания.
                                      Я из мира Cloud Foundry и не по наслышке знаю, как быстро может меняться функционал и даже архитектура. Знаю и количество вопросов которые приходиться решать при построении такой системы. Успехов вам.
                                    0
                                    А когда прайс можно будет посмотреть?
                                    Очень интересно, на сколько от Heroku отличаться будете в цене.
                                      0
                                      Фин модель находится в процессе корректировки, мы проводим нагрузочное тестирование. Как только прайс будет готов, мы сделаем рассылку. Подпишитесь на наши новости.
                                        +1
                                        Я зарегистрировался на тестирование, думаю, новости будут приходить?
                                          0
                                          Да, будут.
                                      0
                                      Да, будут.
                                        0
                                        Я так полагаю, это был ответ в предыдущую ветку? :-)
                                          0
                                          Именно
                                        +1
                                        Как вы собираетесь заходить на рынок хостинг и сервис провайдеров? Ведь очевидно продукту еще необходим биллинг и вся остальная экосистема, без которой продукт пока не более чем прототип, совершенно не подготовлен для бизнеса.
                                        Хотя вынужден признаться — выглядит интересно, хоть и очень сыро еще.
                                        Успехов вам.
                                          0
                                          Мы идем по концепции MVP, в данный момент нас больше всего интересует обратная связь. Биллинг и прочее это про деньги все же, на данном этапе нас интересует мнение пользователей. Биллинг будет в тот момент, когда мы будем готовы брать деньги за наш продукт, в данный момент это больше прототип как вы верно подметили. Но до этапа приема оплаты еще очень много работы.
                                          Мы рады что вам понравилось, спасибо.
                                            0
                                            Система учета пользовательских ресурсов у нас имеется, биллинг — в процессе, после окончания нагрузочного тестирования и бета-тестирования, мы включим этот модуль. Мы посчитали, что в демонстрацию включать формочки, где мы просим пользователя вбить данные CC — неуместно, ибо чем тут хвастаться? «Смотрите, мы можем списать с вас деньги»? Сейчас у нас такой посыл, что прежде всего — работоспособность самого продукта. Для фин. модели есть несколько вариантов — ребята сейчас выбирают наиболее жизнеспособную и без нагруз.тестирования это, к сожалению, сделать невозможно. «Вся остальная экосистема» — это что?
                                              +1
                                              спасибо за ответ
                                              >>> «Вся остальная экосистема» — это что?
                                              — встроенный мониторинг для приложений и система оповещений
                                              — система репортов (если таки собираетесь работать с провайдерами)
                                              — failover и disaster recovery (для пользовательских данных, т.к. они будут скорее всего жить не в контейнерах, а рядом)
                                              — система колаборации и разграничения прав в рамках одного совместного проекта для проектов, над которыми работают более одного человека
                                              — локализации под провайдеров (куда без этого)
                                              — шаблоны для CI/CD паттернов, если хотите, чтоб это действительно приносило пользу, а не только симпатишно крутило helloworld
                                              — поддержка оверлейных сетей (возможно я не был очень внимательный, но этого я не увидел, а ведь если это PaaS для публичного облака, то без этого будет тяжело, ведь среды пользователей необходимо изолировать)
                                              — в конце-концов cli клиент / открытый API
                                              — вагон документации
                                              и уж поверьте, это только начало из огромнейшего списка…
                                              тем не менее, если мотивации у вашей команды предостаточно, то все у вас получится
                                              good luck ;)
                                                0
                                                Множество из того, что вы перечислили у нас уже имеется, но множество — нет, отдельное спасибо за упоминание про CI — этот вопрос стоит достаточно остро. Спасибо, что верите в нас :-)
                                                  0
                                                  Платформа построена на решении под названием Dokku (не отечественная разработка, внезапно). Там есть и клиент, и документация, и плагины, и куча всего другого. Про CI не понял, публикуется, как и на Heroku – через git push, а прогон тестов и сбор каких-то аналитических данных, думаю, будет на плечах самих пользователей сервиса – тебе предоставляют платформу, а ты уже крутишь, как хочешь.
                                                    0
                                                    leoismyname, не просто CI, а CI/CD (значит включая continuous delivery), запушить изменения гитом и собрать имедж, пушнуть его в регистри — это 1% от всего процесса, а вот если платформа умеет еще прозначно редеплоить без даунтайма, использовать живую миграцию для statefull исключений из on-premise на хибридное облако по регионам, уметь балансировать автоматически ворклоады (по континентам через оверлейные сети) и что самое важное делать это на лету без ручных вмешательств оператора (концепция NoOps) — тогда это уже next level.
                                                    Уверен, что ребята из Dokku и это прикрутят, но все постепенно. Чтоб научиться ходить — сначала нужно научиться ползать, иначе не бывает.
                                                      0
                                                      Частично, ответственность за это лежит на 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, тот же подход с билдпаками, но более размашисто.
                                              +1
                                              Как это приятно, когда «мы поставили цель сделать свою собственную платформу. И мы ее сделали.» Молодцы же!
                                                +1
                                                Спасибо большое! Обещаем что доведем проект до публичного запуска.
                                                +1
                                                Прямо вау! Приятно видеть, что кто-то в России занимается подобными разработками. У меня вопрос: вы намерены поддерживать популярные php cms? В частности интересует Wordpress. Если да, то будут ли какие-нибудь демо-материалы, наподобие того, что уже есть в статье, но только с комментариями? Спасибо.
                                                  0
                                                  Да, поддержка WP будет, материалы тоже снимем. Смело регистрируйтесь!
                                                    +2
                                                    Ок, спасибо. Надеюсь, вы обойдете хероку, это будет прям национальная гордость)))
                                                  0
                                                  Dokkur ..., cвоя PaaS,… из России… Простите, но пост немного высокомерный по отношению к сообществу и разработчикам Dokku, несмотря на вашу работу по написанию интерфейса с биллингом и развертыванием. В любом случае, искренне рад вашему успеху. Всегда существовало недопонимание, почему в России везде всякие VDSmanager и доступ по FTP, когда даже обычные разработчики пишут на хабре посты как поднимать свою инфраструктуру с помощью Docker Swarm и тд.
                                                    0
                                                    Я не соглашусь, что наши действия высокомерны.

                                                    1. Мы написали не просто интерфейс с биллингом и «развертыванием». Сам докку однопользовательский и не поддерживает кластеризацию. У нас написана огромная прослойка между докку и пользователем в виде инстанс-апи, коммуникацию с которым делает центральное приложение. Это, наверное, самая большая наша собственная разработка в данном проекте, помимо автоматизации управления ДНС, системы делегирования доступов пользователей к cli и api методам. И это только верхушка айсберга, поверьте.

                                                    2. Все наши действия целиком и полностю согласованы с Джефом Линдсеем (создателем и правообладателем того самого Докку). 25 января этого года у нас была конференция с их командой, по результатам которой мы получили одобрение своих действий.
                                                      +2
                                                      А вот это здорово.
                                                        0
                                                        Спасибо, этот комментарий куда интересней статьи в стиле «Ubuntur — первая OSaaS из России, недорогой аналог Microsoft»
                                                          +1
                                                          Эта статья, анонс сервиса, технические подробности будут, но это будет совершенно другая статья, подписывайтесь на наш блог, мы только начали рассказывать о нашем проекте. Будет еще много всего интересного, и конечно будут именно технические статьи, где мы осветить технические и архитектурные особенности нашего проекта.
                                                            +1
                                                            Вторая часть комментария интересна даже больше первой :) Как раз в анонсе это надо было упомянуть, что не просто взяли чужое решение (пускай и опенсорс) и написали обертку к нему, а сотрудничаете с его разработчиками.
                                                      –3
                                                      взяли бы готовую OpenShift платформу и разворачивали для клиентов на Российских серваках
                                                      -> понятная платформа, наработаная база типовых приложениий и картриджей
                                                      https://www.openshift.com/features/cartridges.html
                                                      https://marketplace.openshift.com/
                                                      и проработанные методы создания своих картриджей -> профит

                                                      к чему эти велосипеды? вобщем вангую — что загнется.
                                                        0
                                                        Почему взяли за основу Dokku, а не Deis или Flynn?
                                                          +1
                                                          Здравствуйте. Из-за большого количества плагинов. В частности, из-за отлаженного механизма взаимодействия с плагинами популярных СУБД.

                                                        Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                                        Самое читаемое