SlideShare a Scribd company logo
1 of 41
Download to read offline
Docker in Production
with AWS ECS
About
• О проблемах, с которыми мы столкнулись
• О том, как мы их решили
• Какие уроки мы вынесли
Web apps
Mobile apps
GameDev
Our apps
Zoo
• Ruby-On-Rails
• Webpack / Angular / React / Yarn /etc.
• PostgreSQL
• Redis
• Heroku
• AWS
We are monolithic
MONOLITHIC
MICROSERVICES
RoR developers - 45
UI/UX - 21
Mobile developers -13
Frontend developers -13
QA - 11
Support - 3
BA -1
Cloud Castle Team
13
11
13
13
21
45
OPSes / Sysadmins / DevOps-engineers
-
0
• Quick Start
• Instant Visibility
• Logs + Metrics + Alerts
• Backups
• Underlying infrastructure as a service
• No need Support for infrastructure
Что мы любим
в Heroku
• Мало возможностей для кастомайзинга
• Цена
Что мы НЕ любим
в Heroku
Heroku Docker AWS
3 workers x 25$
DB 75$
Logentries 7$
2 Sidekiq x 25$
Redis 200$
407$
3 workers x 9$
DB 29$
CloudWatch 0$
3 Sidekiq x 0$
Redis 25$
63$
VS
Итак, мы решили, что нам
нужны контейнеры....
“
”
Docker Containers
Market
• Classic Swarm / Swarm Mode
• Kubernates / Tectonic
• Rancher
• AWS ECS / Azure Container Service / Google
Container Engine
Docker is dead
Докер не падает!!!11“
”
Kernel Panic
Kernel Panic
Kernel Panic
Kernel Panic
Kernel Panic
Kernel Panic
Kernel Panic
Kernel Panic
Docker is dead
• Простое управление кластерами в любом масштабе
• Расширяемость
• Безопасность
• Использование с другими сервисами AWS
• Autoscaling, CloudFormation Cluster
• Docker-compose compatibility
• Rollback & Container soft placement
• Интеграция с ECS практически в любом облачном сборщике
Управление
контейнерами
Elastic Container
Service
• Гибкость и декларативность
• Инфраструктура в виде кода
• Настройка с помощью параметров
• Поддерживает широкий перечень ресурсов AWS
• Позволяет поддерживать кластер в работоспособном
состоянии перезапуская / переподнимая дефектную машину
Кластер на
CloudFormation
ecs-cli
ECS Agent
App
ECS Agent
App
ECS Cluster
E
C
S
T
A
S
K
S
C
H
E
D
U
L
E
R
EC2 Container
Registry
EC2 Application LoadBalancer
Target Group
AWS ECS Console - Cluster List
AWS ECS Console - Services
Docker is dead
ECS Cluster nodeCloudFormation
HealthCheck
CloudFormation
ECS
Cluster node
Kill
Up!
Docker is dead
ECS
Cluster node
CloudFormation
ECS Cluster node
1 Service
Number
of desired nodes = 2
Number of nodes = 1
Docker is dead
ECS Cluster node
0 Service
ECS Cluster node
1 Service
Number
of desired nodes = 2
Number of nodes = 2
ECS Cluster node
1 Service
Docker is dead
• Data insecurity
• Specific resource requirements
• Network problems
• State in computing environment
• They just don’t fit major Docker features
• Extra isolation is critical at the database layer
• Cloud platform incompatibility
Stateful in
containers
1. Database
2. Key-Value storage
3. Logs
4. Uploads
Stateful in containers is dangerous
What we’ve put in containers
Dev or Ops
Environment
Database
CI/CD Server
Web Server
Api Server
Batch Jobs
Integration
Stateless
Stateful
Long - Life Short - Life
1. Database → RDS
2. Key-Value storage → Elasticache
3. Logs → CloudWatch
4. Uploads → S3
Stateful in containers is dangerous
What we’ve put in containers
Dev or Ops
Environment
Database
CI/CD Server
Web Server
Api Server
Batch Jobs
Integration
Stateless
Stateful
Long - Life Short - Life
Мы запилили мониторинг
за мониторингом
“
”
1. ELK
2. Prometheus & InfluxDB & Grafana
3. AWS CloudWatch
4. Third Party
Monitoring
& Logging
CloudWatch
• Hosted and Maintained By AWS
• Docker logdriver
• Access to all AWS Resources
• Ugly UI :(
AWS CloudWatch - Metrics
AWS CloudWatch - Logs
AWS CloudWatch - Logs
CloudWatch
• 0$
• No time limits for log storage
• Have access to each AWS Recourse
• Quick start
1. 5 environments
2. 0 fuck ups with AWS ECS
3. ~15 zero-downtime deployments per-day
4. ~400$ per-month for all environments
What we have?
• Don’t put data in Docker
• Put docker in auto scaling groups
• Have 2 instances of everything
• Reboot containers in case of close to quotes
• Keep your images slim for fast scaling and healing
Simple receipt
Thank you!
cloudcastle.ru
ilya.zhilenkov@castle.co

More Related Content

What's hot

Triggermesh - FaaS платформа на Kubernetes
Triggermesh - FaaS платформа на KubernetesTriggermesh - FaaS платформа на Kubernetes
Triggermesh - FaaS платформа на KubernetesMad Devs
 
Продакшен-кластер для Docker одним кликом
Продакшен-кластер для Docker одним кликомПродакшен-кластер для Docker одним кликом
Продакшен-кластер для Docker одним кликомIlya Fomin
 
Максим Пугачев
Максим ПугачевМаксим Пугачев
Максим ПугачевCodeFest
 
Облачная инфраструктура Amazon We
Облачная инфраструктура Amazon WeОблачная инфраструктура Amazon We
Облачная инфраструктура Amazon WeLeonid Vygovskiy
 
Cloud APIs - обзор API западных провайдеров и API Scalaxy, Нат Гаджибалаев
Cloud APIs - обзор API западных провайдеров и API Scalaxy, Нат ГаджибалаевCloud APIs - обзор API западных провайдеров и API Scalaxy, Нат Гаджибалаев
Cloud APIs - обзор API западных провайдеров и API Scalaxy, Нат ГаджибалаевFuenteovejuna
 
Go sharp moscow архитектура .net приложений на основе amazon web services и ...
Go sharp moscow архитектура .net приложений на основе amazon web services и ...Go sharp moscow архитектура .net приложений на основе amazon web services и ...
Go sharp moscow архитектура .net приложений на основе amazon web services и ...Denis Batalov
 
Изоморфные react-приложения
Изоморфные react-приложенияИзоморфные react-приложения
Изоморфные react-приложенияDenis Izmaylov
 
CodeFest 2010. Гаджибалаев Н. — сlass Server::Cloud < Server::Hardware // ...
CodeFest 2010. Гаджибалаев Н. — сlass Server::Cloud < Server::Hardware // ...CodeFest 2010. Гаджибалаев Н. — сlass Server::Cloud < Server::Hardware // ...
CodeFest 2010. Гаджибалаев Н. — сlass Server::Cloud < Server::Hardware // ...CodeFest
 
Разработка приложений для облаков / Андрей Кожокару (EPAM)
Разработка приложений для облаков / Андрей Кожокару (EPAM)Разработка приложений для облаков / Андрей Кожокару (EPAM)
Разработка приложений для облаков / Андрей Кожокару (EPAM)Ontico
 
Александр Усунов (TagesJump) - Magento в AWS
Александр Усунов (TagesJump) - Magento в AWSАлександр Усунов (TagesJump) - Magento в AWS
Александр Усунов (TagesJump) - Magento в AWSmeet_magento
 
Sql Server: Database Mirroring -> Availability group migration
Sql Server: Database Mirroring -> Availability group migrationSql Server: Database Mirroring -> Availability group migration
Sql Server: Database Mirroring -> Availability group migrationAnatoly Popov
 
DevOps Fest 2020. Александр Глущенко. Modern Enterprise Network Architecture ...
DevOps Fest 2020. Александр Глущенко. Modern Enterprise Network Architecture ...DevOps Fest 2020. Александр Глущенко. Modern Enterprise Network Architecture ...
DevOps Fest 2020. Александр Глущенко. Modern Enterprise Network Architecture ...DevOps_Fest
 
Сергей Крапивенский
Сергей КрапивенскийСергей Крапивенский
Сергей КрапивенскийCodeFest
 
selenium stack in python
selenium stack in pythonselenium stack in python
selenium stack in pythonCOMAQA.BY
 
Станислав Иващенок: "Serverless в dev ops на примере сервисов amazon"
Станислав Иващенок: "Serverless в dev ops на примере сервисов amazon"Станислав Иващенок: "Serverless в dev ops на примере сервисов amazon"
Станислав Иващенок: "Serverless в dev ops на примере сервисов amazon"Provectus
 
Сравнение решений по балансировке высоконагруженных систем / Евгений Пивень (...
Сравнение решений по балансировке высоконагруженных систем / Евгений Пивень (...Сравнение решений по балансировке высоконагруженных систем / Евгений Пивень (...
Сравнение решений по балансировке высоконагруженных систем / Евгений Пивень (...Ontico
 

What's hot (20)

Triggermesh - FaaS платформа на Kubernetes
Triggermesh - FaaS платформа на KubernetesTriggermesh - FaaS платформа на Kubernetes
Triggermesh - FaaS платформа на Kubernetes
 
CD&Azure
CD&AzureCD&Azure
CD&Azure
 
Продакшен-кластер для Docker одним кликом
Продакшен-кластер для Docker одним кликомПродакшен-кластер для Docker одним кликом
Продакшен-кластер для Docker одним кликом
 
Docker&Azure
Docker&AzureDocker&Azure
Docker&Azure
 
Максим Пугачев
Максим ПугачевМаксим Пугачев
Максим Пугачев
 
Облачная инфраструктура Amazon We
Облачная инфраструктура Amazon WeОблачная инфраструктура Amazon We
Облачная инфраструктура Amazon We
 
Cloud APIs - обзор API западных провайдеров и API Scalaxy, Нат Гаджибалаев
Cloud APIs - обзор API западных провайдеров и API Scalaxy, Нат ГаджибалаевCloud APIs - обзор API западных провайдеров и API Scalaxy, Нат Гаджибалаев
Cloud APIs - обзор API западных провайдеров и API Scalaxy, Нат Гаджибалаев
 
Go sharp moscow архитектура .net приложений на основе amazon web services и ...
Go sharp moscow архитектура .net приложений на основе amazon web services и ...Go sharp moscow архитектура .net приложений на основе amazon web services и ...
Go sharp moscow архитектура .net приложений на основе amazon web services и ...
 
Изоморфные react-приложения
Изоморфные react-приложенияИзоморфные react-приложения
Изоморфные react-приложения
 
CodeFest 2010. Гаджибалаев Н. — сlass Server::Cloud < Server::Hardware // ...
CodeFest 2010. Гаджибалаев Н. — сlass Server::Cloud < Server::Hardware // ...CodeFest 2010. Гаджибалаев Н. — сlass Server::Cloud < Server::Hardware // ...
CodeFest 2010. Гаджибалаев Н. — сlass Server::Cloud < Server::Hardware // ...
 
Разработка приложений для облаков / Андрей Кожокару (EPAM)
Разработка приложений для облаков / Андрей Кожокару (EPAM)Разработка приложений для облаков / Андрей Кожокару (EPAM)
Разработка приложений для облаков / Андрей Кожокару (EPAM)
 
Александр Усунов (TagesJump) - Magento в AWS
Александр Усунов (TagesJump) - Magento в AWSАлександр Усунов (TagesJump) - Magento в AWS
Александр Усунов (TagesJump) - Magento в AWS
 
Sql Server: Database Mirroring -> Availability group migration
Sql Server: Database Mirroring -> Availability group migrationSql Server: Database Mirroring -> Availability group migration
Sql Server: Database Mirroring -> Availability group migration
 
DevOps Fest 2020. Александр Глущенко. Modern Enterprise Network Architecture ...
DevOps Fest 2020. Александр Глущенко. Modern Enterprise Network Architecture ...DevOps Fest 2020. Александр Глущенко. Modern Enterprise Network Architecture ...
DevOps Fest 2020. Александр Глущенко. Modern Enterprise Network Architecture ...
 
Serverless
ServerlessServerless
Serverless
 
Сергей Крапивенский
Сергей КрапивенскийСергей Крапивенский
Сергей Крапивенский
 
selenium stack in python
selenium stack in pythonselenium stack in python
selenium stack in python
 
Станислав Иващенок: "Serverless в dev ops на примере сервисов amazon"
Станислав Иващенок: "Serverless в dev ops на примере сервисов amazon"Станислав Иващенок: "Serverless в dev ops на примере сервисов amazon"
Станислав Иващенок: "Serverless в dev ops на примере сервисов amazon"
 
Сравнение решений по балансировке высоконагруженных систем / Евгений Пивень (...
Сравнение решений по балансировке высоконагруженных систем / Евгений Пивень (...Сравнение решений по балансировке высоконагруженных систем / Евгений Пивень (...
Сравнение решений по балансировке высоконагруженных систем / Евгений Пивень (...
 
2013-07-06 02 Дмитрий Голушко. Cassandra
2013-07-06 02 Дмитрий Голушко. Cassandra2013-07-06 02 Дмитрий Голушко. Cassandra
2013-07-06 02 Дмитрий Голушко. Cassandra
 

Similar to Docker in Production with AWS ECS

Net core and linux in production
Net core and linux in productionNet core and linux in production
Net core and linux in productionAnatoly Popov
 
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)Pavel Tsukanov
 
Миграция существующих приложений в Windows Azure
Миграция существующих приложений в Windows AzureМиграция существующих приложений в Windows Azure
Миграция существующих приложений в Windows AzureNatalia Efimtseva
 
Dev ops.events.v tymoshyk-20-oct-2016
Dev ops.events.v tymoshyk-20-oct-2016Dev ops.events.v tymoshyk-20-oct-2016
Dev ops.events.v tymoshyk-20-oct-2016Vad Tymoshyk
 
Микросервисная архитектура на базе CoreOS и Kubernetes
Микросервисная архитектура на базе CoreOS и KubernetesМикросервисная архитектура на базе CoreOS и Kubernetes
Микросервисная архитектура на базе CoreOS и KubernetesDenis Izmaylov
 
Workflows в Express 42
Workflows в Express 42Workflows в Express 42
Workflows в Express 42Igor Kurochkin
 
"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
 
Daemons In Web on #devrus
Daemons In Web on #devrusDaemons In Web on #devrus
Daemons In Web on #devrusAlex Chistyakov
 
ВИРТУАЛЬНЫЙ ДАТА-ЦЕНТР КРОК
ВИРТУАЛЬНЫЙ ДАТА-ЦЕНТР КРОКВИРТУАЛЬНЫЙ ДАТА-ЦЕНТР КРОК
ВИРТУАЛЬНЫЙ ДАТА-ЦЕНТР КРОККРОК
 
Тернии контейнеризованных приложений и микросервисов
Тернии контейнеризованных приложений и микросервисовТернии контейнеризованных приложений и микросервисов
Тернии контейнеризованных приложений и микросервисовIvan Kruglov
 
DevCon School. Azure Microservices and Containers
DevCon School. Azure Microservices and ContainersDevCon School. Azure Microservices and Containers
DevCon School. Azure Microservices and ContainersStas Pavlov
 
Docker и оркетсрация контейнеров в облаке Azure
Docker и оркетсрация контейнеров в облаке AzureDocker и оркетсрация контейнеров в облаке Azure
Docker и оркетсрация контейнеров в облаке AzureStas Pavlov
 
Docker в работе: взгляд на использование в Badoo через год
Docker в работе: взгляд на использование в Badoo через годDocker в работе: взгляд на использование в Badoo через год
Docker в работе: взгляд на использование в Badoo через годAnton Turetsky
 
Docker в работе: взгляд на использование в Badoo через год
Docker в работе: взгляд на использование в Badoo через годDocker в работе: взгляд на использование в Badoo через год
Docker в работе: взгляд на использование в Badoo через годBadoo Development
 
Docker в работе: взгляд на его использование в Badoo через год / Турецкий Ант...
Docker в работе: взгляд на его использование в Badoo через год / Турецкий Ант...Docker в работе: взгляд на его использование в Badoo через год / Турецкий Ант...
Docker в работе: взгляд на его использование в Badoo через год / Турецкий Ант...Ontico
 
Microsoft , Azure и Drupal
Microsoft , Azure и DrupalMicrosoft , Azure и Drupal
Microsoft , Azure и DrupalPVasili
 
Из чего строят облака? Продукты Citrix
Из чего строят облака? Продукты CitrixИз чего строят облака? Продукты Citrix
Из чего строят облака? Продукты CitrixSergey Khalyapin
 
Database as a Service
Database as a ServiceDatabase as a Service
Database as a ServiceAndrey Akulov
 
Антон Турецкий
Антон ТурецкийАнтон Турецкий
Антон ТурецкийCodeFest
 
Docker & Badoo: 
никогда не останавливайся на достигнутом
Docker & Badoo: 
никогда не останавливайся на достигнутомDocker & Badoo: 
никогда не останавливайся на достигнутом
Docker & Badoo: 
никогда не останавливайся на достигнутомAnton Turetsky
 

Similar to Docker in Production with AWS ECS (20)

Net core and linux in production
Net core and linux in productionNet core and linux in production
Net core and linux in production
 
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
 
Миграция существующих приложений в Windows Azure
Миграция существующих приложений в Windows AzureМиграция существующих приложений в Windows Azure
Миграция существующих приложений в Windows Azure
 
Dev ops.events.v tymoshyk-20-oct-2016
Dev ops.events.v tymoshyk-20-oct-2016Dev ops.events.v tymoshyk-20-oct-2016
Dev ops.events.v tymoshyk-20-oct-2016
 
Микросервисная архитектура на базе CoreOS и Kubernetes
Микросервисная архитектура на базе CoreOS и KubernetesМикросервисная архитектура на базе CoreOS и Kubernetes
Микросервисная архитектура на базе CoreOS и Kubernetes
 
Workflows в Express 42
Workflows в Express 42Workflows в Express 42
Workflows в Express 42
 
"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...
 
Daemons In Web on #devrus
Daemons In Web on #devrusDaemons In Web on #devrus
Daemons In Web on #devrus
 
ВИРТУАЛЬНЫЙ ДАТА-ЦЕНТР КРОК
ВИРТУАЛЬНЫЙ ДАТА-ЦЕНТР КРОКВИРТУАЛЬНЫЙ ДАТА-ЦЕНТР КРОК
ВИРТУАЛЬНЫЙ ДАТА-ЦЕНТР КРОК
 
Тернии контейнеризованных приложений и микросервисов
Тернии контейнеризованных приложений и микросервисовТернии контейнеризованных приложений и микросервисов
Тернии контейнеризованных приложений и микросервисов
 
DevCon School. Azure Microservices and Containers
DevCon School. Azure Microservices and ContainersDevCon School. Azure Microservices and Containers
DevCon School. Azure Microservices and Containers
 
Docker и оркетсрация контейнеров в облаке Azure
Docker и оркетсрация контейнеров в облаке AzureDocker и оркетсрация контейнеров в облаке Azure
Docker и оркетсрация контейнеров в облаке Azure
 
Docker в работе: взгляд на использование в Badoo через год
Docker в работе: взгляд на использование в Badoo через годDocker в работе: взгляд на использование в Badoo через год
Docker в работе: взгляд на использование в Badoo через год
 
Docker в работе: взгляд на использование в Badoo через год
Docker в работе: взгляд на использование в Badoo через годDocker в работе: взгляд на использование в Badoo через год
Docker в работе: взгляд на использование в Badoo через год
 
Docker в работе: взгляд на его использование в Badoo через год / Турецкий Ант...
Docker в работе: взгляд на его использование в Badoo через год / Турецкий Ант...Docker в работе: взгляд на его использование в Badoo через год / Турецкий Ант...
Docker в работе: взгляд на его использование в Badoo через год / Турецкий Ант...
 
Microsoft , Azure и Drupal
Microsoft , Azure и DrupalMicrosoft , Azure и Drupal
Microsoft , Azure и Drupal
 
Из чего строят облака? Продукты Citrix
Из чего строят облака? Продукты CitrixИз чего строят облака? Продукты Citrix
Из чего строят облака? Продукты Citrix
 
Database as a Service
Database as a ServiceDatabase as a Service
Database as a Service
 
Антон Турецкий
Антон ТурецкийАнтон Турецкий
Антон Турецкий
 
Docker & Badoo: 
никогда не останавливайся на достигнутом
Docker & Badoo: 
никогда не останавливайся на достигнутомDocker & Badoo: 
никогда не останавливайся на достигнутом
Docker & Badoo: 
никогда не останавливайся на достигнутом
 

Docker in Production with AWS ECS