SlideShare a Scribd company logo
1 of 24
FTTH Factory
An illustration of the “Everything as Code” paradigm
Raphaël Pinson @raphink
www.camptocamp.com
Who am I?
■ Raphaël Pinson
aka Raphink
■ Infrastructure Developer &
Trainer
■ Automation
(Puppet, Augeas, Docker,
Kubernetes, Terraform)
■ Lausanne, CH
www.camptocamp.com
Camptocamp
www.camptocamp.com
Camptocamp Infrastructure Department
■ Involved in Open Source communities
(Puppet, Terraform, Rancher)
■ 14 Systems Engineers
■ Manages ~800 servers
■ Partnerships
SWITZERLAND
GERMANY
www.camptocamp.com
Measurements inside FTTH-factory
Leverages
Measurements
2D & 3D data
collections
Identification of
objects and surfaces
1
Data
conflation
Shift to UTM
spatial corrections
2
Automated
planning
optimized planning
based on detected
surfaces
3
Simplified
purchase
processes
All inclusive prices
for fixed offers
4
Digital plan
corrections
APP based mapping
of trenches
5
www.camptocamp.com
Why Automate?
■ Repetitive task error prone⇒
■ Dev / Int / prod
■ Define once, reuse many times
www.camptocamp.com
3 Ways of Managing Cloud Resources
■ Web Interface
○ easy, not flexible, not reproducible
■ CLI
○ flexible, not easily reproducible
■ As Code
○ flexible, reproducible, + collaboration
7
www.camptocamp.com
Infrastructure Technology Stack
www.camptocamp.com
PROVISIONING AS CODE
Cloud Infrastructure Automation
■ TOOLS: OPENSTACK & TERRAFORM
○ Provision networks, security groups, etc. from code
○ Provision VMs and orchestrate their deployment from code
○ Support for multiple cloud providers and third party tools
■ BENEFITS
○ Full control of all cloud resources
○ Reproductibility of environments
○ Easy decommissioning
www.camptocamp.com
PROVISIONING AS CODE
Case Study: Provision a Development Environment
■ OBJECTIVE
Deploy Development and Production Environments
in a fully automated way
■ IMPLEMENTATION
Terraform is used to:
○ provision networks and nodes, integrate with Puppet/Ansible
■ BENEFITS
○ Fully automated, extremely fast deployment of deployments
○ All resources managed in one location
www.camptocamp.com
CONFIGURATION MANAGEMENT
Maintaining Machine State
■ TOOLS: TWO APPROACHES
○ Pull approach (Cfgmgmt): Cfengine, Puppet, Chef
○ Push approach (deploy): Ansible, Salt
■ BENEFITS
○ No manual management of nodes
○ Reproductibility of nodes
○ Inventory
○ More confidence in environments and deployments
www.camptocamp.com
CONFIGURATION MANAGEMENT
Case Study: Manage Server Fleet with Puppet
■ OBJECTIVE
Manage configuration for ~50 servers in two environments
■ IMPLEMENTATION
○ Puppet Open Source (Camptocamp’s Dockerized Stack)
○ DBs managed with Puppet
○ Identity Management
■ BENEFITS
○ Very fast setup of new nodes
○ Dynamic, up-to-date inventory
○ Nodes are kept up-to-date with their target configuration
www.camptocamp.com
DEPLOYMENT AS CODE
Deploying Complex Software
■ TOOLS: ANSIBLE, BOLT
○ Orchestration of multi-node deployments with dependencies
■ BENEFITS
○ Reproductibility of deployments
○ More confidence in deployments
www.camptocamp.com
DEPLOYMENT AS CODE
Case Study: OpenShift Deployment
■ OBJECTIVE
Deploy an OpenShift cluster, with various roles
and inter-nodes dependencies.
■ IMPLEMENTATION
Red Hat provides Ansible playbooks to deploy an OpenShift cluster.
■ BENEFITS
○ Fully automated OpenShift deployment
○ Much easier/faster to deploy new nodes in the cluster
www.camptocamp.com
CONTAINER ORCHESTRATION
Containerized Application Deployment as Code
■ TOOLS: OPENSHIFT & HELM
○ Gather all Kubernetes objects in one package
■ BENEFITS
○ Distribute applications as catalog entries
○ Fully customizable packages
www.camptocamp.com
CONTAINER ORCHESTRATION
Case Study: Puppet Stack Deployment with Helm
■ OBJECTIVE
Deploy GIS applications (geOrchestra) on OpenShift
■ IMPLEMENTATION
○ Helm charts for each component
○ Helmfile for full stacks
■ BENEFITS
○ Easily deploy a complex application on OpenShift
○ Parameters and secrets passed to templates
www.camptocamp.com
CONTINUOUS INTEGRATION
CI/CD Pipelines as Code
■ TOOLS: JENKINS
○ Continuous Integration platform
○ Integrates with multiple Version Control Systems
○ Allows to build pipelines
○ CI/CD as Code with Jenkinsfile
○ Extensible with Groovy code
■ BENEFITS
○ Flexible way to program CI/CD tasks
○ Portable to other Jenkins instances
○ Pipeline approach
www.camptocamp.com
CONTINUOUS INTEGRATION
Case Study: CI/CD with OpenShift
■ OBJECTIVE
○ Automatically deploy a GIS multi-tiered application
from code with OpenShift
■ IMPLEMENTATION
○ Use ImageStreams with OpenShift builds (using Jenkins)
and Jenkinsfile, along with triggers for deployment.
■ BENEFITS
○ Fully automated pipeline workflow for developers,
with automated checks and triggers.
www.camptocamp.com
OBSERVABILITY AS CODE
Logs, Metrics & Monitoring
■ TOOLS: ELK, PROMETHEUS, GRAFANA
○ Gather logs & metrics
○ Provide code for data processing and dashboards
■ BENEFITS
○ Prometheus time series provide
a flexible query language
○ JSON dashboards provide portability
www.camptocamp.com
OBSERVABILITY AS CODE
Case Study: Monitor Puppet resources and performance
■ OBJECTIVE
Gather performance metrics for the Puppet stack,
both on the server and agents.
■ IMPLEMENTATION
○ The Puppet prometheus_reporter module
provides a report plugin to collect agent data
○ JMX for internal Puppet Enterprise server metrics,
gathered in Prometheus
■ BENEFITS
Easily deployed dashboards with tuned metrics and monitoring.
www.camptocamp.com
BACKUPS AS CODE
Automate Backups of Container Volumes
■ TOOLS: KUBERNETES AND BIVAC
○ Automatic backups of PVCs
○ Tune backup parameters with Labels
■ BENEFITS
○ Allow users of container platforms
○ to choose with Data Volumes to backup
○ Allow users to tune how backups are performed
www.camptocamp.com
BACKUPS AS CODE
Case Study: Backup Data Volumes in OpenShift
■ OBJECTIVE
○ Provide an API for developers to backup their Data Volumes.
■ IMPLEMENTATION
○ The Bivac stack is deployed on OpenShift projects
to detect and backup Physical Volume Claims automatically.
■ BENEFITS
○ Backup container data where it is stored and let users
tune how to perform the backup.
www.camptocamp.com
CONCLUSION
Everything as Code
■ TOOLS
○ Many open-source tools to automate:
■ Systems Administration
■ Software Testing and Deployment
■ BENEFITS
○ Increased flexibility
○ Increased collaboration between teams
○ DevOps everything
FTTH Factory — an illustration of the "Everything as Code" paradigm

More Related Content

What's hot

What's hot (6)

Paris.py
Paris.pyParis.py
Paris.py
 
Digital auto tracking
Digital auto trackingDigital auto tracking
Digital auto tracking
 
Containerize ovs ovn components
Containerize ovs ovn componentsContainerize ovs ovn components
Containerize ovs ovn components
 
Clustering tensor flow con kubernetes y raspberry pi
Clustering tensor flow con kubernetes y raspberry piClustering tensor flow con kubernetes y raspberry pi
Clustering tensor flow con kubernetes y raspberry pi
 
LAS16-211: Using LAVA V2 for advanced KVM testing
LAS16-211: Using LAVA V2 for advanced KVM testingLAS16-211: Using LAVA V2 for advanced KVM testing
LAS16-211: Using LAVA V2 for advanced KVM testing
 
.NET Memory Primer (Martin Kulov)
.NET Memory Primer (Martin Kulov).NET Memory Primer (Martin Kulov)
.NET Memory Primer (Martin Kulov)
 

Similar to FTTH Factory — an illustration of the "Everything as Code" paradigm

CloudStack and LINBIT SDS Integration
CloudStack and LINBIT SDS IntegrationCloudStack and LINBIT SDS Integration
CloudStack and LINBIT SDS Integration
ShapeBlue
 
Building a Next-gen Data Platform and Leveraging the OSS Ecosystem for Easy W...
Building a Next-gen Data Platform and Leveraging the OSS Ecosystem for Easy W...Building a Next-gen Data Platform and Leveraging the OSS Ecosystem for Easy W...
Building a Next-gen Data Platform and Leveraging the OSS Ecosystem for Easy W...
StampedeCon
 

Similar to FTTH Factory — an illustration of the "Everything as Code" paradigm (20)

Meetup Openshift Geneva 03/10
Meetup Openshift Geneva 03/10Meetup Openshift Geneva 03/10
Meetup Openshift Geneva 03/10
 
CloudStack and LINBIT SDS Integration
CloudStack and LINBIT SDS IntegrationCloudStack and LINBIT SDS Integration
CloudStack and LINBIT SDS Integration
 
Netflix Container Scheduling and Execution - QCon New York 2016
Netflix Container Scheduling and Execution - QCon New York 2016Netflix Container Scheduling and Execution - QCon New York 2016
Netflix Container Scheduling and Execution - QCon New York 2016
 
Scheduling a fuller house - Talk at QCon NY 2016
Scheduling a fuller house - Talk at QCon NY 2016Scheduling a fuller house - Talk at QCon NY 2016
Scheduling a fuller house - Talk at QCon NY 2016
 
Data Science in the Cloud @StitchFix
Data Science in the Cloud @StitchFixData Science in the Cloud @StitchFix
Data Science in the Cloud @StitchFix
 
Openshift service broker and catalog ocp-meetup july 2018
Openshift service broker and catalog  ocp-meetup july 2018Openshift service broker and catalog  ocp-meetup july 2018
Openshift service broker and catalog ocp-meetup july 2018
 
Netflix Architecture and Open Source
Netflix Architecture and Open SourceNetflix Architecture and Open Source
Netflix Architecture and Open Source
 
OSMC 2023 | What’s new with Grafana Labs’s Open Source Observability stack by...
OSMC 2023 | What’s new with Grafana Labs’s Open Source Observability stack by...OSMC 2023 | What’s new with Grafana Labs’s Open Source Observability stack by...
OSMC 2023 | What’s new with Grafana Labs’s Open Source Observability stack by...
 
Cloud Native Applications on Kubernetes: a DevOps Approach
Cloud Native Applications on Kubernetes: a DevOps ApproachCloud Native Applications on Kubernetes: a DevOps Approach
Cloud Native Applications on Kubernetes: a DevOps Approach
 
reBuy on Kubernetes
reBuy on KubernetesreBuy on Kubernetes
reBuy on Kubernetes
 
Prometheus: What is is, what is new, what is coming
Prometheus: What is is, what is new, what is comingPrometheus: What is is, what is new, what is coming
Prometheus: What is is, what is new, what is coming
 
Scaling Up Logging and Metrics
Scaling Up Logging and MetricsScaling Up Logging and Metrics
Scaling Up Logging and Metrics
 
Agile Integration Workshop
Agile Integration WorkshopAgile Integration Workshop
Agile Integration Workshop
 
OpenStack Best Practices and Considerations - terasky tech day
OpenStack Best Practices and Considerations  - terasky tech dayOpenStack Best Practices and Considerations  - terasky tech day
OpenStack Best Practices and Considerations - terasky tech day
 
What's New with Ceph - Ceph Day Silicon Valley
What's New with Ceph - Ceph Day Silicon ValleyWhat's New with Ceph - Ceph Day Silicon Valley
What's New with Ceph - Ceph Day Silicon Valley
 
2021.02 new in Ceph Pacific Dashboard
2021.02 new in Ceph Pacific Dashboard2021.02 new in Ceph Pacific Dashboard
2021.02 new in Ceph Pacific Dashboard
 
HPC on OpenStack
HPC on OpenStackHPC on OpenStack
HPC on OpenStack
 
OSDC 2018 | Three years running containers with Kubernetes in Production by T...
OSDC 2018 | Three years running containers with Kubernetes in Production by T...OSDC 2018 | Three years running containers with Kubernetes in Production by T...
OSDC 2018 | Three years running containers with Kubernetes in Production by T...
 
Chromium: NaCl and Pepper API
Chromium: NaCl and Pepper APIChromium: NaCl and Pepper API
Chromium: NaCl and Pepper API
 
Building a Next-gen Data Platform and Leveraging the OSS Ecosystem for Easy W...
Building a Next-gen Data Platform and Leveraging the OSS Ecosystem for Easy W...Building a Next-gen Data Platform and Leveraging the OSS Ecosystem for Easy W...
Building a Next-gen Data Platform and Leveraging the OSS Ecosystem for Easy W...
 

More from Raphaël PINSON

Cloud Native Bern 05.2023 — Zero Trust Visibility
Cloud Native Bern 05.2023 — Zero Trust VisibilityCloud Native Bern 05.2023 — Zero Trust Visibility
Cloud Native Bern 05.2023 — Zero Trust Visibility
Raphaël PINSON
 

More from Raphaël PINSON (20)

Explore the World of Cilium, Tetragon & eBPF
Explore the World of Cilium, Tetragon & eBPFExplore the World of Cilium, Tetragon & eBPF
Explore the World of Cilium, Tetragon & eBPF
 
Cfgmgmtcamp 2024 — eBPF-based Security Observability & Runtime Enforcement wi...
Cfgmgmtcamp 2024 — eBPF-based Security Observability & Runtime Enforcement wi...Cfgmgmtcamp 2024 — eBPF-based Security Observability & Runtime Enforcement wi...
Cfgmgmtcamp 2024 — eBPF-based Security Observability & Runtime Enforcement wi...
 
ContainerDays Hamburg 2023 — Cilium Workshop.pdf
ContainerDays Hamburg 2023 — Cilium Workshop.pdfContainerDays Hamburg 2023 — Cilium Workshop.pdf
ContainerDays Hamburg 2023 — Cilium Workshop.pdf
 
KCD Zurich 2023 — Bridge Dev & Ops with eBPF.pdf
KCD Zurich 2023 — Bridge Dev & Ops with eBPF.pdfKCD Zurich 2023 — Bridge Dev & Ops with eBPF.pdf
KCD Zurich 2023 — Bridge Dev & Ops with eBPF.pdf
 
Cloud Native Bern 05.2023 — Zero Trust Visibility
Cloud Native Bern 05.2023 — Zero Trust VisibilityCloud Native Bern 05.2023 — Zero Trust Visibility
Cloud Native Bern 05.2023 — Zero Trust Visibility
 
DevOpsDays Zurich 2023 — Bridging Dev and Ops with eBPF: Extending Observabil...
DevOpsDays Zurich 2023 — Bridging Dev and Ops with eBPF: Extending Observabil...DevOpsDays Zurich 2023 — Bridging Dev and Ops with eBPF: Extending Observabil...
DevOpsDays Zurich 2023 — Bridging Dev and Ops with eBPF: Extending Observabil...
 
Révolution eBPF - un noyau dynamique
Révolution eBPF - un noyau dynamiqueRévolution eBPF - un noyau dynamique
Révolution eBPF - un noyau dynamique
 
Cfgmgmtcamp 2023 — eBPF Superpowers
Cfgmgmtcamp 2023 — eBPF SuperpowersCfgmgmtcamp 2023 — eBPF Superpowers
Cfgmgmtcamp 2023 — eBPF Superpowers
 
Cloud Native Networking & Security with Cilium & eBPF
Cloud Native Networking & Security with Cilium & eBPFCloud Native Networking & Security with Cilium & eBPF
Cloud Native Networking & Security with Cilium & eBPF
 
2022 DevOpsDays Geneva — The Hare and the Tortoise.pdf
2022 DevOpsDays Geneva — The Hare and the Tortoise.pdf2022 DevOpsDays Geneva — The Hare and the Tortoise.pdf
2022 DevOpsDays Geneva — The Hare and the Tortoise.pdf
 
SKS in git ops mode
SKS in git ops modeSKS in git ops mode
SKS in git ops mode
 
The Hare and the Tortoise: Open Source, Standards & Technological Debt
The Hare and the Tortoise: Open Source, Standards & Technological DebtThe Hare and the Tortoise: Open Source, Standards & Technological Debt
The Hare and the Tortoise: Open Source, Standards & Technological Debt
 
Devops stack
Devops stackDevops stack
Devops stack
 
YAML Engineering: why we need a new paradigm
YAML Engineering: why we need a new paradigmYAML Engineering: why we need a new paradigm
YAML Engineering: why we need a new paradigm
 
K9s - Kubernetes CLI To Manage Your Clusters In Style
K9s - Kubernetes CLI To Manage Your Clusters In StyleK9s - Kubernetes CLI To Manage Your Clusters In Style
K9s - Kubernetes CLI To Manage Your Clusters In Style
 
Argocd up and running
Argocd up and runningArgocd up and running
Argocd up and running
 
Automating Puppet Certificates Renewal
Automating Puppet Certificates RenewalAutomating Puppet Certificates Renewal
Automating Puppet Certificates Renewal
 
Running the Puppet Stack in Containers
Running the Puppet Stack in ContainersRunning the Puppet Stack in Containers
Running the Puppet Stack in Containers
 
Automating Puppet Certificates Renewal
Automating Puppet Certificates RenewalAutomating Puppet Certificates Renewal
Automating Puppet Certificates Renewal
 
Narcissus — mapping configs in Go
Narcissus — mapping configs in GoNarcissus — mapping configs in Go
Narcissus — mapping configs in Go
 

Recently uploaded

Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
chiefasafspells
 
+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
 

Recently uploaded (20)

%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
 
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
What Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationWhat Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the Situation
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
 
WSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - KeynoteWSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - Keynote
 
WSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaS
 
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
 
Artyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxArtyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptx
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go Platformless
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
+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...
 
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
 

FTTH Factory — an illustration of the "Everything as Code" paradigm

  • 1. FTTH Factory An illustration of the “Everything as Code” paradigm Raphaël Pinson @raphink
  • 2. www.camptocamp.com Who am I? ■ Raphaël Pinson aka Raphink ■ Infrastructure Developer & Trainer ■ Automation (Puppet, Augeas, Docker, Kubernetes, Terraform) ■ Lausanne, CH
  • 4. www.camptocamp.com Camptocamp Infrastructure Department ■ Involved in Open Source communities (Puppet, Terraform, Rancher) ■ 14 Systems Engineers ■ Manages ~800 servers ■ Partnerships SWITZERLAND GERMANY
  • 5. www.camptocamp.com Measurements inside FTTH-factory Leverages Measurements 2D & 3D data collections Identification of objects and surfaces 1 Data conflation Shift to UTM spatial corrections 2 Automated planning optimized planning based on detected surfaces 3 Simplified purchase processes All inclusive prices for fixed offers 4 Digital plan corrections APP based mapping of trenches 5
  • 6. www.camptocamp.com Why Automate? ■ Repetitive task error prone⇒ ■ Dev / Int / prod ■ Define once, reuse many times
  • 7. www.camptocamp.com 3 Ways of Managing Cloud Resources ■ Web Interface ○ easy, not flexible, not reproducible ■ CLI ○ flexible, not easily reproducible ■ As Code ○ flexible, reproducible, + collaboration 7
  • 9. www.camptocamp.com PROVISIONING AS CODE Cloud Infrastructure Automation ■ TOOLS: OPENSTACK & TERRAFORM ○ Provision networks, security groups, etc. from code ○ Provision VMs and orchestrate their deployment from code ○ Support for multiple cloud providers and third party tools ■ BENEFITS ○ Full control of all cloud resources ○ Reproductibility of environments ○ Easy decommissioning
  • 10. www.camptocamp.com PROVISIONING AS CODE Case Study: Provision a Development Environment ■ OBJECTIVE Deploy Development and Production Environments in a fully automated way ■ IMPLEMENTATION Terraform is used to: ○ provision networks and nodes, integrate with Puppet/Ansible ■ BENEFITS ○ Fully automated, extremely fast deployment of deployments ○ All resources managed in one location
  • 11. www.camptocamp.com CONFIGURATION MANAGEMENT Maintaining Machine State ■ TOOLS: TWO APPROACHES ○ Pull approach (Cfgmgmt): Cfengine, Puppet, Chef ○ Push approach (deploy): Ansible, Salt ■ BENEFITS ○ No manual management of nodes ○ Reproductibility of nodes ○ Inventory ○ More confidence in environments and deployments
  • 12. www.camptocamp.com CONFIGURATION MANAGEMENT Case Study: Manage Server Fleet with Puppet ■ OBJECTIVE Manage configuration for ~50 servers in two environments ■ IMPLEMENTATION ○ Puppet Open Source (Camptocamp’s Dockerized Stack) ○ DBs managed with Puppet ○ Identity Management ■ BENEFITS ○ Very fast setup of new nodes ○ Dynamic, up-to-date inventory ○ Nodes are kept up-to-date with their target configuration
  • 13. www.camptocamp.com DEPLOYMENT AS CODE Deploying Complex Software ■ TOOLS: ANSIBLE, BOLT ○ Orchestration of multi-node deployments with dependencies ■ BENEFITS ○ Reproductibility of deployments ○ More confidence in deployments
  • 14. www.camptocamp.com DEPLOYMENT AS CODE Case Study: OpenShift Deployment ■ OBJECTIVE Deploy an OpenShift cluster, with various roles and inter-nodes dependencies. ■ IMPLEMENTATION Red Hat provides Ansible playbooks to deploy an OpenShift cluster. ■ BENEFITS ○ Fully automated OpenShift deployment ○ Much easier/faster to deploy new nodes in the cluster
  • 15. www.camptocamp.com CONTAINER ORCHESTRATION Containerized Application Deployment as Code ■ TOOLS: OPENSHIFT & HELM ○ Gather all Kubernetes objects in one package ■ BENEFITS ○ Distribute applications as catalog entries ○ Fully customizable packages
  • 16. www.camptocamp.com CONTAINER ORCHESTRATION Case Study: Puppet Stack Deployment with Helm ■ OBJECTIVE Deploy GIS applications (geOrchestra) on OpenShift ■ IMPLEMENTATION ○ Helm charts for each component ○ Helmfile for full stacks ■ BENEFITS ○ Easily deploy a complex application on OpenShift ○ Parameters and secrets passed to templates
  • 17. www.camptocamp.com CONTINUOUS INTEGRATION CI/CD Pipelines as Code ■ TOOLS: JENKINS ○ Continuous Integration platform ○ Integrates with multiple Version Control Systems ○ Allows to build pipelines ○ CI/CD as Code with Jenkinsfile ○ Extensible with Groovy code ■ BENEFITS ○ Flexible way to program CI/CD tasks ○ Portable to other Jenkins instances ○ Pipeline approach
  • 18. www.camptocamp.com CONTINUOUS INTEGRATION Case Study: CI/CD with OpenShift ■ OBJECTIVE ○ Automatically deploy a GIS multi-tiered application from code with OpenShift ■ IMPLEMENTATION ○ Use ImageStreams with OpenShift builds (using Jenkins) and Jenkinsfile, along with triggers for deployment. ■ BENEFITS ○ Fully automated pipeline workflow for developers, with automated checks and triggers.
  • 19. www.camptocamp.com OBSERVABILITY AS CODE Logs, Metrics & Monitoring ■ TOOLS: ELK, PROMETHEUS, GRAFANA ○ Gather logs & metrics ○ Provide code for data processing and dashboards ■ BENEFITS ○ Prometheus time series provide a flexible query language ○ JSON dashboards provide portability
  • 20. www.camptocamp.com OBSERVABILITY AS CODE Case Study: Monitor Puppet resources and performance ■ OBJECTIVE Gather performance metrics for the Puppet stack, both on the server and agents. ■ IMPLEMENTATION ○ The Puppet prometheus_reporter module provides a report plugin to collect agent data ○ JMX for internal Puppet Enterprise server metrics, gathered in Prometheus ■ BENEFITS Easily deployed dashboards with tuned metrics and monitoring.
  • 21. www.camptocamp.com BACKUPS AS CODE Automate Backups of Container Volumes ■ TOOLS: KUBERNETES AND BIVAC ○ Automatic backups of PVCs ○ Tune backup parameters with Labels ■ BENEFITS ○ Allow users of container platforms ○ to choose with Data Volumes to backup ○ Allow users to tune how backups are performed
  • 22. www.camptocamp.com BACKUPS AS CODE Case Study: Backup Data Volumes in OpenShift ■ OBJECTIVE ○ Provide an API for developers to backup their Data Volumes. ■ IMPLEMENTATION ○ The Bivac stack is deployed on OpenShift projects to detect and backup Physical Volume Claims automatically. ■ BENEFITS ○ Backup container data where it is stored and let users tune how to perform the backup.
  • 23. www.camptocamp.com CONCLUSION Everything as Code ■ TOOLS ○ Many open-source tools to automate: ■ Systems Administration ■ Software Testing and Deployment ■ BENEFITS ○ Increased flexibility ○ Increased collaboration between teams ○ DevOps everything

Editor's Notes

  1. <number>
  2. <number>
  3. <number>
  4. * provisioning as code / case study: - on déploie 2 envs: dev + prod pour FTTH - terraform + ansible pour conf/paquets base, licences, etc. - network components (DNS, sg, etc.), nodes & integration Puppet & Ansible
  5. * cfgmgmt case study: - ~10 machines par env, soit ~20 - DBs gérées par Puppet - identity management -> cf Mickaël - stack Puppet docker (docker-compose) c2c
  6. * deployment as code: ansible + puppet pour clés SSH etc.
  7. * container orchestration case study: - pas puppet - applications dans openshift: monitoring, logging, backups - stack CI/CD déployées avec Helm - au travers CI/CD: applications dev à prod avec Helm - Georchestra déployé avec Helm - https://github.com/roboll/helmfile couche au-dessus de helm pour définir un bundle de charts helm par env https://docs.cloudposse.com/tools/helmfile/
  8. * CI/CD case study: - Gitlab joue un rôle important - Intégration Gitlab/Jenkins/OpenShift - utilisé avec merge requests dans GitLab - client veut utiliser Gitlab - Jenkins: meilleure intégration dans OpenShift, donc configuré complètement avec Helm - CD tout géré au travers de git, y compris déploiement des releases dans les envs (merge requests)
  9. <number>