Онлайн-практикум -
практикуйтесь, когда вам удобно
Онлайн-практикум от команды Fevlake*
*8 лет обслуживаем IT-инфраструктуры
Рост числа вакансий
с 2016 по 2018 год
Средняя зарплата
специалиста
вакансий
на территории РФ
Введение
- Основные понятия DevOps
- Система контроля версий Git
Operations
- Классическая архитектура веб-приложений
- Установка и настройка nginx
- Описание инфраструктуры с помощью Ansible
- Развертывание инфраструктуры через terraform
- Использование Vagrant
Development
- Зачем нужен API?
- Реализация API на golang
- Взаимодействие с базами данных - postgresql / redis
- Популярные фреймворки и языки - разворачиваем приложения:
- ruby - ruby on rails
- python - django
- php - symfony
- Nodejs
- java - spring
QA
- Написание Unit-тестов
- Smoke тестирование
- Нагрузочное тестирование
- Интеграционное тестирование
Development Operations:
- Continuous Integration:
- jenkins
- teamcity
- gitlab
- Continuous Delivery:
- deb/rpm пакеты
- capistrano / ansistrano
- ansible
- самописные скрипты
- FeedBack
- Основные понятия мониторинга:
- Zabbix vs Prometheus
- Настраиваем Prometheus
- Цельный pipeline - сводим все воедино
Docker (практикум по Docker можно приобрести отдельно)
- 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
1. Скачать репозиторий проекта symphony/demo.
2. Произвести установку RVM, требуемой версии Ruby, а также Bundler.
3. Ознакомиться с Gemfile в коде проекта.
4. Произвести установку требуемых пакетов с помощью Bundle.
5. Откорректировать параметры подключения к БД.
6. Произвести миграции, загрузить тестовые данные в БД.
7. Предоставить рабочую версию проекта, а также ssh доступ к серверу и список команд, которые были выполнены для выполнения задания (можно просто экспорт из history).
DEV 6: БД в современных приложениях и их изменение.
База данных (БД) — это организованная структура, предназначенная для хранения, изменения и обработки взаимосвязанной информации, преимущественно больших объемов. Практически все современные сервисы и/или приложения работают с базами данных. Для управления БД используют специальные системы, которые так и называются СУБД. Мы уверены, что большинство из вас слышали и использовали некоторые их этих систем, такие как MySQL, MariaDB, PostgreSQL, Oracle, Microsoft SQL Server и др.
СУБД - это, конечно, хорошо, но много ли можно сделать в БД "вручную"? И насколько это правильно? Как отслеживать и документировать изменения, вносимые в БД? Очень интересные и правильные вопросы, именно поэтому и были придуманы миграции для БД.
Миграция БД (также называется миграция схемы) - это управление инкрементными, обращаемыми изменениями схем в реляционной базе данных. Миграции применяются на базе данных при необходимости обновить, изменить или применить определенную версию схемы данных к БД. Для выполнения миграций используют специальные утилиты, которые называют *schema migration tool*, они немного различны относительно своего функционала в разных языках программирования / фреймворках.
- Версионная миграция структуры базы данных
- Опыт 1440 миграций баз данных
- GO + PostgreSQL
- GO + MySQL
1. Вам нужно модифицировать реализованный в предыдущем задании метод API таким образом, чтобы он взаимодействовал c выбранной вами БД.
2. Написать файл миграции для добавления соответствующих таблиц с тестовыми данными в БД.
3. Написать короткую инструкцию для запуска вашего проекта (какая СУБД используется, как запустить миграцию, порядок запуска проекта).
4. Проект должен быть запущен на вашем сервере, в ответе напишите ссылку для доступа к проекту. Код проекта необходимо загрузить в репозиторий и прислать ссылку на него.
Работал админом у провайдера и понял, что мне это все становится не сильно интересно. Меня заинтересовал открытый практикум по девопс. Пришел, послушал - понравилась подача Васи Озерова, и решил пойти дальше уже на практикум. А сейчас я еще и работаю в команде Васи - девопсом в Fevlake. Можно сказать, прошел практикум - сменил профессию.
Что запомнилось на практикуме? Отличные задачки. Некоторые заставляют прям посидеть - поразбираться. И это круто. Когда смотришь стандартные вебинары, где лектор долго что-то объясняет, уже через 15 минут засыпаешь. Здесь такого нет. Иногда так затягивала задача, что не замечаешь, как время прошло. Про время - тоже удачно придумано. Занимаешься, когда тебе удобно, очень удобно совмещать с работой и личными делами.
Практикум я бы порекомендовал любому системному администратору. Многие практики отсюда можно применять не только в девопсе. Для тех, кто разработкой занимается, много полезного в части понимания, как будут разворачивать твой код. Да и вообще сюда стоит пойти всем, кому в принципе интересно развиваться и, конечно, тем, кто хочет сменить профессию.
Работал системным администратором и понимал, что уже достиг потолка. Хотелось двигаться дальше. Увидел информацию про практикум - понравилось, что программа в хороших сроках и спикер компетентный на открытых уроках. В самом практикуме тоже ни разу не разочаровался: понравился чисто практический подход. Все делали руками. Программа и база очень широкие. Нравилось, что задачки максимально приближены к реальности - все из настоящих кейсов.
Да, изначально сомнения идти/не идти на практикум были, особенно по оплате - для Украины сумма немаленькая. Но брат выручил с деньгами. И могу сказать, что все вложения окупились. После практикума устроился DevOps-инженером в продуктовую компанию. Указал в резюме, что прошел практикум, и это сыграло в плюс - всем нравится, что ты вкладываешься в свое развитие.
Сейчас еще в REBRAIN пригласили на проверку заданий. Интересно заниматься с ребятами. Понятно, что весь материал я уже знаю, но когда кому-то объясняешь, сам заново погружаешься в тему, развиваешься.
Практикум я бы порекомендовал сисадминам, инженерам, тем, кто занимается поддержкой средней и большой инфраструктуры, и вообще всем, кто входит в профессию девопс. При должном рвении добьетесь!
До практикума я работал в сфере Digital Marketing - удаленно занимался рекламой, маркетингом. Ранее работал инженером связи, от механика и до ведущего инженера, поэтому IT мне близко, и я всегда хотел развиваться в этом направлении и вернуться в профессию. Потому заинтересовался открытым практикумом по DevOps, который предложила мне таргетная реклама. После него желание изучать DevOps усилилось - привлекли перспективы и сложная, но интересная работа. Так я решил пойти дальше на практикум. И уже в середине практикума устроился в аутсорсинговую компанию по администрированию инфраструктуры и дорос до Junior DevOps.
Сам практикум - бомба! Намного круче классического формата с лекциями. Когда есть лекции, ты привязан к группе, ко времени. Здесь же отстать невозможно: включайся, когда удобно, и получай на любом этапе быструю обратную связь по всем заданиям. Выходит, как формат индивидуального практикума, но только еще и с возможностью постоянно находиться в сообществе - общаться, развивать кругозор.
После практикума меня позвали в команду REBRAIN как одного из лучших выпускников. И это тоже очень крутой опыт. Сейчас я курирую практикум - отвечаю на вопросы ребят, вместе разбираем задачи, что помогает укреплять знания и разбираться в нюансах.
Сам формат, практикума с упором именно на выполнение заданий - именно то, что нужно, чтобы сформировать достаточный кругозор и базис для развития. Так что, если тема DevOps или развития Operations вам близка - практикум это именно то, что нужно!
Я начинал свою карьеру с Линукса, поработал сисадмином и решил уйти в девопс. Привлекло то, что сейчас это везде, все держится на юникс. Кода много и перспектив много!
На базовый курс я попал одним из первых - в самый первый поток. Увидел рекламу решил попробовать. Сомнений, идти или не идти, практически не было, я был в первом потоке у ребят и мне показалось, что это больше плюс, потому что получится что-то свежее и интересное. Сейчас, когда я прошел базу, понимаю, что не прогадал. Да, не все с первого раза получалось, приходилось трудиться, "волшебных таблеток" никто не раздает. Но в итоге все получается! Особенно с такой поддержкой! С Василием Озеровым всегда можно было лично пообщаться, задать любые вопросы. Чат в Телеграм - вообще бомба! Да и в целом, понравилась экспертность Василия - без воды, все четко и сразу к делу. А еще круто, что нам дали сервер, на котором можно тренироваться и выполнять задания!
Информации на практикуме было очень много и по деплою, и по непрерывной подаче кода. У меня сложилась полная картина, как работают Devops-практики, и теперь еще больше хочется погружаться в профессию! Тем более, что работу девопсом я уже получил.
Сейчас все чаще стали использоваться новые технологии типа Ansible, и изучать их разрозненно достаточно проблематично. Потому я искал практикум, на котором все это можно освоить на практике - через конкретные задачи. Сходил на практикум к Василию Озерову, ну и, конечно, сравнил практикум с другими курсами. У многих акцент делается на теорию, а ее я и сам могу изучить. Потому решил остаться на практикуме у Василия.
Приятно, что здесь есть документация, а дальше ты должен действовать самостоятельно. Многое приходится делать самому - а это реальная практика, как в жизни.
Практикум нравится, я даже знакомому уже порекомендовал - он системный администратор. Да и вообще практикум можно посоветовать всем, кто хочет развиваться и на практике пошагово изучать девопс
Я работал в госорганизации с информационными системами. Технологический стек там довольно древний. Понял, что хочется развития и работу решил сменить. Отсюда появилась и потребность в новых навыках. Устроился системным администратором в компанию поддержки медиапортала и параллельно пошел практиковаться.
Практикум привлек изначально удачным сочетанием цена/качество, да и упором на практику. Еще понравилось, что тут комплексно все темы разбираются - складывается целостная картина. И еще всегда радует очень быстрая обратная связь по задачам, которые мы изучаем.
В целом практикумом доволен и порекомендовал бы его людям моего уровня - тем, кто занимается системным администрированием и хочет развиваться. Также порекомендовал бы курс разработчикам, стремящимся развиваться в fullstack-development и желающим понять сторону Operations.