SlideShare a Scribd company logo
Maximum Uptime
Cluster Orchestration
with Ansible
Ryan Ross, Senior Site Reliability Engineer
Ryan Ross
■ Senior Site Reliability Engineer at dbt Labs
■ Senior DevOps Engineer at Martin DSP/Pubmatic
■ DevOps Engineer at ConstructConnect
■ Senior Operations Engineer at Alveo Health
Your photo
goes here,
smile :)
Talk Objective:
Provide actionable tips and
patterns to build confidence
in orchestrating ScyllaDB in
Production with Ansible.
■ ScyllaDB Use Cases at a DSP
■ Define “Cluster Uptime”
■ Tips for Using Ansible with ScyllaDB
■ Demo
Presentation Agenda
ScyllaDB Use Cases
What is a Demand-Side Platform (DSP)?
A Demand-Side Platform is a system that allows buyers of
digital advertising inventory to manage multiple ad exchange
and data exchange accounts through one interface - Wikipedia
What is a Demand-Side Platform (DSP)?
A Demand-Side Platform is a system that allows buyers of
digital advertising inventory to manage multiple ad exchange
and data exchange accounts through one interface - Wikipedia
What is a Demand-Side Platform (DSP)?
A Demand-Side Platform is a system that allows buyers of
digital advertising inventory to manage multiple ad exchange
and data exchange accounts through one interface - Wikipedia
What is a Demand-Side Platform (DSP)?
A Demand-Side Platform is a system that allows buyers of
digital advertising inventory to manage multiple ad exchange
and data exchange accounts through one interface - Wikipedia
What is a Demand-Side Platform (DSP)?
A Demand-Side Platform is a system that allows buyers of
digital advertising inventory to manage multiple ad exchange
and data exchange accounts through one interface - Wikipedia
The DSP connected advertisers and agencies with audiences to
allow real-time bidding for and displaying of online-advertising.
Use Cases for ScyllaDB at a DSP
Use Cases for ScyllaDB at a DSP
Billions of requests per day
Use Cases for ScyllaDB at a DSP
Billions of requests per day
Equal read and write access patterns
Use Cases for ScyllaDB at a DSP
Billions of requests per day
Equal read and write access patterns
24 x 7 x 365 Uptime
Use Cases for ScyllaDB at a DSP
Billions of requests per day
Equal read and write access patterns
24 x 7 x 365 Uptime
Millisecond response times
Use Cases for ScyllaDB at a DSP
Billions of requests per day
Equal read and write access patterns
24 x 7 x 365 Uptime
Millisecond response times
Huge datasets
Use Cases for ScyllaDB at a DSP
Billions of requests per day
Equal read and write access patterns
24 x 7 x 365 Uptime
Millisecond response times
Huge datasets
Defining “Uptime”
Defining “Uptime”
Provide a cluster that is available for dependent applications.
Whole Cluster Uptime
Whole Cluster Uptime
Whole Cluster Uptime
Whole Cluster Uptime
Whole Cluster Uptime
Whole Cluster Uptime
Tips for Using Ansible
to Orchestrate
ScyllaDB with Whole
Cluster Maximum Uptime
* Use at your own risk. Always test in a non-customer facing environment first!
Inventory to Cluster Architecture
Structuring your Inventory will go a long
way in helping manage multiple clusters
and data centers. I saw success with:
Inventory to Cluster Architecture
Structuring your Inventory will go a long
way in helping manage multiple clusters
and data centers. I saw success with:
■ Inventory -> Cluster
Inventory to Cluster Architecture
Structuring your Inventory will go a long
way in helping manage multiple clusters
and data centers. I saw success with:
■ Inventory -> Cluster
■ Inventory Group -> Data Center
Inventory to Cluster Architecture
Ansible can have multiple Inventories
Dynamic Inventory Scripts
An underused superpower of your Cloud Provider is using them as your
asset management database. Ansible can tie into provider’s API to get
metadata information on instances with Dynamic Inventory Scripts.
Dynamic Inventory Scripts
Dynamic Inventory Scripts
Dynamic Inventory Scripts
Dynamic Inventory Scripts
Use Lineinfile Module Instead of Template
The ansible.builtin.lineinfile module should be
used instead of others such as copy or template.
Use Lineinfile Module Instead of Template
The ansible.builtin.lineinfile module should be
used instead of others such as copy or template.
■ Copy and Template assume Ansible has a valid
copy of the file
Use Lineinfile Module Instead of Template
The ansible.builtin.lineinfile module should be
used instead of others such as copy or template.
■ Copy and Template assume Ansible has a valid
copy of the file
Use Lineinfile Module Instead of Template
The ansible.builtin.lineinfile module should be
used instead of others such as copy or template.
■ Copy and Template assume Ansible has a valid
copy of the file
Use Lineinfile Module Instead of Template
The ansible.builtin.lineinfile module should be
used instead of others such as copy or template.
■ Copy and Template assume Ansible has a valid
copy of the file
■ This becomes problematic with files that are
changed by the project, such as config files
installed with the distribution’s installer
Use Lineinfile Module Instead of Template
The ansible.builtin.lineinfile module should be used instead
of others such as copy or template.
■ Copy and Template assume Ansible has a valid copy of
the file
■ This becomes problematic with files that are changed by
the project, such as config files installed with the
distribution’s installer
■ Use Lineinfile to ensure the most recent and valid file
settings are preserved and only change what’s needed.
Lineinfile Continued
Preserve project defaults and change only what
you’re sure of.
Lineinfile Continued
Preserve project defaults and change only what
you’re sure of.
Run Playbooks Serially When Needed
Run Playbooks Serially When Needed
By default, Ansible will try to run each
Task one at a time on all hosts in the
Inventory before moving onto the next
Task, like so:
Run Playbooks Serially When Needed
By default, Ansible will try to run each
Task one at a time on all hosts in the
Inventory before moving onto the next
Task, like so:
Run Playbooks Serially When Needed
Use the Serial argument at the Play to
run all Tasks on one host before
moving onto the next host in an
Inventory
Run Playbooks Serially When Needed
Use the Serial argument at the Play to
run all Tasks on one host before
moving onto the next host in an
Inventory
Run Playbooks Serially When Needed
Use the Serial argument at the Play to
run all Tasks on one host before
moving onto the next host in an
Inventory
Check Cluster Membership Before Making Changes
Cluster changes require all nodes to be Up and Normal (UN). I wrote a Role that was
prerequisite for all Plays that made cluster.
Check Cluster Membership Before Making Changes
Cluster changes require all nodes to be Up and Normal (UN). I wrote a Role that was
prerequisite for all Plays that made cluster.
Use Automation to Run Ansible
Ansible is an open source cli tool, but it should be
wrapped in another automation tool for Production
use. This has many benefits:
■ Run Playbooks on a schedule
■ Auditable output and outcomes
■ Improved security
■ Send alerts to teams
Use Automation to Run Ansible
There are lots of options when it comes to writing
automation around Ansible:
■ Your current C.I. tool
■ Jenkins
■ Github Actions
■ Ansible Automation Platform from RedHat (paid)
■ AWX (upstream F.O.S.S./Community version of Ansible
Automation Platform)
Ansible Ecosystem
Ansible has a thriving ecosystem of official and unofficial Collections to use.
Ansible Ecosystem
Ansible has a thriving ecosystem of official and unofficial Collections to use.
■ Collection Index
■ Galaxy
Ansible Ecosystem
Ansible has a thriving ecosystem of official and unofficial Collections to use.
Ansible Ecosystem
Ansible has a thriving ecosystem of official and unofficial Collections to use. To show
a few:
Demo Time
* Use at your own risk. Always test in a non-customer facing environment first!
Thank You
Stay in Touch
Ryan Ross
nazufel@protonmail.com
@nazufel
www.linkedin.com/in/rossryan1/
github.com/nazufel/scylla-summit-2023

More Related Content

PPTX
Matt Franklin - Apache Software (Geekfest)
PDF
DevOps demystified
PPTX
Learn How to Run Python on Redshift
PDF
MySQL InnoDB Cluster - A complete High Availability solution for MySQL
PDF
Immutable Infrastructure: Rise of the Machine Images
PPTX
MongoDB Ops Manager and Kubernetes - James Broadhead
PDF
Ransack, an Application Built on Ansible's API for Rackspace -- AnsibleFest N...
PDF
Headaches and Breakthroughs in Building Continuous Applications
Matt Franklin - Apache Software (Geekfest)
DevOps demystified
Learn How to Run Python on Redshift
MySQL InnoDB Cluster - A complete High Availability solution for MySQL
Immutable Infrastructure: Rise of the Machine Images
MongoDB Ops Manager and Kubernetes - James Broadhead
Ransack, an Application Built on Ansible's API for Rackspace -- AnsibleFest N...
Headaches and Breakthroughs in Building Continuous Applications

Similar to Maximum Uptime Cluster Orchestration with Ansible (20)

PPTX
ServerTemplate Deep Dive
PDF
SD Times - Docker v2
PPTX
Spark + AI Summit 2019: Headaches and Breakthroughs in Building Continuous Ap...
PDF
MySQL InnoDB Cluster - Meetup Oracle MySQL / AFUP Paris
PDF
Ansible.pdf
PDF
Use Case Patterns for LLM Applications (1).pdf
PPTX
December 2013 HUG: InfiniDB for Hadoop
PPTX
Building A Distributed Build System at Google Scale (StrangeLoop 2016)
PDF
Using Databases and Containers From Development to Deployment
PDF
ansible_rhel.pdf
PDF
MySQL 5.7 InnoDB Cluster (Jan 2018)
PDF
AI & Machine Learning Pipelines with Knative
PDF
Kubo (Cloud Foundry Container Platform): Your Gateway Drug to Cloud-native
PDF
Kubo (Cloud Foundry Container Platform): Your Gateway Drug to Cloud-native
PDF
찾아가는 AWS 세미나(구로,가산,판교) - AWS 기반 빅데이터 활용 방법 (김일호 솔루션즈 아키텍트)
PDF
API310 - How to refactor a monolith to serverless in 8 steps
PDF
Ansible - Hands on Training
PPTX
Apache NiFi: A Drag and Drop Approach
PDF
Ansible Tutorial.pdf
PPTX
Adobe Ask the AEM Community Expert Session Oct 2016
ServerTemplate Deep Dive
SD Times - Docker v2
Spark + AI Summit 2019: Headaches and Breakthroughs in Building Continuous Ap...
MySQL InnoDB Cluster - Meetup Oracle MySQL / AFUP Paris
Ansible.pdf
Use Case Patterns for LLM Applications (1).pdf
December 2013 HUG: InfiniDB for Hadoop
Building A Distributed Build System at Google Scale (StrangeLoop 2016)
Using Databases and Containers From Development to Deployment
ansible_rhel.pdf
MySQL 5.7 InnoDB Cluster (Jan 2018)
AI & Machine Learning Pipelines with Knative
Kubo (Cloud Foundry Container Platform): Your Gateway Drug to Cloud-native
Kubo (Cloud Foundry Container Platform): Your Gateway Drug to Cloud-native
찾아가는 AWS 세미나(구로,가산,판교) - AWS 기반 빅데이터 활용 방법 (김일호 솔루션즈 아키텍트)
API310 - How to refactor a monolith to serverless in 8 steps
Ansible - Hands on Training
Apache NiFi: A Drag and Drop Approach
Ansible Tutorial.pdf
Adobe Ask the AEM Community Expert Session Oct 2016
Ad

More from ScyllaDB (20)

PDF
Understanding The True Cost of DynamoDB Webinar
PDF
Database Benchmarking for Performance Masterclass: Session 2 - Data Modeling ...
PDF
Database Benchmarking for Performance Masterclass: Session 1 - Benchmarking F...
PDF
New Ways to Reduce Database Costs with ScyllaDB
PDF
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
PDF
Powering a Billion Dreams: Scaling Meesho’s E-commerce Revolution with Scylla...
PDF
Leading a High-Stakes Database Migration
PDF
Achieving Extreme Scale with ScyllaDB: Tips & Tradeoffs
PDF
Securely Serving Millions of Boot Artifacts a Day by João Pedro Lima & Matt ...
PDF
How Agoda Scaled 50x Throughput with ScyllaDB by Worakarn Isaratham
PDF
How Yieldmo Cut Database Costs and Cloud Dependencies Fast by Todd Coleman
PDF
ScyllaDB: 10 Years and Beyond by Dor Laor
PDF
Reduce Your Cloud Spend with ScyllaDB by Tzach Livyatan
PDF
Migrating 50TB Data From a Home-Grown Database to ScyllaDB, Fast by Terence Liu
PDF
Vector Search with ScyllaDB by Szymon Wasik
PDF
Workload Prioritization: How to Balance Multiple Workloads in a Cluster by Fe...
PDF
Two Leading Approaches to Data Virtualization, and Which Scales Better? by Da...
PDF
Scaling a Beast: Lessons from 400x Growth in a High-Stakes Financial System b...
PDF
Object Storage in ScyllaDB by Ran Regev, ScyllaDB
PDF
Lessons Learned from Building a Serverless Notifications System by Srushith R...
Understanding The True Cost of DynamoDB Webinar
Database Benchmarking for Performance Masterclass: Session 2 - Data Modeling ...
Database Benchmarking for Performance Masterclass: Session 1 - Benchmarking F...
New Ways to Reduce Database Costs with ScyllaDB
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Powering a Billion Dreams: Scaling Meesho’s E-commerce Revolution with Scylla...
Leading a High-Stakes Database Migration
Achieving Extreme Scale with ScyllaDB: Tips & Tradeoffs
Securely Serving Millions of Boot Artifacts a Day by João Pedro Lima & Matt ...
How Agoda Scaled 50x Throughput with ScyllaDB by Worakarn Isaratham
How Yieldmo Cut Database Costs and Cloud Dependencies Fast by Todd Coleman
ScyllaDB: 10 Years and Beyond by Dor Laor
Reduce Your Cloud Spend with ScyllaDB by Tzach Livyatan
Migrating 50TB Data From a Home-Grown Database to ScyllaDB, Fast by Terence Liu
Vector Search with ScyllaDB by Szymon Wasik
Workload Prioritization: How to Balance Multiple Workloads in a Cluster by Fe...
Two Leading Approaches to Data Virtualization, and Which Scales Better? by Da...
Scaling a Beast: Lessons from 400x Growth in a High-Stakes Financial System b...
Object Storage in ScyllaDB by Ran Regev, ScyllaDB
Lessons Learned from Building a Serverless Notifications System by Srushith R...
Ad

Recently uploaded (20)

PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Encapsulation_ Review paper, used for researhc scholars
PPTX
MYSQL Presentation for SQL database connectivity
PPT
Teaching material agriculture food technology
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Approach and Philosophy of On baking technology
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Review of recent advances in non-invasive hemoglobin estimation
PPTX
Programs and apps: productivity, graphics, security and other tools
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Spectral efficient network and resource selection model in 5G networks
Per capita expenditure prediction using model stacking based on satellite ima...
Advanced methodologies resolving dimensionality complications for autism neur...
Understanding_Digital_Forensics_Presentation.pptx
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
MIND Revenue Release Quarter 2 2025 Press Release
Chapter 3 Spatial Domain Image Processing.pdf
The Rise and Fall of 3GPP – Time for a Sabbatical?
“AI and Expert System Decision Support & Business Intelligence Systems”
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Encapsulation_ Review paper, used for researhc scholars
MYSQL Presentation for SQL database connectivity
Teaching material agriculture food technology
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Approach and Philosophy of On baking technology
Digital-Transformation-Roadmap-for-Companies.pptx
Review of recent advances in non-invasive hemoglobin estimation
Programs and apps: productivity, graphics, security and other tools

Maximum Uptime Cluster Orchestration with Ansible

  • 1. Maximum Uptime Cluster Orchestration with Ansible Ryan Ross, Senior Site Reliability Engineer
  • 2. Ryan Ross ■ Senior Site Reliability Engineer at dbt Labs ■ Senior DevOps Engineer at Martin DSP/Pubmatic ■ DevOps Engineer at ConstructConnect ■ Senior Operations Engineer at Alveo Health Your photo goes here, smile :)
  • 3. Talk Objective: Provide actionable tips and patterns to build confidence in orchestrating ScyllaDB in Production with Ansible.
  • 4. ■ ScyllaDB Use Cases at a DSP ■ Define “Cluster Uptime” ■ Tips for Using Ansible with ScyllaDB ■ Demo Presentation Agenda
  • 6. What is a Demand-Side Platform (DSP)? A Demand-Side Platform is a system that allows buyers of digital advertising inventory to manage multiple ad exchange and data exchange accounts through one interface - Wikipedia
  • 7. What is a Demand-Side Platform (DSP)? A Demand-Side Platform is a system that allows buyers of digital advertising inventory to manage multiple ad exchange and data exchange accounts through one interface - Wikipedia
  • 8. What is a Demand-Side Platform (DSP)? A Demand-Side Platform is a system that allows buyers of digital advertising inventory to manage multiple ad exchange and data exchange accounts through one interface - Wikipedia
  • 9. What is a Demand-Side Platform (DSP)? A Demand-Side Platform is a system that allows buyers of digital advertising inventory to manage multiple ad exchange and data exchange accounts through one interface - Wikipedia
  • 10. What is a Demand-Side Platform (DSP)? A Demand-Side Platform is a system that allows buyers of digital advertising inventory to manage multiple ad exchange and data exchange accounts through one interface - Wikipedia The DSP connected advertisers and agencies with audiences to allow real-time bidding for and displaying of online-advertising.
  • 11. Use Cases for ScyllaDB at a DSP
  • 12. Use Cases for ScyllaDB at a DSP Billions of requests per day
  • 13. Use Cases for ScyllaDB at a DSP Billions of requests per day Equal read and write access patterns
  • 14. Use Cases for ScyllaDB at a DSP Billions of requests per day Equal read and write access patterns 24 x 7 x 365 Uptime
  • 15. Use Cases for ScyllaDB at a DSP Billions of requests per day Equal read and write access patterns 24 x 7 x 365 Uptime Millisecond response times
  • 16. Use Cases for ScyllaDB at a DSP Billions of requests per day Equal read and write access patterns 24 x 7 x 365 Uptime Millisecond response times Huge datasets
  • 17. Use Cases for ScyllaDB at a DSP Billions of requests per day Equal read and write access patterns 24 x 7 x 365 Uptime Millisecond response times Huge datasets
  • 19. Defining “Uptime” Provide a cluster that is available for dependent applications.
  • 26. Tips for Using Ansible to Orchestrate ScyllaDB with Whole Cluster Maximum Uptime * Use at your own risk. Always test in a non-customer facing environment first!
  • 27. Inventory to Cluster Architecture Structuring your Inventory will go a long way in helping manage multiple clusters and data centers. I saw success with:
  • 28. Inventory to Cluster Architecture Structuring your Inventory will go a long way in helping manage multiple clusters and data centers. I saw success with: ■ Inventory -> Cluster
  • 29. Inventory to Cluster Architecture Structuring your Inventory will go a long way in helping manage multiple clusters and data centers. I saw success with: ■ Inventory -> Cluster ■ Inventory Group -> Data Center
  • 30. Inventory to Cluster Architecture Ansible can have multiple Inventories
  • 31. Dynamic Inventory Scripts An underused superpower of your Cloud Provider is using them as your asset management database. Ansible can tie into provider’s API to get metadata information on instances with Dynamic Inventory Scripts.
  • 36. Use Lineinfile Module Instead of Template The ansible.builtin.lineinfile module should be used instead of others such as copy or template.
  • 37. Use Lineinfile Module Instead of Template The ansible.builtin.lineinfile module should be used instead of others such as copy or template. ■ Copy and Template assume Ansible has a valid copy of the file
  • 38. Use Lineinfile Module Instead of Template The ansible.builtin.lineinfile module should be used instead of others such as copy or template. ■ Copy and Template assume Ansible has a valid copy of the file
  • 39. Use Lineinfile Module Instead of Template The ansible.builtin.lineinfile module should be used instead of others such as copy or template. ■ Copy and Template assume Ansible has a valid copy of the file
  • 40. Use Lineinfile Module Instead of Template The ansible.builtin.lineinfile module should be used instead of others such as copy or template. ■ Copy and Template assume Ansible has a valid copy of the file ■ This becomes problematic with files that are changed by the project, such as config files installed with the distribution’s installer
  • 41. Use Lineinfile Module Instead of Template The ansible.builtin.lineinfile module should be used instead of others such as copy or template. ■ Copy and Template assume Ansible has a valid copy of the file ■ This becomes problematic with files that are changed by the project, such as config files installed with the distribution’s installer ■ Use Lineinfile to ensure the most recent and valid file settings are preserved and only change what’s needed.
  • 42. Lineinfile Continued Preserve project defaults and change only what you’re sure of.
  • 43. Lineinfile Continued Preserve project defaults and change only what you’re sure of.
  • 44. Run Playbooks Serially When Needed
  • 45. Run Playbooks Serially When Needed By default, Ansible will try to run each Task one at a time on all hosts in the Inventory before moving onto the next Task, like so:
  • 46. Run Playbooks Serially When Needed By default, Ansible will try to run each Task one at a time on all hosts in the Inventory before moving onto the next Task, like so:
  • 47. Run Playbooks Serially When Needed Use the Serial argument at the Play to run all Tasks on one host before moving onto the next host in an Inventory
  • 48. Run Playbooks Serially When Needed Use the Serial argument at the Play to run all Tasks on one host before moving onto the next host in an Inventory
  • 49. Run Playbooks Serially When Needed Use the Serial argument at the Play to run all Tasks on one host before moving onto the next host in an Inventory
  • 50. Check Cluster Membership Before Making Changes Cluster changes require all nodes to be Up and Normal (UN). I wrote a Role that was prerequisite for all Plays that made cluster.
  • 51. Check Cluster Membership Before Making Changes Cluster changes require all nodes to be Up and Normal (UN). I wrote a Role that was prerequisite for all Plays that made cluster.
  • 52. Use Automation to Run Ansible Ansible is an open source cli tool, but it should be wrapped in another automation tool for Production use. This has many benefits: ■ Run Playbooks on a schedule ■ Auditable output and outcomes ■ Improved security ■ Send alerts to teams
  • 53. Use Automation to Run Ansible There are lots of options when it comes to writing automation around Ansible: ■ Your current C.I. tool ■ Jenkins ■ Github Actions ■ Ansible Automation Platform from RedHat (paid) ■ AWX (upstream F.O.S.S./Community version of Ansible Automation Platform)
  • 54. Ansible Ecosystem Ansible has a thriving ecosystem of official and unofficial Collections to use.
  • 55. Ansible Ecosystem Ansible has a thriving ecosystem of official and unofficial Collections to use. ■ Collection Index ■ Galaxy
  • 56. Ansible Ecosystem Ansible has a thriving ecosystem of official and unofficial Collections to use.
  • 57. Ansible Ecosystem Ansible has a thriving ecosystem of official and unofficial Collections to use. To show a few:
  • 58. Demo Time * Use at your own risk. Always test in a non-customer facing environment first!
  • 59. Thank You Stay in Touch Ryan Ross nazufel@protonmail.com @nazufel www.linkedin.com/in/rossryan1/ github.com/nazufel/scylla-summit-2023