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
Ansible
Score 8.8 out of 10
N/A
The Red Hat Ansible Automation Platform (acquired by Red Hat in 2015) is a foundation for building and operating automation across an organization. The platform includes tools needed to implement enterprise-wide automation, and can automate resource provisioning, and IT environments and configuration of systems and devices. It can be used in a CI/CD process to provision the target environment and to then deploy the application on it.
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.
Ansible and AAP is well suited for orchestrating over many platforms. Its agentless architecture makes it ideal for infrastructure that cannot support an agent. It has a strong module library for the most common products, services, and platforms. It is by far the best language for anyone new to coding or automation to jump in and quickly get to a productive state. While AAP is capable of automating nearly anything, there are still advantages of using other platforms in its place. For example, Chef has been valuable for server automation because of the availability of existing cookbooks. For systems that can run an agent, having the individual nodes perform their own checks can scale a little better than the centralized model of AAP. But running an agent also means the potential risk of resource over utilization.
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.
Makes it easy to create and share automation in one central hub.
Ansible content collections give me the ability to reuse code, making it rapid to carry out complex IT processes.
Event-driven automation allows me to reduce manual tasks: it is rapid to know which action to take and respond automatically by receiving events from external apps automatically.
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.
Ansible Tower is a paid service, which can be annoying at times. But that is understandable, as it requires an additional level of support from the Ansible team to develop.
There is a decently large learning curve for someone not familiar with setting up Unix environments. However, there is a very large support community with tons of documentation, so it's not a dealbreaker.
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.
Out of the box, Ansible can be slow over a bad connection, as it's establishing an SSH connection to the target server for each little task. There are some adjustments you can make to the defaults that greatly improve performance. And if you run Ansible on the same network as the target (i.e. by using a jump box or Jenkins server), then it can be crazy fast. I'd give it a 10 for speed except that it does require these adjustments first.
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.
There is a lot of good documentation that Ansible and Red Hat provide which should help get someone started with making Ansible useful. But once you get to more complicated scenarios, you will benefit from learning from others. I have not used Red Hat support for work with Ansible, but many of the online resources are helpful.
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.
AAP doesn't truly stack up against any of the products mentioned except for Aria Automation. But, it is extensible and open and has a lower cost to entry.