Онлайн практикум от команды Fevlake*
*8 лет обслуживаем IT-инфраструктуры
Онлайн практикум -
практикуйтесь, когда вам удобно
вакансии со знанием Docker
крупных компаний в мире используют Docker
в топе по востребованности в резюме
Практикум REBRAIN Docker был разработан на базе агентства Fevlake
Мы подготовили программу для:
- Docker. Введение.
- Basics. Практическое применения CLI.
- Images. Запускаем контейнеры из готовых образов.
- Dockerfile. Создаем простейшие образы. Модифицируем существующие.
- Dockerfile. Изучаем специфику работы с разными языками программирования. Ответим на вопрос, есть ли разница интерпретируемого и компилируемого ЯП в рамках Docker. Соберем образ с Java / Go / Python / PHP / Ruby.
- Dockerfile. Multistage - несколько образов из одного Dockerfile. Как создать и для чего это необходимо.
- Dockerfile. Produciton & Staging. Изменение директив в файле.
- Registry. Обеспечиваем хранение образов контейнеров.
- Advanced. Минимизация объема и времени сборки образа. В каких случаях необходимо.
- Advanced. Взаимодействие между несколькими контейнерами. Применение на практике.
- Docker compose. Объединяем несколько образов в один сервис.
- Server. Логирование и IPv6. Определяем необходимость.
- Docker Swarm. Оркестрация.
- Docker Swarm. Практики использования как кластера.
До этого момента мы создавали с вами только единичные ресурсы:
- один гит репозиторий
- одна виртуальная машина
К сожалению, в реальной жизни такое случается редко. Если вы создаете виртуальную машину, то скорее всего вам будет необходимо создать DNS записи для нее, чтобы обращаться к ней по имени.
В этом и состоит реальная сила terraform: Вы можете создавать различные ресурсы и связывать их между собой. Создав виртуальную машину, вы можете использовать выданный ей ip адрес для создания dns записи в стороннем DNS провайдере. Или полученный логин/пароль от почтового рассыльщика вы можете добавить в конфигурацию вашего почтового сервера в автоматическом режиме.
- Внешние сервисы, которые Вы можете описывать в terraform
- Описание провайдера AWS
- Официальная документация по API route 53
Ruby - интерпретируемый язык программирования, на сегодняшний день достаточно популярный язык для написания backend-части приложений, причиной популярности является независимая от ОС реализация многопоточности, динамическая типизация и отличный сборщик мусора "из коробки". Для веб-разработки наиболее популярным фреймворком для языка является Ruby on Rails, реализующий архитектурный шаблон MVC - схему разделения данных приложения и управляющей логики на три глобальных компонента - модель, представление и контроллер, осуществляя модификацию каждого компонента независимо.
Наиболее популярными Version Manager'ами для языка являются RVM (Ruby Version Manager) и ChRuby. Наиболее существенными различиями менеджеров является то, что первый может быть установлен "под пользователя", а второй глобально. В языке есть встроенный package manager - gem, однако последнее время разработчики чаще используют bundler, логика работы которого очень похожа на ранее пройденные composer и npm - bundler читает специальный файл в директории проекта - Gemfile, и устанавливает необходимые зависимости, описанные в указанном файле. С помощью Bundle также можно проводить миграции, загружать тестовые данные в БД, и многое иное, однако основным преимуществом bundle является то, что с помощью него можно использовать команды выстраивая "окружение" языка - используя те пакеты, которые установил bundle. Bundle exec как бы собирает это окружение, позволяя Вам производить необходимые манипуляции с элементами приложения/инфраструктуры, используя окружение.
Так же Вам необходимо будет ознакомиться с содержимым папки config, в которой должен быть файл database.yml, в котором описываются настройки подключения к БД.
- alphacamp_blog_app
- скачать репозиторий проекта symphony/demo
- произвести установку RVM, требуемой версии Ruby, а так же Bundler
- ознакомиться с Gemfile в коде проекта
- произвести установку требуемых пакетов с помощью Bundle
- откорректировать параметры подключения к БД
- произвести миграции, загрузить тестовые данные в БД
- предоставить рабочую версию проекта, а также ssh доступ к серверу и список команд которые были выполнены для выполнения задания. (можно просто экспорт из history)
DEV 6: БД в современных приложениях и их изменение.
База данных (БД) — это организованная структура, предназначенная для хранения, изменения и обработки взаимосвязанной информации, преимущественно больших объемов. Практически все современные сервисы и/или приложения работают с базами данных. Для управления БД используют специальные системы, которые так и называються СУБД. Мы уверены что большинство из вас слышали и использовали некоторые их этих систем, такие как MySQL, MariaDB, PostgreSQL, Oracle, Microsoft SQL Server и др.
СУБД это, конечно, хорошо, но много ли можно сделать в БД "вручную"? И насколько это правильно? Как отслеживать и документировать изменения, вносимые в БД? Очень интересные и правильные вопросы, именно поэтому и были придуманы миграции для БД.
Миграция БД (также называется миграция схемы ) - это управление инкрементными, обращаемыми изменениями схем в реляционной базы данных. Миграции применяются на базе данных при необходимости обновить, изменить или применить определенную версию схемы данных к БД. Для выполнения миграций используют специальные утилиты, которые называют *schema migration tool*, они немного различны относительно своего функционала в разных языках программирования / фреймворках.
- Версионная миграция структуры базы данных
- Опыт 1440 миграций баз данных
- GO + PostgreSQL
- GO + MySQL
Вам нужно модифицировать, реализованный в предыдущем задании метод API, таким образом, чтобы он взаимодействовал c выбранной вами БД. Написать файл миграции, для добавления соответствующих таблиц с тестовыми данными в БД. Написать короткую инструкцию для запуска вашего проекта (Какая СУБД используется, как запустить миграцию, порядок запуска проекта) Проект должен быть запущен на вашем сервере, в ответе напишите ссылку для доступа к проекту Код проекта необходимо загрузить в репозиторий и прислать ссылку на него