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

    Developers of CI \ CD tools often indicate large companies as Microsoft, Oculus, Red Hat, even Ferrari and NASA as customers. It would seem that such brands work only with expensive systems that a conditional start-up from a couple of developers and a designer cannot afford. But a significant part of the tools is available for small teams.

    What you can pay attention to - we will tell further. Photos - Csaba Balazs - Unsplash






    PHP Censor


    An open source CI server that makes it easy to 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 repositories GitHub, GitLab, Mercurial and several others. To test the code, the tool uses the Atoum, PHP Spec, Behat, Codeception libraries. 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 engineer Ferenc Erki to automate processes in the data center. The work of Rex 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 to log in to multiple servers and run 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 , which is currently being added.



    Open Build Service (OBS)


    This 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 was originally called the openSUSE Build Service. Not surprisingly, the Open Build Service is used to build projects in openSUSE, Tizen, and VideoLAN. The tool also works with Dell, SGI and Intel. But there are among regular users and small startups. Especially for them, the authors collected ( p. 10 ) a pre-configured software package . The system itself is completely free - you only have to spend money on a hosting or an iron server to deploy it.

    But for the entire time of its existence, the tool has not acquired a wide community. Although it was part of the Linux Developer Network, responsible for standardizing the open OS. It can be difficult to find an answer to a question on topic forums. But one of the residents of Quora noted that in the IRC chat on Freenode, members of the community respond rather willingly. The problem of the small community is not global, since the solution to many problems is described in the official documentation (PDF and EPUB). There you can 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. A special script server is responsible for their execution. We can say that Rundeck is the "daughter" of the platform for managing ControlTier applications. Rundeck separated from her in 2010 and acquired new functionality - for example, integrations with Puppet, Chef, Git and Jenkins.

    The system is used by The Walt Disney Company , Salesforce and Ticketmaster . But the project is also suitable for startups. This is because Rundeck is licensed under the Apache v2.0 license. Moreover, the tool is quite easy to use.

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

    You can also find quick guides on setting up the tool online:




    Gocd


    An open tool ( GitHub ) automates version control of code. It was introduced in 2007 by ThoughtWorks - then the project was called Cruise.

    AutoCD Autoder, an Ancestry genealogy service, and Barclaycard, a credit card provider, work with GoCD. However, a quarter of the users of the tool are small businesses .

    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 plugins for integration with third-party software - authorization systems and cloud solutions. True system is quite complicatedin development - she has a large number of operators and teams. Also, some users complain about the bad interface and the need to configure agents for scaling.


    Photo - Matt Wildbore - Unsplash

    If you want to try GoCD in practice, then on the project website you can find official documentation . You can also recommend the GoCD Developer Blog with customization guides as a source of additional information .



    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 complete. The tool appeared in 2011, becoming a branch of the Hudson project from Oracle.

    Today, they work with Jenkins at NASA, Nintendo, and other large organizations. However, more than 8% of users are small groups of up to ten people. The product is completely free and distributed under the MIT license . However, you will have to host and configure Jenkins yourself - it requires a dedicated server.

    Over the entire life of the instrument, an extensive community has formed around it. Users actively communicate in threads on Redditand Google Groups . Materials on Jenkins also regularly appear on Habré. If you would like to become part of the community and get started with Jenkins, there is official documentation and a guide from the developers . We also recommend the following guides and books:


    Jenkins has some useful third-party projects. The first is the Configuration as Code plugin . It simplifies Jenkins setup with readable APIs that are understandable even to administrators without a deep knowledge of the tool. The second is the Jenkins X cloud system. It speeds up 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 assembly and testing cycle of applications. It automatically checks the functionality of the code every time any changes are made to it.

    The author of the tool was engineer Brian Warner (Brian Warner). Today he was replaced by the Buildbot Oversight Committee initiative group, 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 through the use of Python to describe them. The official documentation will help to deal with all of them.and third-party tutorials, for example, here is a quick tutorial from IBM .



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



    What we write about in a corporate blog:


    Also popular now: