freeCodeCamp/docs/i18n/Finnish/devops.md

228 lines
18 KiB
Markdown

# 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`](https://github.com/freeCodeCamp/freeCodeCamp/tree/master) (oletuskehityshaara) on yhdistetty [`tuotantovaiheiseen`](https://github.com/freeCodeCamp/freeCodeCamp/tree/production-staging) 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`](https://github.com/orgs/freeCodeCamp/teams/dev-team/members) on tyytyväinen vaiheistusalustan muutoksiin, nämä muutokset siirretään muutaman päivän välein [`tuotanto-nykyiseen`](https://github.com/freeCodeCamp/freeCodeCamp/tree/production-current) -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](https://travis-ci.org/freeCodeCamp/freeCodeCamp) ja [Azure Pipelines](https://dev.azure.com/freeCodeCamp-org/freeCodeCamp).
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ä](#build-test-and-deployment-status).
## 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`](https://github.com/freeCodeCamp/freeCodeCamp).
> [!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.
```sh
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.
```sh
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](https://travis-ci.com/github/freeCodeCamp/freeCodeCamp/branches) testien tulee olla vihreitä ja PASSING `master` -sivuliikkeelle.
<details> <summary> Tarkistetaan Travis CI -järjestelmän tilaa (kuvakaappaus) </summary>
<br>
![Tarkista version tila Travis CI -valmisteella](https://raw.githubusercontent.com/freeCodeCamp/freeCodeCamp/master/docs/images/devops/travis-build.png)
</details>
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.
```sh
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](https://dev.azure.com/freeCodeCamp-org/freeCodeCamp/_release) 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`](https://github.com/freeCodeCamp/freeCodeCamp/tree/master) | ![Travis Ci Build -tila](https://travis-ci.com/freeCodeCamp/freeCodeCamp.svg?branch=master) | [Siirry tilan hallintapaneeliin](https://travis-ci.com/github/freeCodeCamp/freeCodeCamp/branches) |
| CI Testit | [`tuotantovaiheistus`](https://github.com/freeCodeCamp/freeCodeCamp/tree/production-staging) | ![Travis Ci Build -tila](https://travis-ci.com/freeCodeCamp/freeCodeCamp.svg?branch=production-staging) | [Siirry tilan hallintapaneeliin](https://travis-ci.com/github/freeCodeCamp/freeCodeCamp/branches) |
| Koosta Putkilinja | [`tuotantovaiheistus`](https://github.com/freeCodeCamp/freeCodeCamp/tree/production-staging) | [![Koosteen Tila](https://dev.azure.com/freeCodeCamp-org/freeCodeCamp/_apis/build/status/dot-dev-ci?branchName=production-staging)](https://dev.azure.com/freeCodeCamp-org/freeCodeCamp/_build/latest?definitionId=15&branchName=production-staging) | [Siirry tilan hallintapaneeliin](https://dev.azure.com/freeCodeCamp-org/freeCodeCamp/_build) |
| Vapauta Pipeline | [`tuotantovaiheistus`](https://github.com/freeCodeCamp/freeCodeCamp/tree/production-staging) | | [Siirry tilan hallintapaneeliin](https://dev.azure.com/freeCodeCamp-org/freeCodeCamp/_release) |
| CI Testit | [`tuotantovirta`](https://github.com/freeCodeCamp/freeCodeCamp/tree/production-current) | ![Travis Ci Build -tila](https://travis-ci.com/freeCodeCamp/freeCodeCamp.svg?branch=production-current) | [Siirry tilan hallintapaneeliin](https://travis-ci.com/github/freeCodeCamp/freeCodeCamp/branches) |
| Koosta Putkilinja | [`tuotantovirta`](https://github.com/freeCodeCamp/freeCodeCamp/tree/production-staging) | [![Koosteen Tila](https://dev.azure.com/freeCodeCamp-org/freeCodeCamp/_apis/build/status/dot-org-ci?branchName=production-current)](https://dev.azure.com/freeCodeCamp-org/freeCodeCamp/_build/latest?definitionId=17&branchName=production-current) | [Siirry tilan hallintapaneeliin](https://dev.azure.com/freeCodeCamp-org/freeCodeCamp/_build) |
| Vapauta Pipeline | [`tuotantovirta`](https://github.com/freeCodeCamp/freeCodeCamp/tree/production-staging) | | [Siirry tilan hallintapaneeliin](https://dev.azure.com/freeCodeCamp-org/freeCodeCamp/_release) |
## 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:
<h1 align="center"><a href='https://www.freecodecamp.dev' _target='blank'>freecodecamp.dev</a></h1>
> [!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`](https://www.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](https://gitter.im/FreeCodeCamp/Contributors) 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`](https://github.com/freeCodeCamp/freeCodeCamp/labels/release%3A%20next%2Fbeta)**
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.