SlideShare ist ein Scribd-Unternehmen logo
1 von 29
Downloaden Sie, um offline zu lesen
Launching <new application> fast
scala & docker ✈ production
whoami
Denis Karpenko
denis@karpenko.me
linkedin.com/in/dkarpenko/en
What is this talk about
● Sharing approach of delivering our application
○ Benefits
○ Motivation
○ Compromises in architecture
● Willing to hear your opinion on topics discussed
Development constraints
● limited in time
● lot’s of moving parts (integrations) with 3rd
party systems
● 100% of requests are synchronous
● no dedicated devops/it specialists
● (very) active development phase
Application
Application
● 2 backend applications (spray endpoints)
○ not microservices
● 2 frontend application (SPA)
● 6 integrations with external systems:
○ XML/JSON/Plaintext over HTTP
● it’s not about highload/bigdata/…
○ N+1 instances (0?+1)
Build process
● Everything is built only once after git push
● Scala applications
○ to container with sbt-native-packager
● Backbone-Marionette SPA
○ to container with gulp
● All configs are outside of the app
● http://www.scala-sbt.org/sbt-native-packager/formats/docker.html
● https://www.npmjs.com/package/gulp-docker
Build process: SBT buildfile
val dockerSettings = Seq(
maintainer in Docker := "Team <dev.team@company.com>",
dockerRepository in Docker := Some("private.registry.com/project"),
dockerBaseImage in Docker := "dockerfile/java:oracle-java7",
dockerExposedPorts in Docker := Seq(11001, 12001),
dockerUpdateLatest := true
)
…
$ sbt docker:publish
Development & QA environments
● dev-init.sh setups envinronment in 10mins
● moving to test-only containers
http://www.fig.sh/
https://docs.docker.com/compose/
web:
build: .
links:
- db
ports:
- "8000:8000"
db:
image: postgres
1. $ docker-compose up
2.
Infrastructure
Server instances: limitations
It’s hard to automate instances bootstrap due to
● required manual steps
● virtualization infrastructure in the company
is changing (3 virt. systems)
Server instances
We simplified server setup as much as possible
● so what for do you need to ssh to server if there is nothing
to change manually?
Server instances
● reduced components installed on the server
○ to minimize the risk errors
○ server provisioning as simple as
■ adding authorized_keys
■ installing doker.io (yes, for now it’s not CoreOS)
○ devops project is less than 100 LOC
● everything is configured outside of the server
Logging
● Didn’t want to “invent” configuration for each
server component (DB, applications,...)
● And were happy to find generic approach
Logging dockerized containers
● Container provides unified interface for logs
○ stdout & stderr
● Search log messages by tags
○ container name or image name
● Collecting logs much simpler when using
ELK or FluentD as containers
● http://www.fluentd.org/guides/recipes/docker-logging
● https://github.com/ChristianKniep/docker-elk
Logging: FluentD as a container
● http://www.fluentd.org/guides/recipes/docker-logging
● https://github.com/ChristianKniep/docker-elk
Metrics
● The same approach as with logging
○ unified way of collecting containers’ metrics
Metrics: Datadog
● Host
○ CPU, memory, I/O, ...
● Container
○ resources by tag/group
● Application/business
○ yammer metrics
● https://www.datadoghq.com/2014/06/docker-ize-datadog/
● https://www.datadoghq.com/2014/06/monitor-docker-datadog/
● https://github.com/DataDog/docker-dd-agent
Access containers via docker.sock
● Jenkins container builds other containers
● Other examples
○ jwilder/nginx-proxy
$ docker run -d -p 80:80 -v /var/run/docker.sock:/tmp/docker.sock jwilder/nginx-proxy
$ docker run -e VIRTUAL_HOST=foo.bar.com ...
● https://github.com/jwilder/nginx-proxy
Deployment
● Private Docker Registry
○ to reduce external traffic (it’s always slower)
○ to keep private stuff private
● Ansible
○ it’s very simple tool
○ new developers becomes productive in a couple of hours
○ it takes our “The best osp tool for engineers” award
● Less than 2 seconds to start container
● http://thenewstack.io/are-docker-users-migrating-to-
ansible-and-away-from-puppet-and-chef/
● http://www.ansible.com/docker
Remote API for deployment (maybe)
● https://docs.docker.com/reference/api/docker_remote_api/
Next steps
● Increase developers productivity
● Multi-host deployments
○ service discovery & orchestration
● Advanced configuration management
● Deployment pipeline
○ with integration tests phases
● Data management (replication)
● Splitting apps into more granular components
post scriptum
Trends: ansible & docker
Trends: ansible, docker, j.bieber
Trends: recommendations
● Read less marketing materials
● Take only what you need for solving current
problem
● Plan B: keep it in mind
Disclaimer
● We are heading to production with this setup.
● We are aware of the majority all issues we
can face with.
Let’s talk about..
● How your app looked like 1..2..5 years ago?
● Is there anything you would change in our
setup?
Q & A

Weitere ähnliche Inhalte

Was ist angesagt?

BDE SC4 Hangout - Hajira Jabeen, general architecture
BDE SC4 Hangout - Hajira Jabeen, general architectureBDE SC4 Hangout - Hajira Jabeen, general architecture
BDE SC4 Hangout - Hajira Jabeen, general architectureBigData_Europe
 
Slides semantic web and Drupal 7 NYCCamp 2012
Slides semantic web and Drupal 7 NYCCamp 2012Slides semantic web and Drupal 7 NYCCamp 2012
Slides semantic web and Drupal 7 NYCCamp 2012scorlosquet
 
Search engine based on Elasticsearch
Search engine based on ElasticsearchSearch engine based on Elasticsearch
Search engine based on ElasticsearchRadek Baczynski
 
Last Month in PHP - November 2016
Last Month in PHP - November 2016Last Month in PHP - November 2016
Last Month in PHP - November 2016Eric Poe
 
Unifying Frontend and Backend Development with Scala - ScalaCon 2021
Unifying Frontend and Backend Development with Scala - ScalaCon 2021Unifying Frontend and Backend Development with Scala - ScalaCon 2021
Unifying Frontend and Backend Development with Scala - ScalaCon 2021Taro L. Saito
 
Kernel Recipes 2016 - Maintainer’s Don’t Scale
Kernel Recipes 2016 -  Maintainer’s Don’t ScaleKernel Recipes 2016 -  Maintainer’s Don’t Scale
Kernel Recipes 2016 - Maintainer’s Don’t ScaleAnne Nicolas
 
SC4 Hangout - Luigi Selmi, Transport pilot architecture
SC4 Hangout - Luigi Selmi, Transport pilot architectureSC4 Hangout - Luigi Selmi, Transport pilot architecture
SC4 Hangout - Luigi Selmi, Transport pilot architectureBigData_Europe
 
EOY Project Pitch - Elaine Yeung
EOY Project Pitch - Elaine YeungEOY Project Pitch - Elaine Yeung
EOY Project Pitch - Elaine YeungElaine Yeung
 
BKK16-215 kernelci.org: beyond boot testing
BKK16-215 kernelci.org: beyond boot testingBKK16-215 kernelci.org: beyond boot testing
BKK16-215 kernelci.org: beyond boot testingLinaro
 
tranSMART 17.1 technical overview
tranSMART 17.1 technical overview  tranSMART 17.1 technical overview
tranSMART 17.1 technical overview seher room
 
Docker @haufe lexware tech lunch
Docker @haufe lexware tech lunchDocker @haufe lexware tech lunch
Docker @haufe lexware tech lunchHaufeLexwareRomania
 
Seminario eMadrid 2015 09 10 sobre Serious Games (UCM) Manuel Freire - RAGE:...
Seminario eMadrid 2015 09 10 sobre Serious Games (UCM) Manuel Freire -  RAGE:...Seminario eMadrid 2015 09 10 sobre Serious Games (UCM) Manuel Freire -  RAGE:...
Seminario eMadrid 2015 09 10 sobre Serious Games (UCM) Manuel Freire - RAGE:...eMadrid network
 
Improving the MODX Documentation - March 29, 2019
Improving the MODX Documentation - March 29, 2019Improving the MODX Documentation - March 29, 2019
Improving the MODX Documentation - March 29, 2019Mark Hamstra
 
Knowit study group örnsköldsvik - introduction to qt & qt creator
Knowit   study group örnsköldsvik - introduction to qt & qt creatorKnowit   study group örnsköldsvik - introduction to qt & qt creator
Knowit study group örnsköldsvik - introduction to qt & qt creatorMathias Westin
 
Atmosphere 2018: Wojciech Krysmann- INFRA AS CODE - TERRAFORM DEEP DIVE AND B...
Atmosphere 2018: Wojciech Krysmann- INFRA AS CODE - TERRAFORM DEEP DIVE AND B...Atmosphere 2018: Wojciech Krysmann- INFRA AS CODE - TERRAFORM DEEP DIVE AND B...
Atmosphere 2018: Wojciech Krysmann- INFRA AS CODE - TERRAFORM DEEP DIVE AND B...PROIDEA
 

Was ist angesagt? (20)

BDE SC4 Hangout - Hajira Jabeen, general architecture
BDE SC4 Hangout - Hajira Jabeen, general architectureBDE SC4 Hangout - Hajira Jabeen, general architecture
BDE SC4 Hangout - Hajira Jabeen, general architecture
 
Slides semantic web and Drupal 7 NYCCamp 2012
Slides semantic web and Drupal 7 NYCCamp 2012Slides semantic web and Drupal 7 NYCCamp 2012
Slides semantic web and Drupal 7 NYCCamp 2012
 
Search engine based on Elasticsearch
Search engine based on ElasticsearchSearch engine based on Elasticsearch
Search engine based on Elasticsearch
 
Software maintenance PyConPL 2016
Software maintenance PyConPL 2016Software maintenance PyConPL 2016
Software maintenance PyConPL 2016
 
Last Month in PHP - November 2016
Last Month in PHP - November 2016Last Month in PHP - November 2016
Last Month in PHP - November 2016
 
Unifying Frontend and Backend Development with Scala - ScalaCon 2021
Unifying Frontend and Backend Development with Scala - ScalaCon 2021Unifying Frontend and Backend Development with Scala - ScalaCon 2021
Unifying Frontend and Backend Development with Scala - ScalaCon 2021
 
Kernel Recipes 2016 - Maintainer’s Don’t Scale
Kernel Recipes 2016 -  Maintainer’s Don’t ScaleKernel Recipes 2016 -  Maintainer’s Don’t Scale
Kernel Recipes 2016 - Maintainer’s Don’t Scale
 
Containers and Logging
Containers and LoggingContainers and Logging
Containers and Logging
 
SC4 Hangout - Luigi Selmi, Transport pilot architecture
SC4 Hangout - Luigi Selmi, Transport pilot architectureSC4 Hangout - Luigi Selmi, Transport pilot architecture
SC4 Hangout - Luigi Selmi, Transport pilot architecture
 
Fluent Bit
Fluent BitFluent Bit
Fluent Bit
 
EOY Project Pitch - Elaine Yeung
EOY Project Pitch - Elaine YeungEOY Project Pitch - Elaine Yeung
EOY Project Pitch - Elaine Yeung
 
BKK16-215 kernelci.org: beyond boot testing
BKK16-215 kernelci.org: beyond boot testingBKK16-215 kernelci.org: beyond boot testing
BKK16-215 kernelci.org: beyond boot testing
 
Logging for Containers
Logging for ContainersLogging for Containers
Logging for Containers
 
tranSMART 17.1 technical overview
tranSMART 17.1 technical overview  tranSMART 17.1 technical overview
tranSMART 17.1 technical overview
 
Docker @haufe lexware tech lunch
Docker @haufe lexware tech lunchDocker @haufe lexware tech lunch
Docker @haufe lexware tech lunch
 
Open Source in Real Life
Open Source in Real LifeOpen Source in Real Life
Open Source in Real Life
 
Seminario eMadrid 2015 09 10 sobre Serious Games (UCM) Manuel Freire - RAGE:...
Seminario eMadrid 2015 09 10 sobre Serious Games (UCM) Manuel Freire -  RAGE:...Seminario eMadrid 2015 09 10 sobre Serious Games (UCM) Manuel Freire -  RAGE:...
Seminario eMadrid 2015 09 10 sobre Serious Games (UCM) Manuel Freire - RAGE:...
 
Improving the MODX Documentation - March 29, 2019
Improving the MODX Documentation - March 29, 2019Improving the MODX Documentation - March 29, 2019
Improving the MODX Documentation - March 29, 2019
 
Knowit study group örnsköldsvik - introduction to qt & qt creator
Knowit   study group örnsköldsvik - introduction to qt & qt creatorKnowit   study group örnsköldsvik - introduction to qt & qt creator
Knowit study group örnsköldsvik - introduction to qt & qt creator
 
Atmosphere 2018: Wojciech Krysmann- INFRA AS CODE - TERRAFORM DEEP DIVE AND B...
Atmosphere 2018: Wojciech Krysmann- INFRA AS CODE - TERRAFORM DEEP DIVE AND B...Atmosphere 2018: Wojciech Krysmann- INFRA AS CODE - TERRAFORM DEEP DIVE AND B...
Atmosphere 2018: Wojciech Krysmann- INFRA AS CODE - TERRAFORM DEEP DIVE AND B...
 

Ähnlich wie [scala.by] Launching new application fast

Node.js Web Apps @ ebay scale
Node.js Web Apps @ ebay scaleNode.js Web Apps @ ebay scale
Node.js Web Apps @ ebay scaleDmytro Semenov
 
Scalable Clusters On Demand
Scalable Clusters On DemandScalable Clusters On Demand
Scalable Clusters On DemandBogdan Kyryliuk
 
Upcoming features in Airflow 2
Upcoming features in Airflow 2Upcoming features in Airflow 2
Upcoming features in Airflow 2Kaxil Naik
 
Voxxed days Vilnius 2015 - Android Reverse Engineering Lab
Voxxed days Vilnius 2015 - Android Reverse Engineering LabVoxxed days Vilnius 2015 - Android Reverse Engineering Lab
Voxxed days Vilnius 2015 - Android Reverse Engineering LabRon Munitz
 
Cinder On-boarding Room - Berlin (11-13-2018)
Cinder On-boarding Room - Berlin (11-13-2018)Cinder On-boarding Room - Berlin (11-13-2018)
Cinder On-boarding Room - Berlin (11-13-2018)Jay Bryant
 
OpenStack Cinder On-Boarding Education - Boston Summit - 2017
OpenStack Cinder On-Boarding Education - Boston Summit - 2017OpenStack Cinder On-Boarding Education - Boston Summit - 2017
OpenStack Cinder On-Boarding Education - Boston Summit - 2017Jay Bryant
 
CodeMotion tel aviv 2015 - android reverse engineering lab
CodeMotion tel aviv 2015 - android reverse engineering labCodeMotion tel aviv 2015 - android reverse engineering lab
CodeMotion tel aviv 2015 - android reverse engineering labRon Munitz
 
OpenTelemetry For Operators
OpenTelemetry For OperatorsOpenTelemetry For Operators
OpenTelemetry For OperatorsKevin Brockhoff
 
OpenStack Cinder On-Boarding Room - Vancouver Summit 2018
OpenStack Cinder On-Boarding Room - Vancouver Summit 2018OpenStack Cinder On-Boarding Room - Vancouver Summit 2018
OpenStack Cinder On-Boarding Room - Vancouver Summit 2018Jay Bryant
 
Lupus Decoupled Drupal - Drupal Austria Meetup - 2023-04.pdf
Lupus Decoupled Drupal - Drupal Austria Meetup - 2023-04.pdfLupus Decoupled Drupal - Drupal Austria Meetup - 2023-04.pdf
Lupus Decoupled Drupal - Drupal Austria Meetup - 2023-04.pdfWolfgangZiegler6
 
Cinder Project On-Boarding - OpenInfra Summit Denver 2019
Cinder Project On-Boarding - OpenInfra Summit Denver 2019Cinder Project On-Boarding - OpenInfra Summit Denver 2019
Cinder Project On-Boarding - OpenInfra Summit Denver 2019Jay Bryant
 
Extending OpenShift Origin: Build Your Own Cartridge with Bill DeCoste of Red...
Extending OpenShift Origin: Build Your Own Cartridge with Bill DeCoste of Red...Extending OpenShift Origin: Build Your Own Cartridge with Bill DeCoste of Red...
Extending OpenShift Origin: Build Your Own Cartridge with Bill DeCoste of Red...OpenShift Origin
 
MicroServices with Containers, Kubernetes & ServiceMesh
MicroServices with Containers, Kubernetes & ServiceMeshMicroServices with Containers, Kubernetes & ServiceMesh
MicroServices with Containers, Kubernetes & ServiceMeshAkash Agrawal
 
How to plan and define your CI-CD pipeline
How to plan and define your CI-CD pipelineHow to plan and define your CI-CD pipeline
How to plan and define your CI-CD pipelineElasTest Project
 
Rejekts 24 EU No GitOps Pain, No Platform Gain
Rejekts 24 EU No GitOps Pain, No Platform GainRejekts 24 EU No GitOps Pain, No Platform Gain
Rejekts 24 EU No GitOps Pain, No Platform GainŁukasz Piątkowski
 
DocDoku: Using web technologies in a desktop application. OW2con'15, November...
DocDoku: Using web technologies in a desktop application. OW2con'15, November...DocDoku: Using web technologies in a desktop application. OW2con'15, November...
DocDoku: Using web technologies in a desktop application. OW2con'15, November...OW2
 
DocDokuPLM presentation - OW2Con 2015 Community Award winner
DocDokuPLM presentation - OW2Con 2015 Community Award winnerDocDokuPLM presentation - OW2Con 2015 Community Award winner
DocDokuPLM presentation - OW2Con 2015 Community Award winnerDocDoku
 
Dr. Strangeconfig or: How I Learned to Stop Using Chef and Puppet and Love th...
Dr. Strangeconfig or: How I Learned to Stop Using Chef and Puppet and Love th...Dr. Strangeconfig or: How I Learned to Stop Using Chef and Puppet and Love th...
Dr. Strangeconfig or: How I Learned to Stop Using Chef and Puppet and Love th...Amir Moghimi
 

Ähnlich wie [scala.by] Launching new application fast (20)

Node.js Web Apps @ ebay scale
Node.js Web Apps @ ebay scaleNode.js Web Apps @ ebay scale
Node.js Web Apps @ ebay scale
 
Scalable Clusters On Demand
Scalable Clusters On DemandScalable Clusters On Demand
Scalable Clusters On Demand
 
Upcoming features in Airflow 2
Upcoming features in Airflow 2Upcoming features in Airflow 2
Upcoming features in Airflow 2
 
Voxxed days Vilnius 2015 - Android Reverse Engineering Lab
Voxxed days Vilnius 2015 - Android Reverse Engineering LabVoxxed days Vilnius 2015 - Android Reverse Engineering Lab
Voxxed days Vilnius 2015 - Android Reverse Engineering Lab
 
Cinder On-boarding Room - Berlin (11-13-2018)
Cinder On-boarding Room - Berlin (11-13-2018)Cinder On-boarding Room - Berlin (11-13-2018)
Cinder On-boarding Room - Berlin (11-13-2018)
 
OpenStack Cinder On-Boarding Education - Boston Summit - 2017
OpenStack Cinder On-Boarding Education - Boston Summit - 2017OpenStack Cinder On-Boarding Education - Boston Summit - 2017
OpenStack Cinder On-Boarding Education - Boston Summit - 2017
 
Go at Skroutz
Go at SkroutzGo at Skroutz
Go at Skroutz
 
CodeMotion tel aviv 2015 - android reverse engineering lab
CodeMotion tel aviv 2015 - android reverse engineering labCodeMotion tel aviv 2015 - android reverse engineering lab
CodeMotion tel aviv 2015 - android reverse engineering lab
 
OpenTelemetry For Operators
OpenTelemetry For OperatorsOpenTelemetry For Operators
OpenTelemetry For Operators
 
OpenStack Cinder On-Boarding Room - Vancouver Summit 2018
OpenStack Cinder On-Boarding Room - Vancouver Summit 2018OpenStack Cinder On-Boarding Room - Vancouver Summit 2018
OpenStack Cinder On-Boarding Room - Vancouver Summit 2018
 
Promise of DevOps
Promise of DevOpsPromise of DevOps
Promise of DevOps
 
Lupus Decoupled Drupal - Drupal Austria Meetup - 2023-04.pdf
Lupus Decoupled Drupal - Drupal Austria Meetup - 2023-04.pdfLupus Decoupled Drupal - Drupal Austria Meetup - 2023-04.pdf
Lupus Decoupled Drupal - Drupal Austria Meetup - 2023-04.pdf
 
Cinder Project On-Boarding - OpenInfra Summit Denver 2019
Cinder Project On-Boarding - OpenInfra Summit Denver 2019Cinder Project On-Boarding - OpenInfra Summit Denver 2019
Cinder Project On-Boarding - OpenInfra Summit Denver 2019
 
Extending OpenShift Origin: Build Your Own Cartridge with Bill DeCoste of Red...
Extending OpenShift Origin: Build Your Own Cartridge with Bill DeCoste of Red...Extending OpenShift Origin: Build Your Own Cartridge with Bill DeCoste of Red...
Extending OpenShift Origin: Build Your Own Cartridge with Bill DeCoste of Red...
 
MicroServices with Containers, Kubernetes & ServiceMesh
MicroServices with Containers, Kubernetes & ServiceMeshMicroServices with Containers, Kubernetes & ServiceMesh
MicroServices with Containers, Kubernetes & ServiceMesh
 
How to plan and define your CI-CD pipeline
How to plan and define your CI-CD pipelineHow to plan and define your CI-CD pipeline
How to plan and define your CI-CD pipeline
 
Rejekts 24 EU No GitOps Pain, No Platform Gain
Rejekts 24 EU No GitOps Pain, No Platform GainRejekts 24 EU No GitOps Pain, No Platform Gain
Rejekts 24 EU No GitOps Pain, No Platform Gain
 
DocDoku: Using web technologies in a desktop application. OW2con'15, November...
DocDoku: Using web technologies in a desktop application. OW2con'15, November...DocDoku: Using web technologies in a desktop application. OW2con'15, November...
DocDoku: Using web technologies in a desktop application. OW2con'15, November...
 
DocDokuPLM presentation - OW2Con 2015 Community Award winner
DocDokuPLM presentation - OW2Con 2015 Community Award winnerDocDokuPLM presentation - OW2Con 2015 Community Award winner
DocDokuPLM presentation - OW2Con 2015 Community Award winner
 
Dr. Strangeconfig or: How I Learned to Stop Using Chef and Puppet and Love th...
Dr. Strangeconfig or: How I Learned to Stop Using Chef and Puppet and Love th...Dr. Strangeconfig or: How I Learned to Stop Using Chef and Puppet and Love th...
Dr. Strangeconfig or: How I Learned to Stop Using Chef and Puppet and Love th...
 

Kürzlich hochgeladen

Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdfPearlKirahMaeRagusta1
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...masabamasaba
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...masabamasaba
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
SHRMPro HRMS Software Solutions Presentation
SHRMPro HRMS Software Solutions PresentationSHRMPro HRMS Software Solutions Presentation
SHRMPro HRMS Software Solutions PresentationShrmpro
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastPapp Krisztián
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...SelfMade bd
 
%in Durban+277-882-255-28 abortion pills for sale in Durban
%in Durban+277-882-255-28 abortion pills for sale in Durban%in Durban+277-882-255-28 abortion pills for sale in Durban
%in Durban+277-882-255-28 abortion pills for sale in Durbanmasabamasaba
 
%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburg
%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburg%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburg
%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburgmasabamasaba
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park masabamasaba
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrainmasabamasaba
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfproinshot.com
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech studentsHimanshiGarg82
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 
%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...masabamasaba
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfkalichargn70th171
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...masabamasaba
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnAmarnathKambale
 

Kürzlich hochgeladen (20)

Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
SHRMPro HRMS Software Solutions Presentation
SHRMPro HRMS Software Solutions PresentationSHRMPro HRMS Software Solutions Presentation
SHRMPro HRMS Software Solutions Presentation
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
%in Durban+277-882-255-28 abortion pills for sale in Durban
%in Durban+277-882-255-28 abortion pills for sale in Durban%in Durban+277-882-255-28 abortion pills for sale in Durban
%in Durban+277-882-255-28 abortion pills for sale in Durban
 
%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburg
%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburg%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburg
%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburg
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdf
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 

[scala.by] Launching new application fast

  • 1. Launching <new application> fast scala & docker ✈ production
  • 3. What is this talk about ● Sharing approach of delivering our application ○ Benefits ○ Motivation ○ Compromises in architecture ● Willing to hear your opinion on topics discussed
  • 4. Development constraints ● limited in time ● lot’s of moving parts (integrations) with 3rd party systems ● 100% of requests are synchronous ● no dedicated devops/it specialists ● (very) active development phase
  • 6. Application ● 2 backend applications (spray endpoints) ○ not microservices ● 2 frontend application (SPA) ● 6 integrations with external systems: ○ XML/JSON/Plaintext over HTTP ● it’s not about highload/bigdata/… ○ N+1 instances (0?+1)
  • 7. Build process ● Everything is built only once after git push ● Scala applications ○ to container with sbt-native-packager ● Backbone-Marionette SPA ○ to container with gulp ● All configs are outside of the app ● http://www.scala-sbt.org/sbt-native-packager/formats/docker.html ● https://www.npmjs.com/package/gulp-docker
  • 8. Build process: SBT buildfile val dockerSettings = Seq( maintainer in Docker := "Team <dev.team@company.com>", dockerRepository in Docker := Some("private.registry.com/project"), dockerBaseImage in Docker := "dockerfile/java:oracle-java7", dockerExposedPorts in Docker := Seq(11001, 12001), dockerUpdateLatest := true ) … $ sbt docker:publish
  • 9. Development & QA environments ● dev-init.sh setups envinronment in 10mins ● moving to test-only containers http://www.fig.sh/ https://docs.docker.com/compose/ web: build: . links: - db ports: - "8000:8000" db: image: postgres 1. $ docker-compose up 2.
  • 11. Server instances: limitations It’s hard to automate instances bootstrap due to ● required manual steps ● virtualization infrastructure in the company is changing (3 virt. systems)
  • 12. Server instances We simplified server setup as much as possible ● so what for do you need to ssh to server if there is nothing to change manually?
  • 13. Server instances ● reduced components installed on the server ○ to minimize the risk errors ○ server provisioning as simple as ■ adding authorized_keys ■ installing doker.io (yes, for now it’s not CoreOS) ○ devops project is less than 100 LOC ● everything is configured outside of the server
  • 14. Logging ● Didn’t want to “invent” configuration for each server component (DB, applications,...) ● And were happy to find generic approach
  • 15. Logging dockerized containers ● Container provides unified interface for logs ○ stdout & stderr ● Search log messages by tags ○ container name or image name ● Collecting logs much simpler when using ELK or FluentD as containers ● http://www.fluentd.org/guides/recipes/docker-logging ● https://github.com/ChristianKniep/docker-elk
  • 16. Logging: FluentD as a container ● http://www.fluentd.org/guides/recipes/docker-logging ● https://github.com/ChristianKniep/docker-elk
  • 17. Metrics ● The same approach as with logging ○ unified way of collecting containers’ metrics
  • 18. Metrics: Datadog ● Host ○ CPU, memory, I/O, ... ● Container ○ resources by tag/group ● Application/business ○ yammer metrics ● https://www.datadoghq.com/2014/06/docker-ize-datadog/ ● https://www.datadoghq.com/2014/06/monitor-docker-datadog/ ● https://github.com/DataDog/docker-dd-agent
  • 19. Access containers via docker.sock ● Jenkins container builds other containers ● Other examples ○ jwilder/nginx-proxy $ docker run -d -p 80:80 -v /var/run/docker.sock:/tmp/docker.sock jwilder/nginx-proxy $ docker run -e VIRTUAL_HOST=foo.bar.com ... ● https://github.com/jwilder/nginx-proxy
  • 20. Deployment ● Private Docker Registry ○ to reduce external traffic (it’s always slower) ○ to keep private stuff private ● Ansible ○ it’s very simple tool ○ new developers becomes productive in a couple of hours ○ it takes our “The best osp tool for engineers” award ● Less than 2 seconds to start container ● http://thenewstack.io/are-docker-users-migrating-to- ansible-and-away-from-puppet-and-chef/ ● http://www.ansible.com/docker
  • 21. Remote API for deployment (maybe) ● https://docs.docker.com/reference/api/docker_remote_api/
  • 22. Next steps ● Increase developers productivity ● Multi-host deployments ○ service discovery & orchestration ● Advanced configuration management ● Deployment pipeline ○ with integration tests phases ● Data management (replication) ● Splitting apps into more granular components
  • 26. Trends: recommendations ● Read less marketing materials ● Take only what you need for solving current problem ● Plan B: keep it in mind
  • 27. Disclaimer ● We are heading to production with this setup. ● We are aware of the majority all issues we can face with.
  • 28. Let’s talk about.. ● How your app looked like 1..2..5 years ago? ● Is there anything you would change in our setup?
  • 29. Q & A