Austin based Enthought offers their flagship scientific Python distribution, Canopy. The Canopy Geoscience (or Canopy Geo) variant of the product is a data analysis, exploration and visualization package optimized for geologists & geophysicists, and researchers in petroleum science.
N/A
GoCD
Score 8.0 out of 10
N/A
GoCD, from ThoughtWorks in Chicago, is an application lifecycle management and development tool.
Enthought Canopy is best suites for scripting data analytical concepts. It has a wide range of data analytical libraries and also is good for data visualization. I would not recommend using Enthought Canopy only as an IDE, there may be better options available. If you're looking for a good data simulation & visualization package, Canopy it is.
Previously, our team used Jenkins. However, since it's a shared deployment resource we don't have admin access. We tried GoCD as it's open source and we really like. We set up our deployment pipeline to run whenever codes are merged to master, run the unit test and revert back if it doesn't pass. Once it's deployed to the staging environment, we can simply do 1-click to deploy the appropriate version to production. We use this to deploy to an on-prem server and also AWS. Some deployment pipelines use custom Powershell script for.Net application, some others use Bash script to execute the docker push and cloud formation template to build elastic beanstalk.
Providing scientific libraries, both open source and Enthought's own libraries which are excellent.
Training. They provide several courses in python for general use and for data analysis.
Debugging tools. Several IDEs provides tools for debugging, but I think they are insufficient or too general. Canopy has a special debugging tool, specially design for python.
Pipeline-as-Code works really well. All our pipelines are defined in yml files, which are checked into SCM.
The ability to link multiple pipelines together is really cool. Later pipelines can declare a dependency to pick up the build artifacts of earlier ones.
Agents definition is really great. We can define multiple different kinds of environments to best suit our diverse build systems.
Before Canopy with its python we were working with Matlab. We decided for Canopy against Matlab for two reasons: First, we believe that python together with NumPy or SciPy can achieve the objectives with less code and therefore less training, and second the prizes are much lower than matlab which is most robust, expensive and less intuitive. It's clear we are making the comparison with python and it has nothing to with canopy. But with Canopy you feel you have all those tools close together without the problem of configuration, besides a lot of personalized libraries that complements a typical python environment.
GoCD is easier to setup, but harder to customize at runtime. There's no way to trigger a pipeline with custom parameters.
Jenkins is more flexible at runtime. You can define multiple user-provided parameters so when user needs to trigger a build, there's a form for him/her to input the parameters.
Settings.xml need to be backed up periodically. It contains all the settings for your pipelines! We accidentally deleted before and we have to restore and re-create several missing pipelines
More straight forward use of API and allows filtering e.g., pull all pipelines triggered after this date