Logaichean ann an Kubernetes (agus chan ann a-mhàin) an-diugh: sùileachadh agus fìrinn

Logaichean ann an Kubernetes (agus chan ann a-mhàin) an-diugh: sùileachadh agus fìrinn

Is e 2019 a th’ ann, agus chan eil fuasgladh àbhaisteach againn fhathast airson cruinneachadh logaichean ann an Kubernetes. San artaigil seo, bu mhath leinn, a’ cleachdadh eisimpleirean bho fhìor chleachdadh, na rannsachaidhean againn, na duilgheadasan a choinnich sinn agus na fuasglaidhean aca a cho-roinn.

Ach, an-toiseach, nì mi glèidheadh ​​​​gu bheil diofar luchd-ceannach a’ tuigsinn rudan gu math eadar-dhealaichte le bhith a’ cruinneachadh chlàran:

  • tha cuideigin airson logaichean tèarainteachd agus sgrùdaidh fhaicinn;
  • cuideigin - logadh meadhanaichte den bhun-structair gu lèir;
  • agus airson cuid, tha e gu leòr airson dìreach logaichean tagraidh a chruinneachadh, ach a-mhàin, mar eisimpleir, luchd-cothromachaidh.

Gu h-ìosal tha an gearradh gu h-ìosal mu mar a chuir sinn an gnìomh diofar “liostaichean miann” agus dè na duilgheadasan a choinnich sinn.

Teòiridh: mu innealan logaidh

Cùl-fhiosrachadh air co-phàirtean siostam logaidh

Tha logadh air a thighinn air slighe fhada, mar thoradh air an deach dòighean-obrach airson cruinneachadh agus sgrùdadh logaichean a leasachadh, agus is e sin a bhios sinn a’ cleachdadh an-diugh. Air ais anns na 1950n, thug Fortran a-steach analogue de shruthan cur-a-steach / toraidh àbhaisteach, a chuidich am prògramadair a phrògram a dheasbad. B’ iad sin a’ chiad logaichean coimpiutair a rinn beatha na b’ fhasa do phrògramadairean aig na h-amannan sin. An-diugh chì sinn annta a’ chiad phàirt den t-siostam logaidh - stòr no “riochdaire” de logaichean.

Cha do sheas saidheans coimpiutaireachd fhathast: nochd lìonraidhean coimpiutaireachd, a 'chiad chlàran ... Thòisich siostaman iom-fhillte le grunn choimpiutairean ag obair. A-nis b’ fheudar do luchd-rianachd an t-siostaim logaichean a chruinneachadh bho ghrunn innealan, agus ann an cùisean sònraichte b’ urrainn dhaibh teachdaireachdan kernel OS a chuir ris gun fhios nach biodh aca ri sgrùdadh a dhèanamh air fàiligeadh san t-siostam. Gus cunntas a thoirt air siostaman cruinneachaidh logaichean meadhanaichte, tràth anns na 2000n chaidh fhoillseachadh RFC 3164, a bha àbhaisteachadh remote_syslog. Seo mar a nochd pàirt chudromach eile: neach-cruinneachaidh logaichean agus an stòradh aca.

Leis an àrdachadh ann an àireamh nan logaichean agus toirt a-steach farsaing de theicneòlasan lìn, dh’ èirich a’ cheist dè na logaichean a dh’ fheumar a shealltainn gu goireasach do luchd-cleachdaidh. Tha innealan nas adhartaiche air an cur an àite innealan tòcan sìmplidh (awk/sed/grep). luchd-coimhid logaichean - an treas pàirt.

Mar thoradh air an àrdachadh ann an àireamh nan logaichean, dh'fhàs rudeigin eile soilleir: tha feum air logaichean, ach chan eil iad uile. Agus feumaidh diofar logaichean diofar ìrean gleidhidh: faodaidh cuid a bhith air an call ann an latha, agus feumaidh cuid eile a bhith air an stòradh airson 5 bliadhna. Mar sin, chaidh pàirt airson sìoladh agus stiùireadh sruthan dàta a chur ris an t-siostam logaidh - canaidh sinn e criathradh.

Tha stòradh cuideachd air leum mòr a dhèanamh: bho fhaidhlichean cunbhalach gu stòran-dàta co-cheangailte, agus an uairsin gu stòradh stèidhichte air sgrìobhainnean (mar eisimpleir, Elasticsearch). Mar sin chaidh an stòradh a sgaradh bhon neach-cruinneachaidh.

Aig a 'cheann thall, tha fìor bhun-bheachd log air leudachadh gu seòrsa de shruth eas-chruthach de thachartasan a tha sinn airson a ghleidheadh ​​​​airson eachdraidh. No an àite sin, air eagal ‘s gum feum thu sgrùdadh a dhèanamh no aithisg anailis a dhealbhadh ...

Mar thoradh air an sin, ann an ùine gu math goirid, tha cruinneachadh logaichean air fàs gu bhith na fho-shiostam cudromach, ris an canar gu ceart aon de na fo-roinnean ann an Dàta Mòr.

Logaichean ann an Kubernetes (agus chan ann a-mhàin) an-diugh: sùileachadh agus fìrinn
Ma dh’ fhaodadh clò-bhualaidhean àbhaisteach a bhith gu leòr airson “siostam logaidh,” a-nis tha an suidheachadh air atharrachadh gu mòr.

Kubernetes agus clàran

Nuair a thàinig Kubernetes chun bhun-structair, cha do chuir an duilgheadas a bha ann mu thràth mu bhith a ’tional logaichean seachad air nas motha. Ann an cuid de dhòighean, dh'fhàs e eadhon nas dorra: bha riaghladh an àrd-ùrlar bun-structair chan ann a-mhàin air a dhèanamh nas sìmplidhe, ach cuideachd iom-fhillte aig an aon àm. Tha mòran de sheann sheirbheisean air tòiseachadh a’ gluasad gu microservices. Ann an co-theacsa logaichean, tha seo ri fhaicinn anns an àireamh de stòran log a tha a’ sìor fhàs, an cearcall-beatha sònraichte aca, agus an fheum air dàimhean gach pàirt den t-siostam a lorg tro logaichean ...

A’ coimhead air adhart, is urrainn dhomh innse a-nis, gu mì-fhortanach, nach eil roghainn logaidh àbhaisteach ann airson Kubernetes a bhiodh an coimeas gu fàbharach ris a h-uile càil eile. Is iad na sgeamaichean as mòr-chòrdte sa choimhearsnachd mar a leanas:

  • tha neach a' fuasgail a' chruaich EFK (Easticsearch, Fluentd, Kibana);
  • tha cuideigin a’ feuchainn ris an fhoillseachadh a chaidh fhoillseachadh o chionn ghoirid Loki no cleachdadh Gnìomhaiche logadh a-steach;
  • нас (agus is dòcha chan e a-mhàin sinne?..) Tha mi gu ìre mhòr riaraichte leis an leasachadh agam fhìn - taigh-logaidh...

Mar riaghailt, bidh sinn a’ cleachdadh na pasganan a leanas ann an cruinneachaidhean K8s (airson fuasglaidhean fèin-aoigheachd):

Ach, cha bhith mi a’ fuireach air an stiùireadh airson an stàladh agus an rèiteachadh. An àite sin, cuiridh mi fòcas air na h-easbhaidhean aca agus co-dhùnaidhean nas cruinne mun t-suidheachadh le logaichean san fharsaingeachd.

Cleachd le logaichean ann an K8s

Logaichean ann an Kubernetes (agus chan ann a-mhàin) an-diugh: sùileachadh agus fìrinn

“Logaichean làitheil”, cia mheud agaibh a tha ann?..

Feumaidh cruinneachadh meadhanach de logaichean bho bhun-structar meadhanach mòr mòran ghoireasan, a thèid a chosg air cruinneachadh, stòradh agus giullachd chlàran. Rè obrachadh diofar phròiseactan, bha sinn mu choinneimh diofar riatanasan agus duilgheadasan obrachaidh ag èirigh bhuapa.

Feuchaidh sinn ri ClickHouse

Bheir sinn sùil air stòradh meadhanaichte air pròiseact le tagradh a ghineas logaichean gu math gnìomhach: barrachd air loidhnichean 5000 gach diog. Feuch an tòisich sinn ag obair leis na logaichean aige, gan cur ri ClickHouse.

Cho luath ‘s a bhios feum air fìor-ùine, bidh am frithealaiche 4-core le ClickHouse air a luchdachadh cus mu thràth air an fho-shiostam diosc:

Logaichean ann an Kubernetes (agus chan ann a-mhàin) an-diugh: sùileachadh agus fìrinn

Tha an seòrsa luchdachadh seo mar thoradh air gu bheil sinn a’ feuchainn ri sgrìobhadh ann an ClickHouse cho luath ‘s a ghabhas. Agus bidh an stòr-dàta a’ dèiligeadh ri seo le barrachd eallach diosc, a dh’ fhaodadh na mearachdan a leanas adhbhrachadh:

DB::Exception: Too many parts (300). Merges are processing significantly slower than inserts

Rubha 'S e sin Clàr MergeTree ann an ClickHouse (tha dàta log ann) tha na duilgheadasan aca fhèin rè obair sgrìobhaidh. Bidh an dàta a chuirear a-steach annta a’ gineadh sgaradh sealach, a tha an uairsin air a chur còmhla ris a’ phrìomh chlàr. Mar thoradh air an sin, tha e coltach gu bheil an clàradh gu math dùbhlanach air an diosc, agus tha e cuideachd an urra ris a’ chuingealachadh a fhuair sinn fios mu dheidhinn gu h-àrd: chan urrainnear barrachd air 1 fo-roinnean a chur còmhla ann an 300 diog (gu dearbh, is e seo 300 cuir a-steach gach diog).

Gus an giùlan seo a sheachnadh, bu chòir sgrìobhadh gu ClickHouse ann am pìosan cho mòr ‘s as urrainn agus gun a bhith nas fhaide na 1 uair gach 2 diog. Ach, tha sgrìobhadh ann an spreadhaidhean mòra a’ moladh gum bu chòir dhuinn sgrìobhadh cho tric ann an ClickHouse. Faodaidh seo, an uair sin, leantainn gu tar-shruth bufair agus call logaichean. Is e am fuasgladh am bufair Fileanta a mheudachadh, ach an uairsin àrdaichidh caitheamh cuimhne cuideachd.

thuirt: Bha taobh trioblaideach eile den fhuasgladh againn le ClickHouse co-cheangailte ris an fhìrinn gu bheil sgaradh sa chùis againn (taigh-logaidh) air a chuir an gnìomh tro chlàran taobh a-muigh ceangailte Clàr còmhla. Tha seo a’ ciallachadh gu bheil feum air cus RAM nuair a thathar a’ samplachadh amannan mòra, leis gu bheil an metatable ag ath-aithris tro gach sgaradh - eadhon an fheadhainn anns a bheil e follaiseach nach eil an dàta riatanach ann. Ach, a-nis faodar an dòigh-obrach seo ainmeachadh gu sàbhailte gun fheum airson dreachan gnàthach de ClickHouse (c 18.16).

Mar thoradh air an sin, bidh e soilleir nach eil goireasan gu leòr aig a h-uile pròiseact gus logaichean a chruinneachadh ann an àm fìor ann an ClickHouse (nas mionaidiche, cha bhith an cuairteachadh iomchaidh). A bharrachd air an sin, feumaidh tu a chleachdadh аккумулятор, air an till sinn an dèigh so. Tha a’ chùis a chaidh a mhìneachadh gu h-àrd fìor. Agus aig an àm sin cha b’ urrainn dhuinn fuasgladh earbsach is seasmhach a thabhann a bhiodh iomchaidh don neach-ceannach agus a leigeadh leinn logaichean a chruinneachadh gun mòran dàil...

Dè mu dheidhinn Elasticsearch?

Tha fios gu bheil Elasticsearch a’ làimhseachadh eallach obrach trom. Feuch sinn e san aon phròiseact. A-nis tha an luchd a’ coimhead mar seo:

Logaichean ann an Kubernetes (agus chan ann a-mhàin) an-diugh: sùileachadh agus fìrinn

Bha e comasach dha Elasticsearch an t-sruth dàta a chnàmh, ge-tà, le bhith a’ sgrìobhadh leabhraichean mar sin thuige tha e gu mòr a’ cleachdadh an CPU. Tha seo air a cho-dhùnadh le bhith a’ cur buidheann air dòigh. Gu teicnigeach, chan e duilgheadas a tha seo, ach tha e a ’tionndadh a-mach gur e dìreach airson an siostam cruinneachadh log obrachadh a tha sinn mu thràth a’ cleachdadh timcheall air 8 cores agus tha pàirt làn luchdaichte a bharrachd againn san t-siostam ...

Gu h-ìseal: faodar an roghainn seo fhìreanachadh, ach dìreach ma tha am pròiseact mòr agus gu bheil an riaghladh deiseil gus goireasan cudromach a chosg air siostam logaidh meadhanaichte.

An uairsin tha ceist nàdarra ag èirigh:

Dè na logaichean a tha dha-rìribh a dhìth?

Logaichean ann an Kubernetes (agus chan ann a-mhàin) an-diugh: sùileachadh agus fìrinn Feuchaidh sinn ris an dòigh-obrach fhèin atharrachadh: bu chòir logaichean a bhith fiosrachail aig an aon àm agus gun a bhith còmhdaichte gach aon tachartas san t-siostam.

Canaidh sinn gu bheil stòr air-loidhne soirbheachail againn. Dè na clàran a tha cudromach? Is e deagh bheachd a th 'ann a bhith a' cruinneachadh uiread de dh'fhiosrachadh 's as urrainn, mar eisimpleir, bho gheata pàighidh. Ach chan eil a h-uile log bhon t-seirbheis slicing ìomhaighean anns a’ chatalog toraidh deatamach dhuinn: chan eil ach mearachdan agus sgrùdadh adhartach gu leòr (mar eisimpleir, an àireamh sa cheud de mhearachdan 500 a bhios am pàirt seo a ’gineadh).

Mar sin tha sinn air tighinn chun cho-dhùnadh sin chan eil logadh meadhanaichte an-còmhnaidh air fhìreanachadh. Glè thric bidh an neach-dèiligidh ag iarraidh na logaichean gu lèir a chruinneachadh ann an aon àite, ged gu dearbh, bhon log gu lèir, chan eil a dhìth ach 5% de theachdaireachdan a tha riatanach don ghnìomhachas:

  • Aig amannan tha e gu leòr a bhith a’ rèiteachadh, can, dìreach meud an loga container agus an neach-cruinneachaidh mhearachdan (mar eisimpleir, Sentry).
  • Is dòcha gum bi fios mearachd agus log mòr ionadail fhèin gu leòr airson tachartasan a sgrùdadh.
  • Bha pròiseactan againn a bha a’ buntainn ri deuchainnean gnìomh a-mhàin agus siostaman cruinneachadh mhearachdan. Cha robh feum aig an leasaiche air logaichean mar sin - chunnaic iad a h-uile càil bho lorgan mearachd.

Dealbh bho bheatha

Faodaidh sgeulachd eile a bhith na dheagh eisimpleir. Fhuair sinn iarrtas bho sgioba tèarainteachd aon de ar luchd-dèiligidh a bha mar-thà a 'cleachdadh fuasgladh malairteach a chaidh a leasachadh fada mus deach Kubernetes a thoirt a-steach.

Bha feum air “caraidean a dhèanamh” den t-siostam cruinneachadh log meadhanaichte leis an sensor lorg duilgheadas corporra - QRadar. Faodaidh an siostam seo logaichean fhaighinn tron ​​phròtacal syslog agus an toirt air ais o FTP. Ach, cha robh e comasach sa bhad a cheangal ris a’ plugan remote_syslog airson fileantaich (mar a thachair, chan eil sinn nar n-aonar). Thàinig duilgheadasan le stèidheachadh QRadar gu bhith air taobh sgioba tèarainteachd an neach-dèiligidh.

Mar thoradh air an sin, chaidh pàirt de na logaichean a tha deatamach do ghnìomhachas a luchdachadh suas gu FTP QRadar, agus chaidh am pàirt eile ath-stiùireadh tro syslog iomallach gu dìreach bho na nodan. Airson seo sgrìobh sinn eadhon clàr sìmplidh - is dòcha gun cuidich e cuideigin gus fuasgladh fhaighinn air duilgheadas coltach ris ... Taing don sgeama a thàinig às, fhuair an neach-dèiligidh fhèin agus rinn e mion-sgrùdadh air logaichean èiginneach (a’ cleachdadh na h-innealan as fheàrr leis), agus bha e comasach dhuinn cosgais an t-siostam logaidh a lughdachadh, a ’sàbhaladh a-mhàin an mìos a chaidh seachad.

Tha eisimpleir eile gu math na chomharra air dè nach bu chòir a dhèanamh. Aon de ar luchd-dèiligidh airson giollachd gach fear tachartasan a’ tighinn bhon neach-cleachdaidh, air an dèanamh ioma-loidhne toradh neo-structarail fiosrachadh ann an log. Mar a shaoileadh tu, bha na logaichean sin air leth mì-ghoireasach airson an leughadh agus an stòradh.

Slatan-tomhais airson clàran

Tha eisimpleirean mar seo a 'leantainn gu co-dhùnadh gum feum thu a bharrachd air siostam cruinneachadh log a thaghadh cuideachd dealbhadh na logaichean fhèin! Dè na riatanasan a th’ ann an seo?

  • Feumaidh logaichean a bhith ann an cruth inneal-leughaidh (mar eisimpleir, JSON).
  • Bu chòir logaichean a bhith teann agus le comas an ìre de logadh atharrachadh gus duilgheadasan a dh’ fhaodadh a bhith ann. Aig an aon àm, ann an àrainneachdan cinneasachaidh bu chòir dhut siostaman a ruith le ìre logaidh mar rabhadh no mearachd.
  • Feumaidh logaichean a bhith àbhaisteach, is e sin, ann an rud log, feumaidh an aon seòrsa achaidh a bhith aig a h-uile loidhne.

Faodaidh logaichean neo-structaraichte duilgheadasan adhbhrachadh le bhith a’ luchdachadh logaichean a-steach don stòradh agus stad iomlan air an giullachd. Mar eisimpleir, seo eisimpleir le mearachd 400, a tha mòran air tachairt gu cinnteach ann an logaichean fileanta:

2019-10-29 13:10:43 +0000 [warn]: dump an error event: error_class=Fluent::Plugin::ElasticsearchErrorHandler::ElasticsearchError error="400 - Rejected by Elasticsearch"

Tha a’ mhearachd a’ ciallachadh gu bheil thu a’ cur raon aig a bheil an seòrsa neo-sheasmhach chun chlàr-amais le mapadh deiseil. Is e an eisimpleir as sìmplidh raon ann an log nginx le caochladair $upstream_status. Faodaidh àireamh no sreang a bhith ann. Mar eisimpleir:

{ "ip": "1.2.3.4", "http_user": "-", "request_id": "17ee8a579e833b5ab9843a0aca10b941", "time": "29/Oct/2019:16:18:57 +0300", "method": "GET", "uri": "/staffs/265.png", "protocol": "HTTP/1.1", "status": "200", "body_size": "906", "referrer": "https://example.com/staff", "user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.70 Safari/537.36", "request_time": "0.001", "cache_status": "-", "upstream_response_time": "0.001, 0.007", "upstream_addr": "127.0.0.1:9000", "upstream_status": "200", "upstream_response_length": "906", "location": "staff"}
{ "ip": "1.2.3.4", "http_user": "-", "request_id": "47fe42807f2a7d8d5467511d7d553a1b", "time": "29/Oct/2019:16:18:57 +0300", "method": "GET", "uri": "/staff", "protocol": "HTTP/1.1", "status": "200", "body_size": "2984", "referrer": "-", "user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.70 Safari/537.36", "request_time": "0.010", "cache_status": "-", "upstream_response_time": "0.001, 0.007", "upstream_addr": "10.100.0.10:9000, 10.100.0.11:9000", "upstream_status": "404, 200", "upstream_response_length": "0, 2984", "location": "staff"}

Tha na logaichean a 'sealltainn gun do fhreagair frithealaiche 10.100.0.10 le mearachd 404 agus chaidh an t-iarrtas a chuir gu stòradh susbaint eile. Mar thoradh air an sin, dh'fhàs an luach anns na logaichean mar seo:

"upstream_response_time": "0.001, 0.007"

Tha an suidheachadh seo cho cumanta is gu bheil e eadhon airidh air suidheachadh air leth iomraidhean ann an sgrìobhainnean.

Dè mu dheidhinn earbsachd?

Tha amannan ann nuair a tha a h-uile log gun eisgeachd deatamach. Agus le seo, tha duilgheadasan aig na sgeamaichean cruinneachaidh log àbhaisteach airson K8n a chaidh a mholadh / a dheasbad gu h-àrd.

Mar eisimpleir, chan urrainn dha fileantaich logaichean a chruinneachadh bho shoithichean geàrr-ùine. Ann am fear de na pròiseactan againn, bha an inneal imrich stòr-dàta beò airson nas lugha na 4 diogan agus an uairsin chaidh a dhubhadh às - a rèir an nota co-fhreagarrach:

"helm.sh/hook-delete-policy": hook-succeeded

Air sgàth seo, cha deach an log gnìomh imrich a thoirt a-steach don stòradh. Faodaidh poilitigs cuideachadh sa chùis seo. before-hook-creation.

Is e eisimpleir eile cuairteachadh log Docker. Canaidh sinn gu bheil tagradh ann a bhios gu gnìomhach a’ sgrìobhadh gu logaichean. Fo chumhachan àbhaisteach, bidh sinn comasach air na logaichean gu lèir a phròiseasadh, ach cho luath ‘s a nochdas duilgheadas - mar eisimpleir, mar a chaidh a mhìneachadh gu h-àrd le cruth ceàrr - stadaidh an giullachd, agus bidh Docker a’ cuairteachadh am faidhle. Is e an toradh a dh’ fhaodadh gun tèid logaichean a tha deatamach do ghnìomhachas a chall.

Sin as coireach tha e cudromach sruthan log a sgaradh, a 'toirt a-steach a bhith a' cur an fheadhainn as luachmhoire gu dìreach a-steach don tagradh gus dèanamh cinnteach gu bheil iad sàbhailte. A bharrachd air an sin, cha bhiodh e iomarcach cuid a chruthachadh “cruinneadair” de logaichean, a dh’ fhaodadh a bhith beò gun stòradh goirid fhad ‘s a shàbhaileas tu teachdaireachdan èiginneach.

Mu dheireadh, cha bu chòir dhuinn dìochuimhneachadh sin Tha e cudromach sùil cheart a chumail air fo-shiostam sam bith. Rud eile, tha e furasta a dhol a-steach do shuidheachadh far a bheil fileantaich ann an staid CrashLoopBackOff agus chan eil e a 'cur rud sam bith, agus tha seo a' gealltainn call fiosrachadh cudromach.

toraidhean

San artaigil seo, chan eil sinn a’ coimhead air fuasglaidhean SaaS mar Datadog. Chaidh mòran de na duilgheadasan a tha air am mìneachadh an seo fhuasgladh ann an dòigh air choreigin le companaidhean malairteach a tha gu sònraichte a’ cruinneachadh chlàran, ach chan urrainn dha a h-uile duine SaaS a chleachdadh airson diofar adhbharan (is e na prìomh fheadhainn cosgais agus gèilleadh ri 152-FZ).

Tha e coltach gur e obair shìmplidh a th’ ann an cruinneachadh logaichean sa mheadhan an toiseach, ach chan eil sin idir. Tha e cudromach cuimhneachadh gu bheil:

  • Chan fheumar ach co-phàirtean èiginneach a chlàradh gu mionaideach, agus faodar sgrùdadh agus cruinneachadh mhearachdan a rèiteachadh airson siostaman eile.
  • Bu chòir glè bheag de chlàran cinneasachaidh a chumail gus nach cuir iad luchd neo-riatanach ris.
  • Feumaidh logaichean a bhith furasta an leughadh le inneal, àbhaisteach, agus cruth teann a bhith aca.
  • Bu chòir logaichean fìor èiginneach a chuir ann an sruth air leth, a bu chòir a bhith air an sgaradh bhon phrìomh fheadhainn.
  • Is fhiach beachdachadh air inneal-cruinneachaidh log, a shàbhaileas tu bho spreadhaidhean de luchdan àrda agus an luchd air an stòradh a dhèanamh nas èideadh.

Logaichean ann an Kubernetes (agus chan ann a-mhàin) an-diugh: sùileachadh agus fìrinn
Leigidh na riaghailtean sìmplidh sin, ma thèid an cur an sàs anns a h-uile àite, leis na cuairtean a tha air am mìneachadh gu h-àrd obrachadh - eadhon ged a tha iad ag ionndrainn pàirtean cudromach (am bataraidh). Mura cùm thu ris na prionnsapalan sin, bheir an obair thu gu furasta agus am bun-structar gu pàirt eile den t-siostam làn luchdaichte (agus aig an aon àm neo-èifeachdach).

PS

Leugh cuideachd air ar blog:

Source: www.habr.com

Cuir beachd ann