SlideShare a Scribd company logo
1 of 35
Download to read offline
DevOps Krakow #Meet 1

DNS CLUSTER
Automated Internal DNS Service with Amazon VPC integration

Sławomir Skowron 	

System Engineer (DevOps Team)	

slawomir.skowron@getbase.com	

2013
DNS INTRODUCTION
WHAT IS DNS ?
•

Domain Name System is hierarchical and distributed naming
system	


•

Essentially name service for TCP/IP networks	


•

Allow IP address resolution mechanism	


•

Adds tree based domain name space, 	


•

Name space is sub-divides into zones and start with root zone	


•

One of the first NoSQL key-value database
NAMESPACE
Tree hierarchical structure starting from . (root)
ZONES
Delegated part of domain name space for administrative
responsibility.
DOMAIN NAME SERVERS
Software on servers that store, manage and serve information about own part
of domain namespace called zone	

Two types of servers: master and slave
DNS QUERIES
Two type of external queries: Recursive and Iterative

•

Recursive - querying other servers until positive response	


•

Iterative - add local response (cache, local zone) or give
info where to look for it.

Cached Queries - DNS Cache - improve latency and throughput
DNS AS A SERVICE
INSIDE AMAZON CLOUD
AMAZON EC2 DNS (VPC) PROBLEMS

•

Route-53 (right now) is not supporting internal DNS domains	


•

Amazon VPC Internal DNS support only ec2.internal domains	


•

Amazon VPC DHCP in default support only AWS DNS
Our own DNS Service
USE CASE
Our own DNS Service
•

Available only in LAN and through VPN	


•

Only A and SRV - infrastructure DNS

•

Resolv local and forward if not exist

•

No zone transfer, No slaves, No masters	


•

Updates are simple, secure and fast
SOLUTION
Our own DNS Service
•

Clustering for High Availability and Performance	


•

Integration with our VPC’s DHPC	


•

Availability in every Amazon Region	


•

Caching

•

Fully Automated and Integrated with Instance Provisioning	


•

Support for our name space
HIERARCHY
Hierarchy of private DNS at BaseCRM
DNSCLUSTER
RELEASE 1.0
:)
T
S
O
M
L
A
SOLUTION
•

Puppet 3 as Configuration Management solution	


•

Puppet Hiera, PuppetDB integration	


•

TheForeman - http://theforeman.org/	


•

Foreman integrates with BIND	


•

Unbound as DNSCluster core - local zones, forwarder,
cache	


•

Git for store zones and versioning
DNSCLUSTER
Integration with Puppet and TheForeman
WHAT’S WRONG WITH PUPPET ?
•

Puppet is slow	


•

Hard and slow flow developing with Puppet	


•

Hard to integrate on running machines before
puppet. 	


•

PuppetDB is ok but it’s not scalable enough	


•

Everything go through Foreman and BIND in our case
PUPPET
ANSIBLE
Radicaly simple IT orchestration
ANSIBLE
•

Minimal setup - Python + Libs - pip install ansible	


•

Use existing auth (root, sudo) on SSH as default transport or
accelerated mode	


•

Ad-hoc operations built in	


•

async, sync and parallel operations	


•

Predictable, easy to expand (plugins, connectors, filters, modules)	


•

Use powerful templates in jinja2	


•

outputs in json, 	


•

configure in yaml
source: http://www.ansibleworks.com/
ANSIBLE @ BASE
•

Two months of work all in GIT

•

15 playbooks (Universal Flow)

•

25 roles

•

180 yaml files

•

52 template
DNSCLUSTER
RELEASE 2.0
SOLUTION
•

Ansible

•

Unbound as DNSCluster core - local zones, forwarder, cache	


•

Git for store zones and versioning	


•

Amazon VPC DHCP integration - under development	


•

ETCD integration - under development
KISS

Keep it simple, stupid	


Core Thinking
IMPROVEMENT
KISS as core thinking
•

Simple workflow	


•

Faster development	


•

Fast Deploy with low memory/cpu consumption	


•

No central DB	


•

All data are stored in 3 places and can be restored from running
machines 	


•

Work as push or pull workflow 	


•

Integrated with VPC DHCP if new DNSCluster is created
DNSCLUSTER 2.0
Flow for DNSCluster Client
DNSCLUSTER 2.0 - MULTI-REGIONS
DNS CLUSTER
PERFORMANCE
DNSCLUSTER PERFORMANCE
Queries per second / Concurrency
2500

2000

AWS DNS
DNSCLUSTER 1 node (1 cpu core –
ec2.x1.small)

1500
QPS

UNBOUND local cache (forwarders: 3
dnscluster nodes – 3 x ec2.x1.small) 1
pass – 1 unbound thread
UNBOUND local cache (forwarders: 3
dnscluster nodes – 3 x ec2.x1.small) 2
pass – from cache – 1 unbound threads

1000

UNBOUND local cache (forwarders: 3
dnscluster nodes – 3 x ec2.x1.small) 2
pass – from cache – 2 unbound threads

500

0
1

500
Concurrency

1000
DNSCLUSTER PERFORMANCE
0.12

Latency / Concurrency

0.1

AWS DNS
DNSCLUSTER 1 node (1 cpu core –
ec2.x1.small)

Latensy [seconds]

0.08

UNBOUND local cache (forwarders: 3
dnscluster nodes – 3 x ec2.x1.small) 1
pass – 1 unbound thread

0.06

UNBOUND local cache (forwarders: 3
dnscluster nodes – 3 x ec2.x1.small) 2
pass – from cache – 1 unbound threads

0.04

UNBOUND local cache (forwarders: 3
dnscluster nodes – 3 x ec2.x1.small) 2
pass – from cache – 2 unbound threads

0.02

0
1

500
Concurrency

1000
SOON / NEXT TIME ?
Ansible Universal Template Flow
Created @ Base for simple consistent create/destroy instances

Monitoring and Alerting
second element for our auto scaling
THE END

More Related Content

What's hot

Apache Kafka - Martin Podval
Apache Kafka - Martin PodvalApache Kafka - Martin Podval
Apache Kafka - Martin PodvalMartin Podval
 
Do more with Galera Cluster in your OpenStack cloud
Do more with Galera Cluster in your OpenStack cloudDo more with Galera Cluster in your OpenStack cloud
Do more with Galera Cluster in your OpenStack cloudphilip_stoev
 
Docker for Ops: Docker Networking Deep Dive, Considerations and Troubleshooti...
Docker for Ops: Docker Networking Deep Dive, Considerations and Troubleshooti...Docker for Ops: Docker Networking Deep Dive, Considerations and Troubleshooti...
Docker for Ops: Docker Networking Deep Dive, Considerations and Troubleshooti...Docker, Inc.
 
Lessons from managing a Pulsar cluster (Nutanix)
Lessons from managing a Pulsar cluster (Nutanix)Lessons from managing a Pulsar cluster (Nutanix)
Lessons from managing a Pulsar cluster (Nutanix)StreamNative
 
Integrating Apache Pulsar with Big Data Ecosystem
Integrating Apache Pulsar with Big Data EcosystemIntegrating Apache Pulsar with Big Data Ecosystem
Integrating Apache Pulsar with Big Data EcosystemStreamNative
 
Micro services infrastructure with AWS and Ansible
Micro services infrastructure with AWS and AnsibleMicro services infrastructure with AWS and Ansible
Micro services infrastructure with AWS and AnsibleBamdad Dashtban
 
Scylla Summit 2016: Outbrain Case Study - Lowering Latency While Doing 20X IO...
Scylla Summit 2016: Outbrain Case Study - Lowering Latency While Doing 20X IO...Scylla Summit 2016: Outbrain Case Study - Lowering Latency While Doing 20X IO...
Scylla Summit 2016: Outbrain Case Study - Lowering Latency While Doing 20X IO...ScyllaDB
 
"High-load is at the intersection of DevOps and PHP development",
"High-load is at the intersection of DevOps and PHP development", "High-load is at the intersection of DevOps and PHP development",
"High-load is at the intersection of DevOps and PHP development", Fwdays
 
Kafka as a message queue
Kafka as a message queueKafka as a message queue
Kafka as a message queueSoftwareMill
 
Kafka Tutorial: Advanced Producers
Kafka Tutorial: Advanced ProducersKafka Tutorial: Advanced Producers
Kafka Tutorial: Advanced ProducersJean-Paul Azar
 
Integrating Puppet with Cloud Infrastructures-Remco Overdijk
Integrating Puppet with Cloud Infrastructures-Remco OverdijkIntegrating Puppet with Cloud Infrastructures-Remco Overdijk
Integrating Puppet with Cloud Infrastructures-Remco OverdijkMaxServ
 
DockerCon 18 docker storage
DockerCon 18 docker storageDockerCon 18 docker storage
DockerCon 18 docker storageDaniel Finneran
 
DNSSEC in Windows DNS Server
DNSSEC in Windows DNS ServerDNSSEC in Windows DNS Server
DNSSEC in Windows DNS ServerKumar Ashutosh
 
Understanding DNSSEC in Windows DNS Server
Understanding DNSSEC in Windows DNS Server Understanding DNSSEC in Windows DNS Server
Understanding DNSSEC in Windows DNS Server Kumar Ashutosh
 

What's hot (18)

Apache Kafka - Martin Podval
Apache Kafka - Martin PodvalApache Kafka - Martin Podval
Apache Kafka - Martin Podval
 
Kafka blr-meetup-presentation - Kafka internals
Kafka blr-meetup-presentation - Kafka internalsKafka blr-meetup-presentation - Kafka internals
Kafka blr-meetup-presentation - Kafka internals
 
ES & Kafka
ES & KafkaES & Kafka
ES & Kafka
 
Do more with Galera Cluster in your OpenStack cloud
Do more with Galera Cluster in your OpenStack cloudDo more with Galera Cluster in your OpenStack cloud
Do more with Galera Cluster in your OpenStack cloud
 
Docker for Ops: Docker Networking Deep Dive, Considerations and Troubleshooti...
Docker for Ops: Docker Networking Deep Dive, Considerations and Troubleshooti...Docker for Ops: Docker Networking Deep Dive, Considerations and Troubleshooti...
Docker for Ops: Docker Networking Deep Dive, Considerations and Troubleshooti...
 
Lessons from managing a Pulsar cluster (Nutanix)
Lessons from managing a Pulsar cluster (Nutanix)Lessons from managing a Pulsar cluster (Nutanix)
Lessons from managing a Pulsar cluster (Nutanix)
 
Integrating Apache Pulsar with Big Data Ecosystem
Integrating Apache Pulsar with Big Data EcosystemIntegrating Apache Pulsar with Big Data Ecosystem
Integrating Apache Pulsar with Big Data Ecosystem
 
Micro services infrastructure with AWS and Ansible
Micro services infrastructure with AWS and AnsibleMicro services infrastructure with AWS and Ansible
Micro services infrastructure with AWS and Ansible
 
Big data, better networks
Big data, better networksBig data, better networks
Big data, better networks
 
Scylla Summit 2016: Outbrain Case Study - Lowering Latency While Doing 20X IO...
Scylla Summit 2016: Outbrain Case Study - Lowering Latency While Doing 20X IO...Scylla Summit 2016: Outbrain Case Study - Lowering Latency While Doing 20X IO...
Scylla Summit 2016: Outbrain Case Study - Lowering Latency While Doing 20X IO...
 
"High-load is at the intersection of DevOps and PHP development",
"High-load is at the intersection of DevOps and PHP development", "High-load is at the intersection of DevOps and PHP development",
"High-load is at the intersection of DevOps and PHP development",
 
Kafka as a message queue
Kafka as a message queueKafka as a message queue
Kafka as a message queue
 
Qts 4.2 presentation
Qts 4.2 presentationQts 4.2 presentation
Qts 4.2 presentation
 
Kafka Tutorial: Advanced Producers
Kafka Tutorial: Advanced ProducersKafka Tutorial: Advanced Producers
Kafka Tutorial: Advanced Producers
 
Integrating Puppet with Cloud Infrastructures-Remco Overdijk
Integrating Puppet with Cloud Infrastructures-Remco OverdijkIntegrating Puppet with Cloud Infrastructures-Remco Overdijk
Integrating Puppet with Cloud Infrastructures-Remco Overdijk
 
DockerCon 18 docker storage
DockerCon 18 docker storageDockerCon 18 docker storage
DockerCon 18 docker storage
 
DNSSEC in Windows DNS Server
DNSSEC in Windows DNS ServerDNSSEC in Windows DNS Server
DNSSEC in Windows DNS Server
 
Understanding DNSSEC in Windows DNS Server
Understanding DNSSEC in Windows DNS Server Understanding DNSSEC in Windows DNS Server
Understanding DNSSEC in Windows DNS Server
 

Similar to Dnscluster @ DevOps Krakow 2013

Apache Performance Tuning: Scaling Out
Apache Performance Tuning: Scaling OutApache Performance Tuning: Scaling Out
Apache Performance Tuning: Scaling OutSander Temme
 
DNS/DNSSEC by Nurul Islam
DNS/DNSSEC by Nurul IslamDNS/DNSSEC by Nurul Islam
DNS/DNSSEC by Nurul IslamMyNOG
 
Cloud stack overview
Cloud stack overviewCloud stack overview
Cloud stack overviewhowie YU
 
AWS Database Services-Philadelphia AWS User Group-4-17-2018
AWS Database Services-Philadelphia AWS User Group-4-17-2018AWS Database Services-Philadelphia AWS User Group-4-17-2018
AWS Database Services-Philadelphia AWS User Group-4-17-2018Bert Zahniser
 
Microsoft Offical Course 20410C_07
Microsoft Offical Course 20410C_07Microsoft Offical Course 20410C_07
Microsoft Offical Course 20410C_07gameaxt
 
AWS re:Invent 2013 Recap
AWS re:Invent 2013 RecapAWS re:Invent 2013 Recap
AWS re:Invent 2013 RecapBarry Jones
 
Implementing Domain Name
Implementing Domain NameImplementing Domain Name
Implementing Domain NameNapoleon NV
 
Signing DNSSEC answers on the fly at the edge: challenges and solutions
Signing DNSSEC answers on the fly at the edge: challenges and solutionsSigning DNSSEC answers on the fly at the edge: challenges and solutions
Signing DNSSEC answers on the fly at the edge: challenges and solutionsAPNIC
 
Hacking apache cloud stack
Hacking apache cloud stackHacking apache cloud stack
Hacking apache cloud stackNitin Mehta
 
Network latency - measurement and improvement
Network latency - measurement and improvementNetwork latency - measurement and improvement
Network latency - measurement and improvementMatt Willsher
 
Performance out
Performance outPerformance out
Performance outJack Huang
 
Performance out
Performance outPerformance out
Performance outJack Huang
 
DockerCon US 2016 - Docker Networking deep dive
DockerCon US 2016 - Docker Networking deep diveDockerCon US 2016 - Docker Networking deep dive
DockerCon US 2016 - Docker Networking deep diveMadhu Venugopal
 
Performance_Out.pptx
Performance_Out.pptxPerformance_Out.pptx
Performance_Out.pptxsanjanabal
 
Performance out
Performance outPerformance out
Performance outJack Huang
 

Similar to Dnscluster @ DevOps Krakow 2013 (20)

Apache Performance Tuning: Scaling Out
Apache Performance Tuning: Scaling OutApache Performance Tuning: Scaling Out
Apache Performance Tuning: Scaling Out
 
DNS/DNSSEC by Nurul Islam
DNS/DNSSEC by Nurul IslamDNS/DNSSEC by Nurul Islam
DNS/DNSSEC by Nurul Islam
 
Cloud stack overview
Cloud stack overviewCloud stack overview
Cloud stack overview
 
6421 b Module-03
6421 b Module-036421 b Module-03
6421 b Module-03
 
AWS Database Services-Philadelphia AWS User Group-4-17-2018
AWS Database Services-Philadelphia AWS User Group-4-17-2018AWS Database Services-Philadelphia AWS User Group-4-17-2018
AWS Database Services-Philadelphia AWS User Group-4-17-2018
 
Microsoft Offical Course 20410C_07
Microsoft Offical Course 20410C_07Microsoft Offical Course 20410C_07
Microsoft Offical Course 20410C_07
 
AWS re:Invent 2013 Recap
AWS re:Invent 2013 RecapAWS re:Invent 2013 Recap
AWS re:Invent 2013 Recap
 
Implementing Domain Name
Implementing Domain NameImplementing Domain Name
Implementing Domain Name
 
2 technical-dns-workshop-day1
2 technical-dns-workshop-day12 technical-dns-workshop-day1
2 technical-dns-workshop-day1
 
Signing DNSSEC answers on the fly at the edge: challenges and solutions
Signing DNSSEC answers on the fly at the edge: challenges and solutionsSigning DNSSEC answers on the fly at the edge: challenges and solutions
Signing DNSSEC answers on the fly at the edge: challenges and solutions
 
Hacking apache cloud stack
Hacking apache cloud stackHacking apache cloud stack
Hacking apache cloud stack
 
Network latency - measurement and improvement
Network latency - measurement and improvementNetwork latency - measurement and improvement
Network latency - measurement and improvement
 
Performance out
Performance outPerformance out
Performance out
 
Performance out
Performance outPerformance out
Performance out
 
DockerCon US 2016 - Docker Networking deep dive
DockerCon US 2016 - Docker Networking deep diveDockerCon US 2016 - Docker Networking deep dive
DockerCon US 2016 - Docker Networking deep dive
 
Performance_Out.pptx
Performance_Out.pptxPerformance_Out.pptx
Performance_Out.pptx
 
2 7
2 72 7
2 7
 
Performance out
Performance outPerformance out
Performance out
 
Performance out
Performance outPerformance out
Performance out
 
Performance out
Performance outPerformance out
Performance out
 

Recently uploaded

Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
Landscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdfLandscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdfAarwolf Industries LLC
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesManik S Magar
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#Karmanjay Verma
 
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)Mark Simos
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationKnoldus Inc.
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPathCommunity
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkPixlogix Infotech
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
A Glance At The Java Performance Toolbox
A Glance At The Java Performance ToolboxA Glance At The Java Performance Toolbox
A Glance At The Java Performance ToolboxAna-Maria Mihalceanu
 
React JS; all concepts. Contains React Features, JSX, functional & Class comp...
React JS; all concepts. Contains React Features, JSX, functional & Class comp...React JS; all concepts. Contains React Features, JSX, functional & Class comp...
React JS; all concepts. Contains React Features, JSX, functional & Class comp...Karmanjay Verma
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructureitnewsafrica
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 

Recently uploaded (20)

Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
Landscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdfLandscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdf
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#
 
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog Presentation
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App Framework
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
A Glance At The Java Performance Toolbox
A Glance At The Java Performance ToolboxA Glance At The Java Performance Toolbox
A Glance At The Java Performance Toolbox
 
React JS; all concepts. Contains React Features, JSX, functional & Class comp...
React JS; all concepts. Contains React Features, JSX, functional & Class comp...React JS; all concepts. Contains React Features, JSX, functional & Class comp...
React JS; all concepts. Contains React Features, JSX, functional & Class comp...
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 

Dnscluster @ DevOps Krakow 2013

  • 1. DevOps Krakow #Meet 1 DNS CLUSTER Automated Internal DNS Service with Amazon VPC integration Sławomir Skowron System Engineer (DevOps Team) slawomir.skowron@getbase.com 2013
  • 3. WHAT IS DNS ? • Domain Name System is hierarchical and distributed naming system • Essentially name service for TCP/IP networks • Allow IP address resolution mechanism • Adds tree based domain name space, • Name space is sub-divides into zones and start with root zone • One of the first NoSQL key-value database
  • 4. NAMESPACE Tree hierarchical structure starting from . (root)
  • 5. ZONES Delegated part of domain name space for administrative responsibility.
  • 6. DOMAIN NAME SERVERS Software on servers that store, manage and serve information about own part of domain namespace called zone Two types of servers: master and slave
  • 7. DNS QUERIES Two type of external queries: Recursive and Iterative • Recursive - querying other servers until positive response • Iterative - add local response (cache, local zone) or give info where to look for it. Cached Queries - DNS Cache - improve latency and throughput
  • 8. DNS AS A SERVICE INSIDE AMAZON CLOUD
  • 9.
  • 10. AMAZON EC2 DNS (VPC) PROBLEMS • Route-53 (right now) is not supporting internal DNS domains • Amazon VPC Internal DNS support only ec2.internal domains • Amazon VPC DHCP in default support only AWS DNS
  • 11. Our own DNS Service
  • 12. USE CASE Our own DNS Service • Available only in LAN and through VPN • Only A and SRV - infrastructure DNS • Resolv local and forward if not exist • No zone transfer, No slaves, No masters • Updates are simple, secure and fast
  • 13. SOLUTION Our own DNS Service • Clustering for High Availability and Performance • Integration with our VPC’s DHPC • Availability in every Amazon Region • Caching • Fully Automated and Integrated with Instance Provisioning • Support for our name space
  • 17. SOLUTION • Puppet 3 as Configuration Management solution • Puppet Hiera, PuppetDB integration • TheForeman - http://theforeman.org/ • Foreman integrates with BIND • Unbound as DNSCluster core - local zones, forwarder, cache • Git for store zones and versioning
  • 19. WHAT’S WRONG WITH PUPPET ? • Puppet is slow • Hard and slow flow developing with Puppet • Hard to integrate on running machines before puppet. • PuppetDB is ok but it’s not scalable enough • Everything go through Foreman and BIND in our case
  • 21. ANSIBLE Radicaly simple IT orchestration
  • 22. ANSIBLE • Minimal setup - Python + Libs - pip install ansible • Use existing auth (root, sudo) on SSH as default transport or accelerated mode • Ad-hoc operations built in • async, sync and parallel operations • Predictable, easy to expand (plugins, connectors, filters, modules) • Use powerful templates in jinja2 • outputs in json, • configure in yaml
  • 24. ANSIBLE @ BASE • Two months of work all in GIT • 15 playbooks (Universal Flow) • 25 roles • 180 yaml files • 52 template
  • 26. SOLUTION • Ansible • Unbound as DNSCluster core - local zones, forwarder, cache • Git for store zones and versioning • Amazon VPC DHCP integration - under development • ETCD integration - under development
  • 27. KISS Keep it simple, stupid Core Thinking
  • 28. IMPROVEMENT KISS as core thinking • Simple workflow • Faster development • Fast Deploy with low memory/cpu consumption • No central DB • All data are stored in 3 places and can be restored from running machines • Work as push or pull workflow • Integrated with VPC DHCP if new DNSCluster is created
  • 29. DNSCLUSTER 2.0 Flow for DNSCluster Client
  • 30. DNSCLUSTER 2.0 - MULTI-REGIONS
  • 32. DNSCLUSTER PERFORMANCE Queries per second / Concurrency 2500 2000 AWS DNS DNSCLUSTER 1 node (1 cpu core – ec2.x1.small) 1500 QPS UNBOUND local cache (forwarders: 3 dnscluster nodes – 3 x ec2.x1.small) 1 pass – 1 unbound thread UNBOUND local cache (forwarders: 3 dnscluster nodes – 3 x ec2.x1.small) 2 pass – from cache – 1 unbound threads 1000 UNBOUND local cache (forwarders: 3 dnscluster nodes – 3 x ec2.x1.small) 2 pass – from cache – 2 unbound threads 500 0 1 500 Concurrency 1000
  • 33. DNSCLUSTER PERFORMANCE 0.12 Latency / Concurrency 0.1 AWS DNS DNSCLUSTER 1 node (1 cpu core – ec2.x1.small) Latensy [seconds] 0.08 UNBOUND local cache (forwarders: 3 dnscluster nodes – 3 x ec2.x1.small) 1 pass – 1 unbound thread 0.06 UNBOUND local cache (forwarders: 3 dnscluster nodes – 3 x ec2.x1.small) 2 pass – from cache – 1 unbound threads 0.04 UNBOUND local cache (forwarders: 3 dnscluster nodes – 3 x ec2.x1.small) 2 pass – from cache – 2 unbound threads 0.02 0 1 500 Concurrency 1000
  • 34. SOON / NEXT TIME ? Ansible Universal Template Flow Created @ Base for simple consistent create/destroy instances Monitoring and Alerting second element for our auto scaling