📜 ⬆️ ⬇️

CI \ CD for a startup: what tools are there, and why not only large and well-known companies use them

The developers of CI \ CD tools often point out large companies as customers - Microsoft, Oculus, Red Hat, even Ferrari and NASA. It would seem that such brands work only with expensive systems that a conditional startup from a couple of developers and designers cannot afford. But much of the tools are available for small teams.

What you can pay attention to - we will tell further.


Photo - Csaba Balazs - Unsplash
')


PHP Censor


An open source CI server to help build PHP projects. This is a fork of the PHPCI project. PHPCI itself is still developing, but not as actively as before.

PHP Censor can work with GitHub, GitLab, Mercurial and several others repositories. To test the code, the tool uses the libraries Atoum, PHP Spec, Behat, Codeception. Here is an example configuration file for the first case:

test: atoum: args: "command line arguments go here" config: "path to config file" directory: "directory to run tests" executable: "path to atoum executable" 

It is believed that PHP Censor is not bad for deploying small projects, but you will have to host and configure it yourself (self-hosted). This task is simplified by fairly detailed documentation - it is on GitHub .



Rex


Rex is short for Remote Execution. The system was developed by the engineer Ferenc Erki (Ferenc Erki) to automate the processes in the data center. The work of Rex is based on Perl scripts, but knowing this language to interact with the tool is not necessary - most operations (for example, copying files) are described in the function library, and scripts often fit into ten lines. Here is an example for logging in to multiple servers and running uptime:

 use Rex -feature => ['1.3']; user "my-user"; password "my-password"; group myservers => "mywebserver", "mymailserver", "myfileserver"; desc "Get the uptime of all servers"; task "uptime", group => "myservers", sub { my $output = run "uptime"; say $output; }; 

We recommend starting your acquaintance with the tool from the official guide and e-book that is currently being added.



Open Build Service (OBS)


It is a platform for optimizing distribution development. Its code is open and lies in the repository on GitHub . The author of the tool is Novell . She participated in the development of the SuSE distribution, and this project originally called the openSUSE Build Service. Not surprisingly, Open Build Service is used to build projects in openSUSE, Tizen and VideoLAN. Dell, SGI and Intel also work with the tool. But there are regular startups among regular users. Especially for them, the authors have assembled ( p.10 ) a pre-configured software package . The system itself is completely free - you only have to spend money on a hosting or iron server to unwrap it.

But for all the time of its existence, the tool has not acquired a wide community. Although it was part of the Linux Developer Network responsible for standardizing an open OS. It can be difficult to find the answer to an interesting question on the thematic forums. But one of the residents of Quora noted that in the Freenode IRC chat community members respond quite willingly. The problem of a small community is not global, since the solution of many problems is described in the official documentation (PDF and EPUB). You can also find best practices for working with OBS (there are examples and cases).



Rundeck


An open tool ( GitHub ) that automates tasks in the data center and the cloud using scripts. Their execution is the responsibility of a special script server. We can say that Rundeck is the “daughter” of the platform for managing ControlTier applications. Rundeck separated from it in 2010 and acquired new functionality - for example, integration with Puppet, Chef, Git and Jenkins.

The system is used in The Walt Disney Company , Salesforce and Ticketmaster . But the project is also suitable for startups. This is due to the fact that Rundeck is distributed under the Apache v2.0 license. The tool is quite easy to use.

The resident of Reddit, who worked with Rundeck, says that he solved most of the difficulties on his own. With this, he was helped by the documentation and e-books published by the developers.

Also on the net you can find brief guides for setting up a tool:




Gocd


An open tool ( GitHub ) automating control of code versions. He was introduced in 2007 by the company ThoughtWorks - then the project was called Cruise.

AutoTrader’s online auto sales resource, Ancestry genealogy service and Barclaycard credit card provider work with GoCD. However, a quarter of users of the tool is a small business .

The popularity of the service among startups can be explained by its openness - it is distributed under the Apache v2.0 license. At the same time, GoCD has plug-ins for integration with third-party software - authorization systems and cloud solutions. True, the system is quite difficult to master - it has a large number of operators and teams. Also, some users complain about a bad interface and the need to configure agents to scale.


Photo - Matt Wildbore - Unsplash

If you want to try GoCD in practice, you can find official documentation on the project website. As a source of additional information, you can also recommend the GoCD developer blog with customization guides.



Jenkins


Jenkins is widely known and considered a kind of standard in the field of CI \ CD - of course, without it this selection would not be completely complete. The tool appeared in 2011, becoming an offshoot of the Hudson project from Oracle.

Today, Jenkins works in NASA, Nintendo and other large organizations. However, more than 8% of users fall into small groups of up to ten people. The product is completely free and distributed under the MIT license . However, Jenkins will have to host and configure independently - it needs a dedicated server.

For all the time of existence of the tool around it a vast community has been formed. Users actively communicate in threads on Reddit and Google Groups . Materials on Jenkins also regularly appear on Habré. If you would like to become part of the community and start working with Jenkins, there is official documentation and reference book from the developers . We also recommend the following guides and books:


Jenkins has several useful third-party projects. The first is the Configuration as Code plugin. It makes it easy to set up Jenkins with readable APIs that are understandable even to administrators without deep knowledge of the tool. The second is the Jenkins X system for the cloud. It accelerates the delivery of applications deployed on a large-scale IT infrastructure by automating some routine tasks.



Buildbot


This is a continuous integration system for automating the build cycle and application testing. It automatically checks the performance of the code every time any changes are made to it.

The tool was authored by engineer Brian Warner. Today, he was replaced by the initiative group Buildbot Oversight Committee, which includes six developers.

Buildbot is used by projects such as LLVM, MariaDB, Blender and Dr.Web. But it is also used in smaller projects like wxWidgets and Flathub. The system supports all modern VCS and has flexible build settings by using Python to describe them. The official documentation and third-party tutorials will help to deal with all of them, for example, here is a short guide from IBM .



Of course, these are not all DevOps tools that you should pay attention to small organizations and startups. Bring your favorite tools in the comments, and we will try to tell about them in one of the following materials.



What we write about in the corporate blog:

Source: https://habr.com/ru/post/460735/


All Articles