The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

28.09.2015 23:23  Представлен Otto, инструментарий для создания микросервисов из изолированных приложений

Компания HashiCorp, известная разработкой системы Vagrant, представила проект Otto, в рамках которого разработан новый инструментарий для создания и развёртывания приложений, упакованных в изолированные контейнеры или образы для различных облачных окружений. Otto продвигает концепцию микросервисов, включающих определённую программу и необходимые для её работы зависимости. При этом микросервисы не привязаны к конкретной технологии изоляции и могут быть сформированы для различных систем. Код проекта написан на языке Go (Vagrant написан на Ruby) и распространяется под лицензией MPL 2.0 (Mozilla Public License).

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

Otto предоставляет инструменты для автоматической сборки самодостаточного окружения, необходимого для работы разрабатываемого приложения, и развёртывания этого окружения в типовых системах виртуализации и контейнерной изоляции. На основании типа приложения Otto автоматически подбирает зависимости: например, для PHP-программ он загрузит, установит и настроит в окружении PHP и связанные с ним средства разработчика. Если приложение зависит от внешних сервисов, таких как СУБД, Otto самостоятельно определит это и установит в окружении нужные версии данных сервисов, а также необходимые для этих сервисов зависимости. Поддерживается интеграция с Docker, который может вызываться для загрузки и запуска подготовленных в Otto микросервисов.

Базовая конфигурация приложения задаётся в форме Appfile. Например, для приложения на языке Ruby 2.1, хранящем данные в СУБД PostgreSQL, Appfile может выглядеть следующим образом:


   application {
     name = "my-app"
     type = "ruby"

     dependency {
        source = "github.com/hashicorp/otto/examples/postgresql"
     }
   }

   customization "ruby" {
     ruby_version = "2.1"
   }

Параметры запуска окружения и лимиты выбираются в соответствии с типовыми требованиями для указанных зависимостей. Конфигурация может быть подобрана автоматически при помощи выполнения команды "otto compile" в директории с кодом приложения. Создать локальное окружение для тестирования и разработки можно командой "otto dev". Для создания инфраструктуры для эксплуатации этого окружения (например, в Amazon Web Services) достаточно выполнить команду "otto infra". Для подготовки образа с приложением для запуска в созданной инфраструктуре следует выполнить команду "otto build". Для запуска окружения в созданной инфраструктуре нужно выполнить команду "otto deploy". Таким образом, разработчику не нужно заботиться о выборе систем изоляции и подбирать зависимости - Otto всё сделает самостоятельно с использованием наиболее хорошо зарекомендовавших себя методов, подходящих для текущих условий.

Одновременно с Otto была представлена платформа Nomad, предназначенная для управления кластером серверов и запуска окружений с приложениями в данном кластере. Nomad абстрагируется от отдельных серверов и местоположения приложений, предлагая пользователю лишь определить, что он хочет запустить, а вопрос "где и как будет запущено окружение" платформа берёт на себя. Для выполнения окружений может быть использован Docker, но Nomad не ограничивается им и позволяет использовать драйверы для запуска с использованием иных платформ контейнерной изоляции или виртуализации для Linux, Windows, BSD и OS X. Для упрощения работы клиентская и серверная части объединены в один исполняемый файл.

  1. Главная ссылка к новости (https://www.hashicorp.com/blog...)
  2. OpenNews: Проект CoreOS представил Rocket, конкурирующий с Docker инструментарий управления контейнерами
  3. OpenNews: Docker и CoreOS объединили усилия в разработке единого формата контейнеров
  4. OpenNews: Выпуск Kubernetes 1.0, системы управления кластером изолированных контейнеров
  5. OpenNews: Доступен Docker 1.8. Представлена система для запуска Docker-контейнеров поверх гипервизора
Лицензия: CC-BY
Тип: Программы
Ключевые слова: otto
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение Ajax/Линейный | Раскрыть все сообщения | RSS
 
  • 1.3, Аноним (-), 02:04, 29/09/2015 [ответить] [показать ветку] [···]    [к модератору]
  • +/
    А есть примеры, где удобно применять?
     
     
  • 2.5, Аноним (-), 02:20, 29/09/2015 [^] [ответить]    [к модератору]
  • +/
    > ruby
    > смузи
    > митапы

    Ну может и найдёшь пару весьма специфических use-cases на всю отрасль.

     
     
  • 3.11, Аноним (-), 15:20, 29/09/2015 [^] [ответить]     [к модератору]
  • –1 +/
    Понимаете ли, отрасль растёт горизонтально И рубероиды и Go-пники, пьющие смузи... весь текст скрыт [показать]
     
     
  • 4.12, grec (?), 17:16, 29/09/2015 [^] [ответить]    [к модератору]  
  • +2 +/
    И так будет бесконечно и все погрязнет в вечном дебаге.
     
     
  • 5.13, Аноним (-), 17:31, 29/09/2015 [^] [ответить]    [к модератору]  
  • +/
    Подтверждаю, не вечно, но иногда бывает.
     
  • 4.14, Crazy Alex (ok), 19:06, 29/09/2015 [^] [ответить]     [к модератору]  
  • –4 +/
    Если б кто-нибудь внятно описал, зачем всё это надо - ретарды, пьющие пиво, нена... весь текст скрыт [показать]
     
     
  • 5.15, аноним2 (?), 19:40, 29/09/2015 [^] [ответить]    [к модератору]  
  • +2 +/
    про системное окружение почитай
     
  • 5.16, Аноним (-), 19:59, 29/09/2015 [^] [ответить]     [к модератору]  
  • +4 +/
    Если неясно зачем контейнеры и почему они могут быть предпочтительнее, чем вирту... весь текст скрыт [показать]
     
     
  • 6.22, Crazy Alex (ok), 00:26, 30/09/2015 [^] [ответить]    [к модератору]  
  • +/
    Да я вообще от каких-либо серверов уже лет несколько, как далёк. Десктопы, мобилы, эмбед...
     
  • 5.17, Аноним (-), 22:02, 29/09/2015 [^] [ответить]     [к модератору]  
  • +/
    Я ничего не имею против того, чтобы меня ненавидели ретарды Для табя, и прочих ... весь текст скрыт [показать]
     
     
  • 6.18, grec (?), 22:20, 29/09/2015 [^] [ответить]    [к модератору]  
  • +/
    Очень все раздуто. Главное много, что бы солидно?
     
     
  • 7.19, Аноним (-), 22:26, 29/09/2015 [^] [ответить]    [к модератору]  
  • +/
    > Очень все раздуто. Главное много, что бы солидно?

    Зависит от масштабов. И кстати да, на десятке виртуалок с 1 физикой методология DevOps профита не принесёт, а вот если их сотни и тысячи...

     
     
  • 8.36, Имячко (?), 16:53, 12/05/2016 [^] [ответить]    [к модератору]  
  • +/
    Отчего же не принесет.
    На микросервисной архитектуре для CI/CD очень даже принесет....
     
  • 6.23, Crazy Alex (ok), 00:30, 30/09/2015 [^] [ответить]    [к модератору]  
  • +/
    Так, меня с тигарами-иденами путать не надо :-) Другое дело, что я вообще не любитель каких-либо облаков, а на десктопе чем теснее софт интегрирован - тем он удобнее.

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

    А вот насчёт микросервисов и особенно DevOps я и спрашивал - что это, чёрт возьми, за штуки, и что в них крутого? А то общих слов веде валом, а чтобы толком описали - не видно.

     
     
  • 7.25, Аноним (-), 09:13, 30/09/2015 [^] [ответить]     [к модератору]  
  • +/
    - Хорошо, не буду - Суть микросервисов - на каждый сервис отдельная виртуалка к... весь текст скрыт [показать]
     
     
  • 8.27, Crazy Alex (ok), 10:37, 30/09/2015 [^] [ответить]    [к модератору]  
  • +/
    Ага, ясно. Звучит разумно, вот кто бы раньше это так внятно сформулировал. Спасибо.
     
     
  • 9.30, Crazy Alex (ok), 13:21, 30/09/2015 [^] [ответить]    [к модератору]  
  • +/
    Только идее "одна виртуалка - один сервис" сто лет в обед ;-)
     
     
  • 10.34, Аноним (-), 11:21, 01/10/2015 [^] [ответить]    [к модератору]  
  • +/
    Контейнеры кстати тоже, а чрут ещё раньше. Вот только раскрутили эту тему пару лет назад.
     
  • 7.26, Аноним (-), 09:27, 30/09/2015 [^] [ответить]     [к модератору]  
  • +/
    - И ещё, по интеграции на десктопе Именно за это любят варган Какой-нибудь Dev... весь текст скрыт [показать]
     
     
  • 8.28, Crazy Alex (ok), 10:46, 30/09/2015 [^] [ответить]    [к модератору]  
  • –1 +/
    Универсальность - я имел в виду, что контейнеры - это linux on linux. Ну а насчёт безопасности - сорри, но не верю, что в обозримом будущем контейнер не сможет, начудив, утянуть за собой хост хотя бы в Denial Of Service.

    А про десктоп - я имел в виду, что там контейнеры - зло для power user'а. Потому что часто удобно из одного приложения влезть в конфиги или рабочие файлы другого, например. Ну там - "а вот выгребем по крону закладки браузера из определённой папки, загрузим страницы, спроцессим все новые результаты сохраним". Что проще всего делается прямым залезанием в sqlite файрфокса. А кгда все приложения в контейнеры раскладывают - подобное творить затруднительно.

     
     
  • 9.29, Аноним (-), 11:42, 30/09/2015 [^] [ответить]     [к модератору]  
  • +1 +/
    - А вконтейнерах на десктопе можно всякую блобню запускать, типа хромого и скупо... весь текст скрыт [показать]
     
     
  • 10.31, Crazy Alex (ok), 13:29, 30/09/2015 [^] [ответить]    [к модератору]  
  • +/
    Собственно, меня и смущает, что контейнеры на десктопе создают иллюзию, что можно безнаказанно блобню запускать, да ещё обычно и мимо пакетного менеджера и с установкой без прав рута. В результате появляются всякие "гномомагазины", да и вообще - это прямая дорожка к виндовому бардаку,

    Насчёт лучшей нарезки IO - удивлён, мягко говоря. Но наверняка что-то ещё выстрелит. Ну вот, например, само I/O - ладно, а память для файлового кэша же общая?

     
     
  • 11.32, Аноним (-), 13:49, 30/09/2015 [^] [ответить]     [к модератору]  
  • +/
    - С контейнерами на десктопе - ситуация очень двойственная И согласен и нет Пр... весь текст скрыт [показать]
     
  • 7.37, Имячко (?), 17:03, 12/05/2016 [^] [ответить]    [к модератору]  
  • +/
    > Так, меня с тигарами-иденами путать не надо :-) Другое дело, что я
    > вообще не любитель каких-либо облаков, а на десктопе чем теснее софт
    > интегрирован - тем он удобнее.

    Тесная интеграция это хорошо, но начиная с определенной сложности ПО, это уже плохо для развития системы.

    Поэтому мы начинаем ПО разбивать на части. Для серверов - это легко.

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

    Очень большая экономия ресурсов.

    В типичном среднем микросервисном приложении 30-100 отдельных видов сервисов, каждый из которых может запускаться по необходимости в нескольких экземплярах. Это ж сколько виртуалок было бы!!! Огромный оверхед.

    Изоляция/универсальность у Докера довольно высокая.

    Ограничения - только Linux, зомби (которые чистятся так же как и ненужные переменные в GC - GC выходит на уровень группы серверов!!!)

    > А вот насчёт микросервисов и особенно DevOps я и спрашивал - что
    > это, чёрт возьми, за штуки, и что в них крутого?

    Слишком тесная интеграция - разработку усложняет.

    Здесь акцент на том, что сначала для удобства/гибкости разработки мы разбили все на части - микросервисы.

    А когда у нас возникло 100 сервисов, которые могут на 10-10000 серверах запускаться - возникли проблемы, - а как этим всем рулить.

     
  • 4.35, Аноним (-), 11:33, 02/10/2015 [^] [ответить]    [к модератору]  
  • +/
    Лучше бы код писали, чем страдать фигней
     
     
  • 5.38, Имячко (?), 17:04, 12/05/2016 [^] [ответить]    [к модератору]  
  • +/
    > Лучше бы код писали, чем страдать фигней

    Развиваться тоже надо.
    Не только кодите - еще и изучайте новшества!!!

     
  • 1.4, Аноним (-), 02:12, 29/09/2015 [ответить] [показать ветку] [···]     [к модератору]  
  • +/
    Да раньше было удобно юзать вагрант но потом это стало жутко не удобно, да и смы... весь текст скрыт [показать]
     
     
  • 2.7, Michael Shigorin (ok), 12:27, 29/09/2015 [^] [ответить]    [к модератору]  
  • –1 +/
    > Да раньше было удобно юзать вагрант но потом это стало жутко не
    > удобно, да и смысла не много в полуготовых окружениях когда либо
    > собираешь себе готовое либо юзаешь докер.

    А что с ними дальше делаете?  Мне-то интересно в контексте http://altlinux.org/m-p (оно умеет и чруты выпекать, и в первом приближении -- образы vm, помимо всего прочего).

    Про vagrant интересовались как-то в плане прикручивания сборки .box'ов:
    https://lists.altlinux.org/pipermail/devel-distro/2012-November/001147.html
    https://lists.altlinux.org/pipermail/devel-distro/2012-November/001062.html
    ...и даже был набросок, но дальше не пошёл.

     
     
  • 3.8, Аноним (-), 13:20, 29/09/2015 [^] [ответить]     [к модератору]  
  • +1 +/
    Варган, конечно очень удобен, как управляющая инфраструктура, даже сам на него п... весь текст скрыт [показать]
     
     
  • 4.9, Michael Shigorin (ok), 13:42, 29/09/2015 [^] [ответить]    [к модератору]  
  • +/
    Спасибо.  Хотя вместо творческой транслитерации неплохо бы в подобных случаях использовать исходные названия, шоб можно было найти. :)
     
     
  • 5.10, Аноним (-), 14:18, 29/09/2015 [^] [ответить]     [к модератору]  
  • +/
    http kubernetes io Главное здесь - это объединение ресурсов кластера Отсюда ... весь текст скрыт [показать]
     
  • 4.21, Аноним (-), 22:32, 29/09/2015 [^] [ответить]    [к модератору]  
  • +/
    Да полностью с вами согласен вагрант для win и osx. Хотя мне он уже без надобности, несмотря на то что сижу на OSX.

     
     
  • 5.24, Аноним (-), 08:56, 30/09/2015 [^] [ответить]     [к модератору]  
  • +/
    А мне удобен именно на линуксе К нему деплой среды прикручивать удобно глубоко ... весь текст скрыт [показать]
     
  • 3.20, Аноним (-), 22:29, 29/09/2015 [^] [ответить]     [к модератору]  
  • +1 +/
    Ну я разрабатывал веб приложения и тестировал на целевой платформе, OSX не шибк... весь текст скрыт [показать]
     
     
  • 4.33, Аноним (-), 13:52, 30/09/2015 [^] [ответить]    [к модератору]  
  • –1 +/
    Кстати, как вам virt-install? Меня интересует с точки зрения быстрого поднятия квм-виртуалок.
     
  • 4.39, Имячко (?), 17:08, 12/05/2016 [^] [ответить]    [к модератору]  
  • +/
    >>А что с ними дальше делаете?  Мне-то интересно в контексте http://altlinux.org/m-p (оно умеет и чруты выпекать, и в первом приближении -- образы vm, помимо всего прочего).
    > Ну я разрабатывал веб приложения и тестировал на целевой платформе, (OSX не
    > шибко целевая для веба), а потом пересел на Linux ну, а
    > с qvm весь смысл вагранта испарился, да и если посудить вагрант
    > только вначале был нужен до прихода докера. Думаю вам вагрант не
    > нужен, он собственно сейчас вообще не нужен.

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

    Мило дело.
    git clone какую-то хрень
    cd в какую-то хрень
    vagrant up

    И вот ты уже используешь любую хрень с самой нетривиальной настройкой/требованиями к ОСи.

     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:


      Закладки на сайте
      Проследить за страницей
    Created 1996-2019 by Maxim Chirkov  
    ДобавитьПоддержатьВебмастеруГИД  
    Hosting by Ihor