HACKER Q&A
📣 nsokolsky

What's the fastest platform for deploying code with CI/CD?


My goals are:

1. Write Java or Python code, though I can settle for other languages as well if it makes more sense. 2. Every time I click 'Compile' and the unit tests pass, ship it off to the CI/CD pipeline where my integration tests run. 3. Once the tests pass, deploy the updated version of the code to 1 or more servers.

In an ideal world, I'd like the entire process from clicking 'Compile' to having the code in the first Production server take 60 seconds or less. I'm willing to pay money for this. Ideally I'd like to avoid doing too much manual scaffolding to make this happen.

As of 2023, what are my best options? Gitlab? Github? CircleCI? Replit? AWS CodePipeline? A containerized solution of some sort?


  👤 uf00lme Accepted Answer ✓
There are many considerations when designing a Continuous Deployment (CD) pipeline that can deploy code to production rapidly. I suggest it's best to approach this on a 'per commit' basis rather than 'per compile'. Unless you're building advanced and complex software, compute resources shouldn't be a limiting factor in building and testing every commit. It is what good CI systems are generally designed to do.

If you're just starting out, I recommend starting out by running Jenkins on your local machine. Once you've familiarised yourself with a few different pipelines and determined what suits your software, only then consider exploring SaaS options like GitHub or GitLab. Jenkins offers significant flexibility, whereas many SaaS platforms tend to be opinionated with have more defined structures. It's really very common to walk into a sizable software development offices and spot at least one developer using Jenkins locally even when the company has a large 'devops' budget. While it's is far from perfect, Jenkins is effective, mature and a great place to learn what is possible with a CI/CD setup without wasting a lot of time or money.