SlideShare a Scribd company logo
1 of 18
Download to read offline
Thomas Eskenazi
Thomas Eskenazi
@tomeskenazi
@tomeskenazi
DOXLON – 2015
DOXLON – 2015
Yann Vigara
Yann Vigara
@yannvigara
@yannvigara
We did it our way!
We did it our way!
The Mission
The Mission
4 Monolithic apps
4 Monolithic apps
2 Jenkins servers / 7000+
2 Jenkins servers / 7000+
jobs
jobs
1 puppet master with all
1 puppet master with all
modules in one git repo and
modules in one git repo and
one environment
one environment
Cobbler and multiple puppet
Cobbler and multiple puppet
classes
classes
4 weeks release cycle times
4 weeks release cycle times
30 Service Oriented Apps
30 Service Oriented Apps
(more than 100 in DEV)
(more than 100 in DEV)
Scalable synced Jenkins servers
Scalable synced Jenkins servers
~800 jobs + 3500 still in legacy
~800 jobs + 3500 still in legacy
Scalable puppet stack,
Scalable puppet stack,
4 environments,
4 environments,
dedicated module repositories
dedicated module repositories
Foreman and one role per server
Foreman and one role per server
On-demand deployment to Prod
On-demand deployment to Prod
Our new recruit
Our new recruit
CD Pipelines - Overview
CD Pipelines - Overview
Jenkins-based, multiple
Jenkins-based, multiple
servers in sync
servers in sync
●
Manual or SCM-triggered
Manual or SCM-triggered
●
Manual or auto-
Manual or auto-
promotions (multiple
promotions (multiple
gating criteria, user
gating criteria, user
authentication)
authentication)
●
Integrated to Jira, Sonar,
Integrated to Jira, Sonar,
Artifactory, Confluence,
Artifactory, Confluence,
PuppetDB, Pulp...
PuppetDB, Pulp...
●
Multiple KPI, Metrics and
Multiple KPI, Metrics and
Dashboards extracted
Dashboards extracted
from Jenkins
from Jenkins
●
Build and deployment
Build and deployment
configuration stored in
configuration stored in
project codebase
project codebase
CD Pipelines - Dashboard
CD Pipelines - Dashboard
Real-time Data
Real-time Data
Extracted from Jenkins
Extracted from Jenkins
REST API (JSON)
REST API (JSON)
PHP page, query
PHP page, query
parameters defines
parameters defines
Jenkins job target, what
Jenkins job target, what
to display
to display
Source Code available
Source Code available
to dev/testers for
to dev/testers for
contribution
contribution
CD Pipelines - KPI & Metrics
CD Pipelines - KPI & Metrics
CD Pipelines - Generation
CD Pipelines - Generation
Jenkins Admin Job to generate all pipelines, manual & nightly-
Jenkins Admin Job to generate all pipelines, manual & nightly-
scheduled
scheduled
●
Single Input Parameter: SCM/Git URL
Single Input Parameter: SCM/Git URL
●
Digests the build.yaml and deploy.yaml + FM templates
Digests the build.yaml and deploy.yaml + FM templates
●
Automatically detects types of builds (mvn, gradle, scala, custom)
Automatically detects types of builds (mvn, gradle, scala, custom)
●
2 jobs: MASTER & DEV
2 jobs: MASTER & DEV
CD Pipelines - Definition
CD Pipelines - Definition
Build Config DSL: Build.yaml
Build Config DSL: Build.yaml
●
Build Environment (node,
Build Environment (node,
JDK…)
JDK…)
●
Artefact Types (package,
Artefact Types (package,
dependency, systest…)
dependency, systest…)
●
Notifications (email, test
Notifications (email, test
reports…)
reports…)
CD Pipelines - Definition
CD Pipelines - Definition
Deployment Config DSL:
Deployment Config DSL:
Deploy.yaml
Deploy.yaml
●
Artifact Definitions: names, types
Artifact Definitions: names, types
(puppet/aws...), puppet modules,
(puppet/aws...), puppet modules,
hieradata roles
hieradata roles
●
Environment (DEV, STG, PROD...)
Environment (DEV, STG, PROD...)
●
Integ./System Tests Definition
Integ./System Tests Definition
(targets, nodes, url…)
(targets, nodes, url…)
●
Deployment Orchestration (promo
Deployment Orchestration (promo
trigerring/transitioning)
trigerring/transitioning)
CD Pipelines - Job Example
CD Pipelines - Job Example
Puppet Module Structure
Puppet Module Structure
Role based configuration
Role based configuration
Base modules
Base modules
Common modules
Common modules
Naming convention
Naming convention
Environment and promotion
Environment and promotion
4 puppet environments : dev, qa, stg, prd
4 puppet environments : dev, qa, stg, prd
Referencing the git tag per environment in a modules.conf file
Referencing the git tag per environment in a modules.conf file
Set of bash scripts to manage the promotion
Set of bash scripts to manage the promotion
Puppet masters syncing on modules.conf changes
Puppet masters syncing on modules.conf changes
Foreman
Foreman
Server provisioning
Server provisioning
Audit reports
Audit reports
1 puppet class from
1 puppet class from
nap_role_*
nap_role_*
Facts used by hieradata
Facts used by hieradata
●
system_env
system_env
●
system_role
system_role
●
system_group
system_group
hieradata/
hieradata/
●
global.yaml
global.yaml
●
roles/
roles/
●
nap_hiera_<$system_role>/
nap_hiera_<$system_role>/
●
default.yaml
default.yaml
●
<$system_env>.yaml
<$system_env>.yaml
●
<$system_env>.<$system_group>.yaml
<$system_env>.<$system_group>.yaml
●
domain/
domain/
●
dom1.yaml
dom1.yaml
●
dom2.yaml
dom2.yaml
●
hosts/
hosts/
●
dom1/host1.yaml
dom1/host1.yaml
PuppetDB
PuppetDB
No exported resources
No exported resources
Query PuppetDB and use ERB templates
Query PuppetDB and use ERB templates
Host discovery in Jenkins during promotion
Host discovery in Jenkins during promotion
Pulp
Pulp
Central repository
Central repository
1 Repository per role/service per environment
1 Repository per role/service per environment
Ongoing challenges
Ongoing challenges
Puppet lifecycle testing
Puppet lifecycle testing
Training
Training
Heritage migration
Heritage migration
Hybrid Cloud
Hybrid Cloud
(Openstack/AWS)
(Openstack/AWS)
Docker
Docker
Security/Network/SDN
Security/Network/SDN
?
?
We are hiring
We are hiring
yann.vigara@net-a-porter.com
yann.vigara@net-a-porter.com
thomas.eskenazi@net-a-porter.com
thomas.eskenazi@net-a-porter.com

More Related Content

Viewers also liked

BLSTK Replay n°152 - la revue luxe et digitale 25.02 au 02.03.16
BLSTK Replay n°152 - la revue luxe et digitale 25.02 au 02.03.16BLSTK Replay n°152 - la revue luxe et digitale 25.02 au 02.03.16
BLSTK Replay n°152 - la revue luxe et digitale 25.02 au 02.03.16Balistik Art
 
Fashion Brand Managment - Marchesa
Fashion Brand Managment - MarchesaFashion Brand Managment - Marchesa
Fashion Brand Managment - MarchesaShirley, Yan Yu Tin
 
Consumer Behaviour Net-a-porter-Case Study
Consumer Behaviour Net-a-porter-Case StudyConsumer Behaviour Net-a-porter-Case Study
Consumer Behaviour Net-a-porter-Case StudySaket Toshniwal
 
Fashion Marketing Ch 2
Fashion Marketing Ch 2Fashion Marketing Ch 2
Fashion Marketing Ch 2Msotter
 
hallu - Japanese Fashion Brand Pitch May 2015
hallu - Japanese Fashion Brand Pitch May 2015hallu - Japanese Fashion Brand Pitch May 2015
hallu - Japanese Fashion Brand Pitch May 2015Daisuke Ishii
 
Fashion marketing : Marketing statement, object,Marketing plan, Marketing str...
Fashion marketing : Marketing statement, object,Marketing plan, Marketing str...Fashion marketing : Marketing statement, object,Marketing plan, Marketing str...
Fashion marketing : Marketing statement, object,Marketing plan, Marketing str...BGMEA University of Fashion & Technology
 
Fashion marketing basics
Fashion marketing basicsFashion marketing basics
Fashion marketing basicsranjan trivedy
 
Versace fashion Brand Analyses presentation
Versace fashion Brand Analyses presentationVersace fashion Brand Analyses presentation
Versace fashion Brand Analyses presentationHimel Hawlader
 
SplunkLive! Milano 2016 - customer presentation - Yoox - Net a porter
SplunkLive! Milano 2016 - customer presentation - Yoox - Net a porterSplunkLive! Milano 2016 - customer presentation - Yoox - Net a porter
SplunkLive! Milano 2016 - customer presentation - Yoox - Net a porterSplunk
 
Assortment ss 2015 Stella McCartney
Assortment ss 2015 Stella McCartneyAssortment ss 2015 Stella McCartney
Assortment ss 2015 Stella McCartneyvibber
 

Viewers also liked (14)

BLSTK Replay n°152 - la revue luxe et digitale 25.02 au 02.03.16
BLSTK Replay n°152 - la revue luxe et digitale 25.02 au 02.03.16BLSTK Replay n°152 - la revue luxe et digitale 25.02 au 02.03.16
BLSTK Replay n°152 - la revue luxe et digitale 25.02 au 02.03.16
 
Fashion Brand Managment - Marchesa
Fashion Brand Managment - MarchesaFashion Brand Managment - Marchesa
Fashion Brand Managment - Marchesa
 
Consumer Behaviour Net-a-porter-Case Study
Consumer Behaviour Net-a-porter-Case StudyConsumer Behaviour Net-a-porter-Case Study
Consumer Behaviour Net-a-porter-Case Study
 
Fashion Marketing Ch 2
Fashion Marketing Ch 2Fashion Marketing Ch 2
Fashion Marketing Ch 2
 
hallu - Japanese Fashion Brand Pitch May 2015
hallu - Japanese Fashion Brand Pitch May 2015hallu - Japanese Fashion Brand Pitch May 2015
hallu - Japanese Fashion Brand Pitch May 2015
 
Fashion marketing : Marketing statement, object,Marketing plan, Marketing str...
Fashion marketing : Marketing statement, object,Marketing plan, Marketing str...Fashion marketing : Marketing statement, object,Marketing plan, Marketing str...
Fashion marketing : Marketing statement, object,Marketing plan, Marketing str...
 
Fashion Marketing (Branding)
Fashion Marketing (Branding)Fashion Marketing (Branding)
Fashion Marketing (Branding)
 
Vietnamese fashion brand recognition survey
Vietnamese fashion brand recognition surveyVietnamese fashion brand recognition survey
Vietnamese fashion brand recognition survey
 
Fashion market studies_thailand_22042015
Fashion market studies_thailand_22042015Fashion market studies_thailand_22042015
Fashion market studies_thailand_22042015
 
Fashion marketing basics
Fashion marketing basicsFashion marketing basics
Fashion marketing basics
 
Versace fashion Brand Analyses presentation
Versace fashion Brand Analyses presentationVersace fashion Brand Analyses presentation
Versace fashion Brand Analyses presentation
 
Chapter 1 Fashion Marketing
Chapter   1 Fashion MarketingChapter   1 Fashion Marketing
Chapter 1 Fashion Marketing
 
SplunkLive! Milano 2016 - customer presentation - Yoox - Net a porter
SplunkLive! Milano 2016 - customer presentation - Yoox - Net a porterSplunkLive! Milano 2016 - customer presentation - Yoox - Net a porter
SplunkLive! Milano 2016 - customer presentation - Yoox - Net a porter
 
Assortment ss 2015 Stella McCartney
Assortment ss 2015 Stella McCartneyAssortment ss 2015 Stella McCartney
Assortment ss 2015 Stella McCartney
 

More from Outlyer

Murat Karslioglu, VP Solutions @ OpenEBS - Containerized storage for containe...
Murat Karslioglu, VP Solutions @ OpenEBS - Containerized storage for containe...Murat Karslioglu, VP Solutions @ OpenEBS - Containerized storage for containe...
Murat Karslioglu, VP Solutions @ OpenEBS - Containerized storage for containe...Outlyer
 
How & When to Feature Flag
How & When to Feature FlagHow & When to Feature Flag
How & When to Feature FlagOutlyer
 
Why You Need to Stop Using "The" Staging Server
Why You Need to Stop Using "The" Staging ServerWhy You Need to Stop Using "The" Staging Server
Why You Need to Stop Using "The" Staging ServerOutlyer
 
How GitHub combined with CI empowers rapid product delivery at Credit Karma
How GitHub combined with CI empowers rapid product delivery at Credit Karma How GitHub combined with CI empowers rapid product delivery at Credit Karma
How GitHub combined with CI empowers rapid product delivery at Credit Karma Outlyer
 
Packaging Services with Nix
Packaging Services with NixPackaging Services with Nix
Packaging Services with NixOutlyer
 
Minimum Viable Docker: our journey towards orchestration
Minimum Viable Docker: our journey towards orchestrationMinimum Viable Docker: our journey towards orchestration
Minimum Viable Docker: our journey towards orchestrationOutlyer
 
Ops is dead. long live ops.
Ops is dead. long live ops.Ops is dead. long live ops.
Ops is dead. long live ops.Outlyer
 
The service mesh: resilient communication for microservice applications
The service mesh: resilient communication for microservice applicationsThe service mesh: resilient communication for microservice applications
The service mesh: resilient communication for microservice applicationsOutlyer
 
Microservices: Why We Did It (and should you?)
Microservices: Why We Did It (and should you?) Microservices: Why We Did It (and should you?)
Microservices: Why We Did It (and should you?) Outlyer
 
Renan Dias: Using Alexa to deploy applications to Kubernetes
Renan Dias: Using Alexa to deploy applications to KubernetesRenan Dias: Using Alexa to deploy applications to Kubernetes
Renan Dias: Using Alexa to deploy applications to KubernetesOutlyer
 
Alex Dias: how to build a docker monitoring solution
Alex Dias: how to build a docker monitoring solution Alex Dias: how to build a docker monitoring solution
Alex Dias: how to build a docker monitoring solution Outlyer
 
How to build a container monitoring solution - David Gildeh, CEO and Co-Found...
How to build a container monitoring solution - David Gildeh, CEO and Co-Found...How to build a container monitoring solution - David Gildeh, CEO and Co-Found...
How to build a container monitoring solution - David Gildeh, CEO and Co-Found...Outlyer
 
Heresy in the church of - Corey Quinn, Principal at The Quinn Advisory Group
Heresy in the church of - Corey Quinn, Principal at The Quinn Advisory Group Heresy in the church of - Corey Quinn, Principal at The Quinn Advisory Group
Heresy in the church of - Corey Quinn, Principal at The Quinn Advisory Group Outlyer
 
Anatomy of a real-life incident -Alex Solomon, CTO and Co-Founder of PagerDuty
Anatomy of a real-life incident -Alex Solomon, CTO and Co-Founder of PagerDutyAnatomy of a real-life incident -Alex Solomon, CTO and Co-Founder of PagerDuty
Anatomy of a real-life incident -Alex Solomon, CTO and Co-Founder of PagerDutyOutlyer
 
A Holistic View of Operational Capabilities—Roy Rapoport, Insight Engineering...
A Holistic View of Operational Capabilities—Roy Rapoport, Insight Engineering...A Holistic View of Operational Capabilities—Roy Rapoport, Insight Engineering...
A Holistic View of Operational Capabilities—Roy Rapoport, Insight Engineering...Outlyer
 
The Network Knows—Avi Freedman, CEO & Co-Founder of Kentik
The Network Knows—Avi Freedman, CEO & Co-Founder of Kentik The Network Knows—Avi Freedman, CEO & Co-Founder of Kentik
The Network Knows—Avi Freedman, CEO & Co-Founder of Kentik Outlyer
 
Building a production-ready, fully-scalable Docker Swarm using Terraform & Pa...
Building a production-ready, fully-scalable Docker Swarm using Terraform & Pa...Building a production-ready, fully-scalable Docker Swarm using Terraform & Pa...
Building a production-ready, fully-scalable Docker Swarm using Terraform & Pa...Outlyer
 
Zero Downtime Postgres Upgrades
Zero Downtime Postgres UpgradesZero Downtime Postgres Upgrades
Zero Downtime Postgres UpgradesOutlyer
 
DOXLON November 2016: Facebook Engineering on cgroupv2
DOXLON November 2016: Facebook Engineering on cgroupv2DOXLON November 2016: Facebook Engineering on cgroupv2
DOXLON November 2016: Facebook Engineering on cgroupv2Outlyer
 
DOXLON November 2016 - ELK Stack and Beats
DOXLON November 2016 - ELK Stack and Beats DOXLON November 2016 - ELK Stack and Beats
DOXLON November 2016 - ELK Stack and Beats Outlyer
 

More from Outlyer (20)

Murat Karslioglu, VP Solutions @ OpenEBS - Containerized storage for containe...
Murat Karslioglu, VP Solutions @ OpenEBS - Containerized storage for containe...Murat Karslioglu, VP Solutions @ OpenEBS - Containerized storage for containe...
Murat Karslioglu, VP Solutions @ OpenEBS - Containerized storage for containe...
 
How & When to Feature Flag
How & When to Feature FlagHow & When to Feature Flag
How & When to Feature Flag
 
Why You Need to Stop Using "The" Staging Server
Why You Need to Stop Using "The" Staging ServerWhy You Need to Stop Using "The" Staging Server
Why You Need to Stop Using "The" Staging Server
 
How GitHub combined with CI empowers rapid product delivery at Credit Karma
How GitHub combined with CI empowers rapid product delivery at Credit Karma How GitHub combined with CI empowers rapid product delivery at Credit Karma
How GitHub combined with CI empowers rapid product delivery at Credit Karma
 
Packaging Services with Nix
Packaging Services with NixPackaging Services with Nix
Packaging Services with Nix
 
Minimum Viable Docker: our journey towards orchestration
Minimum Viable Docker: our journey towards orchestrationMinimum Viable Docker: our journey towards orchestration
Minimum Viable Docker: our journey towards orchestration
 
Ops is dead. long live ops.
Ops is dead. long live ops.Ops is dead. long live ops.
Ops is dead. long live ops.
 
The service mesh: resilient communication for microservice applications
The service mesh: resilient communication for microservice applicationsThe service mesh: resilient communication for microservice applications
The service mesh: resilient communication for microservice applications
 
Microservices: Why We Did It (and should you?)
Microservices: Why We Did It (and should you?) Microservices: Why We Did It (and should you?)
Microservices: Why We Did It (and should you?)
 
Renan Dias: Using Alexa to deploy applications to Kubernetes
Renan Dias: Using Alexa to deploy applications to KubernetesRenan Dias: Using Alexa to deploy applications to Kubernetes
Renan Dias: Using Alexa to deploy applications to Kubernetes
 
Alex Dias: how to build a docker monitoring solution
Alex Dias: how to build a docker monitoring solution Alex Dias: how to build a docker monitoring solution
Alex Dias: how to build a docker monitoring solution
 
How to build a container monitoring solution - David Gildeh, CEO and Co-Found...
How to build a container monitoring solution - David Gildeh, CEO and Co-Found...How to build a container monitoring solution - David Gildeh, CEO and Co-Found...
How to build a container monitoring solution - David Gildeh, CEO and Co-Found...
 
Heresy in the church of - Corey Quinn, Principal at The Quinn Advisory Group
Heresy in the church of - Corey Quinn, Principal at The Quinn Advisory Group Heresy in the church of - Corey Quinn, Principal at The Quinn Advisory Group
Heresy in the church of - Corey Quinn, Principal at The Quinn Advisory Group
 
Anatomy of a real-life incident -Alex Solomon, CTO and Co-Founder of PagerDuty
Anatomy of a real-life incident -Alex Solomon, CTO and Co-Founder of PagerDutyAnatomy of a real-life incident -Alex Solomon, CTO and Co-Founder of PagerDuty
Anatomy of a real-life incident -Alex Solomon, CTO and Co-Founder of PagerDuty
 
A Holistic View of Operational Capabilities—Roy Rapoport, Insight Engineering...
A Holistic View of Operational Capabilities—Roy Rapoport, Insight Engineering...A Holistic View of Operational Capabilities—Roy Rapoport, Insight Engineering...
A Holistic View of Operational Capabilities—Roy Rapoport, Insight Engineering...
 
The Network Knows—Avi Freedman, CEO & Co-Founder of Kentik
The Network Knows—Avi Freedman, CEO & Co-Founder of Kentik The Network Knows—Avi Freedman, CEO & Co-Founder of Kentik
The Network Knows—Avi Freedman, CEO & Co-Founder of Kentik
 
Building a production-ready, fully-scalable Docker Swarm using Terraform & Pa...
Building a production-ready, fully-scalable Docker Swarm using Terraform & Pa...Building a production-ready, fully-scalable Docker Swarm using Terraform & Pa...
Building a production-ready, fully-scalable Docker Swarm using Terraform & Pa...
 
Zero Downtime Postgres Upgrades
Zero Downtime Postgres UpgradesZero Downtime Postgres Upgrades
Zero Downtime Postgres Upgrades
 
DOXLON November 2016: Facebook Engineering on cgroupv2
DOXLON November 2016: Facebook Engineering on cgroupv2DOXLON November 2016: Facebook Engineering on cgroupv2
DOXLON November 2016: Facebook Engineering on cgroupv2
 
DOXLON November 2016 - ELK Stack and Beats
DOXLON November 2016 - ELK Stack and Beats DOXLON November 2016 - ELK Stack and Beats
DOXLON November 2016 - ELK Stack and Beats
 

Recently uploaded

Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 

Recently uploaded (20)

Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 

Thomas Eskenazi & Yann Vigara (Net-A-Porter) - Continuous Delivery at Net-A-Porter

  • 1. Thomas Eskenazi Thomas Eskenazi @tomeskenazi @tomeskenazi DOXLON – 2015 DOXLON – 2015 Yann Vigara Yann Vigara @yannvigara @yannvigara We did it our way! We did it our way!
  • 2. The Mission The Mission 4 Monolithic apps 4 Monolithic apps 2 Jenkins servers / 7000+ 2 Jenkins servers / 7000+ jobs jobs 1 puppet master with all 1 puppet master with all modules in one git repo and modules in one git repo and one environment one environment Cobbler and multiple puppet Cobbler and multiple puppet classes classes 4 weeks release cycle times 4 weeks release cycle times 30 Service Oriented Apps 30 Service Oriented Apps (more than 100 in DEV) (more than 100 in DEV) Scalable synced Jenkins servers Scalable synced Jenkins servers ~800 jobs + 3500 still in legacy ~800 jobs + 3500 still in legacy Scalable puppet stack, Scalable puppet stack, 4 environments, 4 environments, dedicated module repositories dedicated module repositories Foreman and one role per server Foreman and one role per server On-demand deployment to Prod On-demand deployment to Prod
  • 3. Our new recruit Our new recruit
  • 4. CD Pipelines - Overview CD Pipelines - Overview Jenkins-based, multiple Jenkins-based, multiple servers in sync servers in sync ● Manual or SCM-triggered Manual or SCM-triggered ● Manual or auto- Manual or auto- promotions (multiple promotions (multiple gating criteria, user gating criteria, user authentication) authentication) ● Integrated to Jira, Sonar, Integrated to Jira, Sonar, Artifactory, Confluence, Artifactory, Confluence, PuppetDB, Pulp... PuppetDB, Pulp... ● Multiple KPI, Metrics and Multiple KPI, Metrics and Dashboards extracted Dashboards extracted from Jenkins from Jenkins ● Build and deployment Build and deployment configuration stored in configuration stored in project codebase project codebase
  • 5. CD Pipelines - Dashboard CD Pipelines - Dashboard Real-time Data Real-time Data Extracted from Jenkins Extracted from Jenkins REST API (JSON) REST API (JSON) PHP page, query PHP page, query parameters defines parameters defines Jenkins job target, what Jenkins job target, what to display to display Source Code available Source Code available to dev/testers for to dev/testers for contribution contribution
  • 6. CD Pipelines - KPI & Metrics CD Pipelines - KPI & Metrics
  • 7. CD Pipelines - Generation CD Pipelines - Generation Jenkins Admin Job to generate all pipelines, manual & nightly- Jenkins Admin Job to generate all pipelines, manual & nightly- scheduled scheduled ● Single Input Parameter: SCM/Git URL Single Input Parameter: SCM/Git URL ● Digests the build.yaml and deploy.yaml + FM templates Digests the build.yaml and deploy.yaml + FM templates ● Automatically detects types of builds (mvn, gradle, scala, custom) Automatically detects types of builds (mvn, gradle, scala, custom) ● 2 jobs: MASTER & DEV 2 jobs: MASTER & DEV
  • 8. CD Pipelines - Definition CD Pipelines - Definition Build Config DSL: Build.yaml Build Config DSL: Build.yaml ● Build Environment (node, Build Environment (node, JDK…) JDK…) ● Artefact Types (package, Artefact Types (package, dependency, systest…) dependency, systest…) ● Notifications (email, test Notifications (email, test reports…) reports…)
  • 9. CD Pipelines - Definition CD Pipelines - Definition Deployment Config DSL: Deployment Config DSL: Deploy.yaml Deploy.yaml ● Artifact Definitions: names, types Artifact Definitions: names, types (puppet/aws...), puppet modules, (puppet/aws...), puppet modules, hieradata roles hieradata roles ● Environment (DEV, STG, PROD...) Environment (DEV, STG, PROD...) ● Integ./System Tests Definition Integ./System Tests Definition (targets, nodes, url…) (targets, nodes, url…) ● Deployment Orchestration (promo Deployment Orchestration (promo trigerring/transitioning) trigerring/transitioning)
  • 10. CD Pipelines - Job Example CD Pipelines - Job Example
  • 11. Puppet Module Structure Puppet Module Structure Role based configuration Role based configuration Base modules Base modules Common modules Common modules Naming convention Naming convention
  • 12. Environment and promotion Environment and promotion 4 puppet environments : dev, qa, stg, prd 4 puppet environments : dev, qa, stg, prd Referencing the git tag per environment in a modules.conf file Referencing the git tag per environment in a modules.conf file Set of bash scripts to manage the promotion Set of bash scripts to manage the promotion Puppet masters syncing on modules.conf changes Puppet masters syncing on modules.conf changes
  • 13. Foreman Foreman Server provisioning Server provisioning Audit reports Audit reports 1 puppet class from 1 puppet class from nap_role_* nap_role_* Facts used by hieradata Facts used by hieradata ● system_env system_env ● system_role system_role ● system_group system_group hieradata/ hieradata/ ● global.yaml global.yaml ● roles/ roles/ ● nap_hiera_<$system_role>/ nap_hiera_<$system_role>/ ● default.yaml default.yaml ● <$system_env>.yaml <$system_env>.yaml ● <$system_env>.<$system_group>.yaml <$system_env>.<$system_group>.yaml ● domain/ domain/ ● dom1.yaml dom1.yaml ● dom2.yaml dom2.yaml ● hosts/ hosts/ ● dom1/host1.yaml dom1/host1.yaml
  • 14. PuppetDB PuppetDB No exported resources No exported resources Query PuppetDB and use ERB templates Query PuppetDB and use ERB templates Host discovery in Jenkins during promotion Host discovery in Jenkins during promotion
  • 15. Pulp Pulp Central repository Central repository 1 Repository per role/service per environment 1 Repository per role/service per environment
  • 16. Ongoing challenges Ongoing challenges Puppet lifecycle testing Puppet lifecycle testing Training Training Heritage migration Heritage migration Hybrid Cloud Hybrid Cloud (Openstack/AWS) (Openstack/AWS) Docker Docker Security/Network/SDN Security/Network/SDN
  • 17. ? ?
  • 18. We are hiring We are hiring yann.vigara@net-a-porter.com yann.vigara@net-a-porter.com thomas.eskenazi@net-a-porter.com thomas.eskenazi@net-a-porter.com