freeCodeCamp/docs/i18n/Finnish/devops.md

18 KiB

Kehittäjän toiminta at freeCodeCamp.org

Tämä opas auttaa sinua ymmärtämään infrastruktuurin pino ja miten ylläpidämme alustoja. Vaikka tällä oppaalla ei ole tyhjentäviä yksityiskohtia kaikille toiminnoille, sitä voitaisiin käyttää viitteenä ymmärtääksesi järjestelmiä.

Kerro meille, jos sinulla on palautetta tai kysyttävää, ja olemme iloisia voidessamme selventää.

Miten rakennamme, testaamme ja otamme käyttöön yhteistoimintaa?

Tämä arkisto on jatkuvasti rakennettu, testattu ja otettu käyttöön erilliset infrastruktuurit (Palvelimet, Tietokannat, CDN:t, jne.).

Tämä edellyttää kolmea vaihetta, joita on noudatettava:

  1. Uudet muutokset (sekä korjaukset että ominaisuudet) yhdistetään ensisijaiseen kehityshaaraan (master) pull-pyyntöjen kautta.
  2. Nämä muutokset tehdään useiden automaattisten testien läpi.
  3. Kun testit on suoritettu, vapautamme muutokset (tai päivitämme niitä tarvittaessa) infrastruktuuriemme käyttöönottoon.

Building the codebase - Mapping Git Branches to Deployments.

Tyypillisesti master (oletuskehityshaara) on yhdistetty tuotantovaiheiseen haaraan kerran päivässä, ja se vapautuu erilliseen infrastruktuuriin.

Tämä on välivaiheen julkaisu kehittäjillemme ja vapaaehtoisille osallistujille. Se tunnetaan myös meidän "lavastus" tai "beeta" julkaisu.

Se on identtinen meidän live tuotantoympäristö freeCodeCamp.org, muu kuin se käyttäen erillisiä tietokantoja, palvelimia, web-välityspalvelimia, jne. Tämän eristyksen avulla voimme testata jatkuvaa kehitystä ja ominaisuuksia "tuotantoa" kuten skenaario, vaikuttamatta säännöllisesti käyttäjiä freeCodeCamp.orgin pääalustoja.

Kun kehittäjätiimi @freeCodeCamp/dev-team on tyytyväinen vaiheistusalustan muutoksiin, nämä muutokset siirretään muutaman päivän välein tuotanto-nykyiseen -haaraan.

Tämä on viimeinen julkaisu, joka siirtää muutoksia freeCodeCamp.orgin tuotantoalustoihimme.

Muutosten testaus - Integraatio ja käyttäjän hyväksymistesti.

Käytämme eri tasoilla integraation ja hyväksynnän testaus tarkistaa laadun koodin. Kaikki testimme tehdään ohjelmistojen kautta, kuten Travis CI ja Azure Pipelines.

Meillä on yksikkötestejä haasteratkaisujemme testaamiseen, palvelimen API-rajapintoihin ja asiakaskäyttöliittymiin. Nämä auttavat meitä testaamaan eri komponenttien välistä integrointia.

[!HUOM] Olemme myös kirjoittamassa loppukäyttäjän testejä, jotka auttavat jäljittelemään reaalimaailman skenaarioita kuten päivittämällä sähköpostia tai soittamalla API tai kolmannen osapuolen palveluihin.

Yhdessä nämä testit auttavat estämään ongelmia toistamasta itseään ja varmistaa, emme ota käyttöön bugi työskennellessämme toisen bugin tai ominaisuuden.

Muutosten käyttöönotto - Palvelimiin tehtävien muutosten painaminen.

Olemme konfiguroineet jatkuvan toimituksen ohjelmisto työntää muutoksia meidän kehitys- ja tuotantopalvelimet.

Kun muutokset on työnnetty suojatuille julkaisusivukonttoreille, rakenneputki laukeaa automaattisesti sivukonttorin käyttöön. Rakennusputkistot ovat vastuussa esineiden rakentamisesta ja niiden pitämisestä kylmävarastossa myöhempää käyttöä varten.

Rakenneputki laukaisee vastaavan kaasuputken, jos se on valmis menestyksekkäästi ajettavaksi. Vapautusputkistot ovat vastuussa rakentamiseen liittyvien esineiden keräämisestä, niiden siirtämisestä palvelimille ja elämiseen.

Rakennusten ja julkaisujen tila on saatavilla täällä.

Rakenteen, testauksen ja käyttöönoton käynnistäminen.

Tällä hetkellä vain kehittäjätiimin jäsenet voivat työntää tuotannon sivuliikkeisiin. Muutokset tuotanto-* haaroihin voivat laskeutua vain nopeasti tapahtuvan yhdistämisen kautta ylävirtaan.

[!HUOM] Tulevina päivinä me parantaisimme tätä virtausta tekemällä pull-pyyntöjä ja parantamalla käyttöoikeuksien hallintaa ja avoimuutta.

Työstetään muutoksia vaiheistetun julkaisun sovelluksiin.

  1. Määritä kaukosäätimet oikein.

    git remote -v
    

    Tulokset:

    origin git@github.com:raisedadead/freeCodeCamp.git (fetch)
    origin git@github.com:raisedadead/freeCodeCamp.git (push)
    upstream git@github.com:freeCodeCamp/freeCodeCamp.git (fetch)
    upstream git@github.com:freeCodeCamp/freeCodeCamp.git (push)
    
  2. Varmista, että master haara on koskematon ja synkronoitu ylöspäin.

    git checkout master
    git fetch --all --prune
    git reset --hard upstream/master
    
  3. Tarkista, että Travis CI kulkee master -haarassa ylöspäin.

    Jatkuvan integroinnin testien tulee olla vihreitä ja PASSING master -sivuliikkeelle.

    Tarkistetaan Travis CI -järjestelmän tilaa (kuvakaappaus)
    ![Tarkista version tila Travis CI -valmisteella](https://raw.githubusercontent.com/freeCodeCamp/freeCodeCamp/master/docs/images/devops/travis-build.png)

    Jos tämä ei onnistu, sinun pitäisi lopettaa ja tutkia virheitä.

  4. Vahvista että pystyt rakentamaan arkiston paikallisesti.

    npm ajaa puhdasta ja kehittää
    
  5. Siirrä muutokset master

    git checkout tuotantovaiheinen
    git merge master
    git push upstream
    

    [!HUOM] Et voi pakottaa työntöä ja jos olet kirjoittanut historian uudelleen joka tapauksessa nämä komennot ovat virheellisiä.

    Jos he tekevät, olet ehkä tehnyt jotain väärin ja sinun pitäisi vain aloittaa alusta.

Edellä mainitut vaiheet laukaisevat automaattisesti ajon rakenneputkeen tuotantovaiheista vastaavaa haaraa varten. Kun rakennus on valmis, artifaktat tallennetaan .zip tiedostoina kylmään tallennustilaan, jota haetaan ja käytetään myöhemmin.

Vapautusputki laukeaa automaattisesti, kun siihen liitetystä rakennusputkesta on saatavilla uusi artifakti. Lavausalustoille tämä prosessi ei sisällä manuaalista hyväksyntää ja esineitä työnnetään Client CDN- ja API-palvelimille.

[!TIP·label:Arviot] Tyypillisesti rakentamiseen kuluu noin 20-25 minuuttia ja sen jälkeen julkaisuajo, joka kestää noin 15-20 min asiakkaalle, ja ~5-10 min jotta API on saatavilla suorana. Koodista työnnä olla elävänä lavastus alustoilla koko prosessi kestää yhteensä ~ 35-45 min.

Työnnetään muutoksia tuotantosovelluksiin.

Prosessi on enimmäkseen sama kuin lavastus ja muutamia lisätarkastuksia on tehty. Tämä on vain tehdä varma, emme rikkoa mitään freeCodeCamp.org joka voi nähdä satoja käyttäjiä sitä milloin tahansa.

ÄLÄ suorita näitä komentoja, ellet ole varmistanut, että kaikki toimii lavastusalustalla. Sinun ei pitäisi ohittaa tai ohittaa mitään testausta lavastuksen yhteydessä ennen kuin jatkat eteenpäin.
  1. Varmista, että tuotantovaiheinen haara on koskematon ja synkronoitu ylöspäin.

    git checkout production-staging
    git fetch --all --prune
    git reset --hard upstream/production-staging
    
  2. Siirrä muutokset tuotantovaiheisesta

    git checkout tuotantovirta
    git yhdistää tuotantovaiheisen
    git push upstream
    

    [!HUOM] Et voi pakottaa työntöä ja jos olet kirjoittanut historian uudelleen joka tapauksessa nämä komennot ovat virheellisiä.

    Jos he tekevät, olet ehkä tehnyt jotain väärin ja sinun pitäisi vain aloittaa alusta.

Edellä mainitut vaiheet laukaisevat automaattisesti ajon rakenneputkistoon tuotantovirran haaraa varten. Kun rakentaa artifact on valmis, se laukaisee ajaa päästöputkistossa.

[!TIPělabel:Arviot] Tyypillisesti koontiajo kestää ~20-25 minuuttia loppuun.

Henkilöstötoimia koskevat lisätoimet

Yksi julkaisuajo on käynnistynyt, kehittäjän henkilökunnan jäsenet saavat automaattisen manuaalisen intervention sähköpostiosoitteen. He voivat joko hyväksyä tai hylätä julkaisuajan.

Jos muutokset toimivat hyvin ja ne on testattu vaiheistetulla alustalla, se voidaan hyväksyä. Hyväksyntä on annettava 4 tunnin kuluessa vapauttamisen alkamisesta ennen kuin se hylätään automaattisesti. Henkilökunta voi käynnistää julkaisun uudelleen manuaalisesti hylätyistä ajoista, tai odottaa seuraavaa julkaisujaksoa.

Henkilöstön käyttö:

Tarkista sähköpostisi saadaksesi suoran linkin tai siirry julkaisuhallintapaneeliin sen jälkeen, kun käännöksen suoritus on valmis.

Kun yksi henkilöstön jäsenistä hyväksyy vapauttamisen, putki ajaa muutokset elää freeCodeCamp.orgin tuotannon CDN ja API palvelimet. Ne kestävät tyypillisesti noin 15-20 min asiakkaalle, ja ~5 min API-palvelimet ovat saatavilla suorina.

[!TIP·label:Arviot] Julkaisu kestää tyypillisesti ~15-20 min jokaista asiakasta, ja ~5-10 min jokaisesta API instanssista on saatavilla livenä. Koodista työnnä ollakseen elossa tuotantoalustoilla koko prosessi kestää ~ 90-120 min yhteensä (ei lasketa henkilöstön hyväksynnän odotusaikaa).

Koonti-, testi- ja käyttöönottotila

Tässä on nykyinen testi, rakentaa ja ottaa käyttöön tila codebase.

Tyyppi Haara Tila Hallintapaneeli
CI Testit mestari Travis Ci Build -tila Siirry tilan hallintapaneeliin
CI Testit tuotantovaiheistus Travis Ci Build -tila Siirry tilan hallintapaneeliin
Koosta Putkilinja tuotantovaiheistus Koosteen Tila Siirry tilan hallintapaneeliin
Vapauta Pipeline tuotantovaiheistus Siirry tilan hallintapaneeliin
CI Testit tuotantovirta Travis Ci Build -tila Siirry tilan hallintapaneeliin
Koosta Putkilinja tuotantovirta Koosteen Tila Siirry tilan hallintapaneeliin
Vapauta Pipeline tuotantovirta Siirry tilan hallintapaneeliin

Varhainen pääsy ja beta-testaus

Toivotamme sinut tervetulleeksi testaamaan näitä julkaisuja "julkisen beta-testauksessa" -tilassa ja pääsemään varhaisessa vaiheessa käsiksi tuleviin ominaisuuksiin alustoille. Joskus näitä ominaisuuksia/muutoksia kutsutaan seuraavaksi, beta, lavastus jne. vaihdettaviksi.

Palautteesi palautteen ja kysymysraporttien kautta auttavat meitä tekemään tuotantoalustoja osoitteessa freeCodeCamp. rg lisää joustava, johdonmukainen ja vakaa kaikille.

Kiitämme teitä raportoinnista vikoja, joita kohtaat ja auttaa tekemään freeCodeCamp.org paremmin. Sinä rock!

Laitosten tulevan version tunnistaminen

Tällä hetkellä julkinen beetatestaus versio on saatavilla osoitteessa:

freecodecamp.dev

[!HUOM] Verkkotunnuksen nimi on erilainen kuin freeCodeCamp.org. Tämä on tarkoituksellista estää hakukoneen indeksointi ja välttää sekaannusta alustan säännöllisten käyttäjien keskuudessa.

Laitosten nykyisen version tunnistaminen

Nykyinen versio alustasta on aina saatavilla osoitteessa freeCodeCamp.org.

Dev-tiimi yhdistää muutokset tuotantovaiheisesta haarasta tuotantovirtaan kun ne julkaistaan muutokset. Top commit pitäisi olla mitä näet elää sivustolla.

Voit tunnistaa tarkan version joka on otettu käyttöön käymällä tila-osiossa käytettävissä olevissa rakentamis- ja käyttöönottolokeissa. Vaihtoehtoisesti voit myös ping meitä osallistujien chat-huoneessa vahvistaa.

Tunnetut Rajoitukset

On olemassa joitakin tunnettuja rajoituksia ja kompromisseja käytettäessä beta-versiota alusta.

  • Kaikki tiedot / henkilökohtainen edistyminen näillä beta-alustoilla EI tallenneta tai siirretä tuotantoon.

    Beta-versiossa olevilla käyttäjillä on tuotannosta erillinen tili. Beta-versiossa käytetään fyysisesti erillistä tietokantaa tuotannosta. Tämä antaa meille mahdollisuuden estää tahattomia tietojen menetyksiä tai muutoksia. dev tiimi voi tyhjentää tietokannan tämän beta-version tarpeen mukaan.

  • Beta-alustojen käytettävyydestä ja luotettavuudesta ei ole takeita.

    Käyttöönoton odotetaan olevan yleistä ja nopeaa toistoa, joskus useita kertoja päivässä. Tämän seurauksena beta-versiossa tulee olemaan odottamattomia seisokkeja ajoittain tai rikkoutuneita toimintoja.

  • Älä lähetä säännöllisiä käyttäjiä tälle sivustolle korjauksen vahvistamisen mittana

    Beta sivusto on ja on aina ollut laajentaa paikallista kehitystä ja testausta, ei mitään muuta. Se ei ole lupaus siitä, mitä on tulossa, vaan väläys siitä, mitä tehdään.

  • Allekirjoita sivu voi näyttää toiselta kuin tuotanto

    Käytämme testivuokralainen freecodecamp.dev Auth0, ja näin ollen ei ole kykyä asettaa mukautetun verkkotunnuksen. Tämä tekee siitä niin, että kaikki uudelleenohjatut takaisinkutsut ja kirjautumissivu näkyvät oletusverkkotunnuksella: https://freecodecamp-dev.auth0.com/. Tämä ei vaikuta toiminnallisuuteen on niin lähellä tuotantoa kuin voimme saada.

Raportointikysymykset ja palautteen antaminen

Ole hyvä ja avaa uusia asioita keskusteluille ja vikojen raportointille. Voit merkitä ne nimellä julkaisu: seuraava / beta

Voit lähettää sähköpostia osoitteeseen dev[at]freecodecamp.org jos sinulla on kysyttävää. Kuten aina kaikki tietoturvahaavoittuvuudet tulisi ilmoittaa tietoturvalle[at]freecodecamp.org julkisen seurantakeskuksen ja foorumin sijaan.