SlideShare uma empresa Scribd logo
1 de 44
Couchbase Orchestration and Scaling a Caching
Infrastructure at LinkedIn
Issa Fattah
Senior SRE for New York Engineering
Member of Couchbase Virtual Team
April 20th, 2016
Who We Are
 Couchbase supported by Virtual Team
– 10 SREs
– 2 Software Engineers
– Sponsoring by a Director
– 5-90% of their time to supporting Couchbase
– In addition to their day to day responsibilities
 Everyone can and is encouraged to contribute
Overview
 LinkedIn Story
 Why Couchbase?
 Development and Operations
 Clusters and Numbers
 Automation Use Cases
 Salt Stack
– States, Pillars, Grains, Runner, Execution Module
 Automation Output
– Caveats/Improvements
 Conclusion
The LinkedIn Story
 Founded in 2002
 Grown into the worlds largest professional social
media network
 Offices in 24 countries, 30 cities around the world
 Available in 24 languages
 Revenue of $862M in Q4 2015
The LinkedIn Story
 Growth in Site Features
– Member Profiles,
Connections, and Sharing
– Post and apply for Jobs
– LinkedIn Groups and
Company Pages
– Premium tools for hiring,
marketing, and sales
 Growth in Internet traffic
– Billions of page hits per
day
– Global, round the clock
traffic
 Growth in Audience
– 400+M members
– 3M+ company pages
– 2.1M+ groups
The LinkedIn Story
 Difficult for storage systems to keep up
 “Read-scaling”
– Store data in cache memory
– Replicate entire databases
– Temporary data such as for de-duping
– Memcached, EHCache, Custom
 Infrastructure around storage systems
– Cache invalidations
– Reliable data replication
Why Couchbase?
 Evaluated systems to replace Memcached: Mongo,
Redis, and others
 Couchbase had advantages
– Drop-in replacement for Memcached
– Built in replication and cluster expansion
– Memory latency for operations
– Persistence i.e. asynchronous writes to disk
– Utilize some of the development infrastructure we’ve built
Why Couchbase?
 Partitioning
– Partitioning done automatically
– Expansion and rebalancing of cluster
 Warm Caches
– Replication to protect against server failures
– On-disk data for server reboot
– Backup/restore and live data pumps for data transfer
across data centers
Development and Operations
 Increasing number of servers, focused on remote
caches
 Important for our caches to remain warm
 Built up operational tools and standards
– Deployment configuration scripts
– Common pattern for development
– Support libraries for our developers
– Monitoring of the servers
Development and Operations: Tools
 SALT modules to build and configure a new cluster
 Set a master, setup/expand/reduce a cluster
 Custom RPM with some backported bug fixes
 Integrate with monitoring dashboards
– Grab over 300 metrics
– Per-host: Key to value ratio
– Aggregated metrics: QPS, data vs memory size
 Monitor high watermark, latency, data ejection, etc.
Clusters and Numbers
 Approximately 300 couchbase clusters in all colos
 Current versions supported: 2.2.0 and 3.0.1
 Average cluster size of 10 hosts
 Largest cluster is 72 hosts.
 Single and Multi-tenant clusters
 Highest throughput cluster is 1.8M QPS.
Clusters and Numbers:
Credential Cache
 Stores metadata
for users creds of
2 providers.
 ~8000 QPS
 Avg. GET call
time ~1 ms.
 18 hosts
Clusters and Numbers:
Credential Cache
 ~98% hit-ratio
 All in Memory.
 No ejections to disk
 No performance
penalty (when
compared to RAM
access)
Couchbase Summary
 In-Memory cache that fits into our existing
infrastructure
 Provides eventual-consistency persistence
 Read-scaling with acceptable latencies
 Management and monitoring of the clusters
 Rich set of tooling extended by members of CBVT
using Salt
Automation Use Cases
 Build and deploy Couchbase in a reliable and consistent
way
 Support multiple versions of Couchbase
 Metadata to describe the cluster/buckets being
provisioned
 Provide a layer of abstraction that is easy to use
 Scale cluster sizes as needed.
 Decommission clusters entirely.
Salt
 Salt State
 Pillar
 Grains
 Execution module
 Runner
Terminology
 Salt Master
– central server that manages hosts which run agents, called Salt Minions.
 Salt Runner
– application of convenience executed by the salt-run command on the Salt Master.
 Execution Module
– similar to a Salt Runner except that is executed on the Minion host.
 The method of configuration management provided by Salt consists of:
– Pillars: centrally managed data, rendered on the master
– Grains: data specific to the minion host that is being targeted
 Range
– distributed metadata store that contains information about clusters of hosts.
Salt State
 Expresses
the state of
a host in a
small easy-
to-read and
understand
file:
# If couchbase user and group do not
#exist, create it.
couchbase:
group.present:
- gid: 500
user.present:
- shell: /bin/bash
- home: /opt/couchbase
- createhome: True
- uid: 500
- gid: 500
Salt State
 Specify path for
couchbase
bucket data that
is eventually
persisted to disk.
 Uniform
configuration
across all hosts in
a cluster.
#Create path where couchbase will
#store bucket data:
create_data_dir:
file.directory:
- name: ‘/path/to/data’
- user: couchbase
- group: couchbase
- dir_mode: 700
Salt State
 Install couchbase.
 Version and
package are hard-
coded.
#Install couchbase-server version.
couchbase-server:
pkg.installed:
- name: ‘couchbase-server’
- require:
- user: couchbase
- group: couchbase
- file: password_file
- fromrepo: ifattah-
repo,RPMS.os
- refresh: True
- version: ‘3.0.1-1444.10’
Salt State
 State successful if:
– All previous blocks
were successful.
– couchbase-server
process is running
 Vanilla state
 Robust templates
# Make sure that service is running
#after installation
service:
- running
- require:
- pkg: couchbase-server
Salt State Templating
 Parameterize the version we want to install
 Jinja Template + Pillar metadata
{% if salt['pillar.get']('couchbase_pillar:version') == '2.2.0' %}
{% set pkg_name = ’prod-couchbase-server' %}
{% set version = '2.2.0-85' %}
{% elif salt['pillar.get']('couchbase_pillar:version') == '3.0.1' %}
{% set pkg_name = ’prod-couchbase-server' %}
{% set version = '3.0.1-14' %}
{% endif %}
Salt State Templating
 Install couchbase.
 Version and package
are taken from pillar
data.
 State (SLS file) can be
applied via CLI or via
Python Salt client
#Install couchbase-server version.
couchbase-server:
pkg.installed:
- name: {{ pkg_name }}
- require:
- user: couchbase
- group: couchbase
- fromrepo: some-repo
- refresh: True
- version: {{ version }}
Salt State
 Can be applied via CLI or Salt Runner:
sudo salt hostname state.sls couchbase.setup
hostname1:
----------
ID: required_packages
Function: pkg.installed
Result: True
Comment: All specified packages are already installed.
Started: 20:37:00.729487
Duration: 6502.956 ms
Changes:
Salt Pillars
 YAML-defined.
 Every cluster’s composition.
– Buckets
– Replicas
– RAM Size
– Type
 SASL or no SASL?
 Host lists are obtained by Range.
 Grain stores the name of this file so
that we can retrieve the admin
password for this cluster only.
#!yaml|gpg
couchbase_pillar:
admin_password: ‘<encrypted string>’
host_range: '%ifattah.couchbase.99'
data_path: /mnt/foo
version: 3.0.1
buckets:
bucketA:
type: couchbase
auth: none
port: 13337
replicas: 1
ram: 256
bucketB:
type: couchbase
auth: none
port: 13338
replicas: 1
ram: 256
Salt Grains
 Host-specific data:
– OS version
– Kernel version
– Total Physical RAM
 Set the pillar file which stores the encrypted admin password.
 When pillar data is made available to a targeted minion:
– Include pillar file matching the name of the grain:
• couchbase.cluster.{{ grains['couchbase_cluster'] }}
 Ensures a cluster is only accessing it’s specific pillar metadata
 Set the cluster_ramsize (RAM to allocate to couchbase):
 Ensures all hosts’ RAM utilized in the same way.
Salt Execution Module
 Available functions executed by Salt Minion on targeted
hosts
 Post-installation steps required by couchbase
 Constructs cli commands and API requests
Salt Execution Module
 Constructs Couchbase commands:
– Set cluster’s admin password, data_path (taken from pillar data)
– Add/remove host(s) from a cluster
– Issue a rebalance of data
– Get status/stop rebalance
– Create new buckets
– Flush existing buckets
 Issue requests via HTTP REST API:
– Get Couchbase version from running node
– Enable auto-failover (when a node fails to respond).
– Rename a node
– Get membership status/health of all hosts in a cluster.
Salt Runner
 Provides 4 functions to the user:
– setup_cluster:
• Build a cluster from scratch with provided metadata from pillar and host list
from range.
• Applies ‘setup’ state for installation.
– expand_cluster (reduce_cluster)
• Compares range host list with couchbase membership.
• Add hosts to couchbase cluster to match range (source of truth)
– Uninstall
• Ensures couchbase is removed by applying another state ‘uninstall.sls’
 All above runner functions verify the results of all functions
executed by the minion (execution module)
Salt Runner
 Ties everything together:
– sudo salt-run couchbase.setup_cluster %ifattah.couchbase.99
 Apply ‘couchbase.setup’ state to given hosts
– Ensure all pre-installation and installation pre-requisites are met.
 Sets grain value for a host to obtain the decrypted admin
password (name of pillar file)
 Salt’s cmd_iter() invokes a function in the execution module
on the targeted minion host.
 Runner output informs the user throughout the process
Salt Runner Output (setup_cluster)
Couchbase will be installed on:
salt-minion1.linkedin.local
salt-minion2.linkedin.local
salt-minion3.linkedin.local
salt-minion4.linkedin.local
Master node is: salt-minion1.linkedin.local
couchbase-server version: 3.0.1
Couchbase data path: /mnt/foo
Decrypted Couchbase Administrator password: adminadmin
Decrypted Couchbase readonly password: readonly
MB of RAM allocated for couchbase-server (cluster-init-ramsize): 1419
The following buckets will be created:
- bucketA
- bucketB
Salt Runner Output (setup_cluster)
[INFO] Non-interactive: Answered yes to ‘ Is the above information correct?
Proceed?’
[INFO] Beginning installation ...
[INFO] SUCCESS: Successfully ran couchbase.setup on salt-minion1…4.linkedin.local
[INFO] SUCCESS: couchbase.setup state applied to all hosts.
[INFO] Syncing modules from base env…
[INFO] Modules on salt-minion1.linkedin.local were synced.
[INFO] Modules on salt-minion2.linkedin.local were synced.
[INFO] Modules on salt-minion3.linkedin.local were synced.
[INFO] Modules on salt-minion4.linkedin.local were synced.
[INFO] Initializing couchbase on all cluster nodes…
[INFO] SUCCESS: Successfully set data_path on salt-minion4.linkedin.local
[INFO] SUCCESS: Successfully set data_path on salt-minion2.linkedin.local
[INFO] SUCCESS: Successfully set data_path on salt-minion3.linkedin.local
[INFO] SUCCESS: Successfully set data_path on salt-minion1.linkedin.local
[INFO] SUCCESS: Successfully set cluster_ramsize to 1419M
Salt Runner Output (setup_cluster)
[INFO] SUCCESS: Successfully renamed salt-minion1.linkedin.local with FQDN.
[INFO] SUCCESS: Successfully created readonly admin account
[INFO] Adding salt-minion2.linkedin.local to cluster...
[INFO] SUCCESS: Successfully added salt-minion2.linkedin.local to the cluster
[INFO] Adding salt-minion3.linkedin.local to cluster...
[INFO] SUCCESS: Successfully added salt-minion3.linkedin.local to the cluster
[INFO] Adding salt-minion4.linkedin.local to cluster...
[INFO] SUCCESS: Successfully added salt-minion4.linkedin.local to the cluster
[INFO] Starting Rebalance...
[INFO] SUCCESS: Successfully rebalanced the cluster
[INFO] SUCCESS: Successfully created bucketA bucket
[INFO] SUCCESS: Successfully created bucketB bucket
[INFO] Starting Rebalance...
[INFO] SUCCESS: Successfully rebalanced the cluster
[INFO] SUCCESS: Successfully enabled autofailover for the cluster
[INFO] INSTALLATION COMPLETE!
Cluster Setup is Complete
Salt Runner Output (reduce_cluster)
[INFO] ** Starting preliminary procedures for cluster reduction... **
[INFO] Setting grain...
[INFO] Summary of operations to be performed:
[INFO] The following hosts will be removed from the couchbase cluster:
[INFO] - salt-minion4.linkedin.local
[INFO] - salt-minion3.linkedin.local
[INFO] All commands will be executed on the chosen master node: salt-
minion1.linkedin.local
[INFO] Non-interactive: Answered yes to 'Is the above information correct?
Proceed?'
[INFO] WARNING: Cluster reduction can be a dangerous operation.
[INFO] Non-interactive: Answered yes to 'Are you sure this cluster can operate
with 2 fewer nodes? Proceed?’
[INFO] Marking hosts for removal and beginning rebalance...
[INFO] - salt-minion4.linkedin.local
[INFO] - salt-minion3.linkedin.local
[INFO] Rebalancing may take a while…
Salt Runner Output (reduce_cluster)
[INFO] Waiting 30 seconds after rebalance, before uninstall.
[INFO] Uninstalling couchbase from removed hosts...
[INFO] Couchbase will be uninstalled from:
[INFO] - salt-minion4.linkedin.local
[INFO] - salt-minion3.linkedin.local
[INFO] Non-interactive: Answered yes to 'Is the above information correct?
Proceed?'
[INFO] Syncing modules from base env...
[INFO] Modules on salt-minion3.linkedin.local were synced.
[INFO] Modules on salt-minion4.linkedin.local were synced.
[INFO] Beginning removal ...
[INFO] SUCCESS: removed couchbase_cluster grain from salt-minion4.linkedin.local
[INFO] SUCCESS: removed couchbase_cluster grain from salt-minion3.linkedin.local
[INFO] SUCCESS: Successfully ran couchbase.uninstall on salt-minion3…
[INFO] SUCCESS: Successfully ran couchbase.uninstall on salt-minion4…
[INFO] UNINSTALLED!
[INFO] Cluster reduction complete!
True
Cluster Reduction is Complete
Salt Runner Output (expand_cluster)
[INFO] ** Starting preliminary procedures for cluster reduction... **
[INFO] Setting grain...
[INFO] Summary of operations to be performed:
[INFO] The following hosts will be removed from the couchbase cluster:
[INFO] - salt-minion4.linkedin.local
[INFO] - salt-minion3.linkedin.local
[INFO] All commands will be executed on the chosen master node: salt-
minion1.linkedin.local
[INFO] Non-interactive: Answered yes to 'Is the above information correct?
Proceed?'
[INFO] WARNING: Cluster reduction can be a dangerous operation.
[INFO] Non-interactive: Answered yes to 'Are you sure this cluster can operate
with 2 fewer nodes? Proceed?’
[INFO] Marking hosts for removal and beginning rebalance...
[INFO] - salt-minion4.linkedin.local
[INFO] - salt-minion3.linkedin.local
[INFO] Rebalancing may take a while…
Salt Runner Output (expand_cluster)
[INFO] ** Starting preliminary procedures for cluster expansion... **
[INFO] Setting grain...
[INFO] The following hosts belong to the range cluster %ifattah.couchbase.9999 :
[INFO] - salt-minion1.linkedin.local, clusterMember=active, status=healthy
[INFO] - salt-minion2.linkedin.local, clusterMember=active, status=healthy
[INFO] The following hosts are being added for cluster expansion:
- salt-minion3.linkedin.local
- salt-minion4.linkedin.local
[INFO] Non-interactive: Answered yes to 'Is the above information correct?'
[INFO] Beginning installation ...
[INFO] SUCCESS: Successfully ran couchbase.setup on salt-minion4.linkedin.local
[INFO] SUCCESS: Successfully ran couchbase.setup on salt-minion3.linkedin.local
[INFO] SUCCESS: couchbase.setup state applied to new hosts.
Salt Runner Output (expand_cluster)
[INFO] Syncing modules from base env...
[INFO] Modules on salt-minion4.linkedin.local were synced.
[INFO] Modules on salt-minion3.linkedin.local were synced.
[INFO] Initializing couchbase on new cluster nodes...
[INFO] SUCCESS: Successfully set data_path on salt-minion4.linkedin.local
[INFO] SUCCESS: Successfully set data_path on salt-minion3.linkedin.local
[INFO] Adding salt-minion3.linkedin.local to cluster...
[INFO] SUCCESS: Successfully added salt-minion3.linkedin.local to the cluster
[INFO] Adding salt-minion4.linkedin.local to cluster...
[INFO] SUCCESS: Successfully added salt-minion4.linkedin.local to the cluster
[INFO] Starting Rebalance...
[INFO] SUCCESS: Successfully rebalanced the cluster
[INFO] EXPANSION COMPLETE!
True
Cluster Expansion is Complete
Caveats/Improvements
 If grain isn’t set, pillar render error occurs on the
minion.
– To avoid leaking password to minion logs, set
safe_renderrer_error to false.
 Frequent updates to execution module as functions are
tested for Couchbase 4.x
 Logic to infer how many hosts can be safely removed
 Provide a frontend interface
– Instead of running from salt master host.
Conclusions
 Couchbase
– Provides a robust caching layer
– Powers critical parts of linkedin.com
 Saltstack
– Quickly and dynamically provision clusters
– Reliably scale clusters as needed.
 Automation is your friend
 Open-source version can be made available if there is
enough interest.
Any Questions?

Mais conteúdo relacionado

Mais procurados

Weblogic Administration Managed Server migration
Weblogic Administration Managed Server migrationWeblogic Administration Managed Server migration
Weblogic Administration Managed Server migrationRakesh Gujjarlapudi
 
Cloudera cluster setup and configuration
Cloudera cluster setup and configurationCloudera cluster setup and configuration
Cloudera cluster setup and configurationSudheer Kondla
 
The State of HBase Replication
The State of HBase ReplicationThe State of HBase Replication
The State of HBase ReplicationHBaseCon
 
Architecting cloud
Architecting cloudArchitecting cloud
Architecting cloudTahsin Hasan
 
SQL Server Alwayson for SharePoint HA/DR Step by Step Guide
SQL Server Alwayson for SharePoint HA/DR Step by Step GuideSQL Server Alwayson for SharePoint HA/DR Step by Step Guide
SQL Server Alwayson for SharePoint HA/DR Step by Step GuideLars Platzdasch
 
May 2013 HUG: Apache Sqoop 2 - A next generation of data transfer tools
May 2013 HUG: Apache Sqoop 2 - A next generation of data transfer toolsMay 2013 HUG: Apache Sqoop 2 - A next generation of data transfer tools
May 2013 HUG: Apache Sqoop 2 - A next generation of data transfer toolsYahoo Developer Network
 
Building the Perfect SharePoint 2010 Farm - Sharing the Point South America
Building the Perfect SharePoint 2010 Farm - Sharing the Point South AmericaBuilding the Perfect SharePoint 2010 Farm - Sharing the Point South America
Building the Perfect SharePoint 2010 Farm - Sharing the Point South AmericaMichael Noel
 
Apache Hadoop & Hive installation with movie rating exercise
Apache Hadoop & Hive installation with movie rating exerciseApache Hadoop & Hive installation with movie rating exercise
Apache Hadoop & Hive installation with movie rating exerciseShiva Rama Krishna Dasharathi
 
Hadoop World 2011: Hadoop and Performance - Todd Lipcon & Yanpei Chen, Cloudera
Hadoop World 2011: Hadoop and Performance - Todd Lipcon & Yanpei Chen, ClouderaHadoop World 2011: Hadoop and Performance - Todd Lipcon & Yanpei Chen, Cloudera
Hadoop World 2011: Hadoop and Performance - Todd Lipcon & Yanpei Chen, ClouderaCloudera, Inc.
 
ORACLE RAC DBA ONLINE TRAINING
ORACLE RAC DBA ONLINE TRAININGORACLE RAC DBA ONLINE TRAINING
ORACLE RAC DBA ONLINE TRAININGTRAINING ICON
 
Hive Quick Start Tutorial
Hive Quick Start TutorialHive Quick Start Tutorial
Hive Quick Start TutorialCarl Steinbach
 
Extending and Automating Cloudera Manager via API
Extending and Automating Cloudera Manager via APIExtending and Automating Cloudera Manager via API
Extending and Automating Cloudera Manager via APIClouderaUserGroups
 
Hortonworks.Cluster Config Guide
Hortonworks.Cluster Config GuideHortonworks.Cluster Config Guide
Hortonworks.Cluster Config GuideDouglas Bernardini
 
Upgrading mysql version 5.5.30 to 5.6.10
Upgrading mysql version 5.5.30 to 5.6.10Upgrading mysql version 5.5.30 to 5.6.10
Upgrading mysql version 5.5.30 to 5.6.10Vasudeva Rao
 
AUDWC 2016 - Using SQL Server 20146 AlwaysOn Availability Groups for SharePoi...
AUDWC 2016 - Using SQL Server 20146 AlwaysOn Availability Groups for SharePoi...AUDWC 2016 - Using SQL Server 20146 AlwaysOn Availability Groups for SharePoi...
AUDWC 2016 - Using SQL Server 20146 AlwaysOn Availability Groups for SharePoi...Michael Noel
 
Unbreakable SharePoint 2013 with SQL Server Always On Availability Groups (HA...
Unbreakable SharePoint 2013 with SQL Server Always On Availability Groups (HA...Unbreakable SharePoint 2013 with SQL Server Always On Availability Groups (HA...
Unbreakable SharePoint 2013 with SQL Server Always On Availability Groups (HA...serge luca
 
April 2016 HUG: The latest of Apache Hadoop YARN and running your docker apps...
April 2016 HUG: The latest of Apache Hadoop YARN and running your docker apps...April 2016 HUG: The latest of Apache Hadoop YARN and running your docker apps...
April 2016 HUG: The latest of Apache Hadoop YARN and running your docker apps...Yahoo Developer Network
 

Mais procurados (17)

Weblogic Administration Managed Server migration
Weblogic Administration Managed Server migrationWeblogic Administration Managed Server migration
Weblogic Administration Managed Server migration
 
Cloudera cluster setup and configuration
Cloudera cluster setup and configurationCloudera cluster setup and configuration
Cloudera cluster setup and configuration
 
The State of HBase Replication
The State of HBase ReplicationThe State of HBase Replication
The State of HBase Replication
 
Architecting cloud
Architecting cloudArchitecting cloud
Architecting cloud
 
SQL Server Alwayson for SharePoint HA/DR Step by Step Guide
SQL Server Alwayson for SharePoint HA/DR Step by Step GuideSQL Server Alwayson for SharePoint HA/DR Step by Step Guide
SQL Server Alwayson for SharePoint HA/DR Step by Step Guide
 
May 2013 HUG: Apache Sqoop 2 - A next generation of data transfer tools
May 2013 HUG: Apache Sqoop 2 - A next generation of data transfer toolsMay 2013 HUG: Apache Sqoop 2 - A next generation of data transfer tools
May 2013 HUG: Apache Sqoop 2 - A next generation of data transfer tools
 
Building the Perfect SharePoint 2010 Farm - Sharing the Point South America
Building the Perfect SharePoint 2010 Farm - Sharing the Point South AmericaBuilding the Perfect SharePoint 2010 Farm - Sharing the Point South America
Building the Perfect SharePoint 2010 Farm - Sharing the Point South America
 
Apache Hadoop & Hive installation with movie rating exercise
Apache Hadoop & Hive installation with movie rating exerciseApache Hadoop & Hive installation with movie rating exercise
Apache Hadoop & Hive installation with movie rating exercise
 
Hadoop World 2011: Hadoop and Performance - Todd Lipcon & Yanpei Chen, Cloudera
Hadoop World 2011: Hadoop and Performance - Todd Lipcon & Yanpei Chen, ClouderaHadoop World 2011: Hadoop and Performance - Todd Lipcon & Yanpei Chen, Cloudera
Hadoop World 2011: Hadoop and Performance - Todd Lipcon & Yanpei Chen, Cloudera
 
ORACLE RAC DBA ONLINE TRAINING
ORACLE RAC DBA ONLINE TRAININGORACLE RAC DBA ONLINE TRAINING
ORACLE RAC DBA ONLINE TRAINING
 
Hive Quick Start Tutorial
Hive Quick Start TutorialHive Quick Start Tutorial
Hive Quick Start Tutorial
 
Extending and Automating Cloudera Manager via API
Extending and Automating Cloudera Manager via APIExtending and Automating Cloudera Manager via API
Extending and Automating Cloudera Manager via API
 
Hortonworks.Cluster Config Guide
Hortonworks.Cluster Config GuideHortonworks.Cluster Config Guide
Hortonworks.Cluster Config Guide
 
Upgrading mysql version 5.5.30 to 5.6.10
Upgrading mysql version 5.5.30 to 5.6.10Upgrading mysql version 5.5.30 to 5.6.10
Upgrading mysql version 5.5.30 to 5.6.10
 
AUDWC 2016 - Using SQL Server 20146 AlwaysOn Availability Groups for SharePoi...
AUDWC 2016 - Using SQL Server 20146 AlwaysOn Availability Groups for SharePoi...AUDWC 2016 - Using SQL Server 20146 AlwaysOn Availability Groups for SharePoi...
AUDWC 2016 - Using SQL Server 20146 AlwaysOn Availability Groups for SharePoi...
 
Unbreakable SharePoint 2013 with SQL Server Always On Availability Groups (HA...
Unbreakable SharePoint 2013 with SQL Server Always On Availability Groups (HA...Unbreakable SharePoint 2013 with SQL Server Always On Availability Groups (HA...
Unbreakable SharePoint 2013 with SQL Server Always On Availability Groups (HA...
 
April 2016 HUG: The latest of Apache Hadoop YARN and running your docker apps...
April 2016 HUG: The latest of Apache Hadoop YARN and running your docker apps...April 2016 HUG: The latest of Apache Hadoop YARN and running your docker apps...
April 2016 HUG: The latest of Apache Hadoop YARN and running your docker apps...
 

Destaque

Couchbase Connect 2016: Monitoring Production Deployments The Tools – LinkedIn
Couchbase Connect 2016: Monitoring Production Deployments The Tools – LinkedInCouchbase Connect 2016: Monitoring Production Deployments The Tools – LinkedIn
Couchbase Connect 2016: Monitoring Production Deployments The Tools – LinkedInMichael Kehoe
 
Couchbase Connect 2016
Couchbase Connect 2016Couchbase Connect 2016
Couchbase Connect 2016Michael Kehoe
 
APRICOT 2017: Trafficshifting: Avoiding Disasters & Improving Performance at ...
APRICOT 2017: Trafficshifting: Avoiding Disasters & Improving Performance at ...APRICOT 2017: Trafficshifting: Avoiding Disasters & Improving Performance at ...
APRICOT 2017: Trafficshifting: Avoiding Disasters & Improving Performance at ...Michael Kehoe
 
Using SaltStack to Auto Triage and Remediate Production Systems
Using SaltStack to Auto Triage and Remediate Production SystemsUsing SaltStack to Auto Triage and Remediate Production Systems
Using SaltStack to Auto Triage and Remediate Production SystemsMichael Kehoe
 
External Data in Puppet 4
External Data in Puppet 4External Data in Puppet 4
External Data in Puppet 4ripienaar
 
Reducing MTTR and False Escalations: Event Correlation at LinkedIn
Reducing MTTR and False Escalations: Event Correlation at LinkedInReducing MTTR and False Escalations: Event Correlation at LinkedIn
Reducing MTTR and False Escalations: Event Correlation at LinkedInMichael Kehoe
 

Destaque (6)

Couchbase Connect 2016: Monitoring Production Deployments The Tools – LinkedIn
Couchbase Connect 2016: Monitoring Production Deployments The Tools – LinkedInCouchbase Connect 2016: Monitoring Production Deployments The Tools – LinkedIn
Couchbase Connect 2016: Monitoring Production Deployments The Tools – LinkedIn
 
Couchbase Connect 2016
Couchbase Connect 2016Couchbase Connect 2016
Couchbase Connect 2016
 
APRICOT 2017: Trafficshifting: Avoiding Disasters & Improving Performance at ...
APRICOT 2017: Trafficshifting: Avoiding Disasters & Improving Performance at ...APRICOT 2017: Trafficshifting: Avoiding Disasters & Improving Performance at ...
APRICOT 2017: Trafficshifting: Avoiding Disasters & Improving Performance at ...
 
Using SaltStack to Auto Triage and Remediate Production Systems
Using SaltStack to Auto Triage and Remediate Production SystemsUsing SaltStack to Auto Triage and Remediate Production Systems
Using SaltStack to Auto Triage and Remediate Production Systems
 
External Data in Puppet 4
External Data in Puppet 4External Data in Puppet 4
External Data in Puppet 4
 
Reducing MTTR and False Escalations: Event Correlation at LinkedIn
Reducing MTTR and False Escalations: Event Correlation at LinkedInReducing MTTR and False Escalations: Event Correlation at LinkedIn
Reducing MTTR and False Escalations: Event Correlation at LinkedIn
 

Semelhante a Setting up Couchbase cluster...Couchbase cluster setup completed successfully

Configuration management and orchestration with Salt
Configuration management and orchestration with SaltConfiguration management and orchestration with Salt
Configuration management and orchestration with SaltAnirban Saha
 
Software-defined Datacenter Maintenance - No More Sleepless Nights and Long W...
Software-defined Datacenter Maintenance - No More Sleepless Nights and Long W...Software-defined Datacenter Maintenance - No More Sleepless Nights and Long W...
Software-defined Datacenter Maintenance - No More Sleepless Nights and Long W...SUSE
 
Automating your infrastructure with Chef
Automating your infrastructure with ChefAutomating your infrastructure with Chef
Automating your infrastructure with ChefJohn Ewart
 
Staying Ahead of the Curve with Spring and Cassandra 4
Staying Ahead of the Curve with Spring and Cassandra 4Staying Ahead of the Curve with Spring and Cassandra 4
Staying Ahead of the Curve with Spring and Cassandra 4VMware Tanzu
 
Staying Ahead of the Curve with Spring and Cassandra 4 (SpringOne 2020)
Staying Ahead of the Curve with Spring and Cassandra 4 (SpringOne 2020)Staying Ahead of the Curve with Spring and Cassandra 4 (SpringOne 2020)
Staying Ahead of the Curve with Spring and Cassandra 4 (SpringOne 2020)Alexandre Dutra
 
SaltConf14 - Ben Cane - Using SaltStack in High Availability Environments
SaltConf14 - Ben Cane - Using SaltStack in High Availability EnvironmentsSaltConf14 - Ben Cane - Using SaltStack in High Availability Environments
SaltConf14 - Ben Cane - Using SaltStack in High Availability EnvironmentsSaltStack
 
Movile Internet Movel SA: A Change of Seasons: A big move to Apache Cassandra
Movile Internet Movel SA: A Change of Seasons: A big move to Apache CassandraMovile Internet Movel SA: A Change of Seasons: A big move to Apache Cassandra
Movile Internet Movel SA: A Change of Seasons: A big move to Apache CassandraDataStax Academy
 
Cassandra Summit 2015 - A Change of Seasons
Cassandra Summit 2015 - A Change of SeasonsCassandra Summit 2015 - A Change of Seasons
Cassandra Summit 2015 - A Change of SeasonsEiti Kimura
 
WSO2 Quarterly Technical Update
WSO2 Quarterly Technical UpdateWSO2 Quarterly Technical Update
WSO2 Quarterly Technical UpdateWSO2
 
Azure System Management
Azure System ManagementAzure System Management
Azure System ManagementMustafa
 
Cloud computing 3702
Cloud computing 3702Cloud computing 3702
Cloud computing 3702Jess Coburn
 
Apache Ambari: Simplified Hadoop Cluster Operation & Troubleshooting
Apache Ambari: Simplified Hadoop Cluster Operation & TroubleshootingApache Ambari: Simplified Hadoop Cluster Operation & Troubleshooting
Apache Ambari: Simplified Hadoop Cluster Operation & TroubleshootingJayush Luniya
 
what is sccm ? sccm online Training
what is sccm ? sccm online Training what is sccm ? sccm online Training
what is sccm ? sccm online Training KashifSCCMTrainer
 
WinOps Conf 2016 - Ed Wilson - Configuration Management with Azure DSC
WinOps Conf 2016 - Ed Wilson - Configuration Management with Azure DSCWinOps Conf 2016 - Ed Wilson - Configuration Management with Azure DSC
WinOps Conf 2016 - Ed Wilson - Configuration Management with Azure DSCWinOps Conf
 
AWS (Hadoop) Meetup 30.04.09
AWS (Hadoop) Meetup 30.04.09AWS (Hadoop) Meetup 30.04.09
AWS (Hadoop) Meetup 30.04.09Chris Purrington
 
To Build My Own Cloud with Blackjack…
To Build My Own Cloud with Blackjack…To Build My Own Cloud with Blackjack…
To Build My Own Cloud with Blackjack…Sergey Dzyuban
 
(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...
(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...
(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...Amazon Web Services
 
Openstack Rally - Benchmark as a Service. Openstack Meetup India. Ananth/Rahul.
Openstack Rally - Benchmark as a Service. Openstack Meetup India. Ananth/Rahul.Openstack Rally - Benchmark as a Service. Openstack Meetup India. Ananth/Rahul.
Openstack Rally - Benchmark as a Service. Openstack Meetup India. Ananth/Rahul.Rahul Krishna Upadhyaya
 
Deploying to and Configuring WebSphere Application Server with UrbanCode Deploy
Deploying to and Configuring WebSphere Application Server with UrbanCode DeployDeploying to and Configuring WebSphere Application Server with UrbanCode Deploy
Deploying to and Configuring WebSphere Application Server with UrbanCode DeployIBM DevOps
 

Semelhante a Setting up Couchbase cluster...Couchbase cluster setup completed successfully (20)

Configuration management and orchestration with Salt
Configuration management and orchestration with SaltConfiguration management and orchestration with Salt
Configuration management and orchestration with Salt
 
Software-defined Datacenter Maintenance - No More Sleepless Nights and Long W...
Software-defined Datacenter Maintenance - No More Sleepless Nights and Long W...Software-defined Datacenter Maintenance - No More Sleepless Nights and Long W...
Software-defined Datacenter Maintenance - No More Sleepless Nights and Long W...
 
Automating your infrastructure with Chef
Automating your infrastructure with ChefAutomating your infrastructure with Chef
Automating your infrastructure with Chef
 
Staying Ahead of the Curve with Spring and Cassandra 4
Staying Ahead of the Curve with Spring and Cassandra 4Staying Ahead of the Curve with Spring and Cassandra 4
Staying Ahead of the Curve with Spring and Cassandra 4
 
Staying Ahead of the Curve with Spring and Cassandra 4 (SpringOne 2020)
Staying Ahead of the Curve with Spring and Cassandra 4 (SpringOne 2020)Staying Ahead of the Curve with Spring and Cassandra 4 (SpringOne 2020)
Staying Ahead of the Curve with Spring and Cassandra 4 (SpringOne 2020)
 
SaltConf14 - Ben Cane - Using SaltStack in High Availability Environments
SaltConf14 - Ben Cane - Using SaltStack in High Availability EnvironmentsSaltConf14 - Ben Cane - Using SaltStack in High Availability Environments
SaltConf14 - Ben Cane - Using SaltStack in High Availability Environments
 
Movile Internet Movel SA: A Change of Seasons: A big move to Apache Cassandra
Movile Internet Movel SA: A Change of Seasons: A big move to Apache CassandraMovile Internet Movel SA: A Change of Seasons: A big move to Apache Cassandra
Movile Internet Movel SA: A Change of Seasons: A big move to Apache Cassandra
 
Cassandra Summit 2015 - A Change of Seasons
Cassandra Summit 2015 - A Change of SeasonsCassandra Summit 2015 - A Change of Seasons
Cassandra Summit 2015 - A Change of Seasons
 
WSO2 Quarterly Technical Update
WSO2 Quarterly Technical UpdateWSO2 Quarterly Technical Update
WSO2 Quarterly Technical Update
 
Azure System Management
Azure System ManagementAzure System Management
Azure System Management
 
Cloud computing 3702
Cloud computing 3702Cloud computing 3702
Cloud computing 3702
 
Kash Kubernetified
Kash KubernetifiedKash Kubernetified
Kash Kubernetified
 
Apache Ambari: Simplified Hadoop Cluster Operation & Troubleshooting
Apache Ambari: Simplified Hadoop Cluster Operation & TroubleshootingApache Ambari: Simplified Hadoop Cluster Operation & Troubleshooting
Apache Ambari: Simplified Hadoop Cluster Operation & Troubleshooting
 
what is sccm ? sccm online Training
what is sccm ? sccm online Training what is sccm ? sccm online Training
what is sccm ? sccm online Training
 
WinOps Conf 2016 - Ed Wilson - Configuration Management with Azure DSC
WinOps Conf 2016 - Ed Wilson - Configuration Management with Azure DSCWinOps Conf 2016 - Ed Wilson - Configuration Management with Azure DSC
WinOps Conf 2016 - Ed Wilson - Configuration Management with Azure DSC
 
AWS (Hadoop) Meetup 30.04.09
AWS (Hadoop) Meetup 30.04.09AWS (Hadoop) Meetup 30.04.09
AWS (Hadoop) Meetup 30.04.09
 
To Build My Own Cloud with Blackjack…
To Build My Own Cloud with Blackjack…To Build My Own Cloud with Blackjack…
To Build My Own Cloud with Blackjack…
 
(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...
(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...
(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...
 
Openstack Rally - Benchmark as a Service. Openstack Meetup India. Ananth/Rahul.
Openstack Rally - Benchmark as a Service. Openstack Meetup India. Ananth/Rahul.Openstack Rally - Benchmark as a Service. Openstack Meetup India. Ananth/Rahul.
Openstack Rally - Benchmark as a Service. Openstack Meetup India. Ananth/Rahul.
 
Deploying to and Configuring WebSphere Application Server with UrbanCode Deploy
Deploying to and Configuring WebSphere Application Server with UrbanCode DeployDeploying to and Configuring WebSphere Application Server with UrbanCode Deploy
Deploying to and Configuring WebSphere Application Server with UrbanCode Deploy
 

Último

How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
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 Servicegiselly40
 
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)wesley chun
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
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...Neo4j
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
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.pptxMalak Abu Hammad
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 

Último (20)

How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
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
 
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)
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
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...
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I 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
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 

Setting up Couchbase cluster...Couchbase cluster setup completed successfully

  • 1. Couchbase Orchestration and Scaling a Caching Infrastructure at LinkedIn Issa Fattah Senior SRE for New York Engineering Member of Couchbase Virtual Team April 20th, 2016
  • 2. Who We Are  Couchbase supported by Virtual Team – 10 SREs – 2 Software Engineers – Sponsoring by a Director – 5-90% of their time to supporting Couchbase – In addition to their day to day responsibilities  Everyone can and is encouraged to contribute
  • 3. Overview  LinkedIn Story  Why Couchbase?  Development and Operations  Clusters and Numbers  Automation Use Cases  Salt Stack – States, Pillars, Grains, Runner, Execution Module  Automation Output – Caveats/Improvements  Conclusion
  • 4. The LinkedIn Story  Founded in 2002  Grown into the worlds largest professional social media network  Offices in 24 countries, 30 cities around the world  Available in 24 languages  Revenue of $862M in Q4 2015
  • 5. The LinkedIn Story  Growth in Site Features – Member Profiles, Connections, and Sharing – Post and apply for Jobs – LinkedIn Groups and Company Pages – Premium tools for hiring, marketing, and sales  Growth in Internet traffic – Billions of page hits per day – Global, round the clock traffic  Growth in Audience – 400+M members – 3M+ company pages – 2.1M+ groups
  • 6. The LinkedIn Story  Difficult for storage systems to keep up  “Read-scaling” – Store data in cache memory – Replicate entire databases – Temporary data such as for de-duping – Memcached, EHCache, Custom  Infrastructure around storage systems – Cache invalidations – Reliable data replication
  • 7. Why Couchbase?  Evaluated systems to replace Memcached: Mongo, Redis, and others  Couchbase had advantages – Drop-in replacement for Memcached – Built in replication and cluster expansion – Memory latency for operations – Persistence i.e. asynchronous writes to disk – Utilize some of the development infrastructure we’ve built
  • 8. Why Couchbase?  Partitioning – Partitioning done automatically – Expansion and rebalancing of cluster  Warm Caches – Replication to protect against server failures – On-disk data for server reboot – Backup/restore and live data pumps for data transfer across data centers
  • 9. Development and Operations  Increasing number of servers, focused on remote caches  Important for our caches to remain warm  Built up operational tools and standards – Deployment configuration scripts – Common pattern for development – Support libraries for our developers – Monitoring of the servers
  • 10. Development and Operations: Tools  SALT modules to build and configure a new cluster  Set a master, setup/expand/reduce a cluster  Custom RPM with some backported bug fixes  Integrate with monitoring dashboards – Grab over 300 metrics – Per-host: Key to value ratio – Aggregated metrics: QPS, data vs memory size  Monitor high watermark, latency, data ejection, etc.
  • 11. Clusters and Numbers  Approximately 300 couchbase clusters in all colos  Current versions supported: 2.2.0 and 3.0.1  Average cluster size of 10 hosts  Largest cluster is 72 hosts.  Single and Multi-tenant clusters  Highest throughput cluster is 1.8M QPS.
  • 12. Clusters and Numbers: Credential Cache  Stores metadata for users creds of 2 providers.  ~8000 QPS  Avg. GET call time ~1 ms.  18 hosts
  • 13. Clusters and Numbers: Credential Cache  ~98% hit-ratio  All in Memory.  No ejections to disk  No performance penalty (when compared to RAM access)
  • 14. Couchbase Summary  In-Memory cache that fits into our existing infrastructure  Provides eventual-consistency persistence  Read-scaling with acceptable latencies  Management and monitoring of the clusters  Rich set of tooling extended by members of CBVT using Salt
  • 15. Automation Use Cases  Build and deploy Couchbase in a reliable and consistent way  Support multiple versions of Couchbase  Metadata to describe the cluster/buckets being provisioned  Provide a layer of abstraction that is easy to use  Scale cluster sizes as needed.  Decommission clusters entirely.
  • 16. Salt  Salt State  Pillar  Grains  Execution module  Runner
  • 17. Terminology  Salt Master – central server that manages hosts which run agents, called Salt Minions.  Salt Runner – application of convenience executed by the salt-run command on the Salt Master.  Execution Module – similar to a Salt Runner except that is executed on the Minion host.  The method of configuration management provided by Salt consists of: – Pillars: centrally managed data, rendered on the master – Grains: data specific to the minion host that is being targeted  Range – distributed metadata store that contains information about clusters of hosts.
  • 18. Salt State  Expresses the state of a host in a small easy- to-read and understand file: # If couchbase user and group do not #exist, create it. couchbase: group.present: - gid: 500 user.present: - shell: /bin/bash - home: /opt/couchbase - createhome: True - uid: 500 - gid: 500
  • 19. Salt State  Specify path for couchbase bucket data that is eventually persisted to disk.  Uniform configuration across all hosts in a cluster. #Create path where couchbase will #store bucket data: create_data_dir: file.directory: - name: ‘/path/to/data’ - user: couchbase - group: couchbase - dir_mode: 700
  • 20. Salt State  Install couchbase.  Version and package are hard- coded. #Install couchbase-server version. couchbase-server: pkg.installed: - name: ‘couchbase-server’ - require: - user: couchbase - group: couchbase - file: password_file - fromrepo: ifattah- repo,RPMS.os - refresh: True - version: ‘3.0.1-1444.10’
  • 21. Salt State  State successful if: – All previous blocks were successful. – couchbase-server process is running  Vanilla state  Robust templates # Make sure that service is running #after installation service: - running - require: - pkg: couchbase-server
  • 22. Salt State Templating  Parameterize the version we want to install  Jinja Template + Pillar metadata {% if salt['pillar.get']('couchbase_pillar:version') == '2.2.0' %} {% set pkg_name = ’prod-couchbase-server' %} {% set version = '2.2.0-85' %} {% elif salt['pillar.get']('couchbase_pillar:version') == '3.0.1' %} {% set pkg_name = ’prod-couchbase-server' %} {% set version = '3.0.1-14' %} {% endif %}
  • 23. Salt State Templating  Install couchbase.  Version and package are taken from pillar data.  State (SLS file) can be applied via CLI or via Python Salt client #Install couchbase-server version. couchbase-server: pkg.installed: - name: {{ pkg_name }} - require: - user: couchbase - group: couchbase - fromrepo: some-repo - refresh: True - version: {{ version }}
  • 24. Salt State  Can be applied via CLI or Salt Runner: sudo salt hostname state.sls couchbase.setup hostname1: ---------- ID: required_packages Function: pkg.installed Result: True Comment: All specified packages are already installed. Started: 20:37:00.729487 Duration: 6502.956 ms Changes:
  • 25. Salt Pillars  YAML-defined.  Every cluster’s composition. – Buckets – Replicas – RAM Size – Type  SASL or no SASL?  Host lists are obtained by Range.  Grain stores the name of this file so that we can retrieve the admin password for this cluster only. #!yaml|gpg couchbase_pillar: admin_password: ‘<encrypted string>’ host_range: '%ifattah.couchbase.99' data_path: /mnt/foo version: 3.0.1 buckets: bucketA: type: couchbase auth: none port: 13337 replicas: 1 ram: 256 bucketB: type: couchbase auth: none port: 13338 replicas: 1 ram: 256
  • 26. Salt Grains  Host-specific data: – OS version – Kernel version – Total Physical RAM  Set the pillar file which stores the encrypted admin password.  When pillar data is made available to a targeted minion: – Include pillar file matching the name of the grain: • couchbase.cluster.{{ grains['couchbase_cluster'] }}  Ensures a cluster is only accessing it’s specific pillar metadata  Set the cluster_ramsize (RAM to allocate to couchbase):  Ensures all hosts’ RAM utilized in the same way.
  • 27. Salt Execution Module  Available functions executed by Salt Minion on targeted hosts  Post-installation steps required by couchbase  Constructs cli commands and API requests
  • 28. Salt Execution Module  Constructs Couchbase commands: – Set cluster’s admin password, data_path (taken from pillar data) – Add/remove host(s) from a cluster – Issue a rebalance of data – Get status/stop rebalance – Create new buckets – Flush existing buckets  Issue requests via HTTP REST API: – Get Couchbase version from running node – Enable auto-failover (when a node fails to respond). – Rename a node – Get membership status/health of all hosts in a cluster.
  • 29. Salt Runner  Provides 4 functions to the user: – setup_cluster: • Build a cluster from scratch with provided metadata from pillar and host list from range. • Applies ‘setup’ state for installation. – expand_cluster (reduce_cluster) • Compares range host list with couchbase membership. • Add hosts to couchbase cluster to match range (source of truth) – Uninstall • Ensures couchbase is removed by applying another state ‘uninstall.sls’  All above runner functions verify the results of all functions executed by the minion (execution module)
  • 30. Salt Runner  Ties everything together: – sudo salt-run couchbase.setup_cluster %ifattah.couchbase.99  Apply ‘couchbase.setup’ state to given hosts – Ensure all pre-installation and installation pre-requisites are met.  Sets grain value for a host to obtain the decrypted admin password (name of pillar file)  Salt’s cmd_iter() invokes a function in the execution module on the targeted minion host.  Runner output informs the user throughout the process
  • 31. Salt Runner Output (setup_cluster) Couchbase will be installed on: salt-minion1.linkedin.local salt-minion2.linkedin.local salt-minion3.linkedin.local salt-minion4.linkedin.local Master node is: salt-minion1.linkedin.local couchbase-server version: 3.0.1 Couchbase data path: /mnt/foo Decrypted Couchbase Administrator password: adminadmin Decrypted Couchbase readonly password: readonly MB of RAM allocated for couchbase-server (cluster-init-ramsize): 1419 The following buckets will be created: - bucketA - bucketB
  • 32. Salt Runner Output (setup_cluster) [INFO] Non-interactive: Answered yes to ‘ Is the above information correct? Proceed?’ [INFO] Beginning installation ... [INFO] SUCCESS: Successfully ran couchbase.setup on salt-minion1…4.linkedin.local [INFO] SUCCESS: couchbase.setup state applied to all hosts. [INFO] Syncing modules from base env… [INFO] Modules on salt-minion1.linkedin.local were synced. [INFO] Modules on salt-minion2.linkedin.local were synced. [INFO] Modules on salt-minion3.linkedin.local were synced. [INFO] Modules on salt-minion4.linkedin.local were synced. [INFO] Initializing couchbase on all cluster nodes… [INFO] SUCCESS: Successfully set data_path on salt-minion4.linkedin.local [INFO] SUCCESS: Successfully set data_path on salt-minion2.linkedin.local [INFO] SUCCESS: Successfully set data_path on salt-minion3.linkedin.local [INFO] SUCCESS: Successfully set data_path on salt-minion1.linkedin.local [INFO] SUCCESS: Successfully set cluster_ramsize to 1419M
  • 33. Salt Runner Output (setup_cluster) [INFO] SUCCESS: Successfully renamed salt-minion1.linkedin.local with FQDN. [INFO] SUCCESS: Successfully created readonly admin account [INFO] Adding salt-minion2.linkedin.local to cluster... [INFO] SUCCESS: Successfully added salt-minion2.linkedin.local to the cluster [INFO] Adding salt-minion3.linkedin.local to cluster... [INFO] SUCCESS: Successfully added salt-minion3.linkedin.local to the cluster [INFO] Adding salt-minion4.linkedin.local to cluster... [INFO] SUCCESS: Successfully added salt-minion4.linkedin.local to the cluster [INFO] Starting Rebalance... [INFO] SUCCESS: Successfully rebalanced the cluster [INFO] SUCCESS: Successfully created bucketA bucket [INFO] SUCCESS: Successfully created bucketB bucket [INFO] Starting Rebalance... [INFO] SUCCESS: Successfully rebalanced the cluster [INFO] SUCCESS: Successfully enabled autofailover for the cluster [INFO] INSTALLATION COMPLETE!
  • 34. Cluster Setup is Complete
  • 35. Salt Runner Output (reduce_cluster) [INFO] ** Starting preliminary procedures for cluster reduction... ** [INFO] Setting grain... [INFO] Summary of operations to be performed: [INFO] The following hosts will be removed from the couchbase cluster: [INFO] - salt-minion4.linkedin.local [INFO] - salt-minion3.linkedin.local [INFO] All commands will be executed on the chosen master node: salt- minion1.linkedin.local [INFO] Non-interactive: Answered yes to 'Is the above information correct? Proceed?' [INFO] WARNING: Cluster reduction can be a dangerous operation. [INFO] Non-interactive: Answered yes to 'Are you sure this cluster can operate with 2 fewer nodes? Proceed?’ [INFO] Marking hosts for removal and beginning rebalance... [INFO] - salt-minion4.linkedin.local [INFO] - salt-minion3.linkedin.local [INFO] Rebalancing may take a while…
  • 36. Salt Runner Output (reduce_cluster) [INFO] Waiting 30 seconds after rebalance, before uninstall. [INFO] Uninstalling couchbase from removed hosts... [INFO] Couchbase will be uninstalled from: [INFO] - salt-minion4.linkedin.local [INFO] - salt-minion3.linkedin.local [INFO] Non-interactive: Answered yes to 'Is the above information correct? Proceed?' [INFO] Syncing modules from base env... [INFO] Modules on salt-minion3.linkedin.local were synced. [INFO] Modules on salt-minion4.linkedin.local were synced. [INFO] Beginning removal ... [INFO] SUCCESS: removed couchbase_cluster grain from salt-minion4.linkedin.local [INFO] SUCCESS: removed couchbase_cluster grain from salt-minion3.linkedin.local [INFO] SUCCESS: Successfully ran couchbase.uninstall on salt-minion3… [INFO] SUCCESS: Successfully ran couchbase.uninstall on salt-minion4… [INFO] UNINSTALLED! [INFO] Cluster reduction complete! True
  • 38. Salt Runner Output (expand_cluster) [INFO] ** Starting preliminary procedures for cluster reduction... ** [INFO] Setting grain... [INFO] Summary of operations to be performed: [INFO] The following hosts will be removed from the couchbase cluster: [INFO] - salt-minion4.linkedin.local [INFO] - salt-minion3.linkedin.local [INFO] All commands will be executed on the chosen master node: salt- minion1.linkedin.local [INFO] Non-interactive: Answered yes to 'Is the above information correct? Proceed?' [INFO] WARNING: Cluster reduction can be a dangerous operation. [INFO] Non-interactive: Answered yes to 'Are you sure this cluster can operate with 2 fewer nodes? Proceed?’ [INFO] Marking hosts for removal and beginning rebalance... [INFO] - salt-minion4.linkedin.local [INFO] - salt-minion3.linkedin.local [INFO] Rebalancing may take a while…
  • 39. Salt Runner Output (expand_cluster) [INFO] ** Starting preliminary procedures for cluster expansion... ** [INFO] Setting grain... [INFO] The following hosts belong to the range cluster %ifattah.couchbase.9999 : [INFO] - salt-minion1.linkedin.local, clusterMember=active, status=healthy [INFO] - salt-minion2.linkedin.local, clusterMember=active, status=healthy [INFO] The following hosts are being added for cluster expansion: - salt-minion3.linkedin.local - salt-minion4.linkedin.local [INFO] Non-interactive: Answered yes to 'Is the above information correct?' [INFO] Beginning installation ... [INFO] SUCCESS: Successfully ran couchbase.setup on salt-minion4.linkedin.local [INFO] SUCCESS: Successfully ran couchbase.setup on salt-minion3.linkedin.local [INFO] SUCCESS: couchbase.setup state applied to new hosts.
  • 40. Salt Runner Output (expand_cluster) [INFO] Syncing modules from base env... [INFO] Modules on salt-minion4.linkedin.local were synced. [INFO] Modules on salt-minion3.linkedin.local were synced. [INFO] Initializing couchbase on new cluster nodes... [INFO] SUCCESS: Successfully set data_path on salt-minion4.linkedin.local [INFO] SUCCESS: Successfully set data_path on salt-minion3.linkedin.local [INFO] Adding salt-minion3.linkedin.local to cluster... [INFO] SUCCESS: Successfully added salt-minion3.linkedin.local to the cluster [INFO] Adding salt-minion4.linkedin.local to cluster... [INFO] SUCCESS: Successfully added salt-minion4.linkedin.local to the cluster [INFO] Starting Rebalance... [INFO] SUCCESS: Successfully rebalanced the cluster [INFO] EXPANSION COMPLETE! True
  • 42. Caveats/Improvements  If grain isn’t set, pillar render error occurs on the minion. – To avoid leaking password to minion logs, set safe_renderrer_error to false.  Frequent updates to execution module as functions are tested for Couchbase 4.x  Logic to infer how many hosts can be safely removed  Provide a frontend interface – Instead of running from salt master host.
  • 43. Conclusions  Couchbase – Provides a robust caching layer – Powers critical parts of linkedin.com  Saltstack – Quickly and dynamically provision clusters – Reliably scale clusters as needed.  Automation is your friend  Open-source version can be made available if there is enough interest.