README.txt 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. =============
  2. What is Salt?
  3. =============
  4. .. image:: https://secure.travis-ci.org/saltstack/salt.png?branch=develop
  5. :target: http://travis-ci.org/saltstack/salt
  6. .. rubric:: We’re not just talking about NaCl.
  7. Distributed Remote Execution
  8. ============================
  9. Salt is a distributed remote execution system used to execute commands and
  10. query data. It was developed in order to bring the best solutions found in the
  11. world of remote execution together and make them better, faster and more
  12. malleable. Salt accomplishes this via its ability to handle larger loads of
  13. information, and not just dozens, but hundreds, or even thousands of individual
  14. servers. It handles them quickly and through a simple yet manageable interface.
  15. Simplicity
  16. ==========
  17. Versatility between massive scale deployments and smaller systems may seem
  18. daunting, but Salt is very simple to set up and maintain, regardless of the
  19. size of the project. The architecture of Salt is designed to work with any
  20. number of servers, from a handful of local network systems to international
  21. deployments across disparate data centers. The topology is a simple
  22. server/client model with the needed functionality built into a single set of
  23. daemons. While the default configuration will work with little to no
  24. modification, Salt can be fine-tuned to meet specific needs.
  25. Granular Controls
  26. =================
  27. Salt also introduces powerful granular controls to the realm of remote execution.
  28. By default, commands are executed in parallel. However, using more advanced
  29. options, commands can be executed in batch groups or even in serial. By using
  30. simple built-in filters or regular expression matching, systems can be targeted by
  31. hostname, metadata or system properties such as number of cpus or OS type.
  32. Building on Proven Technology
  33. =============================
  34. Salt takes advantage of a number of technologies and techniques. The networking
  35. layer is built with the excellent `ZeroMQ`_ networking library. Salt itself
  36. contains a viable, and transparent, ZeroMQ broker inside the daemon. Salt uses
  37. public keys for authentication with the master daemon, then uses faster AES
  38. encryption for payload communication. This means that authentication and
  39. encryption are also built into Salt. Salt takes advantage of communication via
  40. the most excellent `msgpack`_ library, enabling fast and light network traffic.
  41. .. _`ZeroMQ`: http://zeromq.org/
  42. .. _`msgpack`: http://msgpack.org/
  43. Python Client Interface
  44. =======================
  45. Salt execution routines can be written as plain Python modules and the data
  46. collected from execution can be sent back to the master server, or any
  47. arbitrary program. Salt can be called from a simple Python API, or from the
  48. command line. This makes it easy to execute one-off commands as well as
  49. operate as an integral part of a larger application.
  50. Fast, Flexible, Scalable, Secure
  51. ================================
  52. The result is a system that can execute commands across groups of
  53. varying size, from very few to very many servers at considerably high
  54. speed. We consider speed to be a feature, not an afterthought. Salt’s
  55. unique architecture brings together the best of the remote execution
  56. world, amplifies its capabilities and expands its range, resulting in
  57. this system that is as versatile as it is practical. Last but not least,
  58. security is an intrinsic part of Salt and something not just
  59. influencing how source code is written and how tests are done, but
  60. also something that defines the overall architecture and has heavy
  61. influence on the core design tenets.
  62. Open
  63. ====
  64. Salt is developed under the `Apache 2.0 license`_, and can be used for
  65. open and proprietary projects. Please submit your expansions back to
  66. the Salt project so that we can all benefit together as Salt grows.
  67. Finally, please sprinkle some Salt around your systems and let the
  68. deliciousness come forth.
  69. .. _`Apache 2.0 license`: http://www.apache.org/licenses/LICENSE-2.0.html