๐๐ผ๐ ๐๐ผ ๐ฐ๐ต๐ผ๐ผ๐๐ฒ ๐ฎ ๐๐/๐๐ ๐ฝ๐น๐ฎ๐๐ณ๐ผ๐ฟ๐บ?
Here is what is important:
๐ญ. ๐๐/๐๐ ๐บ๐๐๐ ๐ถ๐ป๐๐ฒ๐ด๐ฟ๐ฎ๐๐ฒ ๐๐ถ๐๐ต ๐๐ผ๐๐ฟ ๐ฟ๐ฒ๐ฝ๐ผ๐๐ถ๐๐ผ๐ฟ๐ถ๐ฒ๐
Repositories are essential to CI and CD. Beyond being the end point of the check-in and test process, software repositories are the preferred place to store your CI and CD scripts and configuration files. Yes, many of the CI/CD platforms can store scripts and other files internally, but you are usually better off having them in version control outside of the tool.
๐ฎ. ๐ฌ๐ผ๐๐ฟ ๐๐/๐๐ ๐๐ผ๐ผ๐น๐ ๐ป๐ฒ๐ฒ๐ฑ ๐๐ผ ๐๐๐ฝ๐ฝ๐ผ๐ฟ๐ ๐๐ผ๐๐ฟ ๐ฝ๐ฟ๐ผ๐ด๐ฟ๐ฎ๐บ๐บ๐ถ๐ป๐ด ๐น๐ฎ๐ป๐ด๐๐ฎ๐ด๐ฒ๐ ๐ฎ๐ป๐ฑ ๐๐ผ๐ผ๐น๐
Each programming language tends to have its own build tools and testing tools. To be useful to you, a CI/CD tool must support all the languages that are part of a given project. Otherwise, you might need to write one or more plug-ins for the tool. Docker images are becoming more and more important to distributed, modular, and microservice software deployments. It helps a lot if your CI/CD tool knows how to deal with Docker images, including creating an image from your source code, binaries, and prerequisites, and deploying an image to a specific environment.
๐ฏ. ๐๐ผ ๐๐ผ๐๐ฟ ๐ฑ๐ฒ๐๐ฒ๐น๐ผ๐ฝ๐ฒ๐ฟ๐ ๐๐ป๐ฑ๐ฒ๐ฟ๐๐๐ฎ๐ป๐ฑ ๐๐/๐๐ ๐ฎ๐ป๐ฑ ๐๐ต๐ฒ ๐๐ผ๐ผ๐น๐ ๐๐ผ๐โ๐ฟ๐ฒ ๐ฐ๐ผ๐ป๐๐ถ๐ฑ๐ฒ๐ฟ๐ถ๐ป๐ด?
The principles of CI and CD may seem obvious, but the details are not. The various CI/CD tools have differing levels of support and documentation. There are multiple books on Jenkins, which isnโt surprising since itโs the oldest of the bunch. For other products, you may have to investigate the documentation and support forums and paid support options as part of your due diligence in picking a tool.
๐ฐ. ๐ฌ๐ผ๐ ๐ฐ๐ฎ๐ป ๐ฐ๐ต๐ผ๐ผ๐๐ฒ ๐ฑ๐ถ๐ณ๐ณ๐ฒ๐ฟ๐ฒ๐ป๐ ๐๐/๐๐ ๐๐ผ๐ผ๐น๐ ๐ณ๐ผ๐ฟ ๐ฑ๐ถ๐ณ๐ณ๐ฒ๐ฟ๐ฒ๐ป๐ ๐ฝ๐ฟ๐ผ๐ท๐ฒ๐ฐ๐๐
While this guide is about choosing a CI/CD platform, donโt assume that one platform will be optimal for all your software development projects. Most shops use multiple programming languages and environments, and not every CI/CD platform will support all of them well.
๐ฑ. ๐ฃ๐ฟ๐ฒ๐ณ๐ฒ๐ฟ ๐๐ฒ๐ฟ๐๐ฒ๐ฟ๐น๐ฒ๐๐ ๐๐/๐๐ ๐๐ต๐ฒ๐ฟ๐ฒ ๐ฎ๐ฝ๐ฝ๐ฟ๐ผ๐ฝ๐ฟ๐ถ๐ฎ๐๐ฒ
In general, cloud container deployments are less expensive than cloud server instance deployments, and serverless cloud deployments are less expensive than container deployments. Unfortunately, few CI/CD platforms can run serverless as of this writing. One the few CI/CD platforms that can run serverless is Serverless CI/CD, part of Serverless Framework Pro, an enhanced version of the open source Serverless Framework. Serverless CI/CD is optimized for deploying serverless apps and currently runs only on AWS. Youโll have to determine whether it supports your application well enough to use.