Kuvandudza Chiitiko cheMugadziri muSoftware Architecture: Matanho eKushanda Kwekubatana uye Zvishandiso. | B4N1

Kuvandudza Chiitiko cheMugadziri muSoftware Architecture: Matanho eKushanda Kwekubatana uye Zvishandiso.

9 months ago · b4n1 Read time: 3 min

Nhanganyaya

Mune yanhasi-inomhanyisa-paced software yekuvandudza mamiriro, mhando yeruzivo rwemugadziri yave chinhu chakakosha pakuona kubudirira kweprojekiti. Sezvo masisitimu esoftware achiwedzera kuoma, vanogadzira vanosangana nematambudziko akawanda anogona kukanganisa kugadzirwa kwavo uye kugutsikana kwese. Kugadzirisa matambudziko aya, vagadziri vesoftware uye vanogadzira vari kutora nzira dzakasiyana-siyana dzinoisa pamberi peruzivo rwemugadziri, kusanganisira maturusi ekubatana, nzira dzeautomation, uye nzira dzinovandudza kufamba kwekushanda.

Muchikamu chino, tichaongorora kufambira mberi kwazvino mukuvakwa kwesoftware kunonangana nekusimudzira ruzivo rwemugadziri. Tichapinda munyika yezvishandiso zvekushandira pamwe, otomatiki marongero, uye nzira dzinogona kubatsira vanogadzira kushanda nemazvo uye nemazvo. Pamusoro pezvo, isu tinopa kodhi muenzaniso muPython inoratidza maitiro ekuita yakapusa otomatiki zano uchishandisa CI/CD pombi.

Zvishandiso Zvekubatana zvekunatsiridza Chiitiko cheMugadziri

Maturusi ekubatana akashandura nzira iyo vanogadzira vanoshanda pamwechete pamapurojekiti esoftware. Zvishandiso izvi zvinogonesa kutaurirana kwenguva-chaiyo, ongororo yekodhi, uye manejimendi eprojekiti, zvichiita kuti zvive nyore kune vanogadzira kuti vabatane uye vagovane ruzivo.

Shanduro Kudzora Systems (VCS)

Shanduro yekudzora masisitimu, akadai seGit, maturusi akakosha ekubatana kwesoftware kuvandudza. VCS inobvumira vakawanda vanogadzira kuti vashande pane imwechete codebase panguva imwe chete, kutarisa shanduko, uye kugadzirisa kusawirirana.

# Tanga iyo itsva Git repository
git wedzera.
git commit -m "Kuzvipira kwekutanga"

Kodhi Ongorora Zvishandiso

Kodhi yekuongorora maturusi, akadai seGitHub Code Ongororo, inogonesa vanogadzira kuti vaongorore uye vape mhinduro pane yeumwe neumwe kodhi. Izvi zvinobatsira kuve nechokwadi chekuti kodhi ndeyemhando yepamusoro, inosangana nemiyero yekukodha, uye inotevera maitiro akanaka.

Project Management Zvishandiso

Maturusi ekugadzirisa mapurojekiti, akadai saJira, Trello, kana Asana, anobatsira vanogadzira kuronga, kuronda, uye kubata basa ravo. Zvishandiso izvi zvinogonesa vanogadzira kugovera mabasa, kuseta mazuva ekupedzisira, uye kutarisa mafambiro.

Otomatiki Matanho eKunatsiridza Mugadziri Zvakaitika

Mano otomatiki anoita basa rakakosha mukunatsiridza ruzivo rwemugadziri nekudzikisira basa remaoko, kuvandudza kushanda zvakanaka, uye kuderedza zvikanganiso.

Kuenderera Kubatanidzwa (CI)

Kuenderera mberi kubatanidzwa itsika apo vagadziri vanobatanidza kuchinja kwekodhi yavo mune yepakati repository kazhinji. Izvi zvinova nechokwadi chekuti kodhi inovakwa, yakaedzwa, uye yakasimbiswa nguva dzose, ichideredza mukana wenyaya dzekubatanidza.

Kuenderera Kuendeswa (CD)

Kuenderera mberi kutumirwa itsika apo otomatiki inovaka uye bvunzo dzinokonzereswa nguva dzese shanduko yekodhi inosundirwa kune repository. Izvi zvinoita kuti vanogadzira vatumire shanduko yekodhi nekukurumidza uye nekuvimbika.

Infrastructure seCode (IaC)

Infrastructure sekodhi muitiro apo zvivakoti zvinotsanangurwa uchishandisa kodhi, panzvimbo pekugadzirisa zvinyorwa. Izvi zvinogonesa vanogadzira kugadzirisa shanduko yezvivakwa, kuderedza zvikanganiso, uye kugadzirisa kuenderana.

Nzira dzeKunatsiridza Zviitiko zveMugadziri

Nzira dzinoita basa rakakosha mukusimudzira ruzivo rwevagadziri nekupa hwaro hwekubatana, kutaurirana, uye kugadzirisa matambudziko.

Agile Methodology

Agile methodology inzira inodzokorodza uye inowedzera yekuvandudza software inosimbisa kuchinjika, kubatana, uye kuenderera mberi kwekuvandudza.

Scrum Framework

Scrum framework inzira yakakurumbira yeAgile iyo inosimbisa kushanda kwechikwata, kuzvidavirira, uye kufambira mberi kwekudzokorora kune zvinangwa zvakanyatsotsanangurwa.

DevOps Culture

DevOps tsika ipfungwa inosimbisa kubatana, kutaurirana, uye kuenderera mberi kwekuvandudza pakati pebudiriro nezvikwata zvekushanda.

Code Muenzaniso: Kuita CI/CD Pipeline uchishandisa Python

Mumuenzaniso uyu, isu ticharatidza nzira yekushandisa iri nyore CI/CD pombi uchishandisa Python uye mapombi raibhurari.

import os
import subprocess
kubva pamapaipi import Pipeline

kirasi MyPipeline(Pipeline):
    def __init__(iwe pachako):
        super().__init__()
        self.name = "Pipeline yangu"

    def kuvaka(self):
        # Gadzira kodhi
        subprocess.run(["ita", "kuvaka"])

    def bvunzo (yega):
        # Mhanya unit bvunzo
        subprocess.run(["ita", "test"])

    def deploy(self):
        # Isa iyo kodhi
        subprocess.run(["ita", "deploy"])

pombi = MyPipeline ()
pipeline.run()

Iyi kodhi inotsanangura iri nyore CI/CD pombi inovaka, bvunzo, uye inotumira kodhi shanduko. Iyo 'kuvaka' nzira inomhanya iyo ita kuvaka kuraira, iyo test nzira inomhanya iyo ita test murairo, uye iyo deploy nzira inomhanya iyo make deploy kuraira.

Kuona: CI/CD Pipeline

Chati inotevera inoratidza pombi yeCI/CD uchishandisa Chart.js.

const ctx = document.getElementById('myChart').getContext('2d');
const chati = Chati itsva (ctx, {
  mhando: 'horizontalBar',
  data: {
    mavara: ['Build', 'Test', 'Deploy'],
    zvinyorwa: [{
      label: 'Pipeline Matanho',
      data: [10, 20, 30],
      backgroundColor: [
        'rgba(255, 99, 132, 0.2)',
        'rgba(54, 162, 235, 0.2)',
        'rgba(255, 206, 86, 0.2)'
      ],
      borderColor: [
        'rgba(255, 99, 132, 1)',
        'rgba(54, 162, 235, 1)',
        'rgba(255, 206, 86, 1)'
      ],
      borderWidth: 1
    }]
  },
  sarudzo: {
    zviyero: {
      y:{
        startAtZero: chokwadi
      }
    }
  }
});

Iyi chati inoona nhanho dzepombi, kusanganisira kuvaka, kuyedza, uye kuendesa.

Mhedziso

Kuvandudza ruzivo rwemugadziri kwakakosha pakubudirira kwesoftware. Maturusi ekubatana, otomatiki mazano, uye maitiro anoita basa rakakosha mukuvandudza goho remugadziri, kugutsikana, uye huwandu hwehupenyu hwese. Nekutora kufambira mberi kwazvino mukuvakwa kwesoftware, vagadziri vanogona kushanda zvakanyanya, zvinobudirira, uye nekubatana. Muenzaniso wekodhi uye maonero anopiwa muchinyorwa chino anoratidza nzira yekushandisa iri nyore CI/CD pombi uchishandisa Python uye Chart.js. Nekumbundira aya mazano uye maturusi, vanogadzira vanogona kutora software yavo yekuvandudza kune inotevera nhanho.

References

  • [1] "Nyika yeDevOps Chirevo" nePuppet Labs
  • [2] "Kuenderera Kubatanidza uye Kuenderera Kuendeswa" neMicrosoft
  • [3] "Agile Methodology" neScrum.org
  • [4] "DevOps Tsika" neDevOps Institute
  • [5] "Python Pipelines" nemapaipi raibhurari

Kuwedzera Kuverenga

  • "The DevOps Handbook" naGene Kim
  • "Kuenderera Kuchiendesa: Yakavimbika Software Inoburitswa Kuburikidza neKuvaka, Kuedza, uye Deployment Automation" naJez Humble
  • "Agile Project Management neScrum" naKen Schwaber
  • "DevOps for Dummies" naJohn F. Harris

Have Questions?

Let's Talk

Contact me on LinkedIn