SlideShare uma empresa Scribd logo
1 de 20
Vagrant Up
A Distributed Test
Environment
1
Matt Brender
Developer Advocate at Basho
tweet me @mjbrender
I’m saying “Riak”
2
Not “react,” as in react.js
tweet me @mjbrender 3
4
5
$ vagrant up
6
7
8
9
1 million
Zombilepsy
victims are loaded
into a Riak KV
cluster.
Identified by zip code as an index value and supporting either
Term-Based Inverted Index or Riak's Secondary Index. Zombies
are located via search or interacting with the map.
bit.ly/zombie-riak
Riak Banana
10
bit.ly/riak-banana
11
Multi-node
12
Masterless
13
Riak has a masterless architecture in which every node in a cluster is
capable of serving read and write requests.
Requests are routed to nodes using standard load balancing.
14
Masterless
Bookings.com
15
http://bit.ly/bookings-riak
Bookings.com
16
http://bit.ly/bookings-riak
Bookings.com
17
http://bit.ly/bookings-riak
tweet me @mjbrender 18
tweet me @mjbrender 19
https://github.com/basho-labs
git clone
tweet me @mjbrender 20
Matt Brender
@mjbrender
github.com/basho-labs
Spend Time
getting to know us
github.com/basho

Mais conteúdo relacionado

Último

CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 

Último (20)

Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 

Destaque

How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
ThinkNow
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
Kurio // The Social Media Age(ncy)
 

Destaque (20)

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 

Vagrant up a Distributed Test Environment - Nginx Summit 2015

Notas do Editor

  1. I have the pleasure of working for Basho, creators and maintainers of Riak  In a nutshell is a distributed dynamo-inspired database falls into NoSQL includes full-text search 
  2. I like to play with infrastructure  An important differentiation at this conference :)
  3. What’s great though, is that I know I’m not alone => There’s a whole mission to achieve that!  but I’m not always good at it (idk what I’m doing). I don’t make any two environments the same way and it’s a pain when attempting to explain how something works (or how it failed to work) That has me appreciative of Vagrant       => Packages up the config mgmt and virtualization in one easy config file  I’ve implemented exactly zero of what I’m talking about. What I do offer is the good fortune of speaking to people who build these systems, basically non-stop. There is a lot to learn from just listening. I’ve spoken to hundreds of developers from companies of every shape and size. I’ve argued with ops engineers, I’ve listened to data scientists. I’ve read the 8 years of posts, from Amazon’s Dynamo paper in 2007 that Basho actually designed Riak after.
  4. Wraps up all my concerns with installation, packages up the config mgmt and virtualization in one easy config file  These tools are packaged up in a clean config file thanks to the folks at Hashicorp
  5. Create and configure lightweight, reproducible, and portable development environments.
  6. I like to vagrant up my Riaks. With this single command, I can spin up reproduceable and, easily shared, environments across our community and I love that.
  7. With just a little ruby code (here’s part of a multi-node system) and a call to your favorite provisioners, you have your production deployment system easily connected to right from you laptop without any other calls — of code or to people Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| config.vm.box = “ubuntu/trusty64" config.vm.network :forwarded_port, guest: 8087, host: 37017 config.vm.network :forwarded_port, guest: 8098, host: 37018 config.vm.network :forwarded_port, guest: 8080, host: 8080 config.vm.provision 'shell', path: 'provision.sh' config.vm.provision 'shell', path: ‘zombie.sh' config.vm.provider :virtualbox do |vb, override| override.vm.box_url = "http://files.vagrantup.com/precise64.box" vb.customize ["modifyvm", :id, "--memory", "2048"] end config.vm.provider 'vmware_fusion' do |vm, override| override.vm.box_url = "http://files.vagrantup.com/precise64_vmware_fusion.box" vm.vmx['memsize'] = '2048' end end end
  8. Here’s a more complicated example that actually produces 1 or more VMs and configures via Chef. # -*- mode: ruby -*- # vi: set ft=ruby : CENTOS = { box: "opscode-centos-6.4", url: "https://opscode-vm.s3.amazonaws.com/vagrant/opscode_centos-6.4_provisionerless.box" } UBUNTU = { box: "opscode-ubuntu-12.04", url: "https://opscode-vm.s3.amazonaws.com/vagrant/opscode_ubuntu-12.04_provisionerless.box" } NODES = ENV["NUM_NODES"].nil? ? 3 : ENV["NUM_NODES"].to_i OS = UBUNTU BASE_IP = "33.33.33" IP_INCREMENT = 10 Vagrant.configure("2") do |cluster| # Ensure latest version of Chef is installed. cluster.omnibus.chef_version = :latest # Utilize the Berkshelf plugin to resolve cookbook dependencies. cluster.berkshelf.enabled = true (1..NODES).each do |index| last_octet = index * IP_INCREMENT cluster.vm.define "riak#{index}".to_sym do |config| # Configure the VM and operating system. config.vm.box = OS[:box] config.vm.box_url = OS[:url] config.vm.provider(:virtualbox) { |v| v.customize ["modifyvm", :id, "--memory", 1024] } # Setup the network and additional file shares. if index == 1 [ 8098, 8087, 8069 ].each do |port| config.vm.network :forwarded_port, guest: port, host: port end end config.vm.hostname = "riak#{index}" config.vm.network :private_network, ip: "#{BASE_IP}.#{last_octet}" # Provision using Chef. config.vm.provision :chef_solo do |chef| chef.roles_path = "roles" if config.vm.box =~ /ubuntu/ chef.add_recipe "apt" else chef.add_recipe "yum" chef.add_recipe "yum::epel" end chef.add_role "base" chef.add_role "riak" chef.json = { "riak" => { "args" => { "+S" => 1, "-name" => "riak@33.33.33.#{last_octet}" }, "config" => { "riak_control" => { "enabled" => (index == 1 ? true : false) } } } } end end end end
  9. Like Zombie Riak. This application repo is accompanied by a simple nginx.conf file so you can scale based on demand.
  10. Banana is a fork of Kibana (which visualizes ElasticSearch) that plays nicely with the Solr API. that my colleague is getting up and running with Riak. What’s great is that Kibana is designed for Apache Solr’s API set, which is not an exact mapping to how Riak KV exposes Solr.
  11. Puppet template Made a little shim to list out the cores and other questions Banana queries Solr interfaces Wants access to one Solr endpoint Also had access to admin interface We don’t expose that ^
  12. Nothing I mentioned yet talks about distributed systems, however. For that part to be interest, you have to learn a little more about Riak KV.
  13. Data is spread across N number of nodes thanks to the magic of consistent hashing. This allows us to spread data out incredibly evenly. This does, however, mean some nodes have some data and some don’t. Every node, however, knows about keys help within the whole cluster, and it knows deterministically which node is the primary data owner and secondary owner(s). It passes that request on, waits for response, and passes back the response (ACK or GET value).
  14. But you can retrieve data from any node. So even when I talk to this node and the “owners” are the 3 red systems, the server will act as a coordinator for me.
  15. Bookings took the same algorithmic way by which Riak knows which node has which set of data and implemented that logic right in their proxy servers.
  16. This results in the same deterministic answer of which nodes owns which hash and has resulted in a significant reduction to their bandwidth consumption across the cluster. I’m exploring whether this can be done with Nginx since it seems possible.
  17. And I have the good fortune to listen in to a ton of conversations. Everyone I’ve met uses proxy servers to augment data flow in a optimized way and Nginx is a loved tool in the toolset we recomment in Professional Services for Basho. Our database at Basho, Riak, is used by many companies to store everything from session data to log aggregation. In these conversations, I always pivot to asking about their architecture - the how, the why, and the waht could be better.