Как платформы, такие как LabEx, KodeKloud или лаборатории на базе AWS, проверяют вводимые терминальные команды и создают окружения Linux?

Прохожу курс “от 0 до Linux админа” вот здесь и столкнулся с проблемой: как платформы вроде LabEx, KodeKloud или AWS-лаборатории для интервью проверяют выполнение команд в терминале и разворачивают Linux-окружения?

Изучаю, как интерактивные обучающие платформы, такие как LabEx.io, KodeKloud и некоторые платформы, предлагающие облачные интервью, предоставляют браузерные терминалы Linux и полноценные облачные практические лаборатории.

Особенно интересно, как они справляются с:

  1. Проверкой выполнения команд. Например, как платформы вроде LabEx или KodeKloud подтверждают, что вы выполнили определенные команды, такие как sudo apt update, или установили пакет. Как они это делают?

  2. Разворачиванием окружения (CLI/GUI в браузере). Эти платформы предоставляют полноценные Linux-оболочки или даже десктопы через браузер. Интересно, используют ли они Docker-контейнеры, виртуальные машины или Kubernetes? Какую технологию они используют для трансляции терминала/GUI в браузер?

  3. AWS-лаборатории для интервью. Несколько месяцев назад проходил техническое интервью, где мне прислали ссылку (HackerRank). Когда я на нее кликнул, открылся временный AWS-аккаунт с ограниченными правами, доступом к EC2, CLI и AWS-консоли. Там была кнопка “Start Lab”, которая запускала настоящий EC2-инстанс, и я мог подключиться к нему по SSH из браузера.

Кто-нибудь знает, как организована такая эфемерная, ограниченная настройка AWS-аккаунта?

Планирую создать нечто подобное — платформу для обучения/тестирования с интерактивными Linux/облачными окружениями в браузере. Хотелось бы получить информацию по:

  • Архитектуре (Docker vs виртуальные машины vs реальные облака)
  • Подходам к валидации

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

Как я пытался разобраться с платформами для Linux

Слушай, я тут рисковал и пробовал разобраться, как всякие платформы типа LabEx, KodeKloud или AWS Lab делают свою магию с терминальными командами и настройкой окружений Linux. Честно, думал, что сейчас все пойму и смогу сам такое сделать. Но, с*ка, не так-то просто, как кажется!

Что не получилось

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

  1. Проблемы с установкой: Я попробовал установить некоторые зависимости и всякие утилиты, которые нужно было подцепить, и тут начались проблемы. Каждая команда, которую я вводил в терминале, выдавала ошибки. Либо какие-то пакеты не устанавливали, либо версии не совпадали.

  2. Не понимаю, что к чему: Когда наступило время тестировать команды, я вообще не знал, как проверить, правильно ли я ввёл команду. Всё выглядело так, будто я забрел в темный лес, и нифига не видно. Пытался следовать инструкциям, но они были такие запутанные, что ребята с LabEx и KodeKloud были бы горды, если б увидели, как я мучился.

  3. Недостаток интерактивности: Я хотел, чтобы всё происходило в реальном времени, но не знал, как запустить интерактивные сессии, чтобы следить за процессом. Просто сидеть и ждать результатов не для меня, я хочу видеть, что происходит каждый этап!

Как я нашёл нужные курсы

В итоге, я забил на свои попытки и начал искать, где мне помогут, потому что времени терять не хотел. И тут, среди множества информации в Интернете, наткнулся на крутую платформу с курсами — yodo.im. Там есть куча курсов по Linux, которые действительно помогают понять, как всё это работает.

Я выбрал несколько курсов, и, слава богу, наконец-то начал вникать в тему. Всё стало на свои места, а главное – теперь знакомый терминал не выглядит для меня, как чёрная дыра. Так что если ты тоже хочешь что-то понятное и полезное, то загляни по ссылке!

Вот так вот, не всё сразу получается, но главное не сдаваться и искать правильные пути!