{"id":54515,"date":"2019-12-28T00:00:00","date_gmt":"2019-12-27T21:00:00","guid":{"rendered":"https:\/\/prohoster.info\/blog\/blog_prohoster\/novye-byliny-dlya-dev-ops-i-lyuboznatelnyh-lyudej"},"modified":"2020-02-18T14:02:32","modified_gmt":"2020-02-18T11:02:32","slug":"novye-byliny-dlya-dev-ops-i-lyuboznatelnyh-lyudej","status":"publish","type":"post","link":"https:\/\/prohoster.info\/pt\/blog\/administrirovanie\/novye-byliny-dlya-dev-ops-i-lyuboznatelnyh-lyudej","title":{"rendered":"\"Novos Contos\". Para desenvolvedores, opera\u00e7\u00f5es e pessoas curiosas.","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"&quot;Novos Contos&quot;. Para desenvolvedores, opera\u00e7\u00f5es e pessoas curiosas.\" src=\"\/wp-content\/uploads\/2019\/12\/92f2462e6526d4ea2acf71fac5e472c0.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>De acordo com in\u00fameros pedidos dos leitores, inicia-se uma grande s\u00e9rie de artigos sobre a aplica\u00e7\u00e3o da tecnologia de computa\u00e7\u00e3o sem servidor para o desenvolvimento de uma aplica\u00e7\u00e3o real. Nesta s\u00e9rie, ser\u00e1 abordado o desenvolvimento da aplica\u00e7\u00e3o, testes e entrega aos usu\u00e1rios finais utilizando ferramentas modernas: arquitetura de microsservi\u00e7os da aplica\u00e7\u00e3o (na variante serverless, baseada em <noindex><a rel=\"nofollow\" href=\"https:\/\/www.openfaas.com\/\">OpenFaaS<\/a><\/noindex>), o cluster <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/\">kubernetes<\/a><\/noindex> para a implanta\u00e7\u00e3o da aplica\u00e7\u00e3o, o banco de dados <noindex><a rel=\"nofollow\" href=\"https:\/\/mongodb.com\/\">MongoDB<\/a><\/noindex>, voltado para a clusteriza\u00e7\u00e3o e aplica\u00e7\u00e3o em nuvem, al\u00e9m do barramento de nuvem <noindex><a rel=\"nofollow\" href=\"https:\/\/nats.io\/\">NATS<\/a><\/noindex>O aplicativo implementa o jogo \u00abByliny\u00bb, uma das variantes do popular jogo de sal\u00e3o \u00abMafia\u00bb.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2 id=\"chto-takoe-byliny\">O que \u00e9 \u00abByliny\u00bb?<\/h2>\n<p><\/p>\n<p>\u00c9 uma variante do jogo \u00abMafia\u00bb, tamb\u00e9m conhecido como \u00abWerewolf\u00bb. Sua base \u00e9 um jogo em equipe, onde os participantes devem passo a passo descobrir quem \u00e9 quem e tentar vencer. Infelizmente, ao jogar online, uma parte importante do jogo, como a intera\u00e7\u00e3o pessoal, se perde, e as regras da cl\u00e1ssica \u00abMafia\u00bb s\u00e3o bastante simples, por isso, para um processo de jogo mais n\u00e3o linear e interessante, geralmente s\u00e3o adicionados outros personagens, mas as principais caracter\u00edsticas da original \u00abMafia\u00bb s\u00e3o mantidas, como a mudan\u00e7a entre dia e noite, turnos apenas \u00e0 noite, bem como alian\u00e7as entre os participantes. Outra diferen\u00e7a importante do jogo online \u00e9 que o mestre (tamb\u00e9m conhecido como Mestre do Jogo, Contador de Hist\u00f3rias) \u00e9 geralmente um programa de computador.<\/p>\n<p><\/p>\n<h3 id=\"opisanie-igry\">Descri\u00e7\u00e3o do jogo<\/h3>\n<p><\/p>\n<p>As regras do jogo que desejo implementar foram retiradas de um antigo bot IRC que guardei em meu arquivo pessoal h\u00e1 cerca de 10 anos. \u00abByliny\u00bb tem uma hist\u00f3ria que come\u00e7a cada jogo:<\/p>\n<p><\/p>\n<blockquote><p>Em um reino distante, em um estado remoto, al\u00e9m de sete mares, havia algumas vilas, e nelas <em>Jovens valentes<\/em> e <em>Bela mo\u00e7as<\/em>. Plantavam gr\u00e3os e iam ao bosque vizinho colher cogumelos e frutas\u2026 E assim continuou por gera\u00e7\u00f5es, at\u00e9 que uma terr\u00edvel cat\u00e1strofe abalou a Terra e o mal come\u00e7ou a se espalhar pelo mundo! As noites tornaram-se longas e frias, e nas trevas espreitavam no bosque e invadiam a vila criaturas malignas e aterrorizantes. Chegou de algum lugar <em>Zmey Gorynych<\/em> e come\u00e7ou a roubar as Bela mo\u00e7as e a tomar tudo o que era valioso dos camponeses. A malvada e gananciosa <em>Baba Yaga<\/em>, que chegou em uma vassoura de florestas distantes, confundiu a mente dos moradores, e at\u00e9 alguns abandonaram suas ocupa\u00e7\u00f5es e foram para o bosque se tornarem bandidos, formando uma quadrilha l\u00e1. <em>Leshy<\/em>, que podia se transformar em \u00e1rvores e arbustos, come\u00e7ou a observar os pac\u00edficos camponeses e a servir aos bandidos, investigando se os Nobres Jovens planejavam algo para livrar suas aldeias do mal. Nobres Jovens e Bonitas donzelas, cansados das investidas dos Bandidos e das mortes horr\u00edveis nas m\u00e3os do terr\u00edvel <em>Um Olho Maligno<\/em>, reuniram ouro e convidaram de uma cidade vizinha um famoso lutador \u2014 <em>Ivan, o Pr\u00edncipe<\/em>, que prometeu livrar a aldeia dos bandidos. Em uma clareira na floresta, Ivan salvou da morte iminente <em>Lobo Cinzento<\/em>, que havia ca\u00eddo em uma armadilha dos Bandidos. Em troca, o Lobo prometeu informar ao Pr\u00edncipe sobre diversas criaturas malignas da floresta. Passava por l\u00e1 uma famosa curandeira <em>Vasilisa a S\u00e1bia<\/em>, e ao ver o desespero, resolveu cuidar dos moradores, que havia sofrido com os ataques dos malfeitores. Al\u00e9m da floresta surgiu um castelo negro, onde, segundo rumores, havia se instalado <em>Koshchei o Imortal<\/em>, que toda noite visitava as aldeias e encantava os Nobres Jovens e Bonitas donzelas, para que n\u00e3o ousassem desobedecer suas ordens, todos faziam conforme ele dizia. No Bosque Est\u00e9ril, estabeleceu-se <em>Gato-Bayun<\/em>, e cada um que o encontrava ca\u00eda em um sono profundo ap\u00f3s suas hist\u00f3rias ou morria por suas garras de ferro.<\/p><\/blockquote>\n<p><img decoding=\"async\" alt=\"&quot;Novos Contos&quot;. Para desenvolvedores, opera\u00e7\u00f5es e pessoas curiosas.\" src=\"\/wp-content\/uploads\/2019\/12\/d62c7b97e9a3d86acbd803cc4137c522.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<em>Reino das Tr\u00eas Nove<\/em><\/p>\n<p><\/p>\n<p>Como j\u00e1 \u00e9 poss\u00edvel ver, os jogadores se dividem em v\u00e1rios grupos:<\/p>\n<p><\/p>\n<ul>\n<li>os habitantes pac\u00edficos (Nobres Jovens, Bonitas donzelas, Ivan, o Pr\u00edncipe, Lobo Cinzento e Vasilisa a S\u00e1bia)<\/li>\n<li>bandidos (os pr\u00f3prios bandidos, bem como Baba-Yaga e Leshy)<\/li>\n<li>independentes (Zmey Gorynych, Um Olho Maligno, Princesa-R\u00e3, Koshchei o Imortal, Gato-Bayun)<\/li>\n<\/ul>\n<p><\/p>\n<p>O objetivo do jogo, como j\u00e1 foi mencionado, \u00e9 permanecer vivo e vencer. Os advers\u00e1rios devem, de alguma forma, deixar o jogo, e os independentes tamb\u00e9m devem permanecer vivos at\u00e9 o final do jogo. No jogo, h\u00e1 ouro, uma esp\u00e9cie de moeda que os jogadores ganham apenas dentro do jogo. Os vencedores recebem ouro. Quanto mais ouro, maior \u00e9 o ranking do jogador.<\/p>\n<p><\/p>\n<p>Vou detalhar um pouco mais a descri\u00e7\u00e3o dos personagens.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"&quot;Novos Contos&quot;. Para desenvolvedores, opera\u00e7\u00f5es e pessoas curiosas.\" src=\"\/wp-content\/uploads\/2019\/12\/c67888987787b43eb7276d8ccccc2b67.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<em>Nobre Jovem<\/em><\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"&quot;Novos Contos&quot;. Para desenvolvedores, opera\u00e7\u00f5es e pessoas curiosas.\" src=\"\/wp-content\/uploads\/2019\/12\/5ccd55e465086ee016cafeaa8b0f72d1.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<em>Bonita Donzela<\/em><\/p>\n<p><\/p>\n<p><strong>Nobre Jovem<\/strong> e <strong>Bonita Donzela<\/strong> \u2014 o papel mais comum e principal no jogo. S\u00e3o habitantes pac\u00edficos que dormem \u00e0 noite e trabalham durante o dia. \u00c0 noite, s\u00e3o atacados por algum dos bandidos, Zmey Gorynych e outros pap\u00e9is, enquanto Vasilisa a S\u00e1bia os cura. Com uma pequena probabilidade, o Bom Jovem ou a Donzela Vermelha podem sobreviver ao ataque sem danos (possivelmente perdendo alguma ouro), mas todos descobrir\u00e3o o pseud\u00f4nimo do jogador no dia seguinte ap\u00f3s o ataque. \u00c0 noite, esses jogadores n\u00e3o fazem jogadas, mas analisam a situa\u00e7\u00e3o do jogo com base nas mensagens no chat do jogo. Durante o dia, esses jogadores decidem, por vota\u00e7\u00e3o, quem deles n\u00e3o \u00e9 o Bom Jovem ou a Donzela Vermelha. O jogador que receber a maioria dos votos dos outros jogadores sai do jogo, os restantes ganham ou perdem ouro. Se os jogadores n\u00e3o escolherem ningu\u00e9m pela maioria dos votos, nenhum jogador ser\u00e1 executado.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"&quot;Novos Contos&quot;. Para desenvolvedores, opera\u00e7\u00f5es e pessoas curiosas.\" src=\"\/wp-content\/uploads\/2019\/12\/a14fc89fc21e08c1fa218a8e7df42f68.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<em>Ivan Tsarevich<\/em><\/p>\n<p><\/p>\n<p><strong>Ivan Tsarevich<\/strong> \u2014 inicialmente um defensor an\u00f4nimo dos habitantes pac\u00edficos. \u00c0 noite, verifica os pap\u00e9is dos outros jogadores, pois conhece apenas um aliado \u2014 o Lobo Cinza. Com a ajuda direta do Lobo Cinza (que tamb\u00e9m pode verificar os pap\u00e9is de outros jogadores), Ivan Tsarevich, em vez de verificar, pode durante a noite matar outro personagem. Se, como resultado da verifica\u00e7\u00e3o, Ivan Tsarevich v\u00ea o papel do Bom Jovem ou da Donzela Vermelha em um jogador, pode convid\u00e1-los para se juntarem a ele e apresent\u00e1-los ao Lobo Cinza e aos outros Bons Jovens e Donzelas Vermelhas. Ivan pode ser atrapalhado pela Princesa-R\u00e3, que pode seduzi-lo \u00e0 noite, sem revelar seu papel aos demais jogadores durante o dia. Se Ivan descobrir a Princesa-R\u00e3, pu\u00f2 oferecer-lhe juntar-se aos habitantes pac\u00edficos, no entanto, se a Princesa recusar, ela morre \u00e0s m\u00e3os de Ivan. Zmey Gorynych tamb\u00e9m pode atrapalhar as verifica\u00e7\u00f5es de Ivan Tsarevich, mas, ao contr\u00e1rio da Princesa-R\u00e3, durante o dia ele contar\u00e1 aos outros jogadores quem \u00e9 Ivan Tsarevich. Durante o dia, Ivan Tsarevich n\u00e3o se distingue de outros Bons Jovens.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"&quot;Novos Contos&quot;. Para desenvolvedores, opera\u00e7\u00f5es e pessoas curiosas.\" src=\"\/wp-content\/uploads\/2019\/12\/9156c31d47bb67eabdab6866e36db7bb.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<em>Lobo Cinza<\/em><\/p>\n<p><\/p>\n<p><strong>Lobo Cinza<\/strong> \u2014 assistente de Ivan, o Tsarevich, cujo olfato agu\u00e7ado ajuda Ivan a encontrar outros Bravos Jovens e Donzelas Vermelhas. O Lobo Cinza informa a esses jogadores quem \u00e9 Ivan Tsarevich e tamb\u00e9m comunica sobre outros jogadores com os pap\u00e9is de Bravos Jovens e Donzelas Vermelhas. Se o Lobo detectar um bandido ou outro inimigo, ele imediatamente avisa Ivan Tsarevich, para que este tome medidas na pr\u00f3xima noite. Se a Princesa Sapo atacar o Lobo, ele se transforma em um Bravo Jovem comum e n\u00e3o pode investigar ningu\u00e9m, e a Princesa n\u00e3o saber\u00e1 que na verdade era o Lobo Cinza, j\u00e1 que o Lobo n\u00e3o dorme \u00e0 noite. No entanto, o pr\u00f3prio Lobo consegue descobrir durante o dia quem \u00e9 a Princesa Sapo e pode tentar persuadir os outros Bravos Jovens e Donzelas Vermelhas que trouxe a Ivan Tsarevich a votar pela execu\u00e7\u00e3o da Princesa Sapo. Al\u00e9m disso, na pr\u00f3xima noite, ele pode tentar anonimamente persuadir a Princesa Sapo a se aliar aos pac\u00edficos, para que ela n\u00e3o prejudique ningu\u00e9m deles. \u00c0 noite, o Lobo pode se sacrificar para salvar Ivan Tsarevich ou Vasilisa a S\u00e1bia, se suspeitar que eles possam ser atacados por bandidos, ou tenham sido zumbificados por Koschei (o Lobo tem imunidade inata aos feiti\u00e7os de Koschei), mas ap\u00f3s o sacrif\u00edcio o Lobo \u00e9 eliminado do jogo.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"&quot;Novos Contos&quot;. Para desenvolvedores, opera\u00e7\u00f5es e pessoas curiosas.\" src=\"\/wp-content\/uploads\/2019\/12\/63cf0ae3985a6109bebb2cf63f809b0d.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<em>Vasilisa a S\u00e1bia<\/em><\/p>\n<p><\/p>\n<p><strong>Vasilisa a S\u00e1bia<\/strong> \u2014 joga como um pac\u00edfico, mas eles n\u00e3o sabem disso, pois Vasilisa \u00e9 muito t\u00edmida. Al\u00e9m disso, Vasilisa a S\u00e1bia, ao curar, n\u00e3o faz perguntas e, como uma boa m\u00e9dica, cuida de todos. Mas se seu rem\u00e9dio for tomado por Koschei, Lihy ou Leshy \u2014 eles n\u00e3o viver\u00e3o mais de um dia, pois Vasilisa apenas cura humanos. A V\u00edbora Gorynych ou o Gato-Ba-Yun tamb\u00e9m n\u00e3o aproveitar\u00e3o os medicamentos de Vasilisa a S\u00e1bia, mas tamb\u00e9m n\u00e3o sofrer\u00e3o danos. Al\u00e9m disso, Vasilisa n\u00e3o \u00e9 perturbada pelo Gato-Ba-Yun \u00e0 noite, pois Vasilisa n\u00e3o vai \u00e0 Floresta Sem Vida colher ervas medicinais. Al\u00e9m disso, os encantos femininos da Princesa Sapo n\u00e3o afetam Vasilisa. Se o paciente dela for atacado duas vezes, a medicina se mostrar\u00e1 impotente. Vasilisa tamb\u00e9m n\u00e3o salvar\u00e1 de ataques m\u00e1gicos, como a maldi\u00e7\u00e3o de Lihy. Durante o dia, Vasilisa se comporta como uma Donzela Vermelha, e apenas um olhar breve e levemente triste pode sugerir que ela \u00e9 a melhor curandeira do Tr\u00edade Reino.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"&quot;Novos Contos&quot;. Para desenvolvedores, opera\u00e7\u00f5es e pessoas curiosas.\" src=\"\/wp-content\/uploads\/2019\/12\/c52dfc9670d458512e856763410196ae.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<em>Bandido<\/em><\/p>\n<p><\/p>\n<p><strong>Bandidos<\/strong>, ao contr\u00e1rio de todos os pap\u00e9is anteriores, conhecem-se, pois vivem em uma mesma Toca, e tamb\u00e9m conhecem o Leshy e a Baba Yaga, portanto, podem agir de forma coordenada desde o primeiro movimento. Mas apenas o L\u00edder da gangue age \u00e0 noite e n\u00e3o vota durante o dia, enquanto os outros Ladr\u00f5es se esfor\u00e7am para se passar por Bons Rapazes e Belas Mo\u00e7as. Se o L\u00edder for eliminado do jogo por qualquer motivo, seu lugar \u00e9 imediatamente ocupado por um dos Ladr\u00f5es restantes. Em primeiro lugar, os Ladr\u00f5es tentam incapacitar Ivan-Tsar\u00e9vich antes que ele consiga reunir for\u00e7as suficientes dos Bons Rapazes e das Belas Mo\u00e7as para enfrentar os Ladr\u00f5es durante o dia.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"&quot;Novos Contos&quot;. Para desenvolvedores, opera\u00e7\u00f5es e pessoas curiosas.\" src=\"\/wp-content\/uploads\/2019\/12\/6d12a13c0978d69077c7b8a6a6f73966.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<em>Leshy<\/em><\/p>\n<p><\/p>\n<p><strong>Leshy<\/strong> espiando para os Ladr\u00f5es \u00e0 noite, informando-os sobre os pap\u00e9is encontrados em sua Toca, mas durante o dia n\u00e3o vota, pois n\u00e3o reside na aldeia. No entanto, outros jogadores podem votar para condenar o Leshy. Como o Leshy \u00e9 origin\u00e1rio dos p\u00e2ntanos, ele n\u00e3o pode ser seduzido pela Princesa-R\u00e3, e se tentar, o Leshy marcar\u00e1 sua casa, e os moradores da aldeia descobrir\u00e3o quem ela realmente \u00e9. N\u00e3o h\u00e1 motivo para o Leshy temer os encantos de Koschei, mas Vasilisa pode cur\u00e1-lo at\u00e9 a morte. Se o Gato-Bayun tentar atacar o Leshy, ele arrisca perder suas garras de ferro, e depois ter\u00e1 que fazer o Gato adormecer suas v\u00edtimas apenas com seu ronronar.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"&quot;Novos Contos&quot;. Para desenvolvedores, opera\u00e7\u00f5es e pessoas curiosas.\" src=\"\/wp-content\/uploads\/2019\/12\/99a9e435eeef51b8b95715a54e5c4709.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<em>Baba Yaga<\/em><\/p>\n<p><\/p>\n<p><strong>Baba Yaga<\/strong> trabalha tamb\u00e9m com os Ladr\u00f5es, praticando magia \u00e0 noite: pode lan\u00e7ar doen\u00e7as sobre outros jogadores ou proteger algum de seus aliados de ataques. Sua magia \u00e9 at\u00e9 mais poderosa que a maldi\u00e7\u00e3o do Lich. Durante o dia, Baba Yaga tamb\u00e9m est\u00e1 ativa: aquele que est\u00e1 sob sua prote\u00e7\u00e3o n\u00e3o pode ser executado mesmo pela maioria dos votos. No entanto, o suprimento de ra\u00edzes m\u00e1gicas para prote\u00e7\u00e3o diurna \u00e9 limitado, ent\u00e3o Baba Yaga n\u00e3o pode proteger ningu\u00e9m, incluindo a si mesma, mais de tr\u00eas vezes durante o jogo. Durante o dia, Baba Yaga finge ser uma comum Bela Mo\u00e7a e vota com todos.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"&quot;Novos Contos&quot;. Para desenvolvedores, opera\u00e7\u00f5es e pessoas curiosas.\" src=\"\/wp-content\/uploads\/2019\/12\/1f08d6f320f6c7cb30ac9cf8e442cbe3.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<em>Zmey Gorynych<\/em><\/p>\n<p><\/p>\n<p><strong>Zmey Gorynych<\/strong> voa \u00e0 noite sobre vilarejos, florestas e p\u00e2ntanos, praticando saques, revelando durante o dia o papel da vitima. Durante o dia, o Drag\u00e3o dorme, por isso n\u00e3o vota, mas pode ser executado pela maioria dos votos. O Drag\u00e3o \u00e9 muito perigoso para todos, especialmente para os Ladr\u00f5es e Ivan, o Pr\u00edncipe. O Drag\u00e3o n\u00e3o se importa com quem saquear, mas se for revelado pelo Lobo ou o Leshiy, pode se tornar um aliado valioso. Se o Drag\u00e3o for morto \u00e0 noite, existe uma chance de obter um item muito valioso \u2014 a Pele do Drag\u00e3o, que proteger\u00e1 seu portador uma vez de um ataque f\u00edsico.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"&quot;Novos Contos&quot;. Para desenvolvedores, opera\u00e7\u00f5es e pessoas curiosas.\" src=\"\/wp-content\/uploads\/2019\/12\/081e412fb071cd719b8e92947d429fd8.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<em>Zorro de Um Olho<\/em><\/p>\n<p><\/p>\n<p><strong>Zorro de Um Olho<\/strong> \u00e0 noite mata todos que cruzam seu caminho, e aqueles que n\u00e3o consegue matar (Leshiy, o Gato-Bayun, ou o Drag\u00e3o Gorynych) \u2014 amaldi\u00e7oa, de modo que qualquer um que tente se comunicar com o amaldi\u00e7oado naquela mesma noite, morrer\u00e1 durante o dia. O pr\u00f3prio amaldi\u00e7oado tamb\u00e9m morre, exceto o Gato-Bayun, que simplesmente se deita para dormir, acumulando for\u00e7as, pulando a vez na pr\u00f3xima noite. Apenas Baba Yaga pode salvar da maldi\u00e7\u00e3o. A maldi\u00e7\u00e3o n\u00e3o afeta quem venceu o Gato-Bayun: ele, assim como o Gato, simplesmente se deita para dormir e pula a vez.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"&quot;Novos Contos&quot;. Para desenvolvedores, opera\u00e7\u00f5es e pessoas curiosas.\" src=\"\/wp-content\/uploads\/2019\/12\/eaae77fc56cde7cd3ffe1ab88dd1a117.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<em>A Princesa-R\u00e3<\/em><\/p>\n<p><\/p>\n<p><strong>A Princesa-R\u00e3<\/strong> n\u00e3o consegue vencer no jogo, mas pode ganhar muito dinheiro, seduzindo outros jogadores durante a noite. Quem for seduzido perde a vez. A R\u00e3 n\u00e3o consegue seduzir Vasilisa a S\u00e1bia, e tamb\u00e9m deve evitar o Leshiy, que a entregar\u00e1 a todos no dia seguinte. Se Ivan, o Pr\u00edncipe, ou o L\u00edder dos Ladr\u00f5es encontrarem a R\u00e3, podem convid\u00e1-la a se juntar ao lado dos moradores pac\u00edficos ou dos Ladr\u00f5es, sendo que Ivan n\u00e3o aceita um n\u00e3o como resposta da R\u00e3, enquanto o L\u00edder \u00e9 menos exigente. Mas a Princesa \u00e9 astuta o suficiente para se tornar uma agente dupla, pois apesar de n\u00e3o conseguir vencer sozinha \u2014 \u00e9 uma \u00f3tima oportunidade de acumular ouro, pois as chances de chegar ao final do jogo aumentam consideravelmente! Durante o dia, a Princesa-R\u00e3 finge ser uma Donzela Vermelha e vota junto com todos.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"&quot;Novos Contos&quot;. Para desenvolvedores, opera\u00e7\u00f5es e pessoas curiosas.\" src=\"\/wp-content\/uploads\/2019\/12\/d7836968bb8314b8fa89300315a0e221.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<em>Koshchei o Imortal<\/em><\/p>\n<p><\/p>\n<p><strong>Koshchei o Imortal<\/strong> vive em seu castelo. \u00c0 noite, ele anda pelas vilas vizinhas e zombifica os Bons Jovens e as Bonitas Donzelas, que se tornam seus servos e cumprem todas as ordens sem questionar. Ao se recusar a seguir uma ordem, como, por exemplo, votar de maneira diferente durante o dia do que foi dito por Koshchei, ou enviar mensagens durante o dia no chat, se Koshchei proibir isso, o Servidor de Koshchei morre. Dessa forma, Koshchei \u00e9 capaz de influenciar os resultados das vota\u00e7\u00f5es durante o dia, mesmo sem votar pessoalmente. Se Koshchei for morto, todas as suas v\u00edtimas tamb\u00e9m morrem. Vasilisa pode curar o Servidor de Koshchei, que ent\u00e3o retorna ao seu papel original. O Drag\u00e3o de Tr\u00eas Cabe\u00e7as e o Lobo t\u00eam imunidade inata \u00e0 zombifica\u00e7\u00e3o, ent\u00e3o Koshchei, por mais que queira, n\u00e3o pode recrutar eles para seus servi\u00e7os. Al\u00e9m disso, o Lobo pode resgatar Ivan ou Vasilisa de uma situa\u00e7\u00e3o dif\u00edcil, sacrificando-se. Os salvos pelo Lobo adquirem a Imunidade do Lobo contra zombifica\u00e7\u00e3o.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"&quot;Novos Contos&quot;. Para desenvolvedores, opera\u00e7\u00f5es e pessoas curiosas.\" src=\"\/wp-content\/uploads\/2019\/12\/c4f7c2d041cbeafd4741d2c24431c6ee.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<em>Gato-Bayun<\/em><\/p>\n<p><\/p>\n<p><strong>Gato-Bayun<\/strong> vive na floresta, ca\u00e7a \u00e0 noite. Durante o dia, dorme em seu buraco, portanto n\u00e3o participa da vota\u00e7\u00e3o. No entanto, durante o dia, ele pode ser condenado pela maioria dos votos. O Gato pode atacar de duas maneiras: fazendo ronronar \u2014 e ent\u00e3o sua v\u00edtima adormece e n\u00e3o consegue andar \u00e0 noite, nem votar no dia seguinte \u2014 ou matando imediatamente com suas garras de ferro. O ataque com garras n\u00e3o funciona no Drag\u00e3o de Tr\u00eas Cabe\u00e7as, e ao atacar o Leshy, o Gato pode at\u00e9 ficar sem garras! O Lish n\u00e3o pode amaldi\u00e7oar o Gato, que ap\u00f3s a maldi\u00e7\u00e3o simplesmente dormir\u00e1 uma noite. Se algu\u00e9m conseguir derrotar o Gato-Baiun, ser\u00e1 curado de qualquer doen\u00e7a e mal, incluindo a maldi\u00e7\u00e3o do Lish. Essa habilidade do Gato permanece com o jogador at\u00e9 o final do jogo. Os Servidores de Koshchei n\u00e3o podem votar durante o dia pelo Gato, mas podem indiretamente descobrir quem \u00e9 o Gato, sem informar Koshchei. O Gato-Baiun n\u00e3o se alia a Ivan ou aos Ladr\u00f5es, ent\u00e3o eles s\u00e3o seu alvo priorit\u00e1rio.<\/p>\n<p><\/p>\n<h2 id=\"ispolzuemye-tehnologii\">Tecnologias utilizadas<\/h2>\n<p><\/p>\n<p>Para o desenvolvimento do jogo, escolhi a tecnologia de computa\u00e7\u00e3o sem servidor (serverless) baseada no OpenFaaS, pois \u00e9 bastante simples para organizar o jogo e, ao mesmo tempo, suficientemente avan\u00e7ada para escrever regras de jogo complexas sem complica\u00e7\u00f5es desnecess\u00e1rias. Tamb\u00e9m vou utilizar um cluster Kubernetes, uma vez que esse m\u00e9todo de implanta\u00e7\u00e3o de aplicativos permite uma r\u00e1pida e confi\u00e1vel implanta\u00e7\u00e3o e f\u00e1cil escalabilidade. Para a cria\u00e7\u00e3o da l\u00f3gica do jogo, pode-se utilizar apenas o OpenFaaS, no entanto, tamb\u00e9m tentarei construir um Narrador como um cont\u00eainer separado, para comparar a complexidade de implementa\u00e7\u00e3o. Como a principal linguagem de programa\u00e7\u00e3o para microservi\u00e7os e fun\u00e7\u00f5es, escolhi <noindex><a rel=\"nofollow\" href=\"https:\/\/golang.org\/\">Go<\/a><\/noindex>, pois j\u00e1 a estudo h\u00e1 bastante tempo em meu tempo livre, em substitui\u00e7\u00e3o ao Perl, e para a intera\u00e7\u00e3o dos usu\u00e1rios com os microservi\u00e7os e fun\u00e7\u00f5es ser\u00e1 utilizado js baseado em algum framework. Contarei a decis\u00e3o final no respectivo artigo da s\u00e9rie. Para a comunica\u00e7\u00e3o entre as fun\u00e7\u00f5es, escolhi o NATS.io, pois j\u00e1 tive experi\u00eancias anteriores com ele, e sua integra\u00e7\u00e3o no Kubernetes \u00e9 bastante simples.<\/p>\n<p><\/p>\n<h2 id=\"anons\">An\u00fancio<\/h2>\n<p><\/p>\n<ul>\n<li>Introdu\u00e7\u00e3o<\/li>\n<li>Configura\u00e7\u00e3o do ambiente de desenvolvimento, divis\u00e3o da tarefa em fun\u00e7\u00f5es<\/li>\n<li>Trabalhos no backend<\/li>\n<li>Trabalhos no frontend<\/li>\n<li>Configura\u00e7\u00e3o do CICD, organiza\u00e7\u00e3o de testes<\/li>\n<li>In\u00edcio de uma sess\u00e3o de teste do jogo<\/li>\n<li>Resultados<\/li>\n<\/ul>\n<p>Fonte: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/southbridge\/blog\/482010\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u043e \u043c\u043d\u043e\u0433\u043e\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044b\u043c \u043f\u0440\u043e\u0441\u044c\u0431\u0430\u043c \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u0435\u0439 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0446\u0438\u043a\u043b \u0441\u0442\u0430\u0442\u0435\u0439 \u043e \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0438 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438 \u0431\u0435\u0441\u0441\u0435\u0440\u0432\u0435\u0440\u043d\u044b\u0445 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0439 \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f. \u0412 \u044d\u0442\u043e\u043c \u0446\u0438\u043a\u043b\u0435 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0438 \u043f\u043e\u0441\u0442\u0430\u0432\u043a\u0430 \u043a\u043e\u043d\u0435\u0447\u043d\u044b\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0441\u0440\u0435\u0434\u0441\u0442\u0432: \u043c\u0438\u043a\u0440\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u043d\u043e\u0439 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u044b \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f (\u0432 serverless \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0435, \u043d\u0430 \u0431\u0430\u0437\u0435 OpenFaaS), \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 kubernetes \u0434\u043b\u044f \u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445 MongoDB, \u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u043d\u0430 \u043e\u0431\u043b\u0430\u0447\u043d\u044b\u0435 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0438\u0437\u0430\u0446\u0438\u044e \u0438 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-54515","post","type-post","status-publish","format-standard","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\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\/pt\/blog\/administrirovanie\/novye-byliny-dlya-dev-ops-i-lyuboznatelnyh-lyudej\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"pt_PT\" \/>\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\u00ab\u041d\u043e\u0432\u044b\u0435 \u0411\u044b\u043b\u0438\u043d\u044b\u00bb. \u0414\u043b\u044f dev, ops \u0438 \u043b\u044e\u0431\u043e\u0437\u043d\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u043b\u044e\u0434\u0435\u0439 | ProHoster\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/pt\/blog\/administrirovanie\/novye-byliny-dlya-dev-ops-i-lyuboznatelnyh-lyudej\" \/>\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-12-27T21:00:00+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-02-18T11:02:32+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\udd47\u00abNovas Balladas\u00bb. Para dev, ops e pessoas curiosas | ProHoster","description":"","canonical_url":"https:\/\/prohoster.info\/pt\/blog\/administrirovanie\/novye-byliny-dlya-dev-ops-i-lyuboznatelnyh-lyudej","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"pt_PT","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\u00ab\u041d\u043e\u0432\u044b\u0435 \u0411\u044b\u043b\u0438\u043d\u044b\u00bb. \u0414\u043b\u044f dev, ops \u0438 \u043b\u044e\u0431\u043e\u0437\u043d\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u043b\u044e\u0434\u0435\u0439 | ProHoster","og:url":"https:\/\/prohoster.info\/pt\/blog\/administrirovanie\/novye-byliny-dlya-dev-ops-i-lyuboznatelnyh-lyudej","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-12-27T21:00:00+00:00","article:modified_time":"2020-02-18T11:02:32+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"54515","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-24 11:40:24","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 20:03:57","updated":"2026-01-24 11:40:24","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts\/54515","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/comments?post=54515"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts\/54515\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/media?parent=54515"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/categories?post=54515"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/tags?post=54515"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}