1
Ансамбль солёных поваров:
сравниваем Ansible, SaltStack и
ChefSCM in a nutshell with some practice toppings
May, 2017
2
Andriy Filatov
 Automation addict
 CI/CD junkie
 DevOps evangelist
Andriy Filatov
EPAM Systems, Lead System Engineer
3
Andriy Filatov
Andriy Filatov
EPAM Systems, Lead System Engineer
4
• Intro
• SCM in a nutshell
• Ansible
• Chef
• Salt-Stack
• A piece of Practice
• Salt-Stack
• Chef
• Ansible
• Outro
Agenda
5
SCM IN A NUTSHELL
6
SCM in a Nutshell
State X State Y
7
SCM in a Nutshell
8
• Repeatedness and consistency
• Extends CI/CD Process
• Version controlled
• Easy to support and evolve
• Full automation
SCM in a Nutshell
9
SIMPLE. POWERFUL. AGENTLESS.
App deployment, configuration management and orchestration - all
from one system. Ansible is powerful IT automation that you can
learn quickly.
• Agentless architecture
• Written on Python
• Yaml-like DSL
• Easily extensible
• Very simple and lightweight
SCM in a Nutshell
Ansible
10
SCM in a Nutshell: Ansible
11
THINK IT TO SHIP IT.
The Chef server is the highly scalable foundation of the Chef
automation platform. Create a flexible, dynamic infrastructure
across multiple datacenters, public and private clouds, and in
heterogeneous environments.
• Client-Server Architecture
• Search-base Configuration
• Written on Ruby
• Ruby DSL
• Giant community and tools
SCM in a Nutshell
Chef
12
SCM in a Nutshell: Chef
13
SPEED + SCALE + FLEXIBILITY + EFFICIENCY
Automation for enterprise IT ops, event-driven data center
orchestration and the most flexible configuration management
for DevOps at scale.
• Agent or agentless architecture
• Real-time automation
• Parallel remote execution
• Written on Python
• Yaml-like DSL
SCM in a Nutshell
Salt-Stack
14
SCM in a Nutshell: SaltStack
15
A PIECE OF PRACTICE
16
A piece of Practice
17
• MultiMaster Performance Issues
• Runners vs Modules
• Cache mine
A piece of Practice: SaltStack
SaltStack in real life
18
A piece of Practice: SaltStack
19
• MultiMaster Performance Issues
• Runners vs Modules
• Cache mine
• Race condition & Orchestrate
A piece of Practice: SaltStack
SaltStack in real life
20
A piece of Practice: SaltStack
https://github.com/saltstack/salt/issues/18564
21
A piece of Practice: SaltStack
SaltStack
Maturity
Simplicity
Customizability
Tooling
Community
⭐️⭐️⭐️
⭐️⭐️
⭐️⭐️⭐️⭐️⭐️
⭐️⭐️
⭐️⭐️⭐️
22
• Search is slow
A piece of Practice: Chef
Chef in real life
23
A piece of Practice: Chef
24
A piece of Practice: Chef
• Use proper naming convention
• Run search once for all nodes and users
• Use ruby to filter results when they needed
25
• Search is slow
• node.save is not save to use!
• No splay can kill your chef-server
A piece of Practice: Chef
Chef in real life
26
A piece of Practice: Chef
Chef
Maturity
Simplicity
Customizability
Tooling
Community
⭐️⭐️⭐️⭐️⭐️
⭐️⭐️⭐️⭐️
⭐️⭐️⭐️⭐️
⭐️⭐️⭐️⭐️⭐️
⭐️⭐️⭐️⭐️⭐️
27
• Use ‘accelerate’ and ‘pipelining’
• Optimize your runs using ‘with_items’
• Use ‘local_action’ and ‘delegated’ wisely
• Optimize your roles and runs with tags
A piece of Practice: Ansible
Ansible in real life
28
Conclusions
Ansible
Maturity
Simplicity
Customizability
Tooling
Community
⭐️⭐️⭐️⭐️
⭐️⭐️⭐️⭐️⭐️
⭐️⭐️⭐️⭐️
⭐️⭐️⭐️
⭐️⭐️⭐️⭐️
29
CONCLUSIONS
30
Conclusions
Salt-Stack Chef Ansible
Maturity ⭐️⭐️⭐️ ⭐️⭐️⭐️⭐️⭐️ ⭐️⭐️⭐️⭐️
Simplicity ⭐️⭐️ ⭐️⭐️⭐️⭐️ ⭐️⭐️⭐️⭐️⭐️
Customizability ⭐️⭐️⭐️⭐️⭐️ ⭐️⭐️⭐️⭐️ ⭐️⭐️⭐️⭐️
Tooling ⭐️⭐️ ⭐️⭐️⭐️⭐️⭐️ ⭐️⭐️⭐️
Community ⭐️⭐️⭐️ ⭐️⭐️⭐️⭐️⭐️ ⭐️⭐️⭐️⭐️
31
Conclusions
32
CONTACT ME
andriy_filatov@epam.com
lincore
dvl.lincore
dvl_lincore

#ITsubbotnik Spring 2017: Andriy Filatov "Ансамбль солёных поваров: сравниваем Ansible, SaltStack и Chef"