YKSITYINEN INFRASTRUKTUURI / EI TUNNISTUSTA VAADITALue tietosuojakäytäntö
KoalaVPS-kenttämuistiinpanot

Tee agentista palvelu, ei unohdettu päätelaite.

Aja pitkäikäisiä työntekijöitä nimenomaisella tilalla, rajatuilla käyttöoikeuksilla ja palautussuunnitelmalla.

Pakkaa työntekijä

Käytä tuettua suoritusympäristöä, kiinnitettyjä riippuvuuksia ja palvelunhallintaa tai konttia. Määritä uudelleenkäynnistysrajat ja erillinen palvelukäyttäjä. Pidä yksityiset palveluntarjoajan tunnistetiedot suojatussa kokoonpanossa sovelluksen julkisten tiedostojen ulkopuolella.

Tallenna edistyminen ennen kuin toiminnoilla on merkitystä

Käytä kestävää jonoa tai tietokantaa töille. Anna yksilöllinen toimintotunniste, kirjaa ulkoiset pyynnöt ja täsmäytä epävarmat tulokset. Uudelleenkäynnistys ei saa lähettää toista sähköpostia, luoda toista tilausta tai veloittaa kahdesti.

Lisää hyödyllistä havaittavuutta

Seuraa työn valmistumista, jonon ikää, virheprosenttia ja kustannuksia sen sijaan, että tarkistaisit vain prosessin olemassaolon. Pidä lokit riittävän pieninä tarkistettaviksi ja peitä tunnukset, kehotteet ja asiakirjat, joita ei tarvitse säilyttää.

Aseta selkeä yläraja

Rajoita mallin kulutusta, selaimen samanaikaisuutta, suoritusaikaa ja uudelleenyritysten määrää. Pidä helppo keskeytyskytkin ja ihmisen tarkistuspolku merkittäville toimille. Pienempään, hyvin valvottuun työntekijään on helpompi luottaa kuin rajoittamattomaan.

Käytä valvojaa ja harkittua aikataulua

Systemd ja Docker ovat yleisiä tapoja pitää prosessi käynnissä päätteen yhteyden katketessa. Systemd-palvelussa Type=exec voi raportoida suoritusvirheen suoremmin kuin pelkkä taustakäynnistys, ja Restart=on-failure voi käynnistää epäonnistumiset uudelleen rajatuin käytännöin. Ajoitettujen tehtävien tulisi välttää päällekkäisiä ajoja. Pidä työhakemisto, palvelun käyttäjä ja ympäristö nimenomaisina. Esimerkki olettaa, että koala-agent-käyttäjä, virtuaaliympäristö, worker-moduuli ja yksityinen ympäristötiedosto ovat jo olemassa; mukauta niitä ennen yksikön asentamista.

  • Käytä erillistä palvelutiliä
  • Aseta uudelleenkäynnistyksen viive ja vikakatto
  • Tarkista edellisen työn tila ennen ajastetun ajon aloittamista
[Unit]
Description=Example agent worker
After=network-online.target

[Service]
Type=exec
User=koala-agent
WorkingDirectory=/opt/koala-agent
EnvironmentFile=/etc/koala-agent.env
ExecStart=/opt/koala-agent/.venv/bin/python -m worker
Restart=on-failure
RestartSec=10
NoNewPrivileges=true

[Install]
WantedBy=multi-user.target

Aseta päiväbudjetti ja duplikaattiraja

Aseta työntekijälle enimmäispyyntömäärä, kuluraja ja suorituksen aikakatkaisu. Käytä kestävää idempotenssitietuetta toiminnoille, jotka vaikuttavat ulkomaailmaan. Onnistunut selainklikkaus voi tapahtua ennen kuin prosessi vastaanottaa vastauksen; tarkista ulkoinen tila ennen uutta yritystä. Docker Composen salaisuusliitokset voivat pitää salaisuuden poissa imagesta, mutta käyttöoikeudet ja kuluttava sovellus on silti tarkistettava.

Anna jaksottaiselle työlle selkeä kiinniotto-käytäntö

Käytä pitkäkestoista palvelua pysyvälle jonotyöntekijälle ja ajastimen laukaisemaa oneshot-palvelua rajatulle ajoitetulle tehtävälle. systemd-kalenterin ajastimella Persistent=true voi laukaista yhden väliin jääneen aktivoinnin käyttökatkon jälkeen; se ei luo uudelleen koko liiketoiminnan rästiä. Päätä, onko tällainen kiinniotto toivottavaa. RandomizedDelaySec voi hajauttaa käynnistyksiä, kun taas sovellustason lease estää kahta replikaa käsittelemästä samaa ajoitettua työtä.

  • Kirjaa aiottu aikavyöhyke ja tarkista seuraavat suoritusajat ennen aikataulun ottamista käyttöön.
  • Pidä tehtävän suoritusmääräaika lyhyempänä kuin väli, joka ei saa mennä päällekkäin, tai käytä kestävää vuokrausta, jossa on vanheneminen ja omistajuus.
  • Anna tehtävän valita keskeneräiset työt tallennetusta tilasta sen sijaan, että oletettaisiin jokaisen aiemman ajastintapahtuman suorituneen.
  • Tarkista asennettu systemd-versio ennen uusimman käsikirjan direktiivin käyttöä.
# Read-only checks after creating your own matching units.
systemctl list-timers --all
systemctl status koala-agent.service
journalctl -u koala-agent.service --since today --no-pager

Erota kaatumissilmukka pysähtyneestä työntekijästä

Uudelleenkäynnistyskäytäntö voi palauttaa epäonnistuneen prosessin, mutta virheellisen tunnistetiedon tai rikkinäisen migraation toistaminen muutaman sekunnin välein tekee viasta äänekkäämmän. Rajoita palvelun käynnistyksiä ja hälytä toistuvasta epäonnistumisesta. Käynnissä oleva prosessi voi myös juuttua: mittaa vanhimman työn ikä ja viimeksi suoritettu toimenpide. Testaa API-katkos, täysi levy ja prosessin pysäytys kertakäyttöisillä töillä ja varmista sitten, että kestävä tila estää ulkoisten toimien toistumisen.

  • Aseta palveluntarjoajan budjetti ja pyyntöjen aikakatkaisu sovelluksessa sekä CPU/muistiraja ajonaikaisessa ympäristössä.
  • Docker-konteilla ei ole hyödyllistä työkuormakohtaista muistirajaa pelkästään siksi, että ne ovat kontteja; määritä ja testaa rajat tarkoituksella.
  • Tallenna salaisuus kuvan ja julkisen hakemiston ulkopuolelle ja testaa sitten, että kaatumislokit ja diagnostiikka peittävät sen.
  • Pidä manuaalinen pysäytysreitti ja vaadi asianmukainen tarkistus kulutukselle, tuotantokirjoituksille tai ulkoisille viesteille.
MÄÄRITÄ INFRASTRUKTUURISI

Ota hallinta haltuun.
Ota käyttöön omilla ehdoillasi.

Ei henkilöllisyysasiakirjoja. Täysi ylläpitäjän käyttöoikeus. Kryptovaluuttapohjainen laskutus.