Composer is a free and open source dependency manager for PHP. It allows the user to declare the libraries a project depends on and it will manage (install/update) them. it manages packages on a per-project basis, installing them in a directory (e.g. vendor) inside a project and by default, it does not install anything globally. Thus, it is a dependency manager.
N/A
Salt
Score 6.2 out of 10
N/A
Built on Python, Salt is an event-driven automation tool and framework to deploy, configure, and manage complex IT systems. Salt is used to automate common infrastructure administration tasks and ensure that all the components of infrastructure are operating in a consistent desired state.
It can/must be used for any size of software project. Not only provides the best way to control depencies, but also has a strong worldwide community of developers.
Managing heterogeneous environments of large numbers of nodes, especially nodes which may need sudden changes (security updates, for instance), or frequent replacement, is a strength for Saltstack. Simplicity is not a strength for Saltstack. In a homogenous environment (all CentOS 7, for example, with no Debian or Windows) I might recommend using Ansible instead - it is less flexible and granular, but simpler to configure.
A superb remote execution framework! SaltStack allows us to easily program numerous functions on top of it. For example, we developed a fast parallel asynchronous deployment tool that handles all software deployment, including interdependent service management.
Configuration management is now easy. We take advantage of this to automate (in tandem with AWS tools) the stand-up of all servers and services. It is also relatively easy to create new configuration management states for software not yet supported by the community (e.g. Grafana).
Flexibility. Numerous small utilities have been built which simply wrap around SaltStack to allow tedious tasks to become easy.
We haven't had to spend a lot of time talking to support, and we've only had one issue, which, when dealing with other vendors is actually not that bad of an experience.
If you're familiar with npm or Yarn, you'll feel right at home with composer. The work in pretty much the same way. You can use a composer.json file in your repo to reference specific version of public community modules, and enterprise internal ones. You can also hook some scripts that you would want to execute, like for testing, building your code ...
I've used shell scripts over ssh, custom in-house deployment tools, Chef, and SaltStack. I've evaluated Ansible, but I was never happy with performance over SSH. Chef's loose configuration data model and lack of philosophy and conventions around use makes it difficult for a team to share responsibility for configuration code. Needing to use additional tools to do orchestration for cross-host/agent dependency relationships made me look for more. SaltStack, while not as mature when I first tried it, impressed me with its speed and elegant design
Helped us reduce the TTM of our ecommerce factory by about 40% since we adopted it
Code re-usability became the norm, and thus much shorter development cycles
New websites go live much faster, and thus cost way less money to make when reusing composer modules (SSO, CRM integration, modules to call Internal APIs ...)