SlideShare ist ein Scribd-Unternehmen logo
1 von 12
Scalability and Consistency
The Nitty Gritty
Overview
• The only sane way to scale is to ensure consistency and
automation
• Build things in a way in which you don't care about
individual servers (don't be afraid to rekick a server)
• You should never need to login to an individual box once
it's in production 
How to Accomplish This
• Use an automated provisioning tool (such as
kickstart/cobbler)
•  Use configuration management (such as puppet)
•  Test, test, test
Users and Authentication
• Logging in as root directly is bad
• Keys used for automated processes should be separate
from user keys
• Access to a service on a box and SSH access to the box
should not be linked
Packaging
• Use a local copy of distribution repositories
• Do not use external repositories directly
• Use RPMs (do not use PECL, PEAR, CPAN, gem,
extracting tarballs, compiling from source, etc.)
External repositories are moving targets. Depending on
when a server is provisioned, it could end up with different
package versions.
Non-RPM packaging methods don't have upgrade, uninstall,
and versioning, which is why they should be avoided.
Building RPMs
• It's perfectly fine to build a custom RPM when one is not
readily available
• Don't rebuild just to change file locations (such as
putting stuff under /box)
• Build in a "sterile" environment
• Make sure RPM spec files list all of their direct build and
runtime dependencies
General Puppet Tips
• Write modules/classes in a way that they can be reused
• Be specific...don't assume something will happen a certain
way if you don't define it
• Follow the Puppet Style Guide
• Don't hard-code anything (hostnames in particular)
• Use dependencies
http://docs.puppetlabs.com/guides/style_guide.html
Puppet Tips - Users
Use this:
group { "bob":
  ensure => present,
  gid      => 503,
}
user { "bob":
  ensure => present,
  gid       => 'bob',
  require => Group["bob"],
}
Instead of:
user { "bob":
  ensure => present,
}
• Manage the group and the user
• Specify the UID and GID to ensure consistency across
servers
Puppet Tips - Packages
Use this:
package { "php-pecl-memcache":
  ensure => installed,
}
Instead of:
exec { "install_pecl_memcache":
  command => 'pecl install memcache',
}
• Use a single package manager (RPM) as much as possible
• Specify versions when it makes sense
Puppet Tips - Dependencies
Use this:
package { "nslcd":
  ensure => installed,
}
service { "nslcd":
  ensure => running,
  require => Package["nslcd"],
  subscribe => Package["nslcd"],
}
Instead of:
package { "nslcd":
  ensure => installed,
}
service { "nslcd":
  ensure => running,
}
• Dependencies ensure that puppet performs operations in
a particular order
Puppet Tips - Testing
• Test your changes on a non-production server
• For larger changes in puppet, it's not completely tested
until you can build a server from the ground up and
puppet sets everything up properly without manual
intervention
• If you get errors on the first puppet run and none on the
second, add more dependencies
Puppet Tips - Roles
• Instead of defining everything on a per-node basis,
define roles and put servers into them. It's better to
define 500 roles and have servers fit neatly into them
than to have 1000 node definitions, each of them
differing by only a little bit
• All roles should be defined in the "nodetype" module and
inherit from nodetype::generic
• This will allow us to eventually use an ENC (external node
classifier)

Weitere ähnliche Inhalte

Was ist angesagt?

Silverstripe at scale - design & architecture for silverstripe applications
Silverstripe at scale - design & architecture for silverstripe applicationsSilverstripe at scale - design & architecture for silverstripe applications
Silverstripe at scale - design & architecture for silverstripe applicationsBrettTasker
 
DNN & The CloudOS: Windows Azure on your terms
DNN & The CloudOS: Windows Azure on your termsDNN & The CloudOS: Windows Azure on your terms
DNN & The CloudOS: Windows Azure on your termsJess Coburn
 
Highly available Drupal on a Raspberry Pi cluster
Highly available Drupal on a Raspberry Pi clusterHighly available Drupal on a Raspberry Pi cluster
Highly available Drupal on a Raspberry Pi clusterJeff Geerling
 
Scaling WordPress on DigitalOcean
Scaling WordPress on DigitalOceanScaling WordPress on DigitalOcean
Scaling WordPress on DigitalOceanServerGuy
 
Optimizing Your WordPress Site
Optimizing Your WordPress SiteOptimizing Your WordPress Site
Optimizing Your WordPress Siteozzyr
 
Top4top Showcase
Top4top ShowcaseTop4top Showcase
Top4top Showcaseay4
 
Advanced front-end automation with npm scripts
Advanced front-end automation with npm scriptsAdvanced front-end automation with npm scripts
Advanced front-end automation with npm scriptsk88hudson
 
Introdcution to Adobe CQ
Introdcution to Adobe CQIntrodcution to Adobe CQ
Introdcution to Adobe CQRest West
 
Introducing grunt, npm and sass
Introducing grunt, npm and sassIntroducing grunt, npm and sass
Introducing grunt, npm and sasspriyanka1452
 
Drupal Performance and Scaling
Drupal Performance and ScalingDrupal Performance and Scaling
Drupal Performance and ScalingGerald Villorente
 
Drupal High Availability High Performance 2012
Drupal High Availability High Performance 2012Drupal High Availability High Performance 2012
Drupal High Availability High Performance 2012Amazee Labs
 
Something about node basics
Something about node basicsSomething about node basics
Something about node basicsPhilipp Fehre
 
Okuyama Summary
Okuyama SummaryOkuyama Summary
Okuyama Summaryskoichi
 

Was ist angesagt? (18)

Silverstripe at scale - design & architecture for silverstripe applications
Silverstripe at scale - design & architecture for silverstripe applicationsSilverstripe at scale - design & architecture for silverstripe applications
Silverstripe at scale - design & architecture for silverstripe applications
 
DNN & The CloudOS: Windows Azure on your terms
DNN & The CloudOS: Windows Azure on your termsDNN & The CloudOS: Windows Azure on your terms
DNN & The CloudOS: Windows Azure on your terms
 
Highly available Drupal on a Raspberry Pi cluster
Highly available Drupal on a Raspberry Pi clusterHighly available Drupal on a Raspberry Pi cluster
Highly available Drupal on a Raspberry Pi cluster
 
Scaling WordPress on DigitalOcean
Scaling WordPress on DigitalOceanScaling WordPress on DigitalOcean
Scaling WordPress on DigitalOcean
 
Optimizing Your WordPress Site
Optimizing Your WordPress SiteOptimizing Your WordPress Site
Optimizing Your WordPress Site
 
Sergejus Barinovas
Sergejus BarinovasSergejus Barinovas
Sergejus Barinovas
 
Top4top Showcase
Top4top ShowcaseTop4top Showcase
Top4top Showcase
 
Advanced front-end automation with npm scripts
Advanced front-end automation with npm scriptsAdvanced front-end automation with npm scripts
Advanced front-end automation with npm scripts
 
Frontend Build Tools - CC FE & UX
Frontend Build Tools - CC FE & UXFrontend Build Tools - CC FE & UX
Frontend Build Tools - CC FE & UX
 
Introdcution to Adobe CQ
Introdcution to Adobe CQIntrodcution to Adobe CQ
Introdcution to Adobe CQ
 
Postgres Open
Postgres OpenPostgres Open
Postgres Open
 
Introducing grunt, npm and sass
Introducing grunt, npm and sassIntroducing grunt, npm and sass
Introducing grunt, npm and sass
 
Drupal Performance and Scaling
Drupal Performance and ScalingDrupal Performance and Scaling
Drupal Performance and Scaling
 
WordCamp RVA
WordCamp RVAWordCamp RVA
WordCamp RVA
 
Drupal High Availability High Performance 2012
Drupal High Availability High Performance 2012Drupal High Availability High Performance 2012
Drupal High Availability High Performance 2012
 
Something about node basics
Something about node basicsSomething about node basics
Something about node basics
 
Okuyama Summary
Okuyama SummaryOkuyama Summary
Okuyama Summary
 
An Overview on Nuxt.js
An Overview on Nuxt.jsAn Overview on Nuxt.js
An Overview on Nuxt.js
 

Andere mochten auch

El estudio Nielsen analiza a los nuevos consumidores online | Estrategia Digital
El estudio Nielsen analiza a los nuevos consumidores online | Estrategia DigitalEl estudio Nielsen analiza a los nuevos consumidores online | Estrategia Digital
El estudio Nielsen analiza a los nuevos consumidores online | Estrategia DigitalOscar García
 
Co vše "umí" otázka
Co vše "umí" otázkaCo vše "umí" otázka
Co vše "umí" otázkaSIMAR
 
Nuevas herramientas de Google | Google Q3
Nuevas herramientas de Google | Google Q3Nuevas herramientas de Google | Google Q3
Nuevas herramientas de Google | Google Q3Oscar García
 
Data a potřeby výzkumníka
Data a potřeby výzkumníkaData a potřeby výzkumníka
Data a potřeby výzkumníkaSIMAR
 
Využití a propojování informačních zdrojů
Využití a propojování informačních zdrojůVyužití a propojování informačních zdrojů
Využití a propojování informačních zdrojůSIMAR
 
Statistické informace ČSÚ
Statistické informace ČSÚStatistické informace ČSÚ
Statistické informace ČSÚSIMAR
 
Medialni data data data
Medialni data data data Medialni data data data
Medialni data data data SIMAR
 
Výzkumy veřejného mínění v mezinárodním kontextu
Výzkumy veřejného mínění v mezinárodním kontextuVýzkumy veřejného mínění v mezinárodním kontextu
Výzkumy veřejného mínění v mezinárodním kontextuSIMAR
 
Normal accidents and outpatient surgeries
Normal accidents and outpatient surgeriesNormal accidents and outpatient surgeries
Normal accidents and outpatient surgeriesJonathan Creasy
 
Nuevas herramientas de Google para Marketing
Nuevas herramientas de Google para Marketing Nuevas herramientas de Google para Marketing
Nuevas herramientas de Google para Marketing Oscar García
 
Volně prodejné studie
Volně prodejné studie Volně prodejné studie
Volně prodejné studie SIMAR
 
Co ovlivňuje výsledky výzkumů veřejného mínění a proč se výzkumy na Slovensku...
Co ovlivňuje výsledky výzkumů veřejného mínění a proč se výzkumy na Slovensku...Co ovlivňuje výsledky výzkumů veřejného mínění a proč se výzkumy na Slovensku...
Co ovlivňuje výsledky výzkumů veřejného mínění a proč se výzkumy na Slovensku...SIMAR
 
Otevřená data a sociologické zkoumání
Otevřená data a sociologické zkoumáníOtevřená data a sociologické zkoumání
Otevřená data a sociologické zkoumáníSIMAR
 
Pasport výzkumů veřejného mínění
Pasport výzkumů veřejného míněníPasport výzkumů veřejného mínění
Pasport výzkumů veřejného míněníSIMAR
 
Curso SEM / Adwords - Industrial & Ecommerce Webinar
Curso SEM / Adwords - Industrial & Ecommerce WebinarCurso SEM / Adwords - Industrial & Ecommerce Webinar
Curso SEM / Adwords - Industrial & Ecommerce WebinarOscar García
 

Andere mochten auch (16)

El estudio Nielsen analiza a los nuevos consumidores online | Estrategia Digital
El estudio Nielsen analiza a los nuevos consumidores online | Estrategia DigitalEl estudio Nielsen analiza a los nuevos consumidores online | Estrategia Digital
El estudio Nielsen analiza a los nuevos consumidores online | Estrategia Digital
 
Co vše "umí" otázka
Co vše "umí" otázkaCo vše "umí" otázka
Co vše "umí" otázka
 
Nuevas herramientas de Google | Google Q3
Nuevas herramientas de Google | Google Q3Nuevas herramientas de Google | Google Q3
Nuevas herramientas de Google | Google Q3
 
Data a potřeby výzkumníka
Data a potřeby výzkumníkaData a potřeby výzkumníka
Data a potřeby výzkumníka
 
Využití a propojování informačních zdrojů
Využití a propojování informačních zdrojůVyužití a propojování informačních zdrojů
Využití a propojování informačních zdrojů
 
Statistické informace ČSÚ
Statistické informace ČSÚStatistické informace ČSÚ
Statistické informace ČSÚ
 
Medialni data data data
Medialni data data data Medialni data data data
Medialni data data data
 
Výzkumy veřejného mínění v mezinárodním kontextu
Výzkumy veřejného mínění v mezinárodním kontextuVýzkumy veřejného mínění v mezinárodním kontextu
Výzkumy veřejného mínění v mezinárodním kontextu
 
Normal accidents and outpatient surgeries
Normal accidents and outpatient surgeriesNormal accidents and outpatient surgeries
Normal accidents and outpatient surgeries
 
Nuevas herramientas de Google para Marketing
Nuevas herramientas de Google para Marketing Nuevas herramientas de Google para Marketing
Nuevas herramientas de Google para Marketing
 
Volně prodejné studie
Volně prodejné studie Volně prodejné studie
Volně prodejné studie
 
Co ovlivňuje výsledky výzkumů veřejného mínění a proč se výzkumy na Slovensku...
Co ovlivňuje výsledky výzkumů veřejného mínění a proč se výzkumy na Slovensku...Co ovlivňuje výsledky výzkumů veřejného mínění a proč se výzkumy na Slovensku...
Co ovlivňuje výsledky výzkumů veřejného mínění a proč se výzkumy na Slovensku...
 
Otevřená data a sociologické zkoumání
Otevřená data a sociologické zkoumáníOtevřená data a sociologické zkoumání
Otevřená data a sociologické zkoumání
 
Pasport výzkumů veřejného mínění
Pasport výzkumů veřejného míněníPasport výzkumů veřejného mínění
Pasport výzkumů veřejného mínění
 
Curso SEM / Adwords - Industrial & Ecommerce Webinar
Curso SEM / Adwords - Industrial & Ecommerce WebinarCurso SEM / Adwords - Industrial & Ecommerce Webinar
Curso SEM / Adwords - Industrial & Ecommerce Webinar
 
Docker How and Why
Docker How and WhyDocker How and Why
Docker How and Why
 

Ähnlich wie Scalability and consistency

Provisioning with Puppet
Provisioning with PuppetProvisioning with Puppet
Provisioning with PuppetJoe Ray
 
Deploying software at Scale
Deploying software at ScaleDeploying software at Scale
Deploying software at ScaleKris Buytaert
 
Puppet Camp Denver 2015: Nagios Management With Puppet
Puppet Camp Denver 2015: Nagios Management With PuppetPuppet Camp Denver 2015: Nagios Management With Puppet
Puppet Camp Denver 2015: Nagios Management With PuppetPuppet
 
Fluo CICD OpenStack Summit
Fluo CICD OpenStack SummitFluo CICD OpenStack Summit
Fluo CICD OpenStack SummitMiguel Zuniga
 
The Art and Zen of Managing Nagios With Puppet
The Art and Zen of Managing Nagios With PuppetThe Art and Zen of Managing Nagios With Puppet
The Art and Zen of Managing Nagios With PuppetMike Merideth
 
DCRUG: Achieving Development-Production Parity
DCRUG: Achieving Development-Production ParityDCRUG: Achieving Development-Production Parity
DCRUG: Achieving Development-Production ParityGeoff Harcourt
 
Puppet Camp Portland: Nagios Management With Puppet (Beginner)
Puppet Camp Portland: Nagios Management With Puppet (Beginner)Puppet Camp Portland: Nagios Management With Puppet (Beginner)
Puppet Camp Portland: Nagios Management With Puppet (Beginner)Puppet
 
Nagios Conference 2014 - Mike Merideth - The Art and Zen of Managing Nagios w...
Nagios Conference 2014 - Mike Merideth - The Art and Zen of Managing Nagios w...Nagios Conference 2014 - Mike Merideth - The Art and Zen of Managing Nagios w...
Nagios Conference 2014 - Mike Merideth - The Art and Zen of Managing Nagios w...Nagios
 
Puppet Camp LA 2015: Package Managers and Puppet (Beginner)
Puppet Camp LA 2015: Package Managers and Puppet (Beginner)Puppet Camp LA 2015: Package Managers and Puppet (Beginner)
Puppet Camp LA 2015: Package Managers and Puppet (Beginner)Puppet
 
Puppet Camp LA 2/19/2015
Puppet Camp LA 2/19/2015Puppet Camp LA 2/19/2015
Puppet Camp LA 2/19/2015ice799
 
Automated Deployment and Configuration Engines. Ansible
Automated Deployment and Configuration Engines. AnsibleAutomated Deployment and Configuration Engines. Ansible
Automated Deployment and Configuration Engines. AnsibleAlberto Molina Coballes
 
Puppet Development Workflow
Puppet Development WorkflowPuppet Development Workflow
Puppet Development WorkflowJeffery Smith
 
Optimizing VM images for OpenStack with KVM/QEMU
Optimizing VM images for OpenStack with KVM/QEMUOptimizing VM images for OpenStack with KVM/QEMU
Optimizing VM images for OpenStack with KVM/QEMUOpenStack Foundation
 
Immutable infrastructure isn’t the answer
Immutable infrastructure isn’t the answerImmutable infrastructure isn’t the answer
Immutable infrastructure isn’t the answerSam Bashton
 
Getting to Walk with DevOps
Getting to Walk with DevOpsGetting to Walk with DevOps
Getting to Walk with DevOpsEklove Mohan
 
Training Slides: 103 - Basics - Simple Tungsten Clustering Installation
Training Slides: 103 - Basics - Simple Tungsten Clustering InstallationTraining Slides: 103 - Basics - Simple Tungsten Clustering Installation
Training Slides: 103 - Basics - Simple Tungsten Clustering InstallationContinuent
 
Systems administration for coders presentation
Systems administration for coders presentationSystems administration for coders presentation
Systems administration for coders presentationMatt Willsher
 
Package manages and Puppet - PuppetConf 2015
Package manages and Puppet - PuppetConf 2015Package manages and Puppet - PuppetConf 2015
Package manages and Puppet - PuppetConf 2015ice799
 
The Art & Zen of Managing Nagios with Puppet
The Art & Zen of Managing Nagios with PuppetThe Art & Zen of Managing Nagios with Puppet
The Art & Zen of Managing Nagios with PuppetVictorOps
 
From SaltStack to Puppet and beyond...
From SaltStack to Puppet and beyond...From SaltStack to Puppet and beyond...
From SaltStack to Puppet and beyond...Yury Bushmelev
 

Ähnlich wie Scalability and consistency (20)

Provisioning with Puppet
Provisioning with PuppetProvisioning with Puppet
Provisioning with Puppet
 
Deploying software at Scale
Deploying software at ScaleDeploying software at Scale
Deploying software at Scale
 
Puppet Camp Denver 2015: Nagios Management With Puppet
Puppet Camp Denver 2015: Nagios Management With PuppetPuppet Camp Denver 2015: Nagios Management With Puppet
Puppet Camp Denver 2015: Nagios Management With Puppet
 
Fluo CICD OpenStack Summit
Fluo CICD OpenStack SummitFluo CICD OpenStack Summit
Fluo CICD OpenStack Summit
 
The Art and Zen of Managing Nagios With Puppet
The Art and Zen of Managing Nagios With PuppetThe Art and Zen of Managing Nagios With Puppet
The Art and Zen of Managing Nagios With Puppet
 
DCRUG: Achieving Development-Production Parity
DCRUG: Achieving Development-Production ParityDCRUG: Achieving Development-Production Parity
DCRUG: Achieving Development-Production Parity
 
Puppet Camp Portland: Nagios Management With Puppet (Beginner)
Puppet Camp Portland: Nagios Management With Puppet (Beginner)Puppet Camp Portland: Nagios Management With Puppet (Beginner)
Puppet Camp Portland: Nagios Management With Puppet (Beginner)
 
Nagios Conference 2014 - Mike Merideth - The Art and Zen of Managing Nagios w...
Nagios Conference 2014 - Mike Merideth - The Art and Zen of Managing Nagios w...Nagios Conference 2014 - Mike Merideth - The Art and Zen of Managing Nagios w...
Nagios Conference 2014 - Mike Merideth - The Art and Zen of Managing Nagios w...
 
Puppet Camp LA 2015: Package Managers and Puppet (Beginner)
Puppet Camp LA 2015: Package Managers and Puppet (Beginner)Puppet Camp LA 2015: Package Managers and Puppet (Beginner)
Puppet Camp LA 2015: Package Managers and Puppet (Beginner)
 
Puppet Camp LA 2/19/2015
Puppet Camp LA 2/19/2015Puppet Camp LA 2/19/2015
Puppet Camp LA 2/19/2015
 
Automated Deployment and Configuration Engines. Ansible
Automated Deployment and Configuration Engines. AnsibleAutomated Deployment and Configuration Engines. Ansible
Automated Deployment and Configuration Engines. Ansible
 
Puppet Development Workflow
Puppet Development WorkflowPuppet Development Workflow
Puppet Development Workflow
 
Optimizing VM images for OpenStack with KVM/QEMU
Optimizing VM images for OpenStack with KVM/QEMUOptimizing VM images for OpenStack with KVM/QEMU
Optimizing VM images for OpenStack with KVM/QEMU
 
Immutable infrastructure isn’t the answer
Immutable infrastructure isn’t the answerImmutable infrastructure isn’t the answer
Immutable infrastructure isn’t the answer
 
Getting to Walk with DevOps
Getting to Walk with DevOpsGetting to Walk with DevOps
Getting to Walk with DevOps
 
Training Slides: 103 - Basics - Simple Tungsten Clustering Installation
Training Slides: 103 - Basics - Simple Tungsten Clustering InstallationTraining Slides: 103 - Basics - Simple Tungsten Clustering Installation
Training Slides: 103 - Basics - Simple Tungsten Clustering Installation
 
Systems administration for coders presentation
Systems administration for coders presentationSystems administration for coders presentation
Systems administration for coders presentation
 
Package manages and Puppet - PuppetConf 2015
Package manages and Puppet - PuppetConf 2015Package manages and Puppet - PuppetConf 2015
Package manages and Puppet - PuppetConf 2015
 
The Art & Zen of Managing Nagios with Puppet
The Art & Zen of Managing Nagios with PuppetThe Art & Zen of Managing Nagios with Puppet
The Art & Zen of Managing Nagios with Puppet
 
From SaltStack to Puppet and beyond...
From SaltStack to Puppet and beyond...From SaltStack to Puppet and beyond...
From SaltStack to Puppet and beyond...
 

Kürzlich hochgeladen

SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
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
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
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
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 
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
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesZilliz
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 

Kürzlich hochgeladen (20)

SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
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
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
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
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 
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)
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector Databases
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 

Scalability and consistency

  • 2. Overview • The only sane way to scale is to ensure consistency and automation • Build things in a way in which you don't care about individual servers (don't be afraid to rekick a server) • You should never need to login to an individual box once it's in production 
  • 3. How to Accomplish This • Use an automated provisioning tool (such as kickstart/cobbler) •  Use configuration management (such as puppet) •  Test, test, test
  • 4. Users and Authentication • Logging in as root directly is bad • Keys used for automated processes should be separate from user keys • Access to a service on a box and SSH access to the box should not be linked
  • 5. Packaging • Use a local copy of distribution repositories • Do not use external repositories directly • Use RPMs (do not use PECL, PEAR, CPAN, gem, extracting tarballs, compiling from source, etc.) External repositories are moving targets. Depending on when a server is provisioned, it could end up with different package versions. Non-RPM packaging methods don't have upgrade, uninstall, and versioning, which is why they should be avoided.
  • 6. Building RPMs • It's perfectly fine to build a custom RPM when one is not readily available • Don't rebuild just to change file locations (such as putting stuff under /box) • Build in a "sterile" environment • Make sure RPM spec files list all of their direct build and runtime dependencies
  • 7. General Puppet Tips • Write modules/classes in a way that they can be reused • Be specific...don't assume something will happen a certain way if you don't define it • Follow the Puppet Style Guide • Don't hard-code anything (hostnames in particular) • Use dependencies http://docs.puppetlabs.com/guides/style_guide.html
  • 8. Puppet Tips - Users Use this: group { "bob":   ensure => present,   gid      => 503, } user { "bob":   ensure => present,   gid       => 'bob',   require => Group["bob"], } Instead of: user { "bob":   ensure => present, } • Manage the group and the user • Specify the UID and GID to ensure consistency across servers
  • 9. Puppet Tips - Packages Use this: package { "php-pecl-memcache":   ensure => installed, } Instead of: exec { "install_pecl_memcache":   command => 'pecl install memcache', } • Use a single package manager (RPM) as much as possible • Specify versions when it makes sense
  • 10. Puppet Tips - Dependencies Use this: package { "nslcd":   ensure => installed, } service { "nslcd":   ensure => running,   require => Package["nslcd"],   subscribe => Package["nslcd"], } Instead of: package { "nslcd":   ensure => installed, } service { "nslcd":   ensure => running, } • Dependencies ensure that puppet performs operations in a particular order
  • 11. Puppet Tips - Testing • Test your changes on a non-production server • For larger changes in puppet, it's not completely tested until you can build a server from the ground up and puppet sets everything up properly without manual intervention • If you get errors on the first puppet run and none on the second, add more dependencies
  • 12. Puppet Tips - Roles • Instead of defining everything on a per-node basis, define roles and put servers into them. It's better to define 500 roles and have servers fit neatly into them than to have 1000 node definitions, each of them differing by only a little bit • All roles should be defined in the "nodetype" module and inherit from nodetype::generic • This will allow us to eventually use an ENC (external node classifier)