{"id":36141,"date":"2019-10-31T22:09:49","date_gmt":"2019-10-31T19:09:49","guid":{"rendered":"https:\/\/prohoster.info\/blog\/slyorm-prostoj-sposob-vorvatsya-v-temu-po-kubernetes\/"},"modified":"2019-10-31T22:09:49","modified_gmt":"2019-10-31T19:09:49","slug":"slyorm-prostoj-sposob-vorvatsya-v-temu-po-kubernetes","status":"publish","type":"post","link":"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/slyorm-prostoj-sposob-vorvatsya-v-temu-po-kubernetes","title":{"rendered":"Slurm \u2014 o modalitate simpl\u0103 de a p\u0103trunde \u00een tema Kubernetes","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Slurm \u2014 o modalitate simpl\u0103 de a p\u0103trunde \u00een tema Kubernetes\" src=\"\/wp-content\/uploads\/2019\/07\/a5075e54f28fd07ea2f24ead8a037adc.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n\u00cen aprilie m-au contactat organizatorii Slyurm \u2014 cursuri de Kubernetes \u2014 s\u0103 testez \u0219i s\u0103 \u00eemi \u00eemp\u0103rt\u0103\u0219esc opinia:<\/p>\n<blockquote><p>Dmitry, Slyurm este un eveniment intensiv de trei zile dedicat Kubernetes, un program educa\u021bional compact. Probabil nu vei putea scrie despre el dac\u0103 stai doar dou\u0103 ore la prima lec\u021bie. E\u0219ti preg\u0103tit s\u0103 participi pe deplin?<\/p><\/blockquote>\n<p>\u00cenainte de Slyurm, a fost necesar s\u0103 urmezi cursuri preparatorii online despre Ansible, Docker \u0219i Ceph. <br \/>\nApoi, trebuie s\u0103 ob\u021bii codul din rep-uri \u0219i instruc\u021biunile exacte, cu care s\u0103 parcurgi fiecare linie de comand\u0103 al\u0103turi de instructori la lec\u021bii. <\/p>\n<blockquote><p>\u2014 Confirm c\u0103 sunt preg\u0103tit s\u0103 particip pe deplin la ambele cursuri.<\/p><\/blockquote>\n<p>Dup\u0103 asta, te a\u0219teapt\u0103 o munc\u0103 intens\u0103 timp de 6 zile (Slyurm de baz\u0103 \u0219i MegaSlyurm) \u00eentr-o sal\u0103 plin\u0103 cu administratori de sistem.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>F\u00e2nt\u00e2ni<\/h2>\n<p>\nCare este de fapt complexitatea dezvolt\u0103rii serviciilor? De exemplu, afacerea cere s\u0103 fac\u0103 o campanie de marketing prin notific\u0103ri! Ar p\u0103rea c\u0103 avem un developer full-stack cu un site \u0219i dezvoltatori de aplica\u021bii mobile. O sarcin\u0103 de 15 minute. S\u0103 spunem afacerii c\u0103 ne vom descurca \u00eentr-o zi!<\/p>\n<p>\u0218i aici se dovede\u0219te c\u0103 notific\u0103rile nu au fost niciodat\u0103 trimise. Nu s-a realizat o integrare a unei platforme externe sau self-hosted pentru trimiterea notific\u0103rilor. Asta nu mai e 15 minute \u0219i nu e nici m\u0103car o or\u0103, bine dac\u0103 o integreaz\u0103 \u00een o s\u0103pt\u0103m\u00e2n\u0103. A \u00eenceput magia \u0219i vr\u0103jitoria. Totul devine neclar, ciudat \u0219i imprevizibil.<\/p>\n<p>Dezvoltarea a devenit complet imprevizibil\u0103 dintr-un singur motiv: nu s-a \u021binut cont c\u0103, pe l\u00e2ng\u0103 stratul de sarcini de afaceri, exist\u0103 \u0219i un strat de infrastructur\u0103.<\/p>\n<p>Dac\u0103 stratul de sarcini de afaceri este o f\u00e2nt\u00e2n\u0103 care erupe o mul\u021bime de sarcini mici, verific\u0103ri de ipoteze \u0219i detalii vizuale, infrastructura sunt \u021bevile ei. Aici este necesar\u0103 o orizont de planificare de minimum \u0219ase luni \u00een avans. <\/p>\n<h2>\u021aevi pentru f\u00e2nt\u00e2ni<\/h2>\n<p>\nDatorit\u0103 complexit\u0103\u021bii \u0219i cerin\u021bei de a fi extrem de atent la detalii, dezvoltarea \u201e\u021bevelor\u201d este realizat\u0103 de persoane special instruite: DevOps, care au evoluat din cei mai experimenta\u021bi administratori \u0219i dezvoltatori. Munca lor este planificat\u0103 \u0219i strict secven\u021bial\u0103. Ei sunt asem\u0103n\u0103tori constructorilor de poduri \u2014 orice gre\u0219eal\u0103 duce la transformarea unei sarcini u\u0219oare de afaceri de 15 minute \u00eentr-o replanificare a infrastructurii timp de multe zile \u0219i bani.<\/p>\n<p>Slurm este \u00een prezent singurul curs din Rusia (dintre cele pe care le cunosc) care \u00eenva\u021b\u0103 construirea infrastructurii \u00eentr-un mod standardizat, permi\u021b\u00e2nd astfel s\u0103 se atenueze erorile de planificare. Am participat la cursuri despre Kubernetes \u0219i \u00een septembrie inten\u021bionez s\u0103 urmez un nou curs despre DevOps.<\/p>\n<p>Slurm a fost creat de compania Southbridge, un furnizor de servicii de administrare care a construit zeci de f\u00e2nt\u00e2ni de diverse forme. Southbridge este un KTP \u0219i KCSP certificat (CNCF, membru al Linux Foundation).<\/p>\n<h2>Ce anume \u00eenva\u021b\u0103 cursurile despre Kubernetes?<\/h2>\n<p><\/p>\n<h4>Cum s\u0103 organiz\u0103m tot ceea ce au realizat dezvoltatorii astfel \u00eenc\u00e2t s\u0103 nu crape? <\/h4>\n<p><\/p>\n<ul>\n<li>Lucrul cu Kubespray<\/li>\n<li>Instalarea componentelor suplimentare<\/li>\n<li>Testarea \u0219i depanarea clusterului<\/li>\n<\/ul>\n<p><\/p>\n<h4>Cum se face autorizarea utilizatorilor (dezvoltatorilor) \u00een cluster pentru a lucra cu acesta?<\/h4>\n<p><\/p>\n<ul>\n<li>LDAP (Nginx + Python)<\/li>\n<li>OIDC (Dex + Gangway)<\/li>\n<\/ul>\n<p><\/p>\n<h4>Cum ne protej\u0103m la nivel de re\u021bea \u00eempotriva hackerilor?<\/h4>\n<p><\/p>\n<ul>\n<li>Introducere \u00een CNI<\/li>\n<li>Politica de securitate a re\u021belei<\/li>\n<\/ul>\n<p><\/p>\n<h4>\u0218i, \u00een general, securitatea!<\/h4>\n<p><\/p>\n<ul>\n<li>PodSecurityPolicy<\/li>\n<li>PodDisruptionBudget<\/li>\n<\/ul>\n<p><\/p>\n<h4>Nu ascundem nimic \u2014 explic\u0103m \u00een detaliu ce se afl\u0103 sub capot\u0103<\/h4>\n<p><\/p>\n<ul>\n<li>Structura controlerului<\/li>\n<li>Operatori \u0219i CRD<\/li>\n<\/ul>\n<p><\/p>\n<h4>Aplica\u021bii stateful \u00een cluster<\/h4>\n<p><\/p>\n<ul>\n<li>Lansarea unui cluster de baze de date folosind PostgreSQL<\/li>\n<li>Lansarea unui cluster RabbitMQ<\/li>\n<\/ul>\n<p><\/p>\n<h4>Cum s\u0103 nu stoc\u0103m numeroase parole \u0219i configura\u021bii \u00een mod deschis<\/h4>\n<p><\/p>\n<ul>\n<li>Gestionarea secretelor \u00een Kubernetes<\/li>\n<li>Vault<\/li>\n<\/ul>\n<p><\/p>\n<h4>Scalare orizontal\u0103 cu un simplu click<\/h4>\n<p><\/p>\n<ul>\n<li>Teorie<\/li>\n<li>Practic\u0103<\/li>\n<\/ul>\n<p><\/p>\n<h4>Backup-uri<\/h4>\n<p><\/p>\n<ul>\n<li>Backup \u0219i restaurare a clusterului folosind Heptio Velero (fost Ark) \u0219i etcd<\/li>\n<\/ul>\n<p><\/p>\n<h4>Dezvoltare u\u0219oar\u0103 \u00een medii de testare, staging \u0219i produc\u021bie<\/h4>\n<p><\/p>\n<ul>\n<li>Lint<\/li>\n<li>Instrumente de template \u0219i deployment<\/li>\n<li>Strategii de deployment<\/li>\n<\/ul>\n<p>\nExist\u0103 \u0219i un curs avansat, acolo totul este hardcore. Cu toate acestea, dup\u0103 cursul de baz\u0103, se poate deja construi o f\u00e2nt\u00e2n\u0103. <\/p>\n<p>Dup\u0103 Slurm, participan\u021bii au r\u0103mas cu artefacte \u2014 \u00eenregistr\u0103ri video din toate zilele, instruc\u021biuni detaliate pentru fiecare punct \u00eempreun\u0103 cu re\u021bete exacte, a c\u0103ror comenzi pot fi pur \u0219i simplu copiate pentru a construi fie o solu\u021bie de backup, fie o solu\u021bie pentru medii de testare sau orice altceva. <\/p>\n<p>Adic\u0103, totul este at\u00e2t de simplu. Da. Am venit timp de c\u00e2teva zile, m-am ad\u00e2ncit \u00een subiect, am ob\u021binut re\u021betele exacte \u0219i m-am \u00eentors la locul de munc\u0103 pentru a construi infrastructura proiectului \u2014 simplu, corect \u0219i, cel mai important, previzibil \u00een termeni. Magia \u0219i vr\u0103jitoria s-au \u00eencheiat, a r\u0103mas doar s\u0103 muncim. <\/p>\n<h2>Ce \u00eenseamn\u0103 \u00een final?<\/h2>\n<p>\nLa sf\u00e2r\u0219itul curselor, timp de c\u00e2teva zile, sim\u021bi c\u0103 proiectele serioase sunt construite aproape c\u0103 de devops \u00een\u0219i\u0219i. \u0218i este uimitor c\u0103 tot materialul trecut este clar, \u00eel reproduc deja pe serverele mele zilnic. <\/p>\n<p>Din fericire, \u00eentreaga audien\u021b\u0103 s-a mutat \u00een grupul de Telegram, unde, chiar \u0219i dup\u0103 multe s\u0103pt\u0103m\u00e2ni, exist\u0103 via\u021b\u0103.<\/p>\n<h2>Ce urmeaz\u0103?<\/h2>\n<p>\nOrganizatorii preg\u0103tesc Slurm Devops pentru toamn\u0103, eu deja m\u0103 preg\u0103tesc. Voi scrie despre asta \u00een cur\u00e2nd pe canalul meu <noindex><a rel=\"nofollow\" href=\"https:\/\/t.me\/ctorecords\">de tehnologie din Telegram @ctorecords<\/a><\/noindex>.<br \/>\n<br \/>Sursa: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/459498\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412 \u0430\u043f\u0440\u0435\u043b\u0435 \u043a\u043e \u043c\u043d\u0435 \u043f\u043e\u0441\u0442\u0443\u0447\u0430\u043b\u0438\u0441\u044c \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0442\u043e\u0440\u044b \u0421\u043b\u0451\u0440\u043c \u2014 \u043a\u0443\u0440\u0441\u043e\u0432 \u043f\u043e Kubernetes \u2014 \u043f\u043e\u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u0441\u0432\u043e\u0451 \u0432\u043f\u0435\u0447\u0430\u0442\u043b\u0435\u043d\u0438\u0435: \u0414\u043c\u0438\u0442\u0440\u0438\u0439, \u0421\u043b\u0451\u0440\u043c \u2014 \u044d\u0442\u043e \u0442\u0440\u0435\u0445\u0434\u043d\u0435\u0432\u043d\u044b\u0439 \u0438\u043d\u0442\u0435\u043d\u0441\u0438\u0432 \u043f\u043e Kubernetes, \u043f\u043b\u043e\u0442\u043d\u043e\u0435 \u0443\u0447\u0435\u0431\u043d\u043e\u0435 \u043c\u0435\u0440\u043e\u043f\u0440\u0438\u044f\u0442\u0438\u0435. \u0412\u0440\u044f\u0434 \u043b\u0438 \u0432\u044b \u0441\u043c\u043e\u0436\u0435\u0442\u0435 \u043e \u043d\u0435\u043c \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c, \u0435\u0441\u043b\u0438 \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u043e\u0441\u0438\u0434\u0438\u0442\u0435 \u0434\u0432\u0430 \u0447\u0430\u0441\u0430 \u043d\u0430 \u043f\u0435\u0440\u0432\u043e\u0439 \u043b\u0435\u043a\u0446\u0438\u0438. \u0412\u044b \u0433\u043e\u0442\u043e\u0432\u044b \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u043e \u0443\u0447\u0430\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c? \u041f\u0435\u0440\u0435\u0434 \u0441\u043b\u0451\u0440\u043c\u043e\u043c \u043d\u0430\u0434\u043e \u0431\u044b\u043b\u043e \u043f\u0440\u043e\u0439\u0442\u0438 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 online-\u043a\u0443\u0440\u0441\u044b \u043f\u043e [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":27031,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-36141","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0412 \u0430\u043f\u0440\u0435\u043b\u0435 \u043a\u043e \u043c\u043d\u0435 \u043f\u043e\u0441\u0442\u0443\u0447\u0430\u043b\u0438\u0441\u044c.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/slyorm-prostoj-sposob-vorvatsya-v-temu-po-kubernetes\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"ro_RO\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0421\u043b\u0451\u0440\u043c \u2014 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u0432\u043e\u0440\u0432\u0430\u0442\u044c\u0441\u044f \u0432 \u0442\u0435\u043c\u0443 \u043f\u043e Kubernetes | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0412 \u0430\u043f\u0440\u0435\u043b\u0435 \u043a\u043e \u043c\u043d\u0435 \u043f\u043e\u0441\u0442\u0443\u0447\u0430\u043b\u0438\u0441\u044c.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/slyorm-prostoj-sposob-vorvatsya-v-temu-po-kubernetes\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:09:49+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:09:49+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Slurm \u2014 o modalitate simpl\u0103 de a te introduce \u00een lumea Kubernetes | ProHoster","description":"\u00cen aprilie, cineva mi-a b\u0103tut la u\u0219\u0103.","canonical_url":"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/slyorm-prostoj-sposob-vorvatsya-v-temu-po-kubernetes","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"ro_RO","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0421\u043b\u0451\u0440\u043c \u2014 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u0432\u043e\u0440\u0432\u0430\u0442\u044c\u0441\u044f \u0432 \u0442\u0435\u043c\u0443 \u043f\u043e Kubernetes | ProHoster","og:description":"\u0412 \u0430\u043f\u0440\u0435\u043b\u0435 \u043a\u043e \u043c\u043d\u0435 \u043f\u043e\u0441\u0442\u0443\u0447\u0430\u043b\u0438\u0441\u044c.","og:url":"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/slyorm-prostoj-sposob-vorvatsya-v-temu-po-kubernetes","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:09:49+00:00","article:modified_time":"2019-10-31T19:09:49+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"36141","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-22 02:10:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 01:50:23","updated":"2026-01-22 02:10:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts\/36141","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/comments?post=36141"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts\/36141\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media\/27031"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media?parent=36141"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/categories?post=36141"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/tags?post=36141"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}