CONSUL AS A MONITORING SERVICE



Similar documents
Enabling DNS for IPv6 CSD Fall 2011

CSE 127: Computer Security. Network Security. Kirill Levchenko

Measuring the Web: Part I - - Content Delivery Networks. Prof. Anja Feldmann, Ph.D. Dr. Ramin Khalili Georgios Smaragdakis, PhD

ACS 5.x and later: Integration with Microsoft Active Directory Configuration Example

IERG 4080 Building Scalable Internet-based Services

Configuring HAproxy as a SwiftStack Load Balancer

How To Attack Isc.Org.Org With A Dnet On A Network With A Pnet On The Same Day As A Dbus On A Pc Or Ipnet On An Ipnet.Org On A 2.5Th Gen.Net

DNS Resolving using nslookup

DEPLOYMENT GUIDE Version 1.1. Deploying the BIG-IP LTM v10 with Citrix Presentation Server 4.5

Creating a master/slave DNS server combination for your Grid Infrastructure

How-to: DNS Enumeration

Local DNS Attack Lab. 1 Lab Overview. 2 Lab Environment. SEED Labs Local DNS Attack Lab 1

Domain Name System (DNS) Fundamentals

Configuring Nex-Gen Web Load Balancer

Monitoring Drupal with Sensu. John VanDyk Iowa State University DrupalCorn Iowa City August 10, 2013

DNS Amplification Attacks as a DDoS Tool and Mitigation Techniques

TECHNOLOGY WHITE PAPER Jun 2012

Deploying the BIG-IP System with VMware vcenter Site Recovery Manager

netkit lab dns Università degli Studi Roma Tre Dipartimento di Informatica e Automazione Computer Networks Research Group Version Author(s)

XAP 10 Global HTTP Session Sharing

CI Pipeline with Docker

DNS at NLnet Labs. Matthijs Mekking

Pertino HA Cluster Deployment: Enabling a Multi- Tier Web Application Using Amazon EC2 and Google CE. A Pertino Deployment Guide

what s in a name? taking a deeper look at the domain name system mike boylan penn state mac admins conference

Domain Name System (DNS) Session-1: Fundamentals. Ayitey Bulley

PROTECTING DATA IN TRANSIT WITH ENCRYPTION IN M-FILES

Integrating VoltDB with Hadoop

HAProxy. Free, Fast High Availability and Load Balancing. Adam Thornton 10 September 2014

BITS-Pilani Hyderabad Campus CS C461/IS C461/CS F303/ IS F303 (Computer Networks) Laboratory 3

How to Enable Internet for Guest Virtual Machine using Wi-Fi wireless Internet Connection.

The role of JANET CSIRT

SmartTV User Interface Development for SmartTV using Web technology and CEA2014. George Sarosi

Put a Firewall in Your JVM Securing Java Applications!

An Oracle White Paper December, Enterprise Manager 12c Cloud Control: Configuring OMS Disaster Recovery with F5 BIG-IP Global Traffic Manager

Deploying the BIG-IP System v11 with DNS Servers

CumuLogic Load Balancer Overview Guide. March CumuLogic Load Balancer Overview Guide 1

Open Source High Availability Writing Resource Agents for your own services. Lars Marowsky-Brée Team Lead SUSE Labs

High Availability Solutions for the MariaDB and MySQL Database

Table of Contents. Confidential and Proprietary

Configure ActiveSync with a single Exchange server (Exchange sync for an iphone)

Deploying System Center 2012 R2 Configuration Manager

Unbound a caching, validating DNSSEC resolver. Do you trust your name server? Configuration. Unbound as a DNS cache (SEC-less)

Owner of the content within this article is Written by Marc Grote

QMX ios MDM Pre-Requisites and Installation Guide

Domain Name System Security

DEPLOYMENT GUIDE Version 1.0. Deploying the BIG-IP LTM with Apache Tomcat and Apache HTTP Server

Contents Set up Cassandra Cluster using Datastax Community Edition on Amazon EC2 Installing OpsCenter on Amazon AMI References Contact

Mobile Devices: Server and Management Lesson 05 Service Discovery

VAULT MODERN SECRETS MANAGEMENT

Socket = an interface connection between two (dissimilar) pipes. OS provides this API to connect applications to networks. home.comcast.

Healthstone Monitoring System

Aqua Connect Load Balancer User Manual (Mac)

JoramMQ, a distributed MQTT broker for the Internet of Things

Top Weblogic Tasks You can Automate Now

Filter Avoidance and Anonymous Proxy Guard

HTTP communication between Symantec Enterprise Vault and Clearwell E- Discovery

Informix Administration Overview

Monitoring IBM WebSphere extreme Scale (WXS) Calls With dynatrace

Centralizing Windows Events with Event Forwarding

DEPLOYMENT GUIDE Version 1.0. Deploying the BIG-IP LTM System with VMware View

GlobalSCAPE DMZ Gateway, v1. User Guide

deploying meteor with meteor up

I/O Considerations in Big Data Analytics

Design for Failure High Availability Architectures using AWS

A Coordinated. Enterprise Networks Software Defined. and Application Fluent Programmable Networks

MarkLogic Server. Database Replication Guide. MarkLogic 8 February, Copyright 2015 MarkLogic Corporation. All rights reserved.

DNS. Some advanced topics. Karst Koymans. (with Niels Sijm) Informatics Institute University of Amsterdam. (version 2.6, 2013/09/19 10:55:30)

Step-by-Step DNSSEC-Tools Operator Guidance Document

Orchestrating Distributed Deployments with Docker and Containers 1 / 30

Deploying the BIG-IP System v10 with Oracle Application Server 10g R2

Unlocking data creating knowledge. How to run Nesstar with IIS Socket Pooling

CRESTRON-APP-ANDROID Control App for Android

Building Hyper-Scale Platform-as-a-Service Microservices with Microsoft Azure. Patriek van Dorp and Alex Thissen

Deploying the BIG-IP LTM with. Citrix XenApp. Deployment Guide Version 1.2. What s inside: 2 Prerequisites and configuration notes

How To Understand The History Of The Network And Network (Networking) In A Network (Network) (Netnet) (Network And Network) (Dns) (Wired) (Lannet) And (Network Network)

Hints for Service Oriented Architectures. Marius Twitter Inc.

Testing Tools using Visual Studio. Randy Pagels Sr. Developer Technology Specialist Microsoft Corporation

Accelerating SaaS Applications with F5 AAM and SSL Forward Proxy

5 Key Reasons to Migrate from Cisco ACE to F5 BIG-IP

KAREL UCAP DNS AND DHCP CONCEPTS MANUAL MADE BY: KAREL ELEKTRONIK SANAYI ve TICARET A.S. Organize Sanayi Gazneliler Caddesi 10

Internet Firewall CSIS Packet Filtering. Internet Firewall. Examples. Spring 2011 CSIS net15 1. Routers can implement packet filtering

Introduction to IP v6

Towards Smart and Intelligent SDN Controller

DNS zone transfers from FreeIPA to non-freeipa slave servers

DEPLOYMENT GUIDE DEPLOYING THE BIG-IP LTM SYSTEM WITH CITRIX PRESENTATION SERVER 3.0 AND 4.5

Configuring DNS on Cisco Routers

Configuring Load Balancing

Soft Solutions, Inc. 4-Sight FAX 7.5. Getting Started. Soft Solutions, Inc.

Microsoft HPC. V 1.0 José M. Cámara (checam@ubu.es)

EView/400i Management Pack for Systems Center Operations Manager (SCOM)

Microsoft Exchange Server

VMware Infrastructure and IBM WebSphere Software

DEPLOYMENT GUIDE Version 1.1. Configuring BIG-IP WOM with Oracle Database Data Guard, GoldenGate, Streams, and Recovery Manager

Multiple Public IPs (virtual service IPs) are supported either to cover multiple network segments or to increase network performance.

DNS SECURITY TROUBLESHOOTING GUIDE

Redis Cluster. a pragmatic approach to distribution

Transcription:

CONSUL AS A MONITORING SERVICE

SETH VARGO @sethvargo

SERVICE ORIENTED ARCHITECTURE

SOA PRIMER Autonomous Limited Scope Loose Coupling

ORDER PROCESSING ORDER WEB APP HISTORY FORECASTING

ORDER PROCESSING WEB APP DISCOVERY Which nodes are part of "order processing"?

ORDER PROCESSING NODE 1 WEB APP NODE 2 NODE N LOAD BALANCING How to ensure request leveling across providers?

ORDER PROCESSING NODE 1 WEB APP NODE 2 LOAD BALANCER NODE N ANTI- PATTERN Load Balancer is a Single Point of Failure (SPOF)

ORDER PROCESSING NODE 1 WEB APP NODE 2 LOAD BALANCER NODE 3 HEALTH CHECKING How to avoid routing to unhealthy hosts?

maintenance: false feature_a: true role: "web" WEB 1 WEB APP WEB 2 WEB N CONFIGURATION How to efficiently push dynamic configuration?

4 BASIC PROBLEMS SERVICE LOAD HEALTH KEY- VALUE DISCOVERY BALANCING CHECKING CONFIGURATION

EXISTING "SOLUTIONS" ZOOKEEPER ETCD SENSU SMART STACK http://consul.io/intro/vs

CONSUL

Service Discovery HTTP + DNS

demo master dig web-frontend.service.consul

demo master dig web-frontend.service.consul ; <<>> DiG 9.8.3-P1 <<>> web-frontend.service.consul. ANY ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 29981 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;web-frontend.service.consul. IN ANY ;; ANSWER SECTION: web-frontend.service.consul. 0 IN A 10.0.3.83 web-frontend.service.consul. 0 IN A 10.0.1.109

Datacenter Aware

CLIENT CLIENT CLIENT CLIENT CLIENT CLIENT RPC LAN GOSSIP RPC SERVER SERVER SERVER REPLICATION REPLICATION

CLIENT CLIENT CLIENT CLIENT CLIENT CLIENT RPC LAN GOSSIP RPC SERVER SERVER SERVER REPLICATION REPLICATION SERVER REPLICATION SERVER REPLICATION SERVER

CLIENT CLIENT CLIENT CLIENT CLIENT CLIENT RPC LAN GOSSIP RPC SERVER SERVER SERVER REPLICATION REPLICATION WAN GOSSIP SERVER REPLICATION SERVER REPLICATION SERVER

Host & Service Level Health Checks

demo master consul-template -template="example.ctmpl" -dry > listen http-in bind *:8000 server web-0 127.0.0.1:80 server web-1 127.0.0.1:80 server web-2 127.0.0.1:80 demo master

demo master consul-template -template="example.ctmpl" -dry > listen http-in bind *:8000 server web-0 127.0.0.1:80 server web-1 127.0.0.1:80 server web-2 127.0.0.1:80 demo master sudo stop webserver

demo master consul-template -template="example.ctmpl" -dry > listen http-in bind *:8000 server web-1 127.0.0.1:80 server web-2 127.0.0.1:80 demo master sudo stop webserver

demo master consul-template -template="example.ctmpl" -dry > listen http-in bind *:8000 server web-0 127.0.0.1:80 server web-1 127.0.0.1:80 server web-2 127.0.0.1:80 demo master sudo start webserver

K/V Store HTTP API

demo master curl -X PUT -d 'bar' http://localhost:8500/v1/kv/foo true

demo master curl -X PUT -d 'bar' http://localhost:8500/v1/kv/foo true demo master curl http://localhost:8500/v1/kv/foo [ ] { } "CreateIndex": 100, "ModifyIndex": 200, "Key": "foo", "Flags": 0, "Value": "YmFy"

TRUSTED BY

HEALTH CHECKS

WHAT IS A CHECK? Any command that returns an exit code

WHAT IS A CHECK? Any command that returns an exit code 0 1 PASSING WARNING FAILING

WHAT IS A CHECK? Output is captured as a "note" for inspection $ curl http://127.0.0.1:4455/_health curl: (7) Failed to connect to 127.0.0.1 port 4455: Connection refused

CREATING A CHECK Use a custom script { } "check": { "id": "mem-util", "name": "Memory utilization", "script": "/usr/local/bin/check_mem.py", "interval": "10s" }

CREATING A CHECK Use a built-in check type { } "check": { "id": "api", "name": "HTTP API on port 4455", "http": "http://localhost:4455/_health", "interval": "10s", "timeout": "1s" }

RESPONSIVE

WEB 1 MONITORING WEB 2 SERVICE WEB N TRADITIONAL MONITORING Pushes information into a silo

WEB 1 MONITORING WEB 2 SERVICE WEB N TRADITIONAL MONITORING Pushes information into a silo

WEB 1 MONITORING SERVICE WEB 2 WEB N TRADITIONAL MONITORING Pushes information into a silo

WEB 1 MONITORING SERVICE WEB 2 WEB N TRADITIONAL MONITORING Pushes information into a silo

U WEB 1 MONITORING SERVICE WEB 2 WEB N TRADITIONAL MONITORING Pushes information into a silo

U F WEB 1 MONITORING SERVICE WEB 2 WEB N TRADITIONAL MONITORING Pushes information into a silo

U F WEB 1 MONITORING SERVICE WEB 2 WEB N TRADITIONAL MONITORING Pushes information into a silo

WEB 1 CONSUL WEB 2 WEB N CONSUL MONITORING Removes unhealthy nodes from service discovery layer

WEB 1 CONSUL WEB 2 WEB N CONSUL MONITORING Removes unhealthy nodes from service discovery layer

dig web.service.consul 10.0.1.4 10.0.1.5 10.0.1.6 WEB 1 CONSUL WEB 2 WEB N CONSUL MONITORING Removes unhealthy nodes from service discovery layer

dig web.service.consul 10.0.1.4 10.0.1.5 10.0.1.6 WEB 1 CONSUL WEB 2 WEB N CONSUL MONITORING Removes unhealthy nodes from service discovery layer

dig web.service.consul 10.0.1.5 10.0.1.6 WEB 1 CONSUL WEB 2 WEB N CONSUL MONITORING Removes unhealthy nodes from service discovery layer

host: web.service.consul dig web.service.consul 10.0.1.5 10.0.1.6 WEB 1 CONSUL WEB 2 WEB N CONSUL MONITORING Removes unhealthy nodes from service discovery layer

host: web.service.consul dig web.service.consul 10.0.1.5 10.0.1.6 WEB 1 CONSUL WEB 2 WEB N CONSUL MONITORING Removes unhealthy nodes from service discovery layer

host: web.service.consul dig web.service.consul 10.0.1.5 10.0.1.6 WEB 1 CONSUL WEB 2 WEB N CONSUL MONITORING Removes unhealthy nodes from service discovery layer

host: web.service.consul dig web.service.consul 10.0.1.5 10.0.1.6 WEB 1 CONSUL WEB 2 WEB N CONSUL MONITORING Removes unhealthy nodes from service discovery layer

host: web.service.consul dig web.service.consul 10.0.1.4 10.0.1.5 10.0.1.6 WEB 1 CONSUL WEB 2 WEB N CONSUL MONITORING Removes unhealthy nodes from service discovery layer

CONSUL MONITORING Unhealthy nodes are not returned from DNS queries dig web.service.consul web-01, web-02, web-03

CONSUL MONITORING Unhealthy nodes are not returned from HTTP API curl /v1/services/web web-01, web-02, web-03

LOCKING

CONSUL LOCK Allows for a new kind of "HA" demo master consul lock [options] prefix child...

VAULT 1 VAULT 2 CONSUL VAULT 3 CONSUL LOCK Making standby HA much simpler

VAULT 1 L VAULT 2 CONSUL VAULT 3 L CONSUL LOCK Making standby HA much simpler

VAULT 1 L VAULT 2 CONSUL VAULT 3 CONSUL LOCK Making standby HA much simpler

VAULT 1 L LEADER ELECTION VAULT 2 CONSUL VAULT 3 CONSUL LOCK Making standby HA much simpler

VAULT 1 L VAULT 2 CONSUL GET /secret/foo VAULT 3 REQUEST CONSUL LOCK Making standby HA much simpler

VAULT 1 L VAULT 2 CONSUL GET /secret/foo VAULT 3 REQUEST CONSUL LOCK Making standby HA much simpler

VAULT 1 L VAULT 2 CONSUL GET /secret/foo VAULT 3 REQUEST CONSUL LOCK Making standby HA much simpler

VAULT 1 L VAULT 2 CONSUL VAULT 3 CONSUL LOCK Making standby HA much simpler

VAULT 1 l VAULT 2 CONSUL VAULT 3 CONSUL LOCK Making standby HA much simpler

VAULT 1 VAULT 2 CONSUL VAULT 3 L CONSUL LOCK Making standby HA much simpler

VAULT 1 VAULT 2 CONSUL VAULT 3 L CONSUL LOCK Making standby HA much simpler

VAULT 1 VAULT 2 CONSUL GET /secret/foo VAULT 3 L REQUEST CONSUL LOCK Making standby HA much simpler

VAULT 1 VAULT 2 CONSUL GET /secret/foo VAULT 3 L REQUEST CONSUL LOCK Making standby HA much simpler

CONSUL LOCK Solves the "exactly one of these must always be running" problem

CONSUL LOCK Also great as a semaphore - rolling restarts

SCALABILITY

WEB 1 "I'm healthy" MONITORING WEB 2 SERVICE "Good, thanks for asking!" WEB N TRADITIONAL MONITORING Notifies/polls all statuses

WEB 1 MONITORING SERVICE 1,000'S OF REQUESTS WEB 2 WEB 1,000 TRADITIONAL MONITORING Notifies/polls all statuses

HA WEB 1 MONITORING SERVICE 1,000'S OF REQUESTS WEB 2 WEB 1,000 TRADITIONAL MONITORING Notifies/polls all statuses

My status has changed WEB 1 CONSUL WEB 2 WEB N CONSUL MONITORING Notifies on status changes

WEB 1 CONSUL 10'S OF REQUESTS WEB 2 WEB 1,000 CONSUL MONITORING Notifies on status changes

CONCLUSION

SOLVES 4 BASIC PROBLEMS SERVICE LOAD HEALTH KEY- VALUE DISCOVERY BALANCING CHECKING CONFIGURATION

SOLVES 4 MORE PROBLEMS G L H 9 LEADER ELECTION SEMAPHORE LOCKING RESPONSIVE SCALABLE

SETH VARGO @sethvargo QUESTIONS?