Információ: hogyan működik a Continuous Integration folyamat

Ma ma csatlakozik a kifejezés történetéhez, megbeszéljük a CI bevezetésével kapcsolatos nehézségeket, és bemutatunk néhány népszerű eszközt, amelyek segítenek a munkában.

Információ: hogyan működik a Continuous Integration folyamat
/ Flickr / Altug Karakoc / CC BY / Фото изменено

Kifejezés

A Continuous Integration (folyamatos integráció) egy fejlesztési megközelítés, amely gyakori projektépítést és kódtesztelést foglal magában.

A cél az integrációs folyamat előre megjósolhatóvá tétele és a lehetséges hibák korai felfedezése, hogy több idő maradjon a javításokra.

A Continuous Integration kifejezés először 1991-ben merült fel. A UML nyelv létrehozója vezette be. Grady Booch (Grady Booch). Az mérnök a CI koncepcióját saját fejlesztési gyakorlatának részeként mutatta be — a Booch-módszer. Ez az objektumorientált rendszerek tervezése során az architektúra fokozatos finomítását jelentette. Grady nem írt le követelményeket a folyamatos integrációval kapcsolatban. Később azonban a "Object-Oriented Analysis and Design with Applications" című könyvében azt mondta, hogy a módszer célja a "belső kiadások" gyorsítása.

Történet

1996-ban a CI-t átvették az extrém programozás (XP) módszertanának létrehozói — Kent Beck (Kent Beck) és Ron Jeffries (Ron Jeffries). A folyamatos integráció az ő megközelítésük tizenkét alapelvének egyikévé vált. Az XP alapítói pontosították a CI módszertan követelményeit, és hangsúlyozták, hogy a projektépítést többször is el kell végezni egy nap alatt.

A 2000-es évek elején a folyamatos integráció módszertanának népszerűsítésével foglalkozott az Agile Alliance egyik alapítója, Martin Fowler (Martin Fowler). A CI-vel kapcsolatos kísérletei vezettek az első szoftveres eszköz megjelenéséhez ezen a területen — a CruiseControl-hoz. Az eszközt Martin kollégája, Matthew Foemmel készítette.

Az eszközben a gyűjtési ciklus egy démon segítségével valósul meg, amely rendszeresen ellenőrzi a verziókezelő rendszert a kódalapban történt változásokra. A megoldás ma is letölthető — BSD-szerű licenc alatt érhető el. terjesztésre kerül A CI-hoz kapcsolódó szoftverek megjelenésével egyre több vállalat kezdte átvállalni a gyakorlatot. A Forrester kutatása szerint [5. oldal

jelentés ], 2009-ben a megkérdezett ötven technológiai cég 86%-a használta vagy vezette be a CI-módszereket.], 2009-ben az ötven megkérdezett technológiai cég közül 86% CI-módszereket alkalmazott vagy vezetett be.

A Continuous Integration practice is now being adopted by organizations across various industries. In 2018, a major cloud provider surveyed IT professionals from service, education, and finance sectors. Out of six thousand respondents, 58% responded that they use CI tools and principles in their work.

Hogyan működik ez

The foundation of continuous integration consists of two tools - a version control system and a CI server. The latter can be either a physical device or a virtual machine in a cloud environment. Developers upload new code one or several times a day. The CI server automatically fetches it along with all dependencies and performs the build. After this, it runs integration and unit tests. If the tests are successful, the CI system deploys the code.

The overall scheme of the process can be represented as follows:

Információ: hogyan működik a Continuous Integration folyamat

The CI methodology imposes a number of requirements on developers:

  • Immediately fix problems. This principle came to CI from extreme programming. Fixing bugs is the top priority for developers.
  • Automate processes. Developers and managers should constantly look for 'bottlenecks' in the integration process and eliminate them. For example, integration bottlenecks often arise from kiderül, testing.
  • Perform builds as often as possible. Once a day, to synchronize the team's work.

Challenges of implementation

The first issue is high operational costs. Even if a company uses open CI tools (which we will discuss further), it will still have to spend money on supporting the infrastructure. However, cloud technologies can provide a solution.

They simplify the assembly of various computer configurations. Plus, companies are paid only pay for the resources used, which helps save on infrastructure.

According to surveys [стр.14 cikkből származnak], continuous integration increases the workload on company employees (at least at first). They have to master new tools, and colleagues don't always help with training. Therefore, they have to figure out new frameworks and services 'on the go.'

A harmadik nehézség a automatizálással kapcsolatos problémák. Ezzel azok a szervezetek találkoznak, amelyek nagy mennyiségű örökölt kóddal rendelkeznek, amelyet nem fednek le automatizált tesztek. Ez oda vezet, hogy a kódot egyszerűen átírják a CI teljes körű bevezetése előtt.

Információ: hogyan működik a Continuous Integration folyamat
/ Flickr / theilr / CC BY-SA

Ki használja

Az IT óriások, mint például a Google, az elsők között ismerték fel a módszer előnyeit. használja folyamatos integrációval a 2000-es évek közepétől. A CI-t a keresőmotor működésében fellépő késések problémájának megoldására vezették be. A folyamatos integráció segített gyorsan észlelni és kijavítani a hibákat. Jelenleg a CI-t az IT óriás minden részlege alkalmazza.

A folyamatos integráció a kisebb cégeknek is segít, és a CI eszközöket pénzügyi és orvosi szervezetek is használják. Például a Morningstar folyamatos integrációs szolgáltatásaik 70%-kal gyorsabb sebezhetőség-kiigazítást tettek lehetővé. A Philips Healthcare orvosi platforma pedig megduplázta a frissítések tesztelésének sebességét.

Eszközök

Íme néhány népszerű CI-eszköz:

  • Jenkins — az egyik legnépszerűbb CI-rendszer. Több mint ezer plugint támogat, amelyek integrálják különböző VCS-ekkel, felhőplatformokkal és más szolgáltatásokkal. A Jenkins-t mi is használjuk az 1cloudban: az eszköz a DevOps rendszerünkbe tartozik.. Rendszeresen ellenőrzi a tesztelésre szánt Git-ágat.
  • CruiseControl — egy Python keretrendszer a saját folyamataid folyamatos integrációjához. Az eszköz kezdeti beállítása meglehetősen bonyolult, de ezt kompenzálja a széles testreszabási lehetőségek. A keretrendszer előnyei között a felhasználók kiemelik az alacsony erőforrásigényét.
  • Concourse CI — a Pivotal által kifejlesztett szerver, amely Docker konténereket használ. A Concourse CI bármilyen eszközzel és verziókezelő rendszerrel integrálható. A fejlesztők megjegyzik, hogy a rendszer bármilyen méretű vállalatok számára alkalmas.
  • Felhőplatformok — az eszköz, amely beépítve van a GitLab verziókezelő rendszerbe. A szolgáltatás felhőben működik, és YAML-fájlokat használ a konfiguráláshoz. Akárcsak a Concourse, a Gitlab CI alkalmazza a Docker konténereket, amelyek segítenek elszigetelni a különböző folyamatokat egymástól.
  • Codeship — egy felhő alapú CI-szerver, amely a GitHub, GitLab és BitBucket szolgáltatásokkal működik. A platform nem igényel hosszú kezdeti beállítást – a Codeship-ben elérhetőek a standard, előre telepített CI-folyamatok. Kicsi (havonta 100 build-ig) és open source projektek számára a Codeship ingyenes.

Anyagok a vállalati blogunkból:

Forrás: habr.com

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster