Multinational company Perforce, headquartered in Alameda, California offers a version control and peer code review solution. Perforce version control is built around Helix Core with add-on products for code review (Helix Swarm) for free, and add Git support products (Helix4Git and Helix TeamHub). The original Perforce SCM solution was expanded via the Surround SCM, a software configuration management application which was developed by Seapine Software and now owned by Perforce since that…
N/A
VMware Aria Automation
Score 8.8 out of 10
N/A
VMware Aria Automation (formerly vRealize Automation) is an infrastructure automation platform that enables private and multi-cloud environments on VMware Cloud infrastructure.
While Perforce Helix is the best version control software out there, it can also be used to track your documentation, training videos and materials, and requirements. If you have strict compliance requirements, it can be used to ensure that those requirements are satisfied. Perforce Helix is incredibly flexible and can meet the needs of individual users as well as companies with thousands of users.
SaltStack is a very well architected toolset and framework for reliably managing distributed systems' complexity at varied scale. If the diversity of kind or number of assets is low, or the dependencies are bounded and simple, it might be overkill. Realization that you need SaltStack might come in the form of other tools, scripts, or jobs whose code has become difficult, unreliable, or unmaintainable. Rather than a native from-scratch SaltStack design, be aware that SaltStack can be added on to tools like Docker or Chef and optionally factor those tools out or other tools into the mix.
The branching mechanisms in Perforce allow for an enormous codebase to be duplicated into release versions weekly with little impact upon things such as the speed of queries against the version control.
Action triggers permit such things as automated builds of software versions, dynamic messaging when issues are identified either within or prior to a build process, and much more.
Locking provides the ability to prevent modifications of stable, tested versions in order to ensure validity when they are released.
Targeting is easy and yet extremely granular - I can target machines by name, role, operating system, init system, distro, regex, or any combination of the above.
Abstraction of OS, package manager and package details is far advanced beyond any other CRM I have seen. The ability to set one configuration for a package across multiple distros, and have it apply correctly no matter the distrospecific naming convention or package installation procedure, is amazing.
Abstraction of environments is similarly valuable - I can set a firewall rule to allow ssh from "management", and have that be defined as a specific IP range per dev, test, and prod.
Perforce tends to feel backwards in how it approaches certain tasks, like branching and integrating - even once you figure out how it wants you to perform these tasks, you will likely forget when it comes around to the next time you need to do them again.
Perforce has a higher price tag, comparatively.
Perforce make some tasks very easy, and yet other tasks very difficult - it doesn't always seem to have found its target user's proficiency.
We are fully committed to our use of Perforce. It works well within our organization and our desire to share our code base with our customers. Their support staff are responsive, inquisitive, and eager to improve their software. I feel like we have a direct line to their design/feature team as they often solicit our feedback.
With Perforce Helix, you can use it via the command line, via P4V, or any of the other APIs included with the product. It is extremely easy for new users to get up and running. Users of Perforce Helix only have to pull in the files of interest to them. Also, Perforce is very easy to script and integrate into your CI/CD pipeline. Streams allows you to have pinpoint control of your workflow, and P4Search is the absolute best--I wish Perforce (the company) would talk more about this. It is absolutely fabulous!
In our large environment, Perforce is rarely "down". We have regular maintenance windows and from time to time Perforce can feel a little slow, but its always available. Tech support has always worked with our engineers and IT department to make sure that any real performance or stability issues are addressed quickly.
I had two representatives from Perforce contact me after downloading it but never responded when I had questions. I also had a difficult time finding good training material for getting started. There is a lot of available support material when running into issues, though, because of how many large companies use it.
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.
This rating is related to setting up an environment from an existing Perforce repository. Initial setup of Perforce as the repository for the company was done by a separate team long prior to my inception.
Perforce has a better built native visual client that is much simpler to use than Git's. It has a lot of optimizations in the workflow that can execute common patterns during a usual workday. Perforce also has an easier to understand method of presenting merge conflicts and does a better overall job of handling merges.
We moved to SaltStack from Puppet about 3 years ago. Puppet just has too much of a learning curve and we inherited it from an old IT regime. We wanted something we could start fresh with. Our team has never looked back. SaltStack is so much easier for us to use and maintain.
We manage two complex highly available self-healing (all infrastructure and systems) environments using SaltStack. Only one person is needed to run SaltStack. That is a HUGE return on investment.
Building tooling on top of SaltStack has allowed us to share administrative abilities by role - e.g. employee X can deploy software Y. No need to call a sysadmin and etc.
Recovery from problems, or time to stand-up new systems is now counted in minutes (usually under eight) rather than hours. This is a strategic advantage for rolling out new services.