Инфраструктура

и Docker

План лекции

  1. Темные времена
  2. Облачные провайдеры
  3. Виртуальные машины
  4. Docker
  5. Разбор задания

Темные

времена

~ 1996 год

Написали приложение. Что дальше?

  1. Купить сервер
  2. Установить сервер
  3. Купить ОС
  4. Настроить ОС
  5. Поставить зависимости
  1. Запустить приложение
  2. ...
  3. Следить за сервером

Минусы?

  1. Стоимость
  2. Нерациональное использование ресурсов
  3. Обслуживание железа
  4. Обслуживание ОС
  5. Масштабирование
  6. Время развертывания

Что делать?

Облачные провайдеры

~ 2006 год

Минусы?

  1. Стоимость
  2. Нерациональное использование ресурсов
  3. Обслуживание железа
  4. Обслуживание ОС
  5. Масштабирование
  6. Время развертывания

Виртуальные машины

Плюсы?

  1. Меньше серверов
  2. Изоляция
  3. Независимость
  4. Разные ОС
  5. Готовые образы

Минусы?

  1. Стоимость
  2. Нерациональное использование ресурсов
  3. Обслуживание железа
  4. Обслуживание ОС
  5. Масштабирование
  6. Время развертывания

Docker

Отличия от ВМ

  1. Виртуализация на уровне ОС
  2. Меньший вес образа
  3. Быстрый старт
  4. Меньшее потребление ресурсов
  5. Худшая безопасность

Терминология

  1. Image
  2. Container
  3. Docker Daemon
  4. Docker Client
  5. Docker Hub

Команды

  1. docker ps [-a включая остановленные]
  2. docker pull <image:tag>
  3. docker run <image>
  4. docker start <name|id>
  5. docker stop <name|id>
  6. docker rm <name|id>

Dockerfile

FROM node:12
WORKDIR /usr/src/app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 8080
CMD [ "node", "server.js" ]

docker-compose.yml

version: '3'

services:
  nodejs:
    build: .
    ports:
      - "80:8080"
    networks:
      - app-network
    command: node app.js
  db:
    image: mongo:4.2
    container_name: mongo
    volumes:     
      - dbdata:/data/db
    networks:
      - app-network
    
networks:
  app-network:
  
volumes:
  dbdata:

Еще?

Made with Slides.com