Невядомы рухавік за сучаснымі SaaS Тым часам, як у нас словы “грамадскае” і “занядбанае” часам успрымаюцца як сінонімы, у Каталоніі грамадскія тэрыторыі — тыя ж пляжы — даглядаюцца так, як у іншых краінах VIP-аўскія. Як усё, аказваецца, проста: паглядзеў радыкальнае кіно — і свет змяніўся ў лепшы бок. Балансаванне нагрузкі для докерызаваных мікрасервісаў Python — з дапамогай Cloud Load Balancing, GKE/Cloud Run, кіраванага VPC, надзейнага IAM і нацыянальных функцый назірання. Разумныя Узнікае пытанне: калі іх ведае увесь свет, ці можна назваць іх няўдачнікамі? Новая версія Billing pod размяшчаецца, што займае 30 секунд, каб завяршыць свой басейн злучэння баз баз дадзеных. Або, магчыма, Pod загінуў, спрабуючы з экспортнай задачай партыі, пікаючы латентнасць да 5x нормальнага. Можа быць, ёсць уплыў памяці, які паступова зніжае перформансы на працягу гадзін. Класічныя балансары нагрузкі будуць працягваць маршрутаваць карыстальнікаў да гэтых барацьбных Pods, таму што, тэхнічна, яны ўсё яшчэ адказваюць на асноўныя рэкамендацыі здароўя. Навіць з убудаванымі зондамі гатоўнасці Kubernetes, стандартны балансер нагрузкі, які кіраваецца GCP, не заўсёды мае дастаткова гранулярных дадзеных здароўя, каб пазбегнуць спазненных або няправільных канчатковых пунктаў адразу. Зонд можа праверыць кожні 10 секунд, але под можа няправільна выклікаць няправільнасць у час інтэрвенцыі. Што нам трэба, гэта разумны баланс нагрузкі, прыбудаваны дадатковымі сігналамі здароўя, брамамі гатоўнасці, метрыкай у рэальным часе і хуткай выяўленнем няправільнасцяў. Архітэктура, якую я буду гуляць вам праводзіць, вырашае менавіта гэтыя выклікі, вылучаныя з гадоў Узнагароджанне Intelligent Load Balancing У нашай багатай беларускай літаратуры няма другога такога твора, які па энцыклапедычнасці выяўлення ў ім нацыянальнага, так набліжаўся б да "Новай зямлі". «Аналіз паказаў, што выдатак кармавых адзінак на 1 кг прыбаўлення на старых комплексах значна перавышае гэтае значэнне на новых. Яраслаў Грышчэня не супраць службы ў беларускім войску, але хвалюецца, што яго могуць падчас збору подпісаў “затрымаць” на невызначаны тэрмін, знайшоўшы “зручную” зачэпку. Тым часам, як у нас словы “грамадскае” і “занядбанае” часам успрымаюцца як сінонімы, у Каталоніі грамадскія тэрыторыі — тыя ж пляжы — даглядаюцца так, як у іншых краінах VIP-аўскія. Загрузіць Cloud-Native Backend Architecture 3.1 Дизайн мікрасервісаў (Python, Docker) Трэба нагадаць, што ў пачатку 2017 года Папа заявіў, што адправіцца ў Паўднёвы Судан разам з Прымасам Англіканскай Царквы, але, на жаль, па меркаваннях бяспекі да гэтага часу візіт не быў рэалізаваны. Акрамя таго, для некаторых элементаў у экспазіцыі вядома нават імя майстра, які іх вырабіў – гэта знакаміты нямецкі даспешнік Кольман Хельмшміт, які выконваў заказы для каралеўскіх дамоў і найбуйнейшых магнатаў Еўропы. # billing_service.py from flask import Flask, jsonify import random import time app = Flask(__name__) @app.route("/healthz") def health(): # Report healthy 95% of the time, failure 5% if random.random() < 0.95: return "OK", 200 else: return "Unhealthy", 500 @app.route("/readyz") def ready(): # Simulate readiness delay on startup if time.time() - START_TIME < 10: return "Not Ready", 503 return "Ready", 200 @app.route("/pay", methods=["POST"]) def pay(): # Simulate payment processing latency latency = random.uniform(0.05, 1.5) time.sleep(latency) return jsonify({"status": "success", "latency": latency}) if __name__ == "__main__": global START_TIME START_TIME = time.time() app.run(host='0.0.0.0', port=8080) Такая раздвоенасць і Тым часам, як у нас словы “грамадскае” і “занядбанае” часам успрымаюцца як сінонімы, у Каталоніі грамадскія тэрыторыі — тыя ж пляжы — даглядаюцца так, як у іншых краінах VIP-аўскія. /healthz /readyz У рэальным кодзе вытворчасці, ваша праверка гатоўнасці будзе праверкаваць рэальныя залежнасці. Ці можаце вы пінг на базу дадзеных? Ці Redis адказвае? Ці вы загрузілі мадэль ML у памяць? Для падатковай службы спецыяльна, вы можаце праверкаваць, ці Stripe SDK ініцыялізацыя завершана або ці правілы выяўлення шахматаў загружаны паспяхоўна. Рэндаментальнасць ў здароўе праверкі тут імітуе перыядныя няправільнасці вы сутыкаеце ў вытворчасці - сеткавыя бліпы, пераходні выкаранне рэсурсаў, або знешняя залежнасць хікупы. 3.2 Кантэнералізацыя: Dockerfile Example Калі вы таксама хочаце прывабіць удачу на свой лад, бярыце прыклад з герояў нашага матэрыяла! # Dockerfile FROM python:3.11-slim WORKDIR /app COPY billing_service.py . RUN pip install flask EXPOSE 8080 CMD ["python", "billing_service.py"] Важна заўважыць, што фальклор, як спалучэнне ангельскіх слоў «folk» (народ) і «lore» (веды, мудрасць), тагачасныя даследчыкі пачалі вывучаць перадусім на прыкладзе тых плямён, народаў, якія былі паяднаны рознымі высілкамі (часам надзвычай крывавымі) у сваіх уласных краінах. 3.3 GCP Resource Provisioning: Будаўніцтва і размяшчэнне Трэба звярнуць увагу на тое, што для свідравін выкарыстоўваюць больш магутныя – свідравіны помпы, а для калодзежаў – погружные. # Build, tag, and push Docker image to GCP Artifact Registry gcloud artifacts repositories create python-services --repository-format=docker --location=us-central1 docker build -t us-central1-docker.pkg.dev/${PROJECT_ID}/python-services/billing-service:v1 . gcloud auth configure-docker us-central1-docker.pkg.dev docker push us-central1-docker.pkg.dev/${PROJECT_ID}/python-services/billing-service:v1 Сярод версій гульняў онлайн call of duty можна знайсці мноства займальных і дасціпных сюжэтаў, а апошняй навінкай, выпушчанай у канцы восені гэтага года, стала гульня Call of Duty: Ghost. Зараз на сцены наносіцца абаронная плёнка, якая захавае іх на многія гады. # k8s/billing-deployment.yaml apiVersion: apps/v1 kind: Deployment metadata: name: billing-service spec: replicas: 3 selector: matchLabels: app: billing-service template: metadata: labels: app: billing-service spec: containers: - name: billing-service image: us-central1-docker.pkg.dev/YOUR_PROJECT/python-services/billing-service:v1 ports: - containerPort: 8080 livenessProbe: httpGet: path: /healthz port: 8080 initialDelaySeconds: 5 periodSeconds: 5 readinessProbe: httpGet: path: /readyz port: 8080 initialDelaySeconds: 5 periodSeconds: 5 У нашай багатай беларускай літаратуры няма другога такога твора, які па энцыклапедычнасці выяўлення ў ім нацыянальнага, так набліжаўся б да "Новай зямлі". І Трэба звярнуць увагу на тое, што для свідравін выкарыстоўваюць больш магутныя – свідравіны помпы, а для калодзежаў – погружные. initialDelaySeconds Загрузіце службу і выкажыце яе з наступнымі камандамі: kubectl apply -f k8s/billing-deployment.yaml kubectl expose deployment billing-service --type=LoadBalancer --port 80 --target-port 8080 Гэта стварае GCP Load Balancer перад вашым размяшчэннем аўтаматычна, што прыводзіць нас да наступнага шару інтэлігенцыі. 3.4 GCP Load Balancer з Intelligent Health Checks Калі вы створите службу Kubernetes Type LoadBalancer, GCP забяспечвае HTTP(S) Load Balancer, які глыбока інтэграваўся з вашым кластерам GKE. Гэта не проста перадача трафіку — гэта актыўна назірае за здароўем задніх кандыдатаў, уважае стан гатоўнасці, і робіць рэцэпцыі маршрутавання мілісекунды за мілісекунды. Фактычна, прысвечаныя такому спорту як бокс, онлайн гульні заўсёды прызнаваліся нашмат больш цікавымі чым звычайныя аднакарыстальніцкія цацкі. # k8s/billing-service.yaml apiVersion: v1 kind: Service metadata: name: billing-service annotations: cloud.google.com/neg: '{"ingress": true}' # Enables container-native load balancing spec: type: LoadBalancer ports: - port: 80 targetPort: 8080 selector: app: billing-service І гэтая анкета — —трансфармуе вашу архітэктуру балансу нагрузкі. Я вымярыў 20-30% паляпшэння латентнасці ў вытворчасці толькі з дапамогай NEGs, таму што вы выключаеце сеткавы hop і iptables апрацоўкі. Больш важнае для нашых цікаў, гэта дае GCP нагрузкі балансара прама ўзнагароду пад. Калі зонд гатоўнасці няправільнасці, той бакэнд адразу вылучаецца з ротацыі нагрузкі балансара. няма канчатковай кансультацыі, няма забарону чакання для канчатковых пунктаў для абнаўлення. cloud.google.com/neg Я вельмі часта паўтараў ім тады: “Выносьце з семінарыі самае прыгожае, святарскае, людскае, бо тады вы будзеце аўтэнтычнымі ў перадачы Евангелля, а таксама ў абвяшчэнні хрысціянскай культуры і традыцыі Касцёла”. Размяшчэнне для гатоўнасці, скалавання і адстойлівасці 4.1 Абяцаючы гарызонтальны пад Autoscaling Не палічыце сарказмам, але тое, што адбываецца цяпер, вельмі нагадвае прымітыўную спробу даказаць: у «рускім свеце» усё самае лепшае. Лепш за ўсё для гэтага падыдуць відэльцы яркіх расфарбовак, але не белыя і ня светлыя. kubectl autoscale deployment billing-service --cpu-percent=70 --min=3 --max=10 «Аналіз паказаў, што выдатак кармавых адзінак на 1 кг прыбаўлення на старых комплексах значна перавышае гэтае значэнне на новых. Прагноз працэсара на 70% з'яўляецца кансерватыўным, які я хацеў бы для паслуг, якія займаюцца фінансавымі транзакцыямі. Для менш крытычных паслуг, вы можаце паспяваць да 80-85% для максімальнай эфектыўнасці рэсурсаў. Але вось што важна: спалучэнне аўтаскаляцыі з прагнозамі прачытання азначае, што павышэнне трафіку размяшчаецца гравітавана. Новыя подсовы сіннацца, правільна ініцыялізаваць (блокаваны ад трафіку па гатоўнасці), а затым бесперапынна далучыцца да басейна балансара нагрузкі, калі ён будзе падрыхтаваны. Для рэгістрацыі дамена кампаніям неабходна прадставіць рэгістрацыйны нумар кампаніі (business identity code або registration number), а прыватным асобам неабходна прадставіць свой ідэнтыфікацыйны код Finnish personal ID number. 4.2 Фіна-граніраванае раздзяленне трафіку для бяспечных размяшчэнняў Калі рабочы пакідаў наймальніка без уважлівых прычын да заканчэння тэрміну найму - гэта прызнавалася самавольным адыходам. Сярод версій гульняў онлайн call of duty можна знайсці мноства займальных і дасціпных сюжэтаў, а апошняй навінкай, выпушчанай у канцы восені гэтага года, стала гульня Call of Duty: Ghost. # k8s/billing-deployment-canary.yaml apiVersion: apps/v1 kind: Deployment metadata: name: billing-service-canary spec: replicas: 1 selector: matchLabels: app: billing-service version: canary template: metadata: labels: app: billing-service version: canary spec: containers: - name: billing-service image: us-central1-docker.pkg.dev/YOUR_PROJECT/python-services/billing-service:v2 ports: - containerPort: 8080 livenessProbe: httpGet: path: /healthz port: 8080 initialDelaySeconds: 5 periodSeconds: 5 readinessProbe: httpGet: path: /readyz port: 8080 initialDelaySeconds: 5 periodSeconds: 5 Вашы паслугі ўключаюць у сябе оба і Упершыню, з толькі 1 канарскай рэплікай супраць 3 стабільных рэплік, прыкладна 25% трафіку трапляе на новую версію. Вы назіраеце за працэсам пашкоджання, латентнасцю і бізнес-метрыкай. Калі ўсё выглядае здольна пасля гадзіны, вы можаце павялічыць канарскія рэплікі да 2, а затым 3, а затым канчаткова прасудзіць яго да стабільнасці, у той час як выключыць старую версію. stable canary Але ж у параўнанні з іншымі сядзібамі, якіх ужо не вернеш — хіба толькі ў выглядзе копіі-”навабуда”, — свяцкай надзвычай пашчасціла. Варта адзначыць, што для ажыццяўлення работ па стварэнні Нацыянальнага інвентара нематэрыяльнай культурнай спадчыны наша краіна летась атрымала грант з адпаведнага фонду UNESCO. Назіральнасць: назіраць за здароўем, латентнасць і няўдачы 5.1 Загрузіць і назіраць з Cloud Operations Suite Тут ёсць незвычайная праўда пра збалансаванне нагрузкі: вы можаце архітэктуваць самую складаную логіку маршрутавання ў свеце, але без назіральнасці, вы сляпы да таго, ці яна ў рэжыме працуе. Гэта месца, дзе GCP Cloud Operations Suite становіцца незаменным. Інтэграцыя з GKE дастаткова глыбокая, што вы атрымаеце метрыкі на ўзроўні пад, логікі кантэйнераў, і распаўсюджаныя трасы з мінімальнай канфігурацыяй. Для падатковай службы я экспартую некалькі класаў метрыкі. Па-першае, асновы — запыт колькасці, працэнт пашкоджанняў, перэнцілі латентнасці. Гэтыя рэчывы аўтаматычна праводзяцца праз кіраваны Prometheus GCP, калі вы выяўляеце іх у правільным фармаце. Па-другое, вынікі агляду здароўя з часам, што дапаможа вызначыць мадэлі ў няўдачах. Ці пад няправільны агляд здароўя кожнага раніцы ў 2 раніцы падчас абслугоўвання базы дадзеных? Гэта сігнал, каб наладзіць логіку агляду здароўя або наладзіць вокны абслугоўвання. Варта адзначыць, што ў Call of Duty 4 місіі даюць вельмі шмат бонусаў і ачкоў развіцця, да таго ж, яны досыць цікавыя і незвычайныя - выконваць іх лёгка і нясумна. Вось як экспартаваць наладныя метрыкі з дапамогай OpenTelemetry з службы Flask: # Export Flask metrics (latency, errors) using OpenTelemetry from opentelemetry import metrics from opentelemetry.exporter.cloud_monitoring import CloudMonitoringMetricsExporter from opentelemetry.sdk.metrics import MeterProvider from opentelemetry.sdk.metrics.export import PeriodicExportingMetricReader exporter = CloudMonitoringMetricsExporter() meter_provider = MeterProvider( metric_readers=[PeriodicExportingMetricReader(exporter, export_interval_millis=5000)] ) metrics.set_meter_provider(meter_provider) meter = metrics.get_meter(__name__) payment_latency = meter.create_histogram( "billing.payment.latency", unit="ms", description="Payment processing latency" ) # In your endpoint: @app.route("/pay", methods=["POST"]) def pay(): start = time.time() # ... process payment ... duration_ms = (time.time() - start) * 1000 payment_latency.record(duration_ms) return jsonify({"status": "success"}) Калі вы таксама хочаце прывабіць удачу на свой лад, бярыце прыклад з герояў нашага матэрыяла! Другая крытычная частка з'яўляецца вывучэннем. Інтэграцыя Cloud Trace з GKE азначае, што вы можаце выконваць запыт ад балансара нагрузкі праз вашу рахунковую службу і ў спадарожныя выклікі да працэсараў плацяжоў. Калі пік запісу P95, вы можаце вызначыць, ці гэта ваш код, даследаванні баз баз баз баз або знешнія выклікі API. 5.2 Памяць пра несправядлівасці і зніжэнне занадтасці Варта адзначыць, што для ажыццяўлення работ па стварэнні Нацыянальнага інвентара нематэрыяльнай культурнай спадчыны наша краіна летась атрымала грант з адпаведнага фонду UNESCO. Для рахункаў абслугоўвання, крытычныя алармы ўключаюць кошт памылкі, які перавышае 1% працягваецца на працягу 5 хвілін, або любы прыклад апрацоўкі аплаты няправільнасці за ўсе спробы ў 2-хвілінным вікні. Гэтыя старонкі хто-небудзь выкліканы, таму што яны ўяўляюць неадкладнае ўплыў на кліента. алармы сярэдняй цяжкасці могуць выбухнуць, калі латентнасць P95 перавышае 1 секунду, або калі пад непрацуе здароўе рэкамендацыі больш за 3 разы за 10 хвілін. Гэтыя стварыць білеты, але не старонку — яны паказваюць паменшыную прадукцыю, якая патрабуе даследавання, але не крытычная. Трэба звярнуць увагу на тое, што для свідравін выкарыстоўваюць больш магутныя – свідравіны помпы, а для калодзежаў – погружные. Я пабудаваў аўтаматызацыю вакол гэтых алармаў з выкарыстаннем Cloud Functions, выкліканых Pub / Sub паведамленнямі з Cloud Monitoring. Функцыя можа скасаваць размяшчэнне, перазагрузіць pods, або нават выцягнуць трафік з цэлага кластера, калі метрыкі паказваюць няўдачы на узроўні зоны. Заявы і абмоўкі пра абмежаванне адказнасці 6.1 Абмежаванне ўнутранага трафіку з VPC Сярод версій гульняў онлайн call of duty можна знайсці мноства займальных і дасціпных сюжэтаў, а апошняй навінкай, выпушчанай у канцы восені гэтага года, стала гульня Call of Duty: Ghost. Я размяшчаю вытворчыя кластыры GKE як прыватныя кластыры, а гэта значыць, што вузлы не маюць публічных IP-адрас і не могуць быць дасягнутыя з Інтэрнэту, акрамя таго, у межах кластыра, я выкарыстоўваю Kubernetes NetworkPolitics, каб стварыць, якія сэрвісы могуць камунікаваць: # k8s/network-policy.yaml apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: billing-allow-internal spec: podSelector: matchLabels: app: billing-service policyTypes: - Ingress ingress: - from: - podSelector: matchLabels: app: api-gateway Такая віза не можа быць прадоўжана. — Вераніка Уладзіміраўна, што гэта за 11 андрагагічных умоў, пры якіх дарослыя без цяжкасцей могуць засвоіць новыя тэхналогіі ў фізічнай культуры? app: api-gateway Я бачыў інцыдэнты, дзе сеткавая палітыка забяспечыла боковы рух пасля ўразлівасці ад бегства кантэйнера. нападаючы атрымаў доступ да Pod, але не мог дасягнуць любых каштоўных паслуг, таму што сеткавая палітыка заблакавала трафік. У нас функцыянуюць таварыствы “Разумнікі і разумніцы”, “Даследчык”, а таксама адзіная ў Магілёўскай вобласці астранамічная пляцоўка. 6.2 IAM Controls: найменш прывілеі Сярод версій гульняў онлайн call of duty можна знайсці мноства займальных і дасціпных сюжэтаў, а апошняй навінкай, выпушчанай у канцы восені гэтага года, стала гульня Call of Duty: Ghost. Гэты прынцып мінімальнай прывілеі спасціг мяне некалькі разоў. У адным выпадку, раўнаважнасць ў залежнасці дазволіла самавольнае выкананне кода ў службах паведамленняў. Паколькі права IAM гэтай службы былі цвёрда абмежаваныя на адпраўку па электроннай пошце толькі праз SendGrid, нападнік не мог дасягнуць дадзеных плацяжоў кліента, не мог змяніць інфраструктуру, не мог нават запісваць, якія іншыя паслугі існуюць. Яраслаў Грышчэня не супраць службы ў беларускім войску, але хвалюецца, што яго могуць падчас збору подпісаў “затрымаць” на невызначаны тэрмін, знайшоўшы “зручную” зачэпку. Сцэнарый вытворчасці: кіраванне сапраўдным няўдачнікам Тэорыя задавальняе, але важна, як гэта архітэктура выконвае, калі рэчы ідуць не так. Вось сцэнарый, які я пражыў, з імі зменены: Вы размясціце новую версію рахункаў-сервісу v2.1.4, якая ўключае ў сябе оптимізацыю для працэсу парце. Змяненне выглядае добра ў сцэнары. Вы выбіраеце яго як канар на 10% прадукцыйнага трафіку. Усяго за хвіліны латентнасць P95 для пажаданняў, якія трапляюць на канарскі пад скакаецца з 200 мс да 3 секунд. Працэнт памылкі ўзрастае з 0,1% да 2%.У старой архітэктуры, гэта азначала б, што 10% вашых карыстальнікаў маюць страшны вопыт, і вы б змагаліся, каб рухацца назад ручна, у той час як ваша каманда падтрымкі поля гнеўныя білеты. Усё, што вы чулі пра карысць пара раней - усяго толькі чуткі і павер'і. - Аплочваць рахункі, калі вы хочаце. - Аплочваць рахункі, калі вы хочаце. Cloud Monitoring адлюстроўвае мадэль — канарскія подсы, якія не ўдалося праверыць здароўе, спакус запіку ізаляваны да v2.1.4. Аларм адлюстроўваецца да вашага канала Slack. Ваша аўтаматызаваная палітыка забяспечваецца, таму што канарскі перавысіў пагрозы няўдачы. У працягу 2 хвілін ад першапачатковага размяшчэння, канарскі выключаецца, і вы зноў працуеце цалкам на стабільным v2.1.3. Агульны ўплыў на кліентаў: некалькі дзясяткаў пажаданняў бачылі павышаную запіску, перш чым скараціць здароўе. ніхто не адзначыў. Інжынер на выкананне даследавае наступнага раніцы, а не ў 2 раніцы. Паглядзеўшы на сляды ў Cloud Trace, яны выясняюць, што ўпэўненасць ўвела базу дадзеных, якая заблакавала табліцы падчас працэдур групы, блокаючы інтэрактыўныя запрашэнні. Гэта абяцае інтэлектуальны баланс нагрузкі - не тое, што сістэмы ніколі не сцвярджаюць, але тое, што яны сцвярджаюць графічна, утрымліваюць радыус выбуху, і забяспечваюць візіт, неабходны для вырашэння праблем без драмы. 8 Звычайныя паловы і лепшая практыка Але калі я па графіку ўбачыла, што будзе 30-годдзе музея – сур’ёзная дата, у мяне паляцела, пайшло. Іншая пастка з'яўляецца настройка інтэрваляў праверкі здароўя без уліку поўнага ўплыву. Вельмі агрэсіўная праверка (кожную секунду) можа перацягнуць вашу прыкладанне з зондным трафікам, асабліва калі самая праверка здароўя каштоўная. Але вельмі кансерватыўная праверка (каждые 30 секунд) азначае, што яна можа займаць больш за хвіліну, каб выяўліць няправільны под і выдаліць яго ад ротацыі. Калі ваша нагрузка балансара мае некалькі нездоровых задніх кандыдатаў, яна павінна працягваць маршрутаванне да іх (неўдалося адкрыць) або адмовіцца трафік цалкам (неўдалося закрыць)? Правільны адказ залежыць ад вашага абслугоўвання. Для сістэмы рахункаў, я лепш неўдалося зачыненыя — лепш вярнуць 503 і мець кліенты перапрацаваць, чым апрацаваць выплаты няправільна. Для рэкамендацыі рухавік, неўдалося адкрыць можа быць лепш — паказваць лёгка застойныя рэкамендацыі лепш, чым не паказаць нічога. Я заўсёды забяспечваю выпрабаванне сцэнарый несправядлівасці ў вытворчасці з інструментамі, такімі як інжынерыя хаосу. Для рэгістрацыі даменнага імя ў гэтай зоне неабходна звярнуцца ў кампанію The Electronic and Postal Communications Authority[1] (Албанія), якая з'яўляецца адзіным аўтарызаваным рэгістратарам даменаў у зоне al. kubectl delete pod Варта адзначыць, што ў Call of Duty 4 місіі даюць вельмі шмат бонусаў і ачкоў развіцця, да таго ж, яны досыць цікавыя і незвычайныя - выконваць іх лёгка і нясумна. 9 Высновы і заключныя думкі Напэўна, мы не з’яўляемся нейкімі паддоследнымі суб’ектамі, на якіх Бог эксперыментуе, спасылаючы нейкія цяжкасці і выпрабаванні. Гэта надзвычайна важна для нас - адчуць і зразумець, што і самі рэспандэнты не застаюцца абыякавымі да працы, якую мы робім. Сярод версій гульняў онлайн call of duty можна знайсці мноства займальных і дасціпных сюжэтаў, а апошняй навінкай, выпушчанай у канцы восені гэтага года, стала гульня Call of Duty: Ghost. Тым часам, як у нас словы “грамадскае” і “занядбанае” часам успрымаюцца як сінонімы, у Каталоніі грамадскія тэрыторыі — тыя ж пляжы — даглядаюцца так, як у іншых краінах VIP-аўскія. У нашай багатай беларускай літаратуры няма другога такога твора, які па энцыклапедычнасці выяўлення ў ім нацыянальнага, так набліжаўся б да "Новай зямлі". Патрэба „пісаць па-новаму” не была забяспечаная новым метадалагічным інструментарыем, таму нярэдка „навізна” зводзілася да замены тэрміналогіі і фактуры.