10个 Devops 工具用于基础设施自动化

jopen 9年前

10个 Devops 工具用于基础设施自动化

 

Devops Tools for Infrastructure Automation

There are many tools available for infrastructure automation. Which tool to be used is decided by the architecture and needs of your infrastructure. We have listed few great tools below which come under various categories like configuration management, orchestration, continuous integration , monitoring , etc,.

1. Chef:

Chef is a ruby based configuration management tool. You might have come across the term ” infrastructure as code”, which means configuration management. Chef has the concept of cookbooks where you code your infrastructure in DSL (domain specific language) and with a little bits of programming. Chef provisions virtual machines and configures them according to the rules mentioned in the cookbooks. An agent would be running on all the servers which have to be configured . The agent will pull the cookbooks from the chef master server and runs those configurations on the server to reach its desired state.

2. Puppet:

Puppet is also a ruby based configuration management tool like chef. The configuration code is written using puppet DSL’s and wrapped in modules. While chef cookbooks are more developer centric while puppet is developed by keeping system administrators in mind. Puppet runs a puppet agent on all server to be configured and it pulls the compiled module from the puppet server and installs required software packages specified in the module.

3. Saltstack:

Saltstack is a python based opens configuration  management tool. Unlike chef and puppet , Saltstack supports remote execution of commands. Normally in chef and puppet , the code for configuration will be pulled from the server, while in Saltstack , the code can be pushed to many nodes simultaneously. Compilation of code and configuration is very fast in Saltstack.

4. Ansible:

Ansible is an agent-less configuration management as well as orchestration tool. In Ansible the configuration modules are called “Playbooks”. Playbooks are written in YAML format and it is relatively easy to write when compared to other configuration management tools. Like other tools , Ansible can be used for cloud provisioning.

5.Juju:

Juju  is a python based  orchestration tool developed by canonical. It has a great UI for orchestrating your applications in your cloud environments. You can also use their command line interface to do all the orchestration tasks.You can configure, deploy and scale applications using Juju.

6. Jenkins:

Jenkins is a java based continuous integration tool for faster delivery of applications. Jenkins has to be associated with a version control system like github or SVN. Whenever new code is pushed to a code repository , Jenkins server will build and test the new code and notifies the team for with the results and changes.

7. Vagrant:

Vagrant is a great tool for configuring virtual machines for a development environment. Vagrant runs on top of VM solutions like virtual box and vagrant. It uses a configuration file called Vagrantfile , which contains all the configurations needed for the VM.  Once a virtual machine is created, it can be shared with other developers to have the same development environment. vagrant has plugins for cloud provisioning, Configuration management tools (chef, puppet etc,) , and  Docker.

8. Docker:

Docker is an automation tool built on top of Linux containers (LXC). It works on the concept of process level virtualization. Docker creates isolated environments for applications called containers. These containers can be shipped to any other server without making changes to the application. Docker is considered to be the next step in virtualization. Docker has a huge developer community and it is gaining huge popularity among Devops practitioners and pioneers in cloud computing.

9. New Relic:

New relic is a cloud based (SaaS) solution of application monitoring . It support monitoring of various applications like Php, Ruby, Java, NodeJS etc. It gives you the real time insights about your running application. A new relic agent should be configured in your application to get the real time data. New relic uses various metrics to provide valuable insights about the application it is monitoring.

10. Sensu:

Sensu is a open source monitoring framework written in Ruby. Sensu is a monitoring tool specifically build fro cloud environments. It can be easily deployed using tools like chef and puppet. Sensu also has an enterprise edition for monitoring.

来自:http://devopscube.com/devops-tools-for-infrastructure-automation/