CICD for a startup: what are the tools and why not only large and well-known companies use them

Developers of CICD tools often list large companies as clients - 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 pair of developers and a designer cannot afford. But a significant part of the tools is also available for small teams.

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

CICD for a startup: what are the tools and why not only large and well-known companies use them
A photo - Csaba Balazs β€” unsplash

PHP Censor

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

PHP Censor can work with GitHub, GitLab, Mercurial and several other repositories. To test the code, the tool uses the Atoum, PHP Spec, Behat, Codeception libraries. Here example file configurations 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 believedthat PHP Censor is well suited for deploying small projects, but you will have to host and configure it yourself (self-hosted). This task is facilitated by fairly detailed documentation βˆ’ it is on GitHub.

Rex

Rex is short for Remote Execution. The system was developed by engineer Ferenc Erki to automate processes in the data center. Rex's work is based on Perl scripts, but it is not necessary to know this language to interact with the tool - most operations (for example, copying files) are described in the function library, and scripts often fit in ten lines. Here is an example for logging into 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 with official guide ΠΈ e-book, which is currently being added.

Open Build Service (OBS)

It is a platform for streamlining distribution development. Its code is open and lies in the repository on GitHub. The author of the tool is the company Novell. She was involved in the development of the SuSE distribution, and this project was originally called openSUSE Build Service. No wonder Open Build Service use for building projects in openSUSE, Tizen and VideoLAN. Dell, SGI and Intel also work with the tool. But there are also small startups among regular users. Especially for them, the authors have collected (page 10) preset software package. The system itself is completely free - you only have to spend money on hosting or an iron server to deploy it.

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

Rundeck

Open tool (GitHub), which automates tasks in the data center and cloud using scripts. A special script server is responsible for their execution. We can say that Rundeck is a β€œdaughter” of the ControlTier application management platform. Rundeck separated from it in 2010 and acquired new functionality - for example, integrations with Puppet, Chef, Git and Jenkins.

The system is used in The Walt Disney Company, Salesforce ΠΈ Ticketmaster. But the project is also suitable for startups. This is because Rundeck is distributed under the Apache v2.0 license. That being said, the tool is quite easy to use.

A Reddit resident who worked with Rundeck, says, which solved most of the difficulties on its own. They helped him with this documentation and e-bookspublished by the developers.

Also on the network you can find quick guides to setting up the tool:

GoCD

Open tool (GitHub) automating code version control. It was introduced in 2007 by the company ThoughtWorks - Then the project was called Cruise.

GoCD is powered by the engineers at AutoTrader, an online car dealership, Ancestry, a genealogy service, and Barclaycard, a credit card provider. However, a quarter of tool users constitutes 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 It has plugins for integration with third-party software - authorization systems and cloud solutions. True system quite complicated in development - it has a large number of operators and teams. Also, some users complain about the bad interface and need configure agents for scaling.

CICD for a startup: what are the tools and why not only large and well-known companies use them
A photo - Matt wildbore β€” unsplash

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

Jenkins

Jenkins is widely known and counts a kind of standard in the field of CICD - of course, without it, this selection would not be entirely complete. The tool appeared in 2011, became a fork of Project Hudson from Oracle.

Today with Jenkins working in NASA, Nintendo and other large organizations. However more 8% users account for small teams of up to ten people. The product is completely free and distributed licensed by MIT. However, you will have to host and configure Jenkins yourself - it requires a dedicated server.

During the entire existence of the instrument, an extensive community has formed around it. Users actively communicate in threads on Reddit ΠΈ Google Groups. Materials on Jenkins also regularly appear on HabrΓ©. If you would like to be part of the community and get started with Jenkins, there is official documentation ΠΈ developers guide. We also recommend the following guides and books:

Jenkins has some useful side projects. The first one is the plugin. Configuration as code. It simplifies Jenkins configuration with easy-to-read APIs that even administrators without deep knowledge of the tool can understand. The second is the system Jenkins X for the cloud. It accelerates the delivery of applications deployed on large scale IT infrastructure by automating some routine tasks.

buildbot

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

The author of the instrument was engineer Brian Warner. Today he is on duty changed the initiative group Buildbot Oversight Committee, which includes six developers.

buildbot used 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. Dealing with all of them will help. official documentation and third-party tutorials, for example, here is a short manual from IBM.

Of course, it's not all DevOps tools that small organizations and startups should pay attention to. Bring your favorite tools in the comments, and we will try to talk about them in one of the following articles.

What we write about in the corporate blog:

Source: habr.com

Add a comment