Configuration Management and Deployment
‫اطالعات‬ ‫فناوری‬ ‫خودکارسازی‬
‫پیکربندی‬ ‫مدیریت‬ ‫و‬ ‫توسعه‬
‫دوست‬ ‫بستان‬ ‫سعید‬
‫افزار‬ ‫نرم‬ ‫و‬ ‫شبکه‬ ‫امنیت‬ ‫متخصص‬ ‫و‬ ‫افزار‬ ‫نرم‬ ‫کارشناس‬
‫ابری‬ ‫رایانش‬ ‫و‬ ‫شده‬ ‫توزیع‬ ‫‌های‬‫م‬‫سیست‬ ،‫داده‬ ‫مرکز‬
ssbostan@hackermail.com
www.bostandoust.ir
We are here!
DevOps Lifecycle
I have no more hands to manage your infrastructure!
Who can manage 500 servers simultaneously?
From Development to Production:
Infrastructure as Code (IaC)
●
Write codes to manage and provision Bare-metals, VMs and Containers.
●
No direct interacts with servers.
●
No manual configurations.
●
Automate build, deploy and management.
●
Prevent from human mistakes.
●
Super-fast updates and rollbacks.
●
Join with DevOps lifecycle.
IaC Approaches
Imperative(procedural):
●
Step-by-Step Configuration
●
Classic Approach
●
Using Scripting Languages
●
Hard to manage
Declarative(functional):
●
Final state is described
●
Modern Approach
●
Using IT Automation Tools
●
Easy to manage
IaC Methods
Comparison
Ease of Setup
Ansible Install on master node, Agent-less, No additional configurations.
CFEngine Master-Agent model, Need to install CF Agent on clients.
CHEF Master-Agent model, Need to install CHEF Client on clients.
Juju Need to install Juju Client on clients.
Puppet Master-Agent model, Need to install Puppet Client on clients.
SaltStack Master-Agent model, Clients are called Minions.
Terraform Install on master node, Agent-less, Using Cloud APIs.
Ease of Use and Learning
Ansible Easy to learn, IaC writes in YAML format.
CFEngine Not easy to learn, IaC writes in CFEngine DSL format.
CHEF Not easy to learn, IaC writes in Ruby DSL format.
Juju Easy to learn, YAML format and free GUI interface.
Puppet Not easy to learn, IaC writes in Puppet DSL format.
SaltStack Easy to learn, IaC writes in YAML format.
Terraform Not easy to learn, IaC writes in HCL format or optionally in JSON.
IaC Approaches and Methods
Ansible Declarative/Imperative Push/Pull
CFEngine Declarative Pull
CHEF Declarative/Imperative Pull
Juju Declarative Pull
Puppet Declarative Pull
SaltStack Declarative/Imperative Push/Pull
Terraform Declarative Push
Platform Support
Ansible AIX, BSD, Linux, OS X, Solaris, Windows, Cloud, VMs, Containers
CFEngine AIX, BSD, Linux, Solaris, Windows, Others
CHEF AIX, BSD, Linux, OS X, Solaris, Windows, Cloud, Others
Juju Linux, Windows
Puppet AIX, BSD, Linux, OS X, Solaris, Windows, Others
SaltStack AIX, BSD, Linux, OS X, Solaris, Windows
Terraform OpenStack, AWS, Azure, Google, IBM, Oracle, VMware
Language and License
Ansible Python GPLv3+
CFEngine C GPLv3+
CHEF Ruby, Erlang Apache 2.0
Juju Python, Go AGPL
Puppet C++, Clojure, Ruby Apache 2.0
SaltStack Python Apache 2.0
Terraform Go MPL 2.0
‫‌کنم؟‬‫ی‬‫م‬ ‫استفاده‬ ‫چی‬ ‫من‬
Thanks for your attention.
bostandoust.ir

Configuration Management Tools

  • 2.
    Configuration Management andDeployment ‫اطالعات‬ ‫فناوری‬ ‫خودکارسازی‬ ‫پیکربندی‬ ‫مدیریت‬ ‫و‬ ‫توسعه‬
  • 3.
    ‫دوست‬ ‫بستان‬ ‫سعید‬ ‫افزار‬‫نرم‬ ‫و‬ ‫شبکه‬ ‫امنیت‬ ‫متخصص‬ ‫و‬ ‫افزار‬ ‫نرم‬ ‫کارشناس‬ ‫ابری‬ ‫رایانش‬ ‫و‬ ‫شده‬ ‫توزیع‬ ‫‌های‬‫م‬‫سیست‬ ،‫داده‬ ‫مرکز‬ ssbostan@hackermail.com www.bostandoust.ir
  • 4.
  • 5.
    I have nomore hands to manage your infrastructure! Who can manage 500 servers simultaneously?
  • 6.
  • 7.
    Infrastructure as Code(IaC) ● Write codes to manage and provision Bare-metals, VMs and Containers. ● No direct interacts with servers. ● No manual configurations. ● Automate build, deploy and management. ● Prevent from human mistakes. ● Super-fast updates and rollbacks. ● Join with DevOps lifecycle.
  • 8.
    IaC Approaches Imperative(procedural): ● Step-by-Step Configuration ● ClassicApproach ● Using Scripting Languages ● Hard to manage Declarative(functional): ● Final state is described ● Modern Approach ● Using IT Automation Tools ● Easy to manage
  • 9.
  • 10.
  • 11.
    Ease of Setup AnsibleInstall on master node, Agent-less, No additional configurations. CFEngine Master-Agent model, Need to install CF Agent on clients. CHEF Master-Agent model, Need to install CHEF Client on clients. Juju Need to install Juju Client on clients. Puppet Master-Agent model, Need to install Puppet Client on clients. SaltStack Master-Agent model, Clients are called Minions. Terraform Install on master node, Agent-less, Using Cloud APIs.
  • 12.
    Ease of Useand Learning Ansible Easy to learn, IaC writes in YAML format. CFEngine Not easy to learn, IaC writes in CFEngine DSL format. CHEF Not easy to learn, IaC writes in Ruby DSL format. Juju Easy to learn, YAML format and free GUI interface. Puppet Not easy to learn, IaC writes in Puppet DSL format. SaltStack Easy to learn, IaC writes in YAML format. Terraform Not easy to learn, IaC writes in HCL format or optionally in JSON.
  • 13.
    IaC Approaches andMethods Ansible Declarative/Imperative Push/Pull CFEngine Declarative Pull CHEF Declarative/Imperative Pull Juju Declarative Pull Puppet Declarative Pull SaltStack Declarative/Imperative Push/Pull Terraform Declarative Push
  • 14.
    Platform Support Ansible AIX,BSD, Linux, OS X, Solaris, Windows, Cloud, VMs, Containers CFEngine AIX, BSD, Linux, Solaris, Windows, Others CHEF AIX, BSD, Linux, OS X, Solaris, Windows, Cloud, Others Juju Linux, Windows Puppet AIX, BSD, Linux, OS X, Solaris, Windows, Others SaltStack AIX, BSD, Linux, OS X, Solaris, Windows Terraform OpenStack, AWS, Azure, Google, IBM, Oracle, VMware
  • 15.
    Language and License AnsiblePython GPLv3+ CFEngine C GPLv3+ CHEF Ruby, Erlang Apache 2.0 Juju Python, Go AGPL Puppet C++, Clojure, Ruby Apache 2.0 SaltStack Python Apache 2.0 Terraform Go MPL 2.0
  • 16.
  • 17.
    Thanks for yourattention. bostandoust.ir