Codeship vs Docker: What are the differences?
Codeship: A Continuous Integration Platform in the cloud. Codeship runs your automated tests and configured deployment when you push to your repository. It takes care of managing and scaling the infrastructure so that you are able to test and release more frequently and get faster feedback for building the product your users need; Docker: Enterprise Container Platform for High-Velocity Innovation. The Docker Platform is the industry-leading container platform for continuous, high-velocity innovation, enabling organizations to seamlessly build and share any application — from legacy to what comes next — and securely run them anywhere.
Codeship and Docker are primarily classified as "Continuous Integration" and "Virtual Machine Platforms & Containers" tools respectively.
Some of the features offered by Codeship are:
- Run you automated tests | Easily set up Codeship with Github or Bitbucket and trigger your automated tests with a simple push to your repository.
- 100 builds & 5 private projects free per month.
- Free for OSS.
On the other hand, Docker provides the following key features:
- Integrated developer tools
- open, portable images
- shareable, reusable apps
"Simple deployments", "Easy setup" and "Github integration" are the key factors why developers consider Codeship; whereas "Rapid integration and build up", "Isolation" and "Open source" are the primary reasons why Docker is favored.
Docker is an open source tool with 54K GitHub stars and 15.6K GitHub forks. Here's a link to Docker's open source repository on GitHub.
According to the StackShare community, Docker has a broader approval, being mentioned in 3524 company stacks & 3443 developers stacks; compared to Codeship, which is listed in 277 company stacks and 82 developer stacks.
What is Codeship?
What is Docker?
Need advice about which tool to choose?Ask the StackShare community!
Sign up to add, upvote and see more prosMake informed product decisions
Sign up to get full access to all the companiesMake informed product decisions
Sign up to get full access to all the tool integrationsMake informed product decisions
Working for a web agency, I have access to many premium services for all parts of the development process which leads to two things when it comes to working on my personal projects at home.
1: I am more fussy about the quality of tools and services that I use than I was before I went from just messing around with programming to having a developer job.
2: I really don't want to pay a single fee or any kind of subscription to services as after using them all day at work I find it hard to justify personally paying a premium to use them for a bit of time at home after work.
However with Code ship neither of these things caused any issues as I found it to be very high quality and free.
On the subject of it being free, I know there are other CI solutions that are free however if you wish to use it with a private repository then unless you already have private Github repos then the fact that Code Ship integrates with Bitbucket can be extremely convenient as it means you can set up your personal projects with free private repository and a free CI / testing solution for absolutely free.
Overall Codeship has really impressed me in every way from its pricing to its clean and simple UI and its ease of use.
Docker is the new kid on the block disrupting virtualization nowadays. You're able to save up to 70% of your development cost on AWS (or any other cloud) switching to Docker. For example instead of paying for many small VMs you can spin up a large one with many Docker containers to drastically lower your cost. That alone is only one of the reasons why Docker is the future and it's not even the best feature: isolation, testability, reproducibility, standardization, security, and upgrading / downgrading / application versions to name a few. You can spin up 1000's of Docker containers on an ordinary Laptop, but you would have trouble spinning up 100's of VMs. If you haven't already checked out Docker you're missing out on a huge opportunity to join the movement that will change development/production environments forever
Setting up continuous integration is complex and time consuming. I've used Codeship for 1 year now and I would never go back to previous systems such as self hosted Jenkins for any kind of web applications. The ability to change developer access on a per repository basis with the click of a button is very helpful and integration with all our services such as Github and Heroku make testing and deployment happen in the background so we can concentrate on our application and not worry about what state the live code is in. We also find the Slack integration (and flowdock before that) to be a great way to share the current code status with the whole team without getting spammed with emails on each commit and build state change while testing prototype branches or working on pull-requests.
Like most developers I'd love it if my deployment processes were always the same for every project so I never had to think about deployment. However, that's probably never going to happen unless we stop having clients. Codeship allows me to organize all of my deployments into one place and set them up once so that I don't have to remember the process for every nuance of every client.
Whether it's deploying a Drupal or Wordpress site to a private server, a Meteor.js app to Modulus, or just about anything else Codeship gives me the flexibility of writing my own shell scripts for custom jobs (private server) but also one-click solutions for common problems (deployment to Modulus).
Highly recommend them!
It's not easy to differentiate a CI/CD service because integrations matter so much more than the service itself. Didn't even need to read any docs, it just works exactly as you expect it to.
- Pipelines for running tests in parallel (freemium).
- Easiest setup of any CI service I've tried.
- Mandatory build status image service.
- Test runners are alright, but not that powerful. Py.test can run tests in parallel on its own, but enabling that feature doesn't seem to speed up Codeship runs.
- Doesn't detect tox environments, so you have to specify one environment per pipeline manually.
I spent half a day grepping CodeShip and now I have a sweet deployment process for WP sites. After a month of wrestling with Bamboo I decided to give CodeShip a try thanks to an article by CodeShip's Roman Kuba about deploying WP sites
I am now killin' WP development with my CodeShip + WPEngine setup. This is also making WP development/deployment fun for the first time. CodeShip f*cking rocks.
The support for macOS is a fake.
I can't work with docker in macOS because de network and comunications with the container don't works correctly.
Currently experimenting. The idea is to isolate any services where I'm not confident yet in their security/quality. The hope is that if there is an exploit in a given service that an attacker won't be able break out of the docker container and cause damage to my systems.
An example of a service I would isolate in a docker container would be a minecraft browser map application I use. I don't know who wrote it, I don't know who's vetting it, I don't know the source code. I would feel a lot better putting this in a container before I expose it to the internet.
I believe I will follow this process for anything that's not properly maintained (not in an trusted apt-repo or some other sort of confidence)
We are testing out docker at the moment, building images from successful staging builds for all our APIs. Since we operate in a SOA (not quite microservices), developers have a dockerfile that they can run to build the entirety of our api infrastructure on their machines. We use the successful builds from staging to power these instances allowing them to do some more manual integration testing across systems.
Each component of the app was launched in a separate container, so that they wouldn't have to share resources: the front end in one, the back end in another, a third for celery, a fourth for celery-beat, and a fifth for RabbitMQ. Actually, we ended up running four front-end containers and eight back-end, due to load constraints.
Linux containers are so much more lightweight than VMs which is quite important for my limited budget. However, Docker has much more support and tooling for it unlike LXC, hence why I use it. rkt is interesting, although I will probably stick with Docker due to being more widespread.
We are running primarily as a micro-services platform and Docker lets us iterate on these smaller units consistently from dev to staging to production. It is also integral to our continuous deployment system for rolling out or rolling back new features.
We use this as a CI tool when working on our API and related tools. The setup is relatively painless and it hooks directly into our Github repo's to provide reports and feedback.
Runs a full test suite whenever we push changes to master and if everything is good, automatically deploys our changes to production.