SlideShare a Scribd company logo
1 of 278
Download to read offline
Дмитрий Столяров
CTO & Co-founder
v1
Лучшие практики CI/CD
с Kubernetes и GitLab
Лучшие практики
Continuous Delivery
с Docker
RootConf 2016
Собираем Docker-
образы
быстро и удобно
Highload 2016
Наш опыт
с Kubernetes
в небольших проектах
RootConf 2017
Лучшие практики
CI/CD с Kubernetes
и GitLab
Highload 2017
ВЫ
ЗДЕСЬ
youtube.com/c/flant
Опыт
приложений уже
в production120
готово, скоро в
production+19
в работе+20
Опыт
до конца года+22
приложение!=181
по состоянию на 4 ноября 2017
проект
в kubernetes
приложений уже
в production 21
до конца
года+4
ждем
ваш проект+?
120
готово, скоро в
production+19
в работе+20
до конца года+22
приложение!=181
Опыт
по состоянию на 4 ноября 2017
Язык
100 Node.js
47 PHP
18 Ruby
10 Python
10 JavaScript
4 Go
4 C#
2 Scala
2 Elixir
1 Java
по состоянию на 4 ноября 2017
Язык
100 Node.js
47 PHP
18 Ruby
10 Python
10 JavaScript
4 Go
4 C#
2 Scala
2 Elixir
1 Java
Фреймворк
17 Yii
12 Rails
7 Django
7 Laravel
4 Socket.IO
4 .NET Core
3 Bitrix
2 Meteor.JS
6 Другие
по состоянию на 4 ноября 2017
Язык
100 Node.js
47 PHP
18 Ruby
10 Python
10 JavaScript
4 Go
4 C#
2 Scala
2 Elixir
1 Java
Фреймворк
17 Yii
12 Rails
7 Django
7 Lavarel
4 Socket.IO
4 .NET Core
3 Bitrix
2 Meteor.JS
6 Другие
Package Manager
96 npm
32 Composer
27 Yarn
19 Bundler
7 pip
2 sbt
2 .NET Core
2 hex
2 Другие
по состоянию на 4 ноября 2017
Язык
100 Node.js
47 PHP
18 Ruby
10 Python
10 JavaScript
4 Go
4 C#
2 Scala
2 Elixir
1 Java
Фреймворк
17 Yii
12 Rails
7 Django
7 Lavarel
4 Socket.IO
4 .NET Core
3 Bitrix
2 Meteor.JS
6 Другие
Package Manager
96 npm
32 Composer
27 Yarn
19 Bundler
7 pip
2 sbt
2 .NET Core
2 hex
2 Другие
по состоянию на 4 ноября 2017
DBMS
40 PostgreSQL
39 MySQL
27 MongoDB
2 Cassandra
3 Другие
Язык
100 Node.js
47 PHP
18 Ruby
10 Python
10 JavaScript
4 Go
4 C#
2 Scala
2 Elixir
1 Java
Фреймворк
17 Yii
12 Rails
7 Django
7 Lavarel
4 Socket.IO
4 .NET Core
3 Bitrix
2 Meteor.JS
6 Другие
Package Manager
96 npm
32 Composer
27 Yarn
19 Bundler
7 pip
2 sbt
2 .NET Core
2 hex
2 Другие
по состоянию на 4 ноября 2017
DBMS
40 PostgreSQL
39 MySQL
27 MongoDB
2 Cassandra
3 Другие
In-memory store
43 Redis
24 Memcahed
Язык
100 Node.js
47 PHP
18 Ruby
10 Python
10 JavaScript
4 Go
4 C#
2 Scala
2 Elixir
1 Java
Фреймворк
17 Yii
12 Rails
7 Django
7 Lavarel
4 Socket.IO
4 .NET Core
3 Bitrix
2 Meteor.JS
6 Другие
Package Manager
96 npm
32 Composer
27 Yarn
19 Bundler
7 pip
2 sbt
2 .NET Core
2 hex
2 Другие
по состоянию на 4 ноября 2017
DBMS
40 PostgreSQL
39 MySQL
27 MongoDB
2 Cassandra
3 Другие
In-memory store
43 Redis
24 Memcahed
Queue
37 RabbitMQ
15 Redis
8 Nats
2 PGQ
1 Kafka
Язык
100 Node.js
47 PHP
18 Ruby
10 Python
10 JavaScript
4 Go
4 C#
2 Scala
2 Elixir
1 Java
Фреймворк
17 Yii
12 Rails
7 Django
7 Lavarel
4 Socket.IO
4 .NET Core
3 Bitrix
2 Meteor.JS
6 Другие
Package Manager
96 npm
32 Composer
27 Yarn
19 Bundler
7 pip
2 sbt
2 .NET Core
2 hex
2 Другие
по состоянию на 4 ноября 2017
DBMS
40 PostgreSQL
39 MySQL
27 MongoDB
2 Cassandra
3 Другие
In-memory store
43 Redis
24 Memcahed
Queue
37 RabbitMQ
15 Redis
8 Nats
2 PGQ
1 Kafka
Search
30 Elasticsearch
12 Sphinx
Язык
100 Node.js
47 PHP
18 Ruby
10 Python
10 JavaScript
4 Go
4 C#
2 Scala
2 Elixir
1 Java
Фреймворк
17 Yii
12 Rails
7 Django
7 Lavarel
4 Socket.IO
4 .NET Core
3 Bitrix
2 Meteor.JS
6 Другие
Package Manager
96 npm
32 Composer
27 Yarn
19 Bundler
7 pip
2 sbt
2 .NET Core
2 hex
2 Другие
DBMS
40 PostgreSQL
39 MySQL
27 MongoDB
2 Cassandra
3 Другие
Queue
37 RabbitMQ
15 Redis
8 Nats
2 PGQ
1 Kafka
Search
30 Elasticsearch
12 Sphinx
In-memory store
43 Redis
24 Memcahed
по состоянию на 4 ноября 2017
Язык
100 Node.js
47 PHP
18 Ruby
10 Python
10 JavaScript
4 Go
4 C#
2 Scala
2 Elixir
1 Java
Фреймворк
17 Yii
12 Rails
7 Django
7 Lavarel
4 Socket.IO
4 .NET Core
3 Bitrix
2 Meteor.JS
6 Другие
Package Manager
96 npm
32 Composer
27 Yarn
19 Bundler
7 pip
2 sbt
2 .NET Core
2 hex
2 Другие
DBMS
40 PostgreSQL
39 MySQL
27 MongoDB
2 Cassandra
3 Другие
Queue
37 RabbitMQ
15 Redis
8 Nats
2 PGQ
1 Kafka
Search
30 Elasticsearch
12 Sphinx
In-memory store
43 Redis
24 Memcahed
по состоянию на 4 ноября 2017
команд30+ клиентов25приложение181
Что же такое CI/CD?
git
build
test
release
operate
Что же такое CI/CD?
git
build
test
release
operate
Continuous
Intergation?
Continuous
Deployment?
Continuous
Delivery?
Что же такое CI/CD?
git
build
test
release
operate
Continuous
Intergation?
ОНО РАБОТАЕТ
Continuous
Deployment?
Continuous
Delivery?
Что же такое CI/CD?
git
build
test
release
operate
Что же такое CI/CD?
git
build
test
release
operate
Какой CI/CD бывает?
Факторы, влияющие на сложность
Основной
процесс
Тестирование
Разделение
прав доступа
Архитектура
приложения
Какой CI/CD бывает?
Факторы / Основной процесс
Какой CI/CD бывает?
Факторы / Основной процесс
Одно окружение
Какой CI/CD бывает?
Факторы / Основной процесс
Одно окружение
Несколько окружений
Какой CI/CD бывает?
Факторы / Основной процесс
Одно окружение
Несколько окружений
Динамические окружения
Какой CI/CD бывает?
Факторы / Основной процесс
Одно окружение
Несколько окружений
Динамические окружения
Несколько площадок
Какой CI/CD бывает?
Факторы / Основной процесс
Одно окружение
Несколько окружений
Динамические окружения
Несколько площадок
Какой CI/CD бывает?
Факторы / Тестирование
Какой CI/CD бывает?
Факторы / Тестирование
Анализ кода
Какой CI/CD бывает?
Факторы / Тестирование
Анализ кода
Тесты без окружения Unit
Какой CI/CD бывает?
Факторы / Тестирование
Анализ кода
Тесты без окружения
Тесты в окружении
Unit
Functional,
Integration
Какой CI/CD бывает?
Факторы / Тестирование
Анализ кода
Тесты без окружения
Тесты в окружении
Тесты в «полном» окружении
Unit
Functional,
Integration
End-to-end,
Performance regression
Какой CI/CD бывает?
Факторы / Тестирование
Анализ кода
Тесты без окружения
Тесты в окружении
Тесты в «полном» окружении
Unit
Functional,
Integration
End-to-end,
Performance regression
Какой CI/CD бывает?
Факторы / Разделение прав доступа
Какой CI/CD бывает?
Факторы / Разделение прав доступа
Простое разделение прав доступа
Какой CI/CD бывает?
Факторы / Разделение прав доступа
Простое разделение прав доступа
Разные права на окружения
Какой CI/CD бывает?
Факторы / Разделение прав доступа
Простое разделение прав доступа
Разные права на окружения
Multi stage approval
Какой CI/CD бывает?
Факторы / Разделение прав доступа
Простое разделение прав доступа
Разные права на окружения
Multi stage approval
Quorum approval
Какой CI/CD бывает?
Факторы / Разделение прав доступа
Простое разделение прав доступа
Разные права на окружения
Multi stage approval
Quorum approval
Какой CI/CD бывает?
Факторы / Архитектура приложения
Какой CI/CD бывает?
Факторы / Архитектура приложения
Stateless приложение
Какой CI/CD бывает?
Факторы / Архитектура приложения
Stateless приложение
Stateful приложение
Какой CI/CD бывает?
Факторы / Архитектура приложения
Stateless приложение
Stateful приложение
Многокомпонентное приложение
Какой CI/CD бывает?
Факторы / Архитектура приложения
Stateless приложение
Stateful приложение
Многокомпонентное приложение
Микросервисная архитектура
Какой CI/CD бывает?
Факторы / Архитектура приложения
Stateless приложение
Stateful приложение
Многокомпонентное приложение
Микросервисная архитектура
git + shell
Docker
Kubernetes + Helm
Kubernetes + Helm
+ Gitlab
Kubernetes + Helm
+ Gitlab Enterprise
Какой CI/CD бывает?
Дополнительные требования
Какой CI/CD бывает?
Дополнительные требования
Быстро
Какой CI/CD бывает?
Дополнительные требования
Быстро
Надёжно
Какой CI/CD бывает?
Дополнительные требования
Быстро
Надёжно
Выкат и откат с гарантией и без простоя
Какой CI/CD бывает?
Дополнительные требования
Быстро
Надёжно
Выкат и откат с гарантией и без простоя
SLA 99.9%
Какой CI/CD бывает?
Дополнительные требования
Быстро
Надёжно
Дёшево
Выкат и откат с гарантией и без простоя
SLA 99.9%
Какой CI/CD бывает?
Дополнительные требования
Быстро
Надёжно
Дёшево
Выкат и откат с гарантией и без простоя
SLA 99.9%
Затраты на управление / администрирование
Какой CI/CD бывает?
Дополнительные требования
Быстро
Надёжно
Дёшево
Выкат и откат с гарантией и без простоя
SLA 99.9%
Затраты на управление / администрирование
Затраты на инфраструктуру
Какой CI/CD бывает?
Дополнительные требования
Быстро
Надёжно
Дёшево
Выкат и откат с гарантией и без простоя
SLA 99.9%
Затраты на управление / администрирование
Затраты на инфраструктуру
Какой CI/CD бывает?
Особые требования Флант
Какой CI/CD бывает?
Особые требования Флант
Open Source
Разномасштабность
Интероперабельность
Простота эксплуатации
Будущее
Инструменты
Инструменты
Kubernetes
Инструменты
Kubernetes
«Чёрный ящик»
YAML
Declarative DSL
N
Deployment StatefulSet
Service Ingress
Job CronJob
N
Инструменты
Стандарт для нас
Инструменты
Инструменты
Управление пакетами
Состоит из 2-х частей
helm (client), tiller (server)
Chart – название пакетов
метаописание, yaml-шаблоны
Наша утилита
Улучшает сборку
Улучшает deploy (чуть-чуть)
github.com/flant/dapp
git
build
test
release
operate
git operatebuild test release
git
build
test
release
operate
git operatebuild test release
git operatebuild test release
git operatebuild test release
git operatebuild test release
.gitlab-ci.yaml
git operatebuild test release
.gitlab-ci.yaml
git operatebuild test release
.gitlab-ci.yaml
Dockerfile
git operatebuild test release
.gitlab-ci.yaml
Dockerfile
dockerbuild
Docker-
image
git operatebuild test release
.gitlab-ci.yaml
Dockerfile
dockerbuild
Docker-
image
Docker
registry
git operatebuild test release
.gitlab-ci.yaml
Dockerfile
dockerbuild
Docker-
image
Docker
registry
git operatebuild test release
.gitlab-ci.yaml
Dockerfile
dockerbuild
Docker-
image
Docker-
image
+
tests
Docker
registry
git operatebuild test release
.gitlab-ci.yaml
Dockerfile
dockerbuild
Docker-
image
Docker-
image
+
tests
Docker
registry
.helm
backend.yaml
frontend.yaml
cron.yaml
git operatebuild test release
.gitlab-ci.yaml
Dockerfile
dockerbuild
Docker-
image
Docker-
image
+
tests
Docker
registry
.helm
backend.yaml
frontend.yaml
cron.yaml
helm install
git operatebuild test release
.gitlab-ci.yaml
Dockerfile
dockerbuild
Docker-
image
Docker-
image
+
tests
Docker
registry
.helm
backend.yaml
frontend.yaml
cron.yaml
helm install
git operate
Dockerfile
.helm
backend.yaml
frontend.yaml
cron.yaml
dockerbuild
Docker-
image
Docker-
image
+
.gitlab-ci.yaml
tests
Docker
registry
build test release
helm install
.helm
git operate
backend.yaml
frontend.yaml
cron.yaml
Docker-
image
Docker-
image
+
.gitlab-ci.yaml
tests
Docker
registry
build test release
Dockerfile
dockerbuild
helm install
.helm
git operate
backend.yaml
frontend.yaml
cron.yaml
Docker-
image
Docker-
image
+
.gitlab-ci.yaml
tests
Docker
registry
build test release
dockerbuild
helm install
Dappfile
.helm
git operate
backend.yaml
frontend.yaml
cron.yaml
Docker-
image
Docker-
image
+
.gitlab-ci.yaml
tests
Docker
registry
build test release
Dappfile
dappbuild
helm install
.helm
git operate
backend.yaml
frontend.yaml
cron.yaml
Docker-
image
Docker-
image
+
.gitlab-ci.yaml
tests
Docker
registry
build test release
Dappfile
dappbuild
dapp kube deploy
.helm
git operate
backend.yaml
frontend.yaml
cron.yaml
Docker-
image
Docker-
image
+
.gitlab-ci.yaml
tests
Docker
registry
build test release
Dappfile
dappbuild
dapp kube deploy
Демо на нашем стенде
Приходите в любое время,
мы будем показывать, как
вся эта связка работает в
деталях и с примерами. И
будем отвечать на любые
ваши вопросы.
CI/CD с Kubernetes и Gitlab
tips & tricks
Что должно быть
в Docker образе?
1/8
Что должно быть в Docker образе?
Всё, что нужно для
работы приложения!
Что должно быть в Docker образе?
Системные компоненты
# apt-get install php-fpm
Что должно быть в Docker образе?
Системные компоненты
# apt-get install php-fpm
Package manager
Что должно быть в Docker образе?
Системные компоненты
# apt-get install php-fpm
Package manager Dependencies
Что должно быть в Docker образе?
Системные компоненты
# apt-get install php-fpm
Системные библиотеки
# apt-get install libxml2
Package manager Dependencies
Что должно быть в Docker образе?
Системные компоненты
# apt-get install php-fpm
Системные библиотеки
# apt-get install libxml2
Package manager Dependencies
Исходный код
Что должно быть в Docker образе?
Системные компоненты
# apt-get install php-fpm
Системные библиотеки
# apt-get install libxml2
Package manager Dependencies
Исходный код Собранные ассеты
Что должно быть в Docker образе?
Системные компоненты
# apt-get install php-fpm
Системные библиотеки
# apt-get install libxml2
Package manager Dependencies
Готовые конфигиИсходный код Собранные ассеты
One image to rule them all
2/8
One image to rule them all
git
One image to rule them all
dockerfile
composer.json
***.php
master
git
One image to rule them all
dockerfile
composer.json
***.php
master
git
Docker
образ
One image to rule them all
dockerfile
composer.json
***.php
master
git
Docker
образ
:master
One image to rule them all
dockerfile
composer.json
***.php
master
git
Docker
образ
:master
QA
One image to rule them all
dockerfile
composer.json
***.php
master
git
Docker
образ
:master
QA
Всё ок!
One image to rule them all
dockerfile
composer.json
***.php
master
git
Docker
образ
:master
QA
Всё ок!
dockerfile
composer.json
***.php
production
One image to rule them all
dockerfile
composer.json
***.php
master
git
Docker
образ
:master
QA
dockerfile
composer.json
***.php
production
Всё ок!
Docker
образ
One image to rule them all
dockerfile
composer.json
***.php
master
git
Docker
образ
:master
QA
dockerfile
composer.json
***.php
production
Всё ок!
Docker
образ
:production
One image to rule them all
dockerfile
composer.json
***.php
master
git
Docker
образ
:master
QA
dockerfile
composer.json
***.php
production
Всё ок!
Docker
образ
:production
=
One image to rule them all
dockerfile
composer.json
***.php
master
git
Docker
образ
:master
QA
dockerfile
composer.json
***.php
production
Всё ок!
Docker
образ
:production
=
One image to rule them all
dockerfile
composer.json
***.php
master
git
Docker
образ
:master
QA
dockerfile
composer.json
***.php
production
Всё ок!
Docker
образ
:production
=
:v0.7.23
:v0.7.23
One image to rule them all
dockerfile
composer.json
***.php
master
git
Docker
образ
:master
QA
dockerfile
composer.json
***.php
production
Всё ок!
Docker
образ
:production
=
:v0.7.23
:v0.7.23
One image to rule them all
dockerfile
composer.json
***.php
master
git
Docker
образ
:master
QA
dockerfile
composer.json
***.php
production
Всё ок!
Docker
образ
:production
=
:v0.7.23
:v0.7.23
One image to rule them all
dockerfile
composer.json
***.php
master
git
Docker
образ
:master
QA
dockerfile
composer.json
***.php
production
Всё ок!
Docker
образ
:production
=
:v0.7.23
:v0.7.23
One image to rule them all
dockerfile
composer.json
***.php
master
git
Docker
образ
:master
dockerfile
composer.json
***.php
production
Docker
образ
:production
=
:v0.7.23
:v0.7.23
One image to rule them all
dockerfile
composer.json
***.php
master
git
Docker
образ
:master
dockerfile
composer.json
***.php
production
Docker
образ
:production
=
:v0.7.23
:v0.7.23
QA
One image to rule them all
dockerfile
composer.json
***.php
master
git
Docker
образ
:master
dockerfile
composer.json
***.php
production
Docker
образ
:production
=
:v0.7.23
:v0.7.23
QA
Всё ок!
One image to rule them all
dockerfile
composer.json
***.php
master
git
Docker
образ
:master
dockerfile
composer.json
***.php
production
Docker
образ
:production
=
:v0.7.23
:v0.7.23
QA
Всё ок!
One image to rule them all
Какие бранчи собирать? Как тегировать образы?
One image to rule them all
git branch
Какие бранчи собирать? Как тегировать образы?
git tag
One image to rule them all
git branch
Какие бранчи собирать? Как тегировать образы?
временные образы
git tag
One image to rule them all
git branch
Какие бранчи собирать? Как тегировать образы?
временные образы
git tag релизные образы
One image to rule them all
git branch
Какие бранчи собирать? Как тегировать образы?
временные образы
git tag релизные образы
devreview
integration
dem
o
One image to rule them all
git branch
Какие бранчи собирать? Как тегировать образы?
временные образы
git tag релизные образы
devreview
integration
dem
o
staging
qa
production
Порядок выката
и миграции
3/8
Кейс #1
Backend
Порядок выката и миграции
Кейс #1
Backend
1
DBПорядок выката и миграции
:v0.7.14
Кейс #1
Backend
1
DBПорядок выката и миграции
:v0.7.14
BackendDB
1
Кейс #1
Порядок выката и миграции
Deploy
Кейс #1
BackendDB
Migrations1
Порядок выката и миграции
:v0.7.14
->
0.8.15
:v0.8.15
Deploy
:v0.7.14
->
0.8.15
Кейс #1
BackendDB
:v0.8.15
Migrations1
Порядок выката и миграции
:v0.7.14
->
0.8.15
:v0.7.14
:v0.7.14
:v0.7.14
Кейс #1
BackendDB
:v0.8.15
Migrations1
Порядок выката и миграции
:v0.7.14
->
0.8.15
:v0.7.14
:v0.7.14
:v0.7.14
Кейс #1
BackendDB
:v0.8.15
Migrations1
Порядок выката и миграции
:v0.7.14
->
0.8.15
:v0.7.14
:v0.7.14
Кейс #1
BackendDB
:v0.8.15
Migrations1
Порядок выката и миграции
:v0.7.14
->
0.8.15
:v0.8.15
:v0.7.14
:v0.7.14
Кейс #1
BackendDB
:v0.8.15
Migrations1
Порядок выката и миграции
:v0.7.14
->
0.8.15
:v0.8.15
:v0.7.14
:v0.7.14
Кейс #1
BackendDB
:v0.8.15
Migrations1
Порядок выката и миграции
:v0.7.14
->
0.8.15
:v0.7.14
:v0.7.14
Кейс #1
BackendDB
:v0.8.15
Migrations1
Порядок выката и миграции
:v0.7.14
->
0.8.15
:v0.8.15
:v0.7.14
:v0.7.14
Кейс #1
BackendDB
:v0.8.15
Migrations1
Порядок выката и миграции
:v0.7.14
->
0.8.15
:v0.8.15
:v0.7.14
:v0.7.14
Кейс #1
BackendDB
:v0.8.15
Migrations1
Порядок выката и миграции
:v0.7.14
->
0.8.15
:v0.7.14
:v0.7.14
Кейс #1
BackendDB
:v0.8.15
Migrations1
Порядок выката и миграции
:v0.7.14
->
0.8.15
:v0.7.14
:v0.7.14
Кейс #1
Backend
:v0.8.15
Migrations
DB
1
Порядок выката и миграции
:v0.7.14
->
0.8.15
:v0.7.14
:v0.7.14
Кейс #1
Backend
:v0.8.15
Migrations
DB
1
Порядок выката и миграции
:v0.7.14
->
0.8.15
:v0.7.14
:v0.7.14
Кейс #1
Backend
:v0.8.15
Migrations
DB
1
Порядок выката и миграции
:v0.7.14
->
0.8.15
:v0.7.14
:v0.7.14
Кейс #1
Backend
:v0.8.15
Migrations
DB
1
Порядок выката и миграции
:v0.7.14
->
0.8.15
:v0.7.14
:v0.7.14
:v0.8.15
Кейс #1
Backend
:v0.8.15
Migrations
DB
1
Порядок выката и миграции
:v0.7.14
->
0.8.15
:v0.7.14
:v0.7.14
:v0.8.15
Кейс #1
Backend
:v0.8.15
Migrations
DB
1
Порядок выката и миграции
:v0.7.14
->
0.8.15
:v0.7.14
:v0.7.14
:v0.8.15
Кейс #1
Backend
:v0.8.15
Migrations
DB
1
Порядок выката и миграции
:v0.7.14
->
0.8.15
:v0.7.14
:v0.8.15
Кейс #1
Backend
:v0.8.15
Migrations
DB
1
Порядок выката и миграции
:v0.7.14
->
0.8.15
:v0.8.15
:v0.7.14
:v0.8.15
Кейс #1
Backend
:v0.8.15
Migrations
DB
1
Порядок выката и миграции
:v0.7.14
->
0.8.15
:v0.8.15
:v0.7.14
:v0.8.15
Кейс #1
Backend
:v0.8.15
Migrations
DB
1
Порядок выката и миграции
:v0.7.14
->
0.8.15
:v0.8.15
:v0.8.15
:v0.8.15
Кейс #1
Backend
:v0.8.15
Migrations
DB
1
Порядок выката и миграции
:v0.8.15
Кейс #1
Backend
:v0.8.15
Migrations
DB
1
:v0.8.15
:v0.8.15
:v0.8.15
Порядок выката и миграции
:v0.8.15
Кейс #1
Backend
:v0.8.15
Migrations
DB
1
:v0.8.15
:v0.8.15
:v0.8.15
Порядок выката и миграции
Ура!
Выкатилось!
Ура!
Выкатилось!
:v0.8.15
Кейс #1
Backend
:v0.8.15
Migrations
DB
1
:v0.8.15
:v0.8.15
:v0.8.15
Порядок выката и миграции
backend
3
migrationsDB
1
Порядок выката и миграции
Кейс #1
backend
3
migrationsDB
1
использует
использует
Порядок выката и миграции
Кейс #1
backend
3
migrationsDB
1
использует
использует
косвенно
зависит
Порядок выката и миграции
Кейс #1
Кейс #2
Порядок выката и миграции
Кейс #2
Backend
Migrations
DB
:v0.8.15
:v0.8.15
Порядок выката и миграции
Кейс #2
Backend
Migrations
DB
:v0.8.15
:v0.8.15
1
Порядок выката и миграции
Кейс #2
Backend
Migrations
DB
:v0.8.15
:v0.8.15
1
Порядок выката и миграции
Кейс #2
Backend
Migrations
DB
:v0.8.15
1
:v0.8.15
Порядок выката и миграции
Кейс #2
Backend
Migrations
DB
:v0.8.15
1
:v0.8.15
Порядок выката и миграции
Кейс #2
Backend
Migrations
DB
:v0.8.15
1
:v0.8.15
Порядок выката и миграции
Кейс #2
Backend
Migrations
DB
:v0.8.15
1
:v0.8.15
Порядок выката и миграции
Кейс #2
Backend
Migrations
DB
:v0.8.15
1
:v0.8.15
Порядок выката и миграции
Кейс #2
Backend
Migrations
DB
:v0.8.15
1
:v0.8.15
Порядок выката и миграции
Кейс #2
Backend
Migrations
DB
:v0.8.15
1
:v0.8.15
Порядок выката и миграции
Кейс #2
Backend
Migrations
DB
:v0.8.15
1
:v0.8.15
Порядок выката и миграции
Кейс #2
Backend
Migrations
DB
:v0.8.15
1
:v0.8.15
Порядок выката и миграции
Кейс #2
Backend
Migrations
DB
:v0.8.15
1
:v0.8.15
Порядок выката и миграции
Кейс #2
Backend
Migrations
DB
:v0.8.15
1
Порядок выката и миграции
:v0.8.15
Кейс #2
Backend
Migrations
DB
:v0.8.15
1
Порядок выката и миграции
:v0.8.15
Кейс #2
Backend
Migrations
DB
:v0.8.15
1
Порядок выката и миграции
:v0.8.15
backend
3
migrationsDB
1
использует
использует
косвенно
зависит
Резюме
Порядок выката и миграции
Bootstrap базы
4/8
Dump
Bootstrap базы
Seed
Dump
Bootstrap базы
Seed
DB
Dump
Bootstrap базы
Seed
DB load dump
Dump
Bootstrap базы
Seed
DB load dump
migrations
Dump
Bootstrap базы
Seed
DB load dump
migrations
Dump
Bootstrap базы
Seed
DB load dump
Backend migrations
Dump
Bootstrap базы
Seed
DB load dump
Backend migrations
Dump
Bootstrap базы
Backend
DB load dump
migrations
DB
Seed
Dump
Bootstrap базы
Backend
DB load dump
migrations
DB migrations
Seed
Dump
Bootstrap базы
Backend
DB load dump
migrations
DB migrations
seed
Seed
Dump
Bootstrap базы
Backend
DB load dump
migrations
DB migrations
seed
Seed
Dump
Bootstrap базы
Backend
DB load dump
migrations Backend
DB migrations
seed
Seed
Dump
Bootstrap базы
Backend
DB load dump
migrations Backend
DB migrations
seed
Seed
Скорость
bootstrap’а
Занимаемое
место
Полезность
Сложность
реализации
Пустая база
только структура 5 sec
Seed/fixtures
из текущего бранча 1 min
Ночной дамп
с seeds/fixtures из master 10 sec
Дамп
“для staging” 1 hour
Ночной дамп
“для staging” 30 sec
Дамп
с production 30 min
Ночной дамп
с production 1 min
Скорость
bootstrap’а
Занимаемое
место
Полезность
Сложность
реализации
Пустая база
только структура
Seed/fixtures
из текущего бранча
Ночной дамп
с seeds/fixtures из master 10 sec
Дамп
“для staging”
Ночной дамп
“для staging” 30 sec
Дамп
с production
Ночной дамп
с production
Deploy
Bootstrap базы
Load: Seeds
Load: Nightly staging dump
Build
Build Deploy
Load: Nightly seeds (from master)
Выкат действительно
без простоя
5/8
Выкат действительно без простоя
Выкат действительно без простоя
example.com
Выкат действительно без простоя
example.com
Выкат действительно без простоя
example.com
Выкат действительно без простоя
example.com
Graceful shutdown
Выкат действительно без простоя
Graceful shutdownexample.com
Выкат действительно без простоя
Graceful shutdownexample.com
Выкат действительно без простоя
Graceful shutdownexample.com
Выкат действительно без простоя
Graceful shutdownexample.com
Выкат действительно без простоя
Graceful shutdownexample.com
Readiness probe
Выкат действительно без простоя
Graceful shutdownexample.com
Readiness probe
Проверьте (чем угодно)
Выкат действительно без простоя
Graceful shutdownexample.com
Readiness probe
Проверьте (чем угодно)
Правильный размер pod-а
и политика обновления
Атомарность выката
6/8
Атомарность выката
Атомарность выката
Environments
production = v0.7.14
Атомарность выката
Environments
production = v0.7.14
backend
3
memcached
3
cron-foo
cron-bar
cron-baz
Redis
3
Background
Jobs
3
Sphinx
2
DB
3
Атомарность выката
Environments
production = v0.7.14
backend
3
memcached
3
cron-foo
cron-bar
cron-baz
Redis
3
Background
Jobs
3
Sphinx
2
DB
3
:v0.7.14
:v0.7.14
:v0.7.14
:v0.7.14
Атомарность выката
backend
3
memcached
3
cron-foo
cron-bar
cron-baz
Redis
3
Background
Jobs
3
Sphinx
2
DB
3
Environments
Pipelines
v0.8.15
:v0.7.14
:v0.7.14
:v0.7.14
:v0.7.14
production = v0.7.14
Атомарность выката
Deploy
backend
3
memcached
3
cron-foo
cron-bar
cron-baz
Redis
3
Background
Jobs
3
Sphinx
2
DB
3
Environments
Pipelines
v0.8.15
:v0.7.14
:v0.7.14
:v0.7.14
:v0.7.14
production = v0.7.14
Атомарность выката
Deploy
backend
3
memcached
3
cron-foo
cron-bar
cron-baz
Redis
3
Background
Jobs
3
Sphinx
2
DB
3
Environments
Pipelines
v0.8.15
:v0.7.14
:v0.7.14
:v0.7.14
:v0.7.14
production = v0.7.14
Атомарность выката
Deploy
backend
3
memcached
3
cron-foo
cron-bar
cron-baz
Redis
3
Background
Jobs
3
Sphinx
2
DB
3
Environments
Pipelines
v0.8.15
:v0.7.14
:v0.7.14
:v0.7.14
:v0.7.14
production = v0.7.14
Атомарность выката
Deploy
backend
3
memcached
3
cron-foo
cron-bar
cron-baz
Redis
3
Background
Jobs
3
Sphinx
2
DB
3
Environments
Pipelines
v0.8.15
:v0.7.14
:v0.7.14
:v0.7.14
:v0.7.14
production = v0.7.14
:v0.7.15
Deploy
memcached
3
Redis
3
DB
3
Environments
Pipelines
v0.8.15
production = v0.7.14
cron-foo
cron-bar
cron-baz
Background
Jobs
3
Sphinx
2
backend
3
:v0.7.14
:v0.7.14
:v0.7.14
:v0.7.14
Атомарность выката
:v0.7.15
Deploy
memcached
3
Redis
3
DB
3
Environments
Pipelines
v0.8.15
production = v0.7.14
cron-foo
cron-bar
cron-baz
Background
Jobs
3
Sphinx
2
backend
3
:v0.7.14
:v0.7.14
:v0.7.14
Атомарность выката
:v0.8.15
:v0.7.15
Deploy
memcached
3
Redis
3
DB
3
Environments
Pipelines
v0.8.15
production = v0.7.14
cron-foo
cron-bar
cron-baz
Background
Jobs
3
Sphinx
2
backend
3
:v0.7.14 -> 0.8.15
:v0.7.14 -> 0.8.15
:v0.7.14 -> 0.8.15
:v0.8.15
Атомарность выката
:v0.7.15
Deploy
memcached
3
Redis
3
DB
3
Environments
Pipelines
v0.8.15
production = v0.7.14
cron-foo
cron-bar
cron-baz
Background
Jobs
3
Sphinx
2
backend
3
:v0.8.15
Атомарность выката
:v0.7.14 -> 0.8.15
:v0.8.15
:v0.8.15
:v0.7.15
Deploy
memcached
3
Redis
3
DB
3
Environments
Pipelines
v0.8.15
production = v0.7.14
cron-foo
cron-bar
cron-baz
Background
Jobs
3
Sphinx
2
backend
3
:v0.7.14 -> 0.8.15
:v0.8.15
Атомарность выката
:v0.8.15
:v0.8.15
:v0.7.15
Deploy
memcached
3
Redis
3
DB
3
Environments
Pipelines
v0.8.15
production = v0.7.14
cron-foo
cron-bar
cron-baz
Background
Jobs
3
Sphinx
2
backend
3
:v0.7.14 -> 0.8.15
:v0.8.15
Атомарность выката
ошибка
:v0.8.15
:v0.8.15
:v0.7.15
Deploy
memcached
3
Redis
3
DB
3
Environments
Pipelines
v0.8.15
production = v0.7.14
cron-foo
cron-bar
cron-baz
Background
Jobs
3
Sphinx
2
backend
3
:v0.7.14 -> 0.8.15
:v0.8.15
Атомарность выката
ошибка
:v0.8.15
:v0.8.15
:v0.7.15
Deploy
memcached
3
Redis
3
DB
3
Environments
Pipelines
v0.8.15
production = v0.7.14
cron-foo
cron-bar
cron-baz
Background
Jobs
3
Sphinx
2
backend
3
:v0.7.14 -> 0.8.15
:v0.8.15
Атомарность выката
ошибка
:v0.8.15
:v0.8.15
✖
Deploy
ошибка
:v0.7.15
memcached
3
Redis
3
DB
3
cron-foo
cron-bar
cron-baz
Background
Jobs
3
Sphinx
2
backend
Pipelines
v0.8.15 ✖
Environments
3
Атомарность выката
production = v0.7.14
:v0.7.14 -> 0.8.15
:v0.8.15
:v0.8.15
:v0.8.15
:v0.7.15
Deploy
memcached
3
Redis
3
DB
3
Environments
Pipelines
v0.8.15
production = v0.7.14
cron-foo
cron-bar
cron-baz
Background
Jobs
3
Sphinx
2
backend
3
:v0.7.14 -> 0.8.15
:v0.8.15
Атомарность выката
ошибка
:v0.8.15
:v0.8.15
✖
Динамические
окружения
7/8
Динамические окружения
Ingress Controller
Динамические окружения
*.review.example.com
Ingress Controller
Динамические окружения
*.review.example.com
Ingress Controller
git
Динамические окружения
*.review.example.com
Ingress Controller
git
feature-x
***.php
Динамические окружения
*.review.example.com
Ingress Controller
git
feature-x
***.php
namespace: feature-x
Динамические окружения
*.review.example.com
Ingress Controller
git
feature-x
***.php
namespace: feature-x
feature-x.review.example.com
Динамические окружения
*.review.example.com
Ingress Controller
git
feature-x
***.php
namespace: feature-x
feature-x.review.example.com
abc
***.php
Динамические окружения
*.review.example.com
Ingress Controller
git
feature-x
***.php
namespace: feature-x
feature-x.review.example.com
abc
***.php
abc.review.example.com
namespace: abc
Динамические окружения
*.review.example.com
Ingress Controller
git
feature-x
***.php
namespace: feature-x
feature-x.review.example.com
abc
***.php
abc.review.example.com
namespace: abc
feature-foo
***.php
Динамические окружения
*.review.example.com
Ingress Controller
feature-x.review.example.com
namespace: feature-x
abc.review.example.com
namespace: abc
feature-foo.review.example.com
namespace: feature-foo
git
feature-xabcfeature-foo
***.php
***.php
***.php
Динамические окружения
*.review.example.com
Ingress Controller
feature-x.review.example.com
namespace: feature-x
feature-foo.review.example.com
namespace: feature-foo
git
feature-xfeature-foo
***.php
***.php
abc.review.example.com
namespace: abc
Динамические окружения
*.review.example.com
Ingress Controller
feature-x.review.example.com
namespace: feature-x
feature-foo.review.example.com
namespace: feature-foo
git
feature-xfeature-foo
***.php
***.php
Динамические окружения
*.review.example.com
Ingress Controller
feature-x.review.example.com
namespace: feature-x
feature-foo.review.example.com
namespace: feature-foo
git
feature-foo
***.php
Динамические окружения
*.review.example.com
Ingress Controller
feature-foo.review.example.com
namespace: feature-foo
git
feature-foo
***.php
Отображение
branch: new-interface
Динамические окруженияодинпроект
Отображение
branch: new-interface
Динамические окруженияодинпроект
namespace: new-interface
new-interface.review.example.com
Отображение
branch: new-interface
Динамические окруженияодинпроект
namespace: new-interface
new-interface.review.example.com
branch: feature/LLLL___#1342
одинпроект
+SLUG
Отображение
branch: new-interface
Динамические окруженияодинпроект
namespace: new-interface
new-interface.review.example.com
branch: feature/LLLL___#1342
одинпроект
+SLUG
namespace: feature-llll-dfjre3
feature-llll-dfjre3.review.example.com
Отображение
branch: new-interface
Динамические окруженияодинпроект
namespace: new-interface
new-interface.review.example.com
branch: feature/LLLL___#1342
одинпроект
+SLUG
namespace: feature-llll-dfjre3
feature-llll-dfjre3.review.example.com
несколько
проектов
Отображение
branch: new-interface
Динамические окруженияодинпроект
namespace: new-interface
new-interface.review.example.com
branch: feature/LLLL___#1342
одинпроект
+SLUG
namespace: feature-llll-dfjre3
feature-llll-dfjre3.review.example.com
несколько
проектов
project: gimli
branch: bar
Отображение
branch: new-interface
Динамические окруженияодинпроект
namespace: new-interface
new-interface.review.example.com
branch: feature/LLLL___#1342
одинпроект
+SLUG
namespace: feature-llll-dfjre3
feature-llll-dfjre3.review.example.com
несколько
проектов
namespace: gimli-barproject: gimli
gimli-bar.review.example.combranch: bar
Отображение
branch: new-interface
Динамические окруженияодинпроект
namespace: new-interface
new-interface.review.example.com
branch: feature/LLLL___#1342
одинпроект
+SLUG
namespace: feature-llll-dfjre3
feature-llll-dfjre3.review.example.com
несколько
проектов
namespace: gimli-barproject: gimli
gimli-bar.review.example.combranch: bar
Несколько советов
Динамические окружения
Минимизировать
использование ресурсов
Несколько советов
Динамические окружения
Минимизировать
использование ресурсов
Целиком в Kubernetes
(включая все СУБД)
Несколько советов
Динамические окружения
Минимизировать
использование ресурсов
Целиком в Kubernetes
(включая все СУБД)
Ограничить
публичный доступ
Несколько советов
Динамические окружения
Минимизировать
использование ресурсов
Целиком в Kubernetes
(включая все СУБД)
Ограничить
публичный доступ
Как-то ограничивать
разработчиков
Несколько советов
Динамические окружения
Минимизировать
использование ресурсов
Целиком в Kubernetes
(включая все СУБД)
Ограничить
публичный доступ
Как-то ограничивать
разработчиков
Deploy (auto)
Load: Seeds
Load: Nightly staging dump
Build
Build Deploy
Load: Nightly seeds (from master)
Динамические окружения
Deploy (auto)
Load: Seeds
Load: Nightly staging dump
Build
Build Deploy
Load: Nightly seeds (from master)
Stop environment
Динамические окружения
Тесты
8/8
Тесты / Анализ кода
build test
Тесты / Анализ кода
build test
run tests
Тесты / Тесты без окружения (Unit)
build test
Тесты / Тесты без окружения (Unit)
build test
Dockerfile
dockerbuild
Docker-
image
Тесты / Тесты без окружения (Unit)
build test
dockerbuild
Docker-
imageDockerfile
docker run
Docker-
image
+
Тесты / В окружении (Function, Integration)
build test
Тесты / В окружении (Function, Integration)
build test
Dockerfile
Тесты / В окружении (Function, Integration)
build test
Dockerfile
dockerbuild
Docker-
image
Тесты / В окружении (Function, Integration)
build test
Dockerfile
dockerbuild
Docker-
image
Docker
registry
Тесты / В окружении (Function, Integration)
build test
Dockerfile
dockerbuild
Docker-
image
Docker
registry
.helm
Тесты / В окружении (Function, Integration)
build test
Dockerfile
dockerbuild
Docker-
image
Docker
registry
.helm
helm install
Тесты / В окружении (Function, Integration)
build test
helm install
dockerbuild
Docker-
image
Job
Docker
registry
namespace: test-abc
Dockerfile
.helm
Тесты / В окружении (Function, Integration)
build test
helm install
dockerbuild
Docker-
image
helm delete --purge
Job
Docker
registry
namespace: test-abc
Dockerfile
.helm
Конец
Kubernetes + Helm
+ Gitlab
Kubernetes + Helm
+ Gitlab
Флант
24×7×365 L1/L2/L3/+ DevOps SLA
30+
24×7×365 L1/L2/L3/+ DevOps SLA
30+
… и по доступной цене
Наши Docker-проекты
github.com/flant/dapp
github.com/flant/loghouse
Дмитрий Столяров
dmitry.stolyarov@flant.ru
linkedin.com/in/distol
github.com/distol
Всем спасибо!
Наш блог на Хабрахабре
habrahabr.ru/company/flant/
Наш youtube-канал
youtube.com/c/flant
git operate
Dockerfile
.helm
backend.yaml
frontend.yaml
cron.yaml
dockerbuild
Docker-
image
Docker-
image
+
.gitlab-ci.yaml
tests
Docker
registry
build test release
helm install

More Related Content

What's hot

Jenkins 2.0: Организуем тестирование в составе Continuous Delivery
Jenkins 2.0: Организуем тестирование в составе Continuous DeliveryJenkins 2.0: Организуем тестирование в составе Continuous Delivery
Jenkins 2.0: Организуем тестирование в составе Continuous DeliverySQALab
 
Moscow Jenkins Meetup #1. Pipeline для инженеров. Обзор экосистемы
Moscow Jenkins Meetup #1. Pipeline для инженеров. Обзор экосистемыMoscow Jenkins Meetup #1. Pipeline для инженеров. Обзор экосистемы
Moscow Jenkins Meetup #1. Pipeline для инженеров. Обзор экосистемыOleg Nenashev
 
Codeception + Docker + Robo и что из этого вышло
Codeception + Docker + Robo и что из этого вышлоCodeception + Docker + Robo и что из этого вышло
Codeception + Docker + Robo и что из этого вышлоCOMAQA.BY
 
Docker + Selenium Webdriver в рамках Continuous Integration
Docker + Selenium Webdriver в рамках Continuous IntegrationDocker + Selenium Webdriver в рамках Continuous Integration
Docker + Selenium Webdriver в рамках Continuous IntegrationSQALab
 
непрерывная интеграция шаг к непрерывному деплою родионов игорь
непрерывная интеграция   шаг к непрерывному деплою родионов игорьнепрерывная интеграция   шаг к непрерывному деплою родионов игорь
непрерывная интеграция шаг к непрерывному деплою родионов игорьdrupalconf
 
Github Flow. Тестировщики против тестирования
Github Flow. Тестировщики против тестированияGithub Flow. Тестировщики против тестирования
Github Flow. Тестировщики против тестированияSQALab
 
Мифы о DevOps / Александр Титов, Иван Евтухович (Экспресс 42)
Мифы о DevOps / Александр Титов, Иван Евтухович (Экспресс 42)Мифы о DevOps / Александр Титов, Иван Евтухович (Экспресс 42)
Мифы о DevOps / Александр Титов, Иван Евтухович (Экспресс 42)Ontico
 
Kubernetes
KubernetesKubernetes
KubernetesSQALab
 
Николай Сивко "Хорошо поддерживаемое в продакшне приложение"
Николай Сивко "Хорошо поддерживаемое в продакшне приложение"Николай Сивко "Хорошо поддерживаемое в продакшне приложение"
Николай Сивко "Хорошо поддерживаемое в продакшне приложение"Tanya Denisyuk
 
Continuous Delivery, или волшебная кнопка для релизов по запросу, Денис Яковл...
Continuous Delivery, или волшебная кнопка для релизов по запросу, Денис Яковл...Continuous Delivery, или волшебная кнопка для релизов по запросу, Денис Яковл...
Continuous Delivery, или волшебная кнопка для релизов по запросу, Денис Яковл...Ontico
 
Как подружить команду админов с N командами разработки / Денис Яковлев (2ГИС)
Как подружить команду админов с N командами разработки / Денис Яковлев (2ГИС)Как подружить команду админов с N командами разработки / Денис Яковлев (2ГИС)
Как подружить команду админов с N командами разработки / Денис Яковлев (2ГИС)Ontico
 
Jenkins 2. Как сделать мажорный релиз и не развалить сообщество?
Jenkins 2. Как сделать мажорный релиз и не развалить сообщество?Jenkins 2. Как сделать мажорный релиз и не развалить сообщество?
Jenkins 2. Как сделать мажорный релиз и не развалить сообщество?CEE-SEC(R)
 
Как мы собираем проекты в выделенном окружении в Windows Docker
Как мы собираем проекты в выделенном окружении в Windows DockerКак мы собираем проекты в выделенном окружении в Windows Docker
Как мы собираем проекты в выделенном окружении в Windows DockerPositive Hack Days
 
РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo
РИФ 2016, Внедрение контроля качества в большом web-проекте на примере BadooРИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo
РИФ 2016, Внедрение контроля качества в большом web-проекте на примере BadooТарасов Константин
 
Эволюция процесса деплоя в проекте — Денис Яковлев, 2ГИС
Эволюция процесса деплоя в проекте — Денис Яковлев, 2ГИСЭволюция процесса деплоя в проекте — Денис Яковлев, 2ГИС
Эволюция процесса деплоя в проекте — Денис Яковлев, 2ГИС2ГИС Технологии
 
Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)
Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)
Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)Ontico
 
Непрерывная интеграция - шаг к непрерывному деплойменту
Непрерывная интеграция - шаг к непрерывному деплойментуНепрерывная интеграция - шаг к непрерывному деплойменту
Непрерывная интеграция - шаг к непрерывному деплойментуИгорь Родионов
 
Илья Кудинов
Илья КудиновИлья Кудинов
Илья КудиновCodeFest
 

What's hot (19)

Jenkins 2.0: Организуем тестирование в составе Continuous Delivery
Jenkins 2.0: Организуем тестирование в составе Continuous DeliveryJenkins 2.0: Организуем тестирование в составе Continuous Delivery
Jenkins 2.0: Организуем тестирование в составе Continuous Delivery
 
Moscow Jenkins Meetup #1. Pipeline для инженеров. Обзор экосистемы
Moscow Jenkins Meetup #1. Pipeline для инженеров. Обзор экосистемыMoscow Jenkins Meetup #1. Pipeline для инженеров. Обзор экосистемы
Moscow Jenkins Meetup #1. Pipeline для инженеров. Обзор экосистемы
 
Codeception + Docker + Robo и что из этого вышло
Codeception + Docker + Robo и что из этого вышлоCodeception + Docker + Robo и что из этого вышло
Codeception + Docker + Robo и что из этого вышло
 
Docker + Selenium Webdriver в рамках Continuous Integration
Docker + Selenium Webdriver в рамках Continuous IntegrationDocker + Selenium Webdriver в рамках Continuous Integration
Docker + Selenium Webdriver в рамках Continuous Integration
 
непрерывная интеграция шаг к непрерывному деплою родионов игорь
непрерывная интеграция   шаг к непрерывному деплою родионов игорьнепрерывная интеграция   шаг к непрерывному деплою родионов игорь
непрерывная интеграция шаг к непрерывному деплою родионов игорь
 
Github Flow. Тестировщики против тестирования
Github Flow. Тестировщики против тестированияGithub Flow. Тестировщики против тестирования
Github Flow. Тестировщики против тестирования
 
Мифы о DevOps / Александр Титов, Иван Евтухович (Экспресс 42)
Мифы о DevOps / Александр Титов, Иван Евтухович (Экспресс 42)Мифы о DevOps / Александр Титов, Иван Евтухович (Экспресс 42)
Мифы о DevOps / Александр Титов, Иван Евтухович (Экспресс 42)
 
Kubernetes
KubernetesKubernetes
Kubernetes
 
Николай Сивко "Хорошо поддерживаемое в продакшне приложение"
Николай Сивко "Хорошо поддерживаемое в продакшне приложение"Николай Сивко "Хорошо поддерживаемое в продакшне приложение"
Николай Сивко "Хорошо поддерживаемое в продакшне приложение"
 
Continuous Delivery, или волшебная кнопка для релизов по запросу, Денис Яковл...
Continuous Delivery, или волшебная кнопка для релизов по запросу, Денис Яковл...Continuous Delivery, или волшебная кнопка для релизов по запросу, Денис Яковл...
Continuous Delivery, или волшебная кнопка для релизов по запросу, Денис Яковл...
 
Как подружить команду админов с N командами разработки / Денис Яковлев (2ГИС)
Как подружить команду админов с N командами разработки / Денис Яковлев (2ГИС)Как подружить команду админов с N командами разработки / Денис Яковлев (2ГИС)
Как подружить команду админов с N командами разработки / Денис Яковлев (2ГИС)
 
Jenkins 2. Как сделать мажорный релиз и не развалить сообщество?
Jenkins 2. Как сделать мажорный релиз и не развалить сообщество?Jenkins 2. Как сделать мажорный релиз и не развалить сообщество?
Jenkins 2. Как сделать мажорный релиз и не развалить сообщество?
 
Как мы собираем проекты в выделенном окружении в Windows Docker
Как мы собираем проекты в выделенном окружении в Windows DockerКак мы собираем проекты в выделенном окружении в Windows Docker
Как мы собираем проекты в выделенном окружении в Windows Docker
 
РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo
РИФ 2016, Внедрение контроля качества в большом web-проекте на примере BadooРИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo
РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo
 
Эволюция процесса деплоя в проекте — Денис Яковлев, 2ГИС
Эволюция процесса деплоя в проекте — Денис Яковлев, 2ГИСЭволюция процесса деплоя в проекте — Денис Яковлев, 2ГИС
Эволюция процесса деплоя в проекте — Денис Яковлев, 2ГИС
 
Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)
Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)
Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)
 
CD with Jenkins. Lessons Learned
CD with Jenkins. Lessons LearnedCD with Jenkins. Lessons Learned
CD with Jenkins. Lessons Learned
 
Непрерывная интеграция - шаг к непрерывному деплойменту
Непрерывная интеграция - шаг к непрерывному деплойментуНепрерывная интеграция - шаг к непрерывному деплойменту
Непрерывная интеграция - шаг к непрерывному деплойменту
 
Илья Кудинов
Илья КудиновИлья Кудинов
Илья Кудинов
 

Viewers also liked

ElasticSearch и Heka: как мы учились просеивать слона через сито / Адель Сачк...
ElasticSearch и Heka: как мы учились просеивать слона через сито / Адель Сачк...ElasticSearch и Heka: как мы учились просеивать слона через сито / Адель Сачк...
ElasticSearch и Heka: как мы учились просеивать слона через сито / Адель Сачк...Ontico
 
Protecting the Web at a scale using consul and Elk / Valentin Chernozemski (S...
Protecting the Web at a scale using consul and Elk / Valentin Chernozemski (S...Protecting the Web at a scale using consul and Elk / Valentin Chernozemski (S...
Protecting the Web at a scale using consul and Elk / Valentin Chernozemski (S...Ontico
 
Искусство предсказания: как давать более точные оценки времени проекта / Андр...
Искусство предсказания: как давать более точные оценки времени проекта / Андр...Искусство предсказания: как давать более точные оценки времени проекта / Андр...
Искусство предсказания: как давать более точные оценки времени проекта / Андр...Ontico
 
Инцидент-менеджмент в Badoo / Илья Аблеев (Badoo)
Инцидент-менеджмент в Badoo / Илья Аблеев (Badoo)Инцидент-менеджмент в Badoo / Илья Аблеев (Badoo)
Инцидент-менеджмент в Badoo / Илья Аблеев (Badoo)Ontico
 
Мониторинг облачной CI-системы на примере Jenkins / Александр Акбашев (HERE T...
Мониторинг облачной CI-системы на примере Jenkins / Александр Акбашев (HERE T...Мониторинг облачной CI-системы на примере Jenkins / Александр Акбашев (HERE T...
Мониторинг облачной CI-системы на примере Jenkins / Александр Акбашев (HERE T...Ontico
 
Как мы поддерживаем 100 разных версий клиентов в Badoo / Ярослав Голуб (Badoo)
Как мы поддерживаем 100 разных версий клиентов в Badoo / Ярослав Голуб (Badoo)Как мы поддерживаем 100 разных версий клиентов в Badoo / Ярослав Голуб (Badoo)
Как мы поддерживаем 100 разных версий клиентов в Badoo / Ярослав Голуб (Badoo)Ontico
 

Viewers also liked (6)

ElasticSearch и Heka: как мы учились просеивать слона через сито / Адель Сачк...
ElasticSearch и Heka: как мы учились просеивать слона через сито / Адель Сачк...ElasticSearch и Heka: как мы учились просеивать слона через сито / Адель Сачк...
ElasticSearch и Heka: как мы учились просеивать слона через сито / Адель Сачк...
 
Protecting the Web at a scale using consul and Elk / Valentin Chernozemski (S...
Protecting the Web at a scale using consul and Elk / Valentin Chernozemski (S...Protecting the Web at a scale using consul and Elk / Valentin Chernozemski (S...
Protecting the Web at a scale using consul and Elk / Valentin Chernozemski (S...
 
Искусство предсказания: как давать более точные оценки времени проекта / Андр...
Искусство предсказания: как давать более точные оценки времени проекта / Андр...Искусство предсказания: как давать более точные оценки времени проекта / Андр...
Искусство предсказания: как давать более точные оценки времени проекта / Андр...
 
Инцидент-менеджмент в Badoo / Илья Аблеев (Badoo)
Инцидент-менеджмент в Badoo / Илья Аблеев (Badoo)Инцидент-менеджмент в Badoo / Илья Аблеев (Badoo)
Инцидент-менеджмент в Badoo / Илья Аблеев (Badoo)
 
Мониторинг облачной CI-системы на примере Jenkins / Александр Акбашев (HERE T...
Мониторинг облачной CI-системы на примере Jenkins / Александр Акбашев (HERE T...Мониторинг облачной CI-системы на примере Jenkins / Александр Акбашев (HERE T...
Мониторинг облачной CI-системы на примере Jenkins / Александр Акбашев (HERE T...
 
Как мы поддерживаем 100 разных версий клиентов в Badoo / Ярослав Голуб (Badoo)
Как мы поддерживаем 100 разных версий клиентов в Badoo / Ярослав Голуб (Badoo)Как мы поддерживаем 100 разных версий клиентов в Badoo / Ярослав Голуб (Badoo)
Как мы поддерживаем 100 разных версий клиентов в Badoo / Ярослав Голуб (Badoo)
 

Similar to Лучшие практики CI/CD с Kubernetes и GitLab / Дмитрий Столяров (Флант)

"How to build powerful CI / CD based on GitLab and Docker", Aleksandr Matkovs...
"How to build powerful CI / CD based on GitLab and Docker", Aleksandr Matkovs..."How to build powerful CI / CD based on GitLab and Docker", Aleksandr Matkovs...
"How to build powerful CI / CD based on GitLab and Docker", Aleksandr Matkovs...Provectus
 
Григорий Петров "WebRTC в мобильных приложениях при помощи React Native"
Григорий Петров "WebRTC в мобильных приложениях при помощи React Native"Григорий Петров "WebRTC в мобильных приложениях при помощи React Native"
Григорий Петров "WebRTC в мобильных приложениях при помощи React Native"IT Event
 
Программируемость и автоматизация решений Ciscо - практическое применение
Программируемость и автоматизация решений Ciscо - практическое применениеПрограммируемость и автоматизация решений Ciscо - практическое применение
Программируемость и автоматизация решений Ciscо - практическое применениеCisco Russia
 
My talk at DevParty 2017
My talk at DevParty 2017My talk at DevParty 2017
My talk at DevParty 2017Alex Chistyakov
 
Александр Чистяков, Git in Sky — Современные тенденции в разработке программн...
Александр Чистяков, Git in Sky — Современные тенденции в разработке программн...Александр Чистяков, Git in Sky — Современные тенденции в разработке программн...
Александр Чистяков, Git in Sky — Современные тенденции в разработке программн...Dev_Party
 
CodeFest 2012. Лихтер К, Таратухин И. — Коктейль «Skydive» или как мы делали ...
CodeFest 2012. Лихтер К, Таратухин И. — Коктейль «Skydive» или как мы делали ...CodeFest 2012. Лихтер К, Таратухин И. — Коктейль «Skydive» или как мы делали ...
CodeFest 2012. Лихтер К, Таратухин И. — Коктейль «Skydive» или как мы делали ...CodeFest
 
Коктейль Skydive или как мы мы делали 2ГИС-Онлайн
Коктейль Skydive или как мы мы делали 2ГИС-ОнлайнКоктейль Skydive или как мы мы делали 2ГИС-Онлайн
Коктейль Skydive или как мы мы делали 2ГИС-ОнлайнKonstantin Likhter
 
Docker в Badoo: ПМЖ или временная регистрация
Docker в Badoo: ПМЖ или временная регистрацияDocker в Badoo: ПМЖ или временная регистрация
Docker в Badoo: ПМЖ или временная регистрацияBadoo Development
 
Docker integration into Badoo
Docker integration into BadooDocker integration into Badoo
Docker integration into BadooAnton Turetsky
 
Михаил Корепанов "Инкрементальные обновления на клиенте. Ловкость рук и никак...
Михаил Корепанов "Инкрементальные обновления на клиенте. Ловкость рук и никак...Михаил Корепанов "Инкрементальные обновления на клиенте. Ловкость рук и никак...
Михаил Корепанов "Инкрементальные обновления на клиенте. Ловкость рук и никак...Yandex
 
DUMP-2012 - Управление разработкой - "Опыт смены системы контроля версий" Кон...
DUMP-2012 - Управление разработкой - "Опыт смены системы контроля версий" Кон...DUMP-2012 - Управление разработкой - "Опыт смены системы контроля версий" Кон...
DUMP-2012 - Управление разработкой - "Опыт смены системы контроля версий" Кон...it-people
 
Опыт внедрения Docker .
 Опыт внедрения Docker .  Опыт внедрения Docker .
Опыт внедрения Docker . phpfriendsclub
 
My Open Source (Sept 2017)
My Open Source (Sept 2017)My Open Source (Sept 2017)
My Open Source (Sept 2017)Roman Dvornov
 
Фронтенд для миллионов (Орёл)
Фронтенд для миллионов (Орёл)Фронтенд для миллионов (Орёл)
Фронтенд для миллионов (Орёл)Anastasia Goryacheva
 
Видеозвонки и шаринг экрана в мобильном приложении
Видеозвонки и шаринг экрана в мобильном приложенииВидеозвонки и шаринг экрана в мобильном приложении
Видеозвонки и шаринг экрана в мобильном приложенииVoximplant
 
Ivan Kolodyazhny "A very short introduction to Kubernetes Operators developme...
Ivan Kolodyazhny "A very short introduction to Kubernetes Operators developme...Ivan Kolodyazhny "A very short introduction to Kubernetes Operators developme...
Ivan Kolodyazhny "A very short introduction to Kubernetes Operators developme...Fwdays
 
"Девопс - это не только для программистов. Практические примеры из жизни одно...
"Девопс - это не только для программистов. Практические примеры из жизни одно..."Девопс - это не только для программистов. Практические примеры из жизни одно...
"Девопс - это не только для программистов. Практические примеры из жизни одно...it-people
 
Облачные приложения и построение платформ для них на базе Openstack Дмитрий Х...
Облачные приложения и построение платформ для них на базе Openstack Дмитрий Х...Облачные приложения и построение платформ для них на базе Openstack Дмитрий Х...
Облачные приложения и построение платформ для них на базе Openstack Дмитрий Х...Cisco Russia
 

Similar to Лучшие практики CI/CD с Kubernetes и GitLab / Дмитрий Столяров (Флант) (20)

"How to build powerful CI / CD based on GitLab and Docker", Aleksandr Matkovs...
"How to build powerful CI / CD based on GitLab and Docker", Aleksandr Matkovs..."How to build powerful CI / CD based on GitLab and Docker", Aleksandr Matkovs...
"How to build powerful CI / CD based on GitLab and Docker", Aleksandr Matkovs...
 
Григорий Петров "WebRTC в мобильных приложениях при помощи React Native"
Григорий Петров "WebRTC в мобильных приложениях при помощи React Native"Григорий Петров "WebRTC в мобильных приложениях при помощи React Native"
Григорий Петров "WebRTC в мобильных приложениях при помощи React Native"
 
Программируемость и автоматизация решений Ciscо - практическое применение
Программируемость и автоматизация решений Ciscо - практическое применениеПрограммируемость и автоматизация решений Ciscо - практическое применение
Программируемость и автоматизация решений Ciscо - практическое применение
 
My talk at DevParty 2017
My talk at DevParty 2017My talk at DevParty 2017
My talk at DevParty 2017
 
Александр Чистяков, Git in Sky — Современные тенденции в разработке программн...
Александр Чистяков, Git in Sky — Современные тенденции в разработке программн...Александр Чистяков, Git in Sky — Современные тенденции в разработке программн...
Александр Чистяков, Git in Sky — Современные тенденции в разработке программн...
 
CodeFest 2012. Лихтер К, Таратухин И. — Коктейль «Skydive» или как мы делали ...
CodeFest 2012. Лихтер К, Таратухин И. — Коктейль «Skydive» или как мы делали ...CodeFest 2012. Лихтер К, Таратухин И. — Коктейль «Skydive» или как мы делали ...
CodeFest 2012. Лихтер К, Таратухин И. — Коктейль «Skydive» или как мы делали ...
 
Коктейль Skydive или как мы мы делали 2ГИС-Онлайн
Коктейль Skydive или как мы мы делали 2ГИС-ОнлайнКоктейль Skydive или как мы мы делали 2ГИС-Онлайн
Коктейль Skydive или как мы мы делали 2ГИС-Онлайн
 
Wgforge CI/CD
Wgforge CI/CDWgforge CI/CD
Wgforge CI/CD
 
Gitlab devconf
Gitlab devconfGitlab devconf
Gitlab devconf
 
Docker в Badoo: ПМЖ или временная регистрация
Docker в Badoo: ПМЖ или временная регистрацияDocker в Badoo: ПМЖ или временная регистрация
Docker в Badoo: ПМЖ или временная регистрация
 
Docker integration into Badoo
Docker integration into BadooDocker integration into Badoo
Docker integration into Badoo
 
Михаил Корепанов "Инкрементальные обновления на клиенте. Ловкость рук и никак...
Михаил Корепанов "Инкрементальные обновления на клиенте. Ловкость рук и никак...Михаил Корепанов "Инкрементальные обновления на клиенте. Ловкость рук и никак...
Михаил Корепанов "Инкрементальные обновления на клиенте. Ловкость рук и никак...
 
DUMP-2012 - Управление разработкой - "Опыт смены системы контроля версий" Кон...
DUMP-2012 - Управление разработкой - "Опыт смены системы контроля версий" Кон...DUMP-2012 - Управление разработкой - "Опыт смены системы контроля версий" Кон...
DUMP-2012 - Управление разработкой - "Опыт смены системы контроля версий" Кон...
 
Опыт внедрения Docker .
 Опыт внедрения Docker .  Опыт внедрения Docker .
Опыт внедрения Docker .
 
My Open Source (Sept 2017)
My Open Source (Sept 2017)My Open Source (Sept 2017)
My Open Source (Sept 2017)
 
Фронтенд для миллионов (Орёл)
Фронтенд для миллионов (Орёл)Фронтенд для миллионов (Орёл)
Фронтенд для миллионов (Орёл)
 
Видеозвонки и шаринг экрана в мобильном приложении
Видеозвонки и шаринг экрана в мобильном приложенииВидеозвонки и шаринг экрана в мобильном приложении
Видеозвонки и шаринг экрана в мобильном приложении
 
Ivan Kolodyazhny "A very short introduction to Kubernetes Operators developme...
Ivan Kolodyazhny "A very short introduction to Kubernetes Operators developme...Ivan Kolodyazhny "A very short introduction to Kubernetes Operators developme...
Ivan Kolodyazhny "A very short introduction to Kubernetes Operators developme...
 
"Девопс - это не только для программистов. Практические примеры из жизни одно...
"Девопс - это не только для программистов. Практические примеры из жизни одно..."Девопс - это не только для программистов. Практические примеры из жизни одно...
"Девопс - это не только для программистов. Практические примеры из жизни одно...
 
Облачные приложения и построение платформ для них на базе Openstack Дмитрий Х...
Облачные приложения и построение платформ для них на базе Openstack Дмитрий Х...Облачные приложения и построение платформ для них на базе Openstack Дмитрий Х...
Облачные приложения и построение платформ для них на базе Openstack Дмитрий Х...
 

More from Ontico

One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...Ontico
 
Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)Ontico
 
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)Ontico
 
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...Ontico
 
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)Ontico
 
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...Ontico
 
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...Ontico
 
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)Ontico
 
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)Ontico
 
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...Ontico
 
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...Ontico
 
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...Ontico
 
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)Ontico
 
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)Ontico
 
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)Ontico
 
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)Ontico
 
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...Ontico
 
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...Ontico
 
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...Ontico
 
Как мы учились чинить самолеты в воздухе / Евгений Коломеец (Virtuozzo)
Как мы учились чинить самолеты в воздухе / Евгений Коломеец (Virtuozzo)Как мы учились чинить самолеты в воздухе / Евгений Коломеец (Virtuozzo)
Как мы учились чинить самолеты в воздухе / Евгений Коломеец (Virtuozzo)Ontico
 

More from Ontico (20)

One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
 
Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)
 
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
 
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
 
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
 
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
 
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
 
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
 
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
 
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
 
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
 
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
 
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
 
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
 
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
 
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
 
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
 
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
 
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
 
Как мы учились чинить самолеты в воздухе / Евгений Коломеец (Virtuozzo)
Как мы учились чинить самолеты в воздухе / Евгений Коломеец (Virtuozzo)Как мы учились чинить самолеты в воздухе / Евгений Коломеец (Virtuozzo)
Как мы учились чинить самолеты в воздухе / Евгений Коломеец (Virtuozzo)
 

Лучшие практики CI/CD с Kubernetes и GitLab / Дмитрий Столяров (Флант)