[Проект] noname

  1. Здравейте,

    Става въпрос за нещо, което ще позволява да тестваш го проекти в контейнер (Docker). Ще има едно приложение на го, което ще е като OS-агент на контейнера, което ще изпълнява команди. Параметрите за тези команди ще се подават през REST. Ще има и клиент за това нещо, което ще си вдига контейнер, ще изпълнява съответните команди и ще връща резултата (от теста). Така ще може да се тестват домашни, предадени чрез гит репо.

    П.С. Архитектурата не е доизмисленa, но мисля че общата идея е ясна.

    ОК ли е като проект за курса?

  2. Не съм сигурен, че разбирам точно как ще са навързани нещата и какво точно искаш да прави твоя проект - да вдига и спира койтейнерите или да изпълнява подадените му команди в контейнерите или и двете? Също така, защо ще подаваш командите по REST, а ще чакаш резултатите от тестовете по друг начин? Или не съм разбрал правилно?

    Моля те, помисли и ни обясни малко повече за архитектурата, че да може да преценим scope-а на проекта и съответно дали е ок за курсов проект. Помисли за следните неща:

    • security-то в цялата схема - docker все още работи с root и пускането на контейнери е критична операция
    • какво точно ще прави твоята програма, кои от следните неща и по какъв начин искаш тя да прави: да автоматизира различни части от docker workflow-а, да сваля код от разни места, да пуска тестове, да парсва резултати, да прави callbacks и т.н.

    За да не си пишем дълги фермани във форума, ако искаш може да обсъдим идеята след някоя от идните лекции, след като имаш по-пълна представа точно как и какво искаш да реализираш.

  3. След разговор на лекция, идеята стигна до това състояние:

    1. Сървър който ще върви на много машини, и ще изпълнява команди при поискване (чрез REST комуникация)
    2. Сървърът на всяка машина ще се регистрира към централен сървър, който ще менажира всички регистрирани машини.
    3. Централния сървър ще има клиент, чрез който ще могат да се изпълняват команди на класове от машини, разбити по даден принцип (операционна система, ...)
    4. Всяка регистрирана машина ще може да се добавя към много различни класове от машини чрез клиента на централния сървър.
  4. Споменал си, че командите се подават към различните сървъри (slaves) чрез някакъв REST протокол. Съответно това ме наведе на мисълта, че главният сървър (master-ът) ще се свързва по HTTP до различните slave-ове и ще им подава команди. Ако не имплементираш някакво елементарно security (HTTPS + някаква форма на authentication) при тази комуникация, всеки в мрежата също ще може да изпълнява команди на въпросните машини. Това не е много яко, вече има достатъчно botnet-ове на тоя свят :)

Трябва да сте влезли в системата, за да може да отговаряте на теми.