SlideShare une entreprise Scribd logo
1  sur  20
From Dev to Prod
How theScore develops and deploys Elixir apps
Joseph An & Cristian Bratu
Thur, Sept 27, 2018
What does theScore do?
• mobile sports app for iOS and
Android:
• breaking news
• scores and stats for your
favorite leagues, teams,
players
• push alerts
How does theScore use Elixir?
Real Time Chat
Why use Elixir/Phoenix?
• Nice features:
• Fault tolerance
• Concurrency
• Phoenix Channel API
• Distributed Applications
• Phoenix’s PubSub layer
• Broadcasting messages across Elixir nodes within a
cluster
How do we deploy our apps?
Docker & Kubernetes
Docker (or why “containers”)?
• what about VMs?
• allows you to package your app (written in any
languages) and run it on any machines
• consistency and portability
• without containers you would install apps on a host using
the operating system’s package manager
Kubernetes
• open source container orchestration platform
• scheduler
• self healing
• networking
Libcluster: automatic cluster
formation/healing
• https://github.com/bitwalker/libcluster
• supports multiple clustering strategies including
Kubernetes
• container IP addresses are dynamic
• nodes leaving/joining cluster based on load
• polls Kubernetes Metadata API to connect new nodes
-Me
“Now it’s time for a live demo!”
Development Cycle
• install Docker
• clone the repo
• docker-compose up
• once code is pushed notifies CircleCI and ShipIt
Continuous Integration
• run linter
• run tests
• build Docker image and push to AWS Elastic Container Registry
ShipIt
• a rails app to coordinate deploys
• compatible with any ad-hoc deploy script or command (Ansible or
Kubernetes)
• sets secrets from encrypted JSON safely committed into our repos
Links To ShipIt projects
• https://github.com/Shopify/shipit-engine
• https://github.com/Shopify/kubernetes-deploy
• https://github.com/Shopify/ejson
The End

Contenu connexe

Tendances

Firebase Introduction
Firebase Introduction Firebase Introduction
Firebase Introduction 9xdot
 
Scalable APIs with Azure Functions
Scalable APIs with Azure FunctionsScalable APIs with Azure Functions
Scalable APIs with Azure FunctionsChristos Matskas
 
Azure App Service
Azure App ServiceAzure App Service
Azure App ServiceBizTalk360
 
20160629 Habitat Introduction: Austin DevOps/Mesos User Group
20160629 Habitat Introduction: Austin DevOps/Mesos User Group 20160629 Habitat Introduction: Austin DevOps/Mesos User Group
20160629 Habitat Introduction: Austin DevOps/Mesos User Group Matt Ray
 
Dec19 intro to Mulesoft
Dec19 intro to MulesoftDec19 intro to Mulesoft
Dec19 intro to MulesoftCyrtene
 
Why Swift on the server?
Why Swift on the server?Why Swift on the server?
Why Swift on the server?ibmmobile
 
Continuous delivery with azure app service
Continuous delivery with azure app serviceContinuous delivery with azure app service
Continuous delivery with azure app serviceNabeel Khan
 
BENEFIT OF FLUTTER APP DEVELOPMENT - INFOGRAPHICS
BENEFIT OF FLUTTER APP DEVELOPMENT - INFOGRAPHICSBENEFIT OF FLUTTER APP DEVELOPMENT - INFOGRAPHICS
BENEFIT OF FLUTTER APP DEVELOPMENT - INFOGRAPHICSbrtechnosoft2018
 
Hybrid Integration with SAP
Hybrid Integration with SAPHybrid Integration with SAP
Hybrid Integration with SAPBizTalk360
 
Azure App Services для создания бэкенда мобильных приложений. Parse Open Sour...
Azure App Services для создания бэкенда мобильных приложений. Parse Open Sour...Azure App Services для создания бэкенда мобильных приложений. Parse Open Sour...
Azure App Services для создания бэкенда мобильных приложений. Parse Open Sour...UA Mobile
 
Dev/Test in the Cloud - A Business Case
Dev/Test in the Cloud - A Business CaseDev/Test in the Cloud - A Business Case
Dev/Test in the Cloud - A Business CaseChris Riley ☁
 
Service Fabric Deployments
Service Fabric DeploymentsService Fabric Deployments
Service Fabric DeploymentsDaniel Toomey
 
Azure API Apps
Azure API AppsAzure API Apps
Azure API AppsBizTalk360
 
GAB 2017 - Logic Apps and Azure Functions
GAB 2017 - Logic Apps and Azure FunctionsGAB 2017 - Logic Apps and Azure Functions
GAB 2017 - Logic Apps and Azure FunctionsWagner Silveira
 

Tendances (20)

Firebase Introduction
Firebase Introduction Firebase Introduction
Firebase Introduction
 
Scalable APIs with Azure Functions
Scalable APIs with Azure FunctionsScalable APIs with Azure Functions
Scalable APIs with Azure Functions
 
Azure App Service
Azure App ServiceAzure App Service
Azure App Service
 
Foss con2011
Foss con2011Foss con2011
Foss con2011
 
20160629 Habitat Introduction: Austin DevOps/Mesos User Group
20160629 Habitat Introduction: Austin DevOps/Mesos User Group 20160629 Habitat Introduction: Austin DevOps/Mesos User Group
20160629 Habitat Introduction: Austin DevOps/Mesos User Group
 
Firebase Overview
Firebase OverviewFirebase Overview
Firebase Overview
 
Microsoft DevOps
Microsoft DevOpsMicrosoft DevOps
Microsoft DevOps
 
Dec19 intro to Mulesoft
Dec19 intro to MulesoftDec19 intro to Mulesoft
Dec19 intro to Mulesoft
 
Why Swift on the server?
Why Swift on the server?Why Swift on the server?
Why Swift on the server?
 
Continuous delivery with azure app service
Continuous delivery with azure app serviceContinuous delivery with azure app service
Continuous delivery with azure app service
 
BENEFIT OF FLUTTER APP DEVELOPMENT - INFOGRAPHICS
BENEFIT OF FLUTTER APP DEVELOPMENT - INFOGRAPHICSBENEFIT OF FLUTTER APP DEVELOPMENT - INFOGRAPHICS
BENEFIT OF FLUTTER APP DEVELOPMENT - INFOGRAPHICS
 
Hybrid Integration with SAP
Hybrid Integration with SAPHybrid Integration with SAP
Hybrid Integration with SAP
 
Azure App Services для создания бэкенда мобильных приложений. Parse Open Sour...
Azure App Services для создания бэкенда мобильных приложений. Parse Open Sour...Azure App Services для создания бэкенда мобильных приложений. Parse Open Sour...
Azure App Services для создания бэкенда мобильных приложений. Parse Open Sour...
 
Dev/Test in the Cloud - A Business Case
Dev/Test in the Cloud - A Business CaseDev/Test in the Cloud - A Business Case
Dev/Test in the Cloud - A Business Case
 
Service Fabric Deployments
Service Fabric DeploymentsService Fabric Deployments
Service Fabric Deployments
 
Firebase
FirebaseFirebase
Firebase
 
Firebase PPT
Firebase PPTFirebase PPT
Firebase PPT
 
Meteor js
Meteor jsMeteor js
Meteor js
 
Azure API Apps
Azure API AppsAzure API Apps
Azure API Apps
 
GAB 2017 - Logic Apps and Azure Functions
GAB 2017 - Logic Apps and Azure FunctionsGAB 2017 - Logic Apps and Azure Functions
GAB 2017 - Logic Apps and Azure Functions
 

Similaire à From Dev To Prod: How theScore deploys Elixir applications

DevOps with Azure, Kubernetes, and Helm Webinar
DevOps with Azure, Kubernetes, and Helm WebinarDevOps with Azure, Kubernetes, and Helm Webinar
DevOps with Azure, Kubernetes, and Helm WebinarCodefresh
 
Why kubernetes matters
Why kubernetes mattersWhy kubernetes matters
Why kubernetes mattersPlatform9
 
Develop and deploy Kubernetes applications with Docker - IBM Index 2018
Develop and deploy Kubernetes  applications with Docker - IBM Index 2018Develop and deploy Kubernetes  applications with Docker - IBM Index 2018
Develop and deploy Kubernetes applications with Docker - IBM Index 2018Patrick Chanezon
 
What's New In Entando 6 (And Why Your Developers Will Love It)
What's New In Entando 6 (And Why Your Developers Will Love It)What's New In Entando 6 (And Why Your Developers Will Love It)
What's New In Entando 6 (And Why Your Developers Will Love It)Entando
 
How Spinnaker helped us achieve real Continuous Delivery
How Spinnaker helped us achieve real Continuous DeliveryHow Spinnaker helped us achieve real Continuous Delivery
How Spinnaker helped us achieve real Continuous DeliveryAhmed Misbah
 
Cloudfoundry + K8S : Prendre le meilleur des deux mondes
Cloudfoundry + K8S  :  Prendre le meilleur des deux mondesCloudfoundry + K8S  :  Prendre le meilleur des deux mondes
Cloudfoundry + K8S : Prendre le meilleur des deux mondesErwan Bornier
 
DevOps as a Service - Kuberiter
DevOps as a Service - KuberiterDevOps as a Service - Kuberiter
DevOps as a Service - Kuberiterlawrence143
 
A Tale of Two Pizzas: Developer Tools at AWS - DevDay Los Angeles 2017
A Tale of Two Pizzas: Developer Tools at AWS - DevDay Los Angeles 2017A Tale of Two Pizzas: Developer Tools at AWS - DevDay Los Angeles 2017
A Tale of Two Pizzas: Developer Tools at AWS - DevDay Los Angeles 2017Amazon Web Services
 
DotnetConf - Cloud native and .Net5 announcements
DotnetConf - Cloud native and .Net5 announcementsDotnetConf - Cloud native and .Net5 announcements
DotnetConf - Cloud native and .Net5 announcementsSajeetharan
 
Docker & aPaaS: Enterprise Innovation and Trends for 2015
Docker & aPaaS: Enterprise Innovation and Trends for 2015Docker & aPaaS: Enterprise Innovation and Trends for 2015
Docker & aPaaS: Enterprise Innovation and Trends for 2015WaveMaker, Inc.
 
IPaaS 2.0: Fuse Integration Services (Robert Davies & Keith Babo)
IPaaS 2.0: Fuse Integration Services (Robert Davies & Keith Babo)IPaaS 2.0: Fuse Integration Services (Robert Davies & Keith Babo)
IPaaS 2.0: Fuse Integration Services (Robert Davies & Keith Babo)Red Hat Developers
 
ENT201 A Tale of Two Pizzas: Accelerating Software Delivery with AWS Develope...
ENT201 A Tale of Two Pizzas: Accelerating Software Delivery with AWS Develope...ENT201 A Tale of Two Pizzas: Accelerating Software Delivery with AWS Develope...
ENT201 A Tale of Two Pizzas: Accelerating Software Delivery with AWS Develope...Amazon Web Services
 
Platform Orchestration with Kubernetes and Docker
Platform Orchestration with Kubernetes and DockerPlatform Orchestration with Kubernetes and Docker
Platform Orchestration with Kubernetes and DockerJulian Strobl
 
Mobile DevOps - Get faster release cycles & higher quality android & ios apps
Mobile DevOps - Get faster release cycles & higher quality android & ios appsMobile DevOps - Get faster release cycles & higher quality android & ios apps
Mobile DevOps - Get faster release cycles & higher quality android & ios appsMayur Tendulkar
 
A tale of two pizzas: Developer tools at AWS
A tale of two pizzas: Developer tools at AWSA tale of two pizzas: Developer tools at AWS
A tale of two pizzas: Developer tools at AWSAmazon Web Services
 
KubeCon China 2019 - Building Apps with Containers, Functions and Managed Ser...
KubeCon China 2019 - Building Apps with Containers, Functions and Managed Ser...KubeCon China 2019 - Building Apps with Containers, Functions and Managed Ser...
KubeCon China 2019 - Building Apps with Containers, Functions and Managed Ser...Patrick Chanezon
 

Similaire à From Dev To Prod: How theScore deploys Elixir applications (20)

DevOps with Azure, Kubernetes, and Helm Webinar
DevOps with Azure, Kubernetes, and Helm WebinarDevOps with Azure, Kubernetes, and Helm Webinar
DevOps with Azure, Kubernetes, and Helm Webinar
 
Moby KubeCon 2017
Moby KubeCon 2017Moby KubeCon 2017
Moby KubeCon 2017
 
Why kubernetes matters
Why kubernetes mattersWhy kubernetes matters
Why kubernetes matters
 
Develop and deploy Kubernetes applications with Docker - IBM Index 2018
Develop and deploy Kubernetes  applications with Docker - IBM Index 2018Develop and deploy Kubernetes  applications with Docker - IBM Index 2018
Develop and deploy Kubernetes applications with Docker - IBM Index 2018
 
What's New In Entando 6 (And Why Your Developers Will Love It)
What's New In Entando 6 (And Why Your Developers Will Love It)What's New In Entando 6 (And Why Your Developers Will Love It)
What's New In Entando 6 (And Why Your Developers Will Love It)
 
How Spinnaker helped us achieve real Continuous Delivery
How Spinnaker helped us achieve real Continuous DeliveryHow Spinnaker helped us achieve real Continuous Delivery
How Spinnaker helped us achieve real Continuous Delivery
 
Cloudfoundry + K8S : Prendre le meilleur des deux mondes
Cloudfoundry + K8S  :  Prendre le meilleur des deux mondesCloudfoundry + K8S  :  Prendre le meilleur des deux mondes
Cloudfoundry + K8S : Prendre le meilleur des deux mondes
 
DevOps as a Service - Kuberiter
DevOps as a Service - KuberiterDevOps as a Service - Kuberiter
DevOps as a Service - Kuberiter
 
A Tale of Two Pizzas: Developer Tools at AWS - DevDay Los Angeles 2017
A Tale of Two Pizzas: Developer Tools at AWS - DevDay Los Angeles 2017A Tale of Two Pizzas: Developer Tools at AWS - DevDay Los Angeles 2017
A Tale of Two Pizzas: Developer Tools at AWS - DevDay Los Angeles 2017
 
DotnetConf - Cloud native and .Net5 announcements
DotnetConf - Cloud native and .Net5 announcementsDotnetConf - Cloud native and .Net5 announcements
DotnetConf - Cloud native and .Net5 announcements
 
Docker & aPaaS: Enterprise Innovation and Trends for 2015
Docker & aPaaS: Enterprise Innovation and Trends for 2015Docker & aPaaS: Enterprise Innovation and Trends for 2015
Docker & aPaaS: Enterprise Innovation and Trends for 2015
 
IPaaS 2.0: Fuse Integration Services (Robert Davies & Keith Babo)
IPaaS 2.0: Fuse Integration Services (Robert Davies & Keith Babo)IPaaS 2.0: Fuse Integration Services (Robert Davies & Keith Babo)
IPaaS 2.0: Fuse Integration Services (Robert Davies & Keith Babo)
 
ENT201 A Tale of Two Pizzas: Accelerating Software Delivery with AWS Develope...
ENT201 A Tale of Two Pizzas: Accelerating Software Delivery with AWS Develope...ENT201 A Tale of Two Pizzas: Accelerating Software Delivery with AWS Develope...
ENT201 A Tale of Two Pizzas: Accelerating Software Delivery with AWS Develope...
 
Platform Orchestration with Kubernetes and Docker
Platform Orchestration with Kubernetes and DockerPlatform Orchestration with Kubernetes and Docker
Platform Orchestration with Kubernetes and Docker
 
IOS ecosystem
IOS ecosystemIOS ecosystem
IOS ecosystem
 
Mobile DevOps - Get faster release cycles & higher quality android & ios apps
Mobile DevOps - Get faster release cycles & higher quality android & ios appsMobile DevOps - Get faster release cycles & higher quality android & ios apps
Mobile DevOps - Get faster release cycles & higher quality android & ios apps
 
A tale of two pizzas: Developer tools at AWS
A tale of two pizzas: Developer tools at AWSA tale of two pizzas: Developer tools at AWS
A tale of two pizzas: Developer tools at AWS
 
KubeCon China 2019 - Building Apps with Containers, Functions and Managed Ser...
KubeCon China 2019 - Building Apps with Containers, Functions and Managed Ser...KubeCon China 2019 - Building Apps with Containers, Functions and Managed Ser...
KubeCon China 2019 - Building Apps with Containers, Functions and Managed Ser...
 
Azure mobile services
Azure mobile servicesAzure mobile services
Azure mobile services
 
Container DevOps in Azure
Container DevOps in AzureContainer DevOps in Azure
Container DevOps in Azure
 

Dernier

KCD Costa Rica 2024 - Nephio para parvulitos
KCD Costa Rica 2024 - Nephio para parvulitosKCD Costa Rica 2024 - Nephio para parvulitos
KCD Costa Rica 2024 - Nephio para parvulitosVictor Morales
 
FUNCTIONAL AND NON FUNCTIONAL REQUIREMENT
FUNCTIONAL AND NON FUNCTIONAL REQUIREMENTFUNCTIONAL AND NON FUNCTIONAL REQUIREMENT
FUNCTIONAL AND NON FUNCTIONAL REQUIREMENTSneha Padhiar
 
Stork Webinar | APM Transformational planning, Tool Selection & Performance T...
Stork Webinar | APM Transformational planning, Tool Selection & Performance T...Stork Webinar | APM Transformational planning, Tool Selection & Performance T...
Stork Webinar | APM Transformational planning, Tool Selection & Performance T...Stork
 
System Simulation and Modelling with types and Event Scheduling
System Simulation and Modelling with types and Event SchedulingSystem Simulation and Modelling with types and Event Scheduling
System Simulation and Modelling with types and Event SchedulingBootNeck1
 
Robotics Group 10 (Control Schemes) cse.pdf
Robotics Group 10  (Control Schemes) cse.pdfRobotics Group 10  (Control Schemes) cse.pdf
Robotics Group 10 (Control Schemes) cse.pdfsahilsajad201
 
Artificial Intelligence in Power System overview
Artificial Intelligence in Power System overviewArtificial Intelligence in Power System overview
Artificial Intelligence in Power System overviewsandhya757531
 
Katarzyna Lipka-Sidor - BIM School Course
Katarzyna Lipka-Sidor - BIM School CourseKatarzyna Lipka-Sidor - BIM School Course
Katarzyna Lipka-Sidor - BIM School Coursebim.edu.pl
 
SOFTWARE ESTIMATION COCOMO AND FP CALCULATION
SOFTWARE ESTIMATION COCOMO AND FP CALCULATIONSOFTWARE ESTIMATION COCOMO AND FP CALCULATION
SOFTWARE ESTIMATION COCOMO AND FP CALCULATIONSneha Padhiar
 
Input Output Management in Operating System
Input Output Management in Operating SystemInput Output Management in Operating System
Input Output Management in Operating SystemRashmi Bhat
 
11. Properties of Liquid Fuels in Energy Engineering.pdf
11. Properties of Liquid Fuels in Energy Engineering.pdf11. Properties of Liquid Fuels in Energy Engineering.pdf
11. Properties of Liquid Fuels in Energy Engineering.pdfHafizMudaserAhmad
 
ROBOETHICS-CCS345 ETHICS AND ARTIFICIAL INTELLIGENCE.ppt
ROBOETHICS-CCS345 ETHICS AND ARTIFICIAL INTELLIGENCE.pptROBOETHICS-CCS345 ETHICS AND ARTIFICIAL INTELLIGENCE.ppt
ROBOETHICS-CCS345 ETHICS AND ARTIFICIAL INTELLIGENCE.pptJohnWilliam111370
 
Comparative study of High-rise Building Using ETABS,SAP200 and SAFE., SAFE an...
Comparative study of High-rise Building Using ETABS,SAP200 and SAFE., SAFE an...Comparative study of High-rise Building Using ETABS,SAP200 and SAFE., SAFE an...
Comparative study of High-rise Building Using ETABS,SAP200 and SAFE., SAFE an...Erbil Polytechnic University
 
2022 AWS DNA Hackathon 장애 대응 솔루션 jarvis.
2022 AWS DNA Hackathon 장애 대응 솔루션 jarvis.2022 AWS DNA Hackathon 장애 대응 솔루션 jarvis.
2022 AWS DNA Hackathon 장애 대응 솔루션 jarvis.elesangwon
 
DEVICE DRIVERS AND INTERRUPTS SERVICE MECHANISM.pdf
DEVICE DRIVERS AND INTERRUPTS  SERVICE MECHANISM.pdfDEVICE DRIVERS AND INTERRUPTS  SERVICE MECHANISM.pdf
DEVICE DRIVERS AND INTERRUPTS SERVICE MECHANISM.pdfAkritiPradhan2
 
Ch10-Global Supply Chain - Cadena de Suministro.pdf
Ch10-Global Supply Chain - Cadena de Suministro.pdfCh10-Global Supply Chain - Cadena de Suministro.pdf
Ch10-Global Supply Chain - Cadena de Suministro.pdfChristianCDAM
 
multiple access in wireless communication
multiple access in wireless communicationmultiple access in wireless communication
multiple access in wireless communicationpanditadesh123
 
Research Methodology for Engineering pdf
Research Methodology for Engineering pdfResearch Methodology for Engineering pdf
Research Methodology for Engineering pdfCaalaaAbdulkerim
 
Mine Environment II Lab_MI10448MI__________.pptx
Mine Environment II Lab_MI10448MI__________.pptxMine Environment II Lab_MI10448MI__________.pptx
Mine Environment II Lab_MI10448MI__________.pptxRomil Mishra
 
"Exploring the Essential Functions and Design Considerations of Spillways in ...
"Exploring the Essential Functions and Design Considerations of Spillways in ..."Exploring the Essential Functions and Design Considerations of Spillways in ...
"Exploring the Essential Functions and Design Considerations of Spillways in ...Erbil Polytechnic University
 
Prach: A Feature-Rich Platform Empowering the Autism Community
Prach: A Feature-Rich Platform Empowering the Autism CommunityPrach: A Feature-Rich Platform Empowering the Autism Community
Prach: A Feature-Rich Platform Empowering the Autism Communityprachaibot
 

Dernier (20)

KCD Costa Rica 2024 - Nephio para parvulitos
KCD Costa Rica 2024 - Nephio para parvulitosKCD Costa Rica 2024 - Nephio para parvulitos
KCD Costa Rica 2024 - Nephio para parvulitos
 
FUNCTIONAL AND NON FUNCTIONAL REQUIREMENT
FUNCTIONAL AND NON FUNCTIONAL REQUIREMENTFUNCTIONAL AND NON FUNCTIONAL REQUIREMENT
FUNCTIONAL AND NON FUNCTIONAL REQUIREMENT
 
Stork Webinar | APM Transformational planning, Tool Selection & Performance T...
Stork Webinar | APM Transformational planning, Tool Selection & Performance T...Stork Webinar | APM Transformational planning, Tool Selection & Performance T...
Stork Webinar | APM Transformational planning, Tool Selection & Performance T...
 
System Simulation and Modelling with types and Event Scheduling
System Simulation and Modelling with types and Event SchedulingSystem Simulation and Modelling with types and Event Scheduling
System Simulation and Modelling with types and Event Scheduling
 
Robotics Group 10 (Control Schemes) cse.pdf
Robotics Group 10  (Control Schemes) cse.pdfRobotics Group 10  (Control Schemes) cse.pdf
Robotics Group 10 (Control Schemes) cse.pdf
 
Artificial Intelligence in Power System overview
Artificial Intelligence in Power System overviewArtificial Intelligence in Power System overview
Artificial Intelligence in Power System overview
 
Katarzyna Lipka-Sidor - BIM School Course
Katarzyna Lipka-Sidor - BIM School CourseKatarzyna Lipka-Sidor - BIM School Course
Katarzyna Lipka-Sidor - BIM School Course
 
SOFTWARE ESTIMATION COCOMO AND FP CALCULATION
SOFTWARE ESTIMATION COCOMO AND FP CALCULATIONSOFTWARE ESTIMATION COCOMO AND FP CALCULATION
SOFTWARE ESTIMATION COCOMO AND FP CALCULATION
 
Input Output Management in Operating System
Input Output Management in Operating SystemInput Output Management in Operating System
Input Output Management in Operating System
 
11. Properties of Liquid Fuels in Energy Engineering.pdf
11. Properties of Liquid Fuels in Energy Engineering.pdf11. Properties of Liquid Fuels in Energy Engineering.pdf
11. Properties of Liquid Fuels in Energy Engineering.pdf
 
ROBOETHICS-CCS345 ETHICS AND ARTIFICIAL INTELLIGENCE.ppt
ROBOETHICS-CCS345 ETHICS AND ARTIFICIAL INTELLIGENCE.pptROBOETHICS-CCS345 ETHICS AND ARTIFICIAL INTELLIGENCE.ppt
ROBOETHICS-CCS345 ETHICS AND ARTIFICIAL INTELLIGENCE.ppt
 
Comparative study of High-rise Building Using ETABS,SAP200 and SAFE., SAFE an...
Comparative study of High-rise Building Using ETABS,SAP200 and SAFE., SAFE an...Comparative study of High-rise Building Using ETABS,SAP200 and SAFE., SAFE an...
Comparative study of High-rise Building Using ETABS,SAP200 and SAFE., SAFE an...
 
2022 AWS DNA Hackathon 장애 대응 솔루션 jarvis.
2022 AWS DNA Hackathon 장애 대응 솔루션 jarvis.2022 AWS DNA Hackathon 장애 대응 솔루션 jarvis.
2022 AWS DNA Hackathon 장애 대응 솔루션 jarvis.
 
DEVICE DRIVERS AND INTERRUPTS SERVICE MECHANISM.pdf
DEVICE DRIVERS AND INTERRUPTS  SERVICE MECHANISM.pdfDEVICE DRIVERS AND INTERRUPTS  SERVICE MECHANISM.pdf
DEVICE DRIVERS AND INTERRUPTS SERVICE MECHANISM.pdf
 
Ch10-Global Supply Chain - Cadena de Suministro.pdf
Ch10-Global Supply Chain - Cadena de Suministro.pdfCh10-Global Supply Chain - Cadena de Suministro.pdf
Ch10-Global Supply Chain - Cadena de Suministro.pdf
 
multiple access in wireless communication
multiple access in wireless communicationmultiple access in wireless communication
multiple access in wireless communication
 
Research Methodology for Engineering pdf
Research Methodology for Engineering pdfResearch Methodology for Engineering pdf
Research Methodology for Engineering pdf
 
Mine Environment II Lab_MI10448MI__________.pptx
Mine Environment II Lab_MI10448MI__________.pptxMine Environment II Lab_MI10448MI__________.pptx
Mine Environment II Lab_MI10448MI__________.pptx
 
"Exploring the Essential Functions and Design Considerations of Spillways in ...
"Exploring the Essential Functions and Design Considerations of Spillways in ..."Exploring the Essential Functions and Design Considerations of Spillways in ...
"Exploring the Essential Functions and Design Considerations of Spillways in ...
 
Prach: A Feature-Rich Platform Empowering the Autism Community
Prach: A Feature-Rich Platform Empowering the Autism CommunityPrach: A Feature-Rich Platform Empowering the Autism Community
Prach: A Feature-Rich Platform Empowering the Autism Community
 

From Dev To Prod: How theScore deploys Elixir applications

  • 1. From Dev to Prod How theScore develops and deploys Elixir apps Joseph An & Cristian Bratu Thur, Sept 27, 2018
  • 2. What does theScore do? • mobile sports app for iOS and Android: • breaking news • scores and stats for your favorite leagues, teams, players • push alerts
  • 3. How does theScore use Elixir? Real Time Chat
  • 4. Why use Elixir/Phoenix? • Nice features: • Fault tolerance • Concurrency • Phoenix Channel API • Distributed Applications • Phoenix’s PubSub layer • Broadcasting messages across Elixir nodes within a cluster
  • 5.
  • 6.
  • 7.
  • 8. How do we deploy our apps? Docker & Kubernetes
  • 9. Docker (or why “containers”)? • what about VMs? • allows you to package your app (written in any languages) and run it on any machines • consistency and portability • without containers you would install apps on a host using the operating system’s package manager
  • 10. Kubernetes • open source container orchestration platform • scheduler • self healing • networking
  • 11. Libcluster: automatic cluster formation/healing • https://github.com/bitwalker/libcluster • supports multiple clustering strategies including Kubernetes • container IP addresses are dynamic • nodes leaving/joining cluster based on load • polls Kubernetes Metadata API to connect new nodes
  • 12. -Me “Now it’s time for a live demo!”
  • 13. Development Cycle • install Docker • clone the repo • docker-compose up • once code is pushed notifies CircleCI and ShipIt
  • 14. Continuous Integration • run linter • run tests • build Docker image and push to AWS Elastic Container Registry
  • 15.
  • 16.
  • 17.
  • 18. ShipIt • a rails app to coordinate deploys • compatible with any ad-hoc deploy script or command (Ansible or Kubernetes) • sets secrets from encrypted JSON safely committed into our repos
  • 19. Links To ShipIt projects • https://github.com/Shopify/shipit-engine • https://github.com/Shopify/kubernetes-deploy • https://github.com/Shopify/ejson