Біз пілді бөліктерге бөліп жейміз. Мысалдармен денсаулықты бақылау стратегиясын қолдану

Привет!

Біздің компания бағдарламалық жасақтаманы әзірлеумен және кейіннен техникалық қолдау көрсетумен айналысады. Техникалық қолдау тек қателерді түзетіп қана қоймай, қолданбаларымыздың өнімділігін бақылауды талап етеді.

Мысалы, егер қызметтердің бірі бұзылса, онда сіз бұл мәселені автоматты түрде жазып алып, оны шешуге кірісуіңіз керек және қанағаттанбаған пайдаланушылардың техникалық қолдау қызметіне хабарласуын күтпейсіз.

Бізде шағын компания бар, қолданбаларды бақылауға арналған күрделі шешімдерді зерттеуге және қолдауға ресурстарымыз жоқ, бізге қарапайым және тиімді шешім табу керек болды.

Біз пілді бөліктерге бөліп жейміз. Мысалдармен денсаулықты бақылау стратегиясын қолдану

Бақылау стратегиясы

Қолданбаның функционалдығын тексеру оңай емес, бұл тапсырма тривиальды емес, тіпті шығармашылық деп айтуға болады. Әсіресе күрделі көп буынды жүйені тексеру қиын.

Сіз пілді қалай жеуге болады? Тек бөліктерде! Бұл тәсілді қолданбаларды бақылау үшін қолданамыз.

Біздің мониторинг стратегиямыздың мәні:

Қолданбаны құрамдас бөліктерге бөліңіз.
Әрбір компонент үшін тексерулер жасаңыз.

Компонент, егер оның барлық бақылау тексерулері қатесіз орындалса, операциялық болып саналады. Қолданба сау болып саналады, егер оның барлық құрамдастары жұмыс істейтін болса.

Осылайша, кез келген жүйе компоненттер ағашы ретінде ұсынылуы мүмкін. Күрделі құрамдас бөліктер қарапайымға бөлінеді. Қарапайым компоненттерде тексерулер бар.

Біз пілді бөліктерге бөліп жейміз. Мысалдармен денсаулықты бақылау стратегиясын қолдану

Эталондар функционалдық тестілеуді орындауға арналмаған, олар бірлік сынақтары емес. Бақылау тексерулері құрамдас бөліктің ағымдағы сәтте қалай сезінетінін, оның жұмыс істеуі үшін барлық қажетті ресурстардың бар-жоғын және қандай да бір проблемалардың бар-жоғын тексеруі керек.

Ешқандай керемет жоқ; Бірақ қорықпаңыз, өйткені көп жағдайда бір тексеру кодтың 5-10 жолын алады, бірақ сіз кез келген логиканы жүзеге асыра аласыз және чектің қалай жұмыс істейтінін анық түсінесіз.

Бақылау жүйесі

Қолданбаны құрамдас бөліктерге бөлдік делік, әр компонент үшін тексерулер ойлап таптық және жүзеге асырдық, бірақ бұл тексерулердің нәтижелерімен не істеу керек? Кейбір тексеру сәтсіз болғанын қалай білеміз?

Бізге мониторинг жүйесі қажет болады. Ол келесі тапсырмаларды орындайды:

  • Сынақ нәтижелерін алыңыз және оларды құрамдастардың күйін анықтау үшін пайдаланыңыз.
    Көрнекі түрде бұл құрамдас ағашты бөлектеуге ұқсайды. Функционалды құрамдас бөліктер жасыл түске, проблемалық құрамдас бөлік қызылға айналады.
  • Қораптан жалпы тексерулерді орындаңыз.
    Мониторинг жүйесі кейбір тексерулерді өзі орындай алады. Дөңгелекті неге қайта ойлап табу керек, оларды қолданайық. Мысалы, веб-сайт беті ашылып жатқанын немесе сервердің пинг жүргізіп жатқанын тексеруге болады.
  • Мүдделі тараптарға мәселелер туралы хабарламалар жіберіңіз.
  • Мониторинг деректерін визуализациялау, есептерді, графиктерді және статистиканы ұсыну.

ASMO жүйесінің қысқаша сипаттамасы

Мысалмен түсіндірген дұрыс. ASMO жүйесінің жұмысының мониторингі қалай ұйымдастырылғанын қарастырайық.

ASMO – автоматтандырылған метеорологиялық қолдау жүйесі. Жүйе жол қызметінің мамандарына жолды қай жерде және қашан мұздан тазартатын материалдармен өңдеу керектігін түсінуге көмектеседі. Жүйе жолды басқару нүктелерінен деректерді жинайды. Жол диспетчерлік пункті – бұл жол бойындағы құрал-жабдықтар орнатылған орын: метеостанция, бейнекамера және т.б. Қауіпті жағдайларды болжау үшін жүйе сыртқы көздерден ауа райы болжамын алады.

Біз пілді бөліктерге бөліп жейміз. Мысалдармен денсаулықты бақылау стратегиясын қолдану

Сонымен, жүйенің құрамы өте тән: веб-сайт, агент, жабдық. Бақылауды бастайық.

Жүйені құрамдас бөліктерге бөлу

ASMO жүйесінде келесі компоненттерді бөлуге болады:

1. Жеке кабинет
Бұл веб-қосымша. Кем дегенде, қолданбаның Интернетте бар-жоғын тексеру керек.

2. Мәліметтер қоры
Дерекқор есеп беру үшін маңызды деректерді сақтайды және дерекқордың сақтық көшірмелері сәтті жасалғанына көз жеткізу керек.

3. Сервер
Сервер деп қолданбалар жұмыс істейтін аппараттық құралды түсінеміз. HDD, RAM, CPU күйін тексеру қажет.

4. Агент
Бұл кесте бойынша әртүрлі тапсырмаларды орындайтын Windows қызметі. Кем дегенде, қызметтің жұмыс істеп тұрғанын тексеру керек.

5. Агенттің тапсырмасы
Агент жұмыс істеп тұрғанын білу жеткіліксіз. Агент жұмыс істей алады, бірақ өзіне жүктелген тапсырмаларды орындамайды. Агент құрамдас бөлігін тапсырмаларға бөліп, әрбір агент тапсырмасының сәтті жұмыс істейтінін тексерейік.

6. Жол бақылау пункттері (барлық ШРК контейнері)
Көптеген жолды басқару нүктелері бар, сондықтан барлық MPC-терді бір құрамдас бөлікке біріктірейік. Бұл мониторинг деректерін оқуды ыңғайлы етеді. «ASMO жүйесі» құрамдас бөлігінің күйін қарау кезінде проблемалардың қай жерде екендігі бірден белгілі болады: қолданбаларда, аппараттық құралда немесе максималды басқару жүйесінде.

7. Жолды басқару пункті (бір максималды шек)
Осы MPC құрылғысындағы барлық құрылғылар қызмет көрсетуге жарамды болса, біз бұл құрамдас бөлікті қызмет көрсетуге жарамды деп есептейміз.

8. Құрылғы
Бұл максималды концентрация шегінде орнатылған бейнекамера немесе метеостанция. Құрылғының дұрыс жұмыс істеп тұрғанын тексеру қажет.

Мониторинг жүйесінде құрамдас ағаш келесідей болады:

Біз пілді бөліктерге бөліп жейміз. Мысалдармен денсаулықты бақылау стратегиясын қолдану

Веб қолданбалы мониторинг

Сонымен, біз жүйені құрамдас бөліктерге бөлдік, енді әрбір құрамдас үшін тексерулерді ойлап табу керек.

Веб қолданбаны бақылау үшін біз келесі тексерулерді қолданамыз:

1. Негізгі беттің ашылуын тексеру
Бұл тексеру мониторинг жүйесі арқылы жүзеге асырылады. Оны орындау үшін бет мекенжайын, күтілетін жауап фрагментін және сұранысты орындаудың максималды уақытын көрсетеміз.

2. Доменді төлеу мерзімін тексеру
Өте маңызды тексеру. Домен төленбеген болса, пайдаланушылар сайтты аша алмайды. Мәселені шешуге бірнеше күн кетуі мүмкін, себебі... DNS өзгерістері бірден қолданылмайды.

3. SSL сертификатын тексеру
Қазіргі уақытта барлық дерлік веб-сайттар кіру үшін https протоколын пайдаланады. Протокол дұрыс жұмыс істеуі үшін жарамды SSL сертификаты қажет.

Төменде мониторинг жүйесіндегі «Жеке кабинет» компоненті берілген:

Біз пілді бөліктерге бөліп жейміз. Мысалдармен денсаулықты бақылау стратегиясын қолдану

Жоғарыдағы барлық тексерулер көптеген қолданбалар үшін жұмыс істейді және кодтауды қажет етпейді. Бұл өте керемет, себебі сіз кез келген веб-қосымшаны 5 минут ішінде бақылауды бастай аласыз. Төменде веб-бағдарлама үшін орындалуы мүмкін қосымша тексерулер берілген, бірақ олардың орындалуы күрделірек және қолданбаға тән, сондықтан біз оларды осы мақалада қарастырмаймыз.

Тағы не тексере аласыз?

Веб қолданбаңызды толық бақылау үшін келесі тексерулерді орындауға болады:

  • Кезеңдегі JavaScript қателерінің саны
  • Кезеңге арналған веб-бағдарлама жағындағы қателер саны (back-end).
  • Сәтсіз веб-қосымша жауаптарының саны (жауап коды 404, 500, т.б.)
  • Сұрауды орындаудың орташа уақыты

Windows қызметін бақылау (агент)

ASMO жүйесінде агент жоспарланған тапсырмаларды фондық режимде орындайтын тапсырмаларды жоспарлаушы рөлін атқарады.

Барлық агент тапсырмалары сәтті аяқталса, агент дұрыс жұмыс істейді. Агентті бақылау үшін оның міндеттерін қадағалау керек екен. Сондықтан біз «Агент» компонентін тапсырмаларға бөлеміз. Әрбір тапсырма үшін біз мониторинг жүйесінде жеке құрамдас жасаймыз, онда «Агент» компоненті «ата-ана» болады.

Агент компонентін еншілес компоненттерге (тапсырмалар) бөлеміз:

Біз пілді бөліктерге бөліп жейміз. Мысалдармен денсаулықты бақылау стратегиясын қолдану

Сонымен, біз күрделі компонентті бірнеше қарапайымға бөлдік. Енді біз әрбір қарапайым құрамдас үшін тексерулерді ойлап табуымыз керек. «Агент» негізгі құрамдас бөлігінде ешқандай тексерулер болмайтынын ескеріңіз, өйткені мониторинг жүйесі оның күйін еншілес құрамдастардың күйіне қарай дербес есептейді. Басқаша айтқанда, егер барлық тапсырмалар сәтті орындалса, агент сәтті жұмыс істейді.

ASMO жүйесінде жүзден астам тапсырма бар, шынымен де әрбір тапсырма үшін бірегей тексерулер жасау керек пе? Әрине, егер біз әрбір агент тапсырмасы үшін өзіміздің арнайы тексерулерімізді ойлап тауып, жүзеге асырсақ, бақылау жақсырақ болады, бірақ көп жағдайда әмбебап тексерулерді қолдану жеткілікті.

ASMO жүйесі тапсырмалар үшін тек әмбебап тексерулерді пайдаланады және бұл жүйенің жұмысын бақылау үшін жеткілікті.

Орындалу барысын тексеру
Ең қарапайым және ең тиімді тексеру – орындауды тексеру. Тексеру тапсырманың қатесіз орындалғанын тексереді. Барлық тапсырмаларда бұл тексеру бар.

Тексеру алгоритмі

Әрбір тапсырма орындалғаннан кейін, егер тапсырма сәтті орындалса, ТАБЫС тексеруінің нәтижесін бақылау жүйесіне немесе орындау қатемен аяқталса, ҚАТЕ жіберу керек.

Бұл тексеру келесі мәселелерді анықтай алады:

  1. Тапсырма орындалады, бірақ қатемен орындалмайды.
  2. Тапсырма орындалуды тоқтатты, мысалы, ол қатып қалды.

Бұл мәселелердің қалай шешілетінін толығырақ қарастырайық.

1-мәселе – Тапсырма орындалады, бірақ қатемен орындалмайды
Төменде тапсырма орындалатын, бірақ 14:00 мен 16:00 арасында орындалмайтын жағдай берілген.

Біз пілді бөліктерге бөліп жейміз. Мысалдармен денсаулықты бақылау стратегиясын қолдану

Суретте көрсетілгендей, тапсырма орындалмаған кезде сигнал дереу бақылау жүйесіне жіберіледі және бақылау жүйесіндегі сәйкес тексерудің күйі дабылға айналады.

Мониторинг жүйесінде компоненттің күйі тексеру күйіне байланысты екенін ескеріңіз. Тексерудің дабыл күйі барлық жоғары деңгейлі құрамдастарды дабылға өзгертеді, төмендегі суретті қараңыз.

Біз пілді бөліктерге бөліп жейміз. Мысалдармен денсаулықты бақылау стратегиясын қолдану

2-есеп - тапсырма орындалуды тоқтатты (мұздатылған)
Мониторинг жүйесі тапсырманың тұрып қалғанын қалай түсінеді?

Тексеру нәтижесінің жарамдылық мерзімі бар, мысалы, 1 сағат. Бір сағат өтсе және жаңа сынақ нәтижесі болмаса, бақылау жүйесі сынақ күйін дабылға қояды.

Біз пілді бөліктерге бөліп жейміз. Мысалдармен денсаулықты бақылау стратегиясын қолдану

Жоғарыдағы суретте сағат 14:00-де жарық сөнген. Сағат 15:00-де бақылау жүйесі тест нәтижесінің (14:00-ден бастап) шірік екенін анықтайды, себебі Сәйкестік уақыты аяқталды (бір сағат), бірақ жаңа нәтиже жоқ және тексеруді дабыл күйіне ауыстырады.

Сағат 16:00 шамдар қайтадан қосылды, бағдарлама тапсырманы орындап, орындалу нәтижесін бақылау жүйесіне жібереді, сынақ күйі қайтадан сәтті болады.

Қандай тексеру уақытын пайдалануым керек?

Сәйкестік уақыты тапсырманы орындау мерзімінен үлкен болуы керек. Мен өзектілік уақытын тапсырманы орындау мерзімінен 2-3 есе ұзағырақ орнатуды ұсынамын. Бұл, мысалы, тапсырма әдеттегіден ұзағырақ уақыт алған кезде немесе біреу бағдарламаны қайта жүктегенде, жалған хабарландыруларды алмау үшін қажет.

Орындалу барысын тексеру

ASMO жүйесінде сағатына бір рет сыртқы көзден жаңа болжамды жүктеп алуға тырысатын «Жүктеме болжау» тапсырмасы бар. Сыртқы жүйеде жаңа болжам пайда болатын нақты уақыт белгісіз, бірақ бұл күніне 2 рет болатыны белгілі. Егер бірнеше сағат бойы жаңа болжам болмаса, бұл қалыпты жағдай, бірақ бір күннен астам жаңа болжам болмаса, онда бір жерде бір нәрсе бұзылған. Мысалы, сыртқы болжау жүйесіндегі деректер пішімі өзгеруі мүмкін, сондықтан ASMO жаңа болжам шығарылымын көрмейді.

Тексеру алгоритмі

Тапсырма орындалу сәтіне жеткенде (жаңа ауа райы болжамын жүктеп алу) ТАБЫСТЫ тексеру нәтижесін бақылау жүйесіне жібереді. Егер прогресс болмаса немесе қате орын алса, бақылау жүйесіне ештеңе жіберілмейді.

Чектің осы уақыт ішінде жаңа прогресті алуға кепілдік беретіндей сәйкестік аралығы болуы керек.

Біз пілді бөліктерге бөліп жейміз. Мысалдармен денсаулықты бақылау стратегиясын қолдану

Мәселе туралы кідіріспен білетінімізді ескеріңіз, өйткені бақылау жүйесі соңғы сканерлеу нәтижесінің жарамдылық мерзімі аяқталғанша күтеді. Сондықтан чектің жарамдылық мерзімін тым ұзақ жасаудың қажеті жоқ.

Мәліметтер базасының мониторингі

ASMO жүйесіндегі деректер базасын басқару үшін біз келесі тексерулерді орындаймыз:

  1. Сақтық көшірме жасау тексерілуде
  2. Бос дискілік кеңістік тексерілуде

Сақтық көшірме жасау тексерілуде
Көптеген қолданбаларда сервер сәтсіз болса, бағдарламаны жаңа серверге орналастыру үшін жаңартылған дерекқордың сақтық көшірмелері болуы маңызды.

ASMO аптасына бір рет сақтық көшірмені жасайды және оны жадқа жібереді. Бұл процедура сәтті аяқталғанда, сәтті тексеру нәтижесі мониторинг жүйесіне жіберіледі. Тексеру нәтижесі 9 күн бойы жарамды. Анау. Сақтық көшірмелердің жасалуын бақылау үшін біз жоғарыда талқылаған «прогресті тексеру» механизмі қолданылады.

Бос дискілік кеңістік тексерілуде
Дискіде бос орын жеткіліксіз болса, деректер қоры дұрыс жұмыс істей алмайды, сондықтан бос орын көлемін бақылау маңызды.

Сандық параметрлерді тексеру үшін метриканы пайдалану ыңғайлы.

Метрикалық сандық айнымалы болып табылады, оның мәні мониторинг жүйесіне беріледі. Мониторинг жүйесі шекті мәндерді тексереді және метрикалық күйді есептейді.

Төменде мониторинг жүйесінде «Дерекқор» компоненті қалай көрінетінінің суреті берілген:

Біз пілді бөліктерге бөліп жейміз. Мысалдармен денсаулықты бақылау стратегиясын қолдану

Серверді бақылау

Серверді бақылау үшін біз келесі тексерулер мен көрсеткіштерді қолданамыз:

1. Бос дискілік кеңістік
Дискідегі бос орын бітсе, қолданба жұмыс істей алмайды. Біз 2 шекті мәнді қолданамыз: бірінші деңгей – ЕСКЕРТУ, екінші деңгей – АЛАР.

2. ЖЖҚ орташа мәні сағатына пайызбен
Біз сағаттық орташа мәнді пайдаланамыз, себебі... Бізді сирек кездесетін нәсілдер қызықтырмайды.

3. Орташа CPU пайызы сағатына
Біз сағаттық орташа мәнді пайдаланамыз, себебі... Бізді сирек кездесетін нәсілдер қызықтырмайды.

4. Пинг тексеру
Сервердің желіде екенін тексереді. Мониторинг жүйесі бұл тексеруді орындай алады; код жазудың қажеті жоқ.

Төменде мониторинг жүйесінде «Сервер» компоненті қалай көрінетінінің суреті берілген:

Біз пілді бөліктерге бөліп жейміз. Мысалдармен денсаулықты бақылау стратегиясын қолдану

Жабдықты бақылау

Мен сізге деректердің қалай алынғанын айтып беремін. Әрбір жолды басқару пункті (ЖБП) үшін тапсырманы жоспарлаушыда тапсырма бар, мысалы, «М2 км 200 ШРК түсіру». Тапсырма әрбір 30 минут сайын барлық MPC құрылғыларынан деректерді алады.

Байланыс арнасының ақауы
Жабдықтардың көпшілігі қаладан тыс жерде орналасқан, деректерді беру үшін GSM желісі пайдаланылады, ол тұрақты жұмыс істемейді (желі бар немесе жоқ).

Жиі желі ақауларына байланысты, алдымен мониторингте MPC сауалнамасын тексеру келесідей болды:

Біз пілді бөліктерге бөліп жейміз. Мысалдармен денсаулықты бақылау стратегиясын қолдану

Бұл жұмыс істейтін нұсқа емес екені белгілі болды, өйткені проблемалар туралы көптеген жалған хабарламалар болды. Содан кейін әрбір құрылғы үшін «прогресті тексеруді» пайдалану туралы шешім қабылданды, яғни. Құрылғы қатесіз сұралған кезде бақылау жүйесіне тек сәттілік сигналы жіберіледі. Қатысты уақыт 5 сағат болып белгіленді.

Біз пілді бөліктерге бөліп жейміз. Мысалдармен денсаулықты бақылау стратегиясын қолдану

Енді мониторинг құрылғыны 5 сағаттан артық сұрау мүмкін болмаған кезде ғана ақаулар туралы хабарландыруларды жібереді. Жоғары ықтималдықпен бұл жалған дабыл емес, нақты мәселелер.

Төменде жабдықтың мониторинг жүйесінде қалай көрінетінінің суреті берілген:

Біз пілді бөліктерге бөліп жейміз. Мысалдармен денсаулықты бақылау стратегиясын қолдану

Маңызды!
GSM желісі жұмысын тоқтатқанда, барлық MDC құрылғылары сұрауға алынбайды. Мониторинг жүйесінен келетін электрондық хаттардың санын азайту үшін біздің инженерлер «Құрылғы» емес, «MPC» түріндегі құрамдас ақаулар туралы хабарландыруларға жазылады. Бұл әрбір құрылғы үшін бөлек хабарлама алудың орнына, әрбір MPC үшін бір хабарландыру алуға мүмкіндік береді.

ASMO мониторингінің соңғы схемасы

Барлығын біріктіріп, бізде қандай мониторинг схемасы бар екенін көрейік.

Біз пілді бөліктерге бөліп жейміз. Мысалдармен денсаулықты бақылау стратегиясын қолдану

қорытынды

Қорытындылайық.
ASMO өнімділігін бақылау бізге не берді?

1. Ақауларды жою уақыты қысқарды
Біз бұрын пайдаланушылардан ақаулар туралы естіген болатынбыз, бірақ барлық пайдаланушылар ақаулар туралы хабарлайды. Жүйе құрамдас бөлігінің ақауы туралы ол пайда болғаннан кейін бір аптадан кейін білдік. Енді мониторинг жүйесі ақаулық анықталған кезде бізге ақаулықтар туралы хабарлайды.

2. Жүйе тұрақтылығы артты
Ақаулар ертерек жойыла бастағандықтан, жүйе тұтастай әлдеқайда тұрақты жұмыс істей бастады.

3. Техникалық қолдау қызметіне қоңыраулар санын азайту
Көптеген мәселелер енді пайдаланушылар олар туралы білмей тұрып жойылады. Пайдаланушылар техникалық қолдау қызметіне сирек хабарласа бастады. Мұның бәрі біздің беделімізге жақсы әсер етеді.

4. Тұтынушылардың және пайдаланушылардың адалдығын арттыру
Тұтынушы жүйенің тұрақтылығындағы оң өзгерістерді байқады. Пайдаланушылар жүйені пайдалануда азырақ мәселелерге тап болады.

5. Техникалық қолдау шығындарын азайту
Біз кез келген қолмен тексеруді тоқтаттық. Қазір барлық тексерулер автоматтандырылған. Бұрын біз пайдаланушылардан проблемалар туралы білдік; Енді, проблемалардың көпшілігін бақылау жүйесі хабарлайды.

Маңызды!
Қолданбаларыңыз жұмыс істейтін серверде бақылау жүйесін орнату мүмкін емес. Сервер істен шықса, қолданбалар жұмысын тоқтатады және бұл туралы хабарлайтын ешкім болмайды.

Бақылау жүйесі басқа деректер орталығындағы бөлек серверде жұмыс істеуі керек.

Жаңа деректер орталығында арнайы серверді пайдаланғыңыз келмесе, бұлтты бақылау жүйесін пайдалануға болады. Біздің компания Zidium бұлтты бақылау жүйесін пайдаланады, бірақ сіз кез келген басқа бақылау жүйесін пайдалана аласыз. Бұлтты бақылау жүйесінің құны жаңа серверді жалға алудан төмен.

Ұсыныстар:

  1. Құрамдас бөліктер ағашы түріндегі қосымшалар мен жүйелерді мүмкіндігінше егжей-тегжейлі бөліңіз, осылайша қай жерде және не бұзылғанын түсіну ыңғайлы болады және басқару толық болады.
  2. Компоненттің функционалдығын тексеру үшін сынақтарды пайдаланыңыз. Бір күрделі тексеруден гөрі көптеген қарапайым тексерулерді қолданған дұрыс.
  3. Метрикалық шектерді кодта жазбастан, бақылау жүйесінің жағында теңшеңіз. Бұл қолданбаны қайта құрастырудан, қайта конфигурациялаудан немесе қайта іске қосудан құтқарады.
  4. Теңшелетін тексерулер үшін жалған хабарландыруларды алмау үшін сәйкестік уақытының шегін пайдаланыңыз, себебі кейбір тексеру әдеттегіден сәл ұзағырақ аяқталды.
  5. Бақылау жүйесіндегі құрамдастардың қызыл түске айналуын тек ақаулық анық болғанда ғана жасауға тырысыңыз. Егер олар бекер қызылға айналса, онда сіз бақылау жүйесінің хабарландыруларына назар аударуды тоқтатасыз, оның мағынасы жоғалады.

Егер сіз әлі бақылау жүйесін пайдаланбасаңыз, бастаңыз! Бұл көрінгендей қиын емес. Өзіңіз өсірген жасыл ингредиенттер ағашына қарап, рахат алыңыз.

Сәттілік тілеймін.

Ақпарат көзі: www.habr.com

пікір қалдыру