{"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\/en\/blog\/administrirovanie\/novye-byliny-dlya-dev-ops-i-lyuboznatelnyh-lyudej","title":{"rendered":"\"New Bylinas\". For dev, ops, and curious minds","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"&quot;New Bylinas&quot;. For dev, ops, and curious minds\" src=\"\/wp-content\/uploads\/2019\/12\/92f2462e6526d4ea2acf71fac5e472c0.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Due to numerous reader requests, a large series of articles begins on the application of serverless computing technology for developing a real application. This series will cover application development, testing, and deployment to end-users using modern tools: microservices architecture (in a serverless variant, based on <noindex><a rel=\"nofollow\" href=\"https:\/\/www.openfaas.com\/\">OpenFaaS<\/a><\/noindex>), a cluster <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/\">kubernetes<\/a><\/noindex> for deploying the application, a database <noindex><a rel=\"nofollow\" href=\"https:\/\/mongodb.com\/\">MongoDB<\/a><\/noindex>, oriented towards cloud clustering and application, as well as a cloud bus <noindex><a rel=\"nofollow\" href=\"https:\/\/nats.io\/\">NATS<\/a><\/noindex>The application implements the game 'Bylines', one of the variations of the popular salon game 'Mafia'.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2 id=\"chto-takoe-byliny\">What is 'Bylines'?<\/h2>\n<p><\/p>\n<p>It is a variant of the game 'Mafia', also known as 'Werewolf'. It is a team-based game where participants must gradually figure out who is who and try to win. Unfortunately, playing online loses the crucial element of personal interaction, and the rules of classic 'Mafia' are fairly simple, so to create a more nonlinear and interesting gameplay experience, other characters are usually added, while still retaining the main features of the original 'Mafia', such as the day-night cycle, actions only at night, and alliances between participants. An important distinction of online play is that the host (also the Game Master, Storyteller) is usually a computer program.<\/p>\n<p><\/p>\n<h3 id=\"opisanie-igry\">Game Description<\/h3>\n<p><\/p>\n<p>The rules of the game I want to implement are taken from an old IRC bot that I preserved in my personal archive about 10 years ago. 'Bylines' has a backstory that begins each game:<\/p>\n<p><\/p>\n<blockquote><p>In the ninth kingdom, in the thirtieth state, beyond seven seas, there lived several villages, and in them <em>Brave young men<\/em> and <em>Beautiful maidens<\/em>. They sowed grain and wandered into the nearby forest to gather mushrooms and berries\u2026 And thus it continued from generation to generation, until a terrible catastrophe shook the Earth and evil began to spread across the world! Nights grew long and cold, and in the darkness, terrible creatures prowled the forests and wandered into the villages. From somewhere came <em>Zmey Gorynych<\/em> and began to steal the Beautiful maidens and take everything valuable from the peasants. The harmful and greedy <em>Baba Yaga<\/em>, arriving on a broom from distant forests, unsettled the minds of the inhabitants, and even some abandoned their crafts and went into the woods to become bandits, forming a gang there. The rogues encountered <em>Leshy<\/em>, who could transform into trees and bushes, began to watch the peaceful villagers and serve the bandits, sniffing around to see if the Brave Young Men were planning anything to rid their settlements of the evil. The Brave Young Men and the Beautiful Maidens, tired of the bandit raids and the terrible deaths at the hands of the dreadful <em>One-Eyed Woe<\/em>, gathered gold and invited a renowned warrior from a neighboring city \u2014 <em>Ivan Tsarevich<\/em>, who promised to rid the village of the bandits. In a clearing in the forest, Ivan saved from imminent death <em>Gray Wolf<\/em>, who had fallen into a bandit trap. In return, the Wolf promised to inform the Tsarevich about various forest evils. A famous healer passed by <em>Vasilisa the Wise<\/em>, and when she saw the trouble, she stayed to care for the villagers who suffered from the attacks of the wicked. Behind the forest appeared a black palace, where, according to rumors, settled <em>Koshchei the Deathless<\/em>, who visited the villages every night and enchanted the Brave Young Men and the Beautiful Maidens, so they would not dare disobey his commands, doing exactly as he said. And in the Lifeless Forest dwelled <em>Cat-Bayun<\/em>, and anyone who encountered him fell into a deathly sleep after his tales or perished from his iron claws.<\/p><\/blockquote>\n<p><img decoding=\"async\" alt=\"&quot;New Bylinas&quot;. For dev, ops, and curious minds\" src=\"\/wp-content\/uploads\/2019\/12\/d62c7b97e9a3d86acbd803cc4137c522.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<em>The Three-Nines Kingdom<\/em><\/p>\n<p><\/p>\n<p>As already evident, the players are divided into several groups:<\/p>\n<p><\/p>\n<ul>\n<li>peaceful inhabitants (Brave Young Men, Beautiful Maidens, Ivan Tsarevich, Gray Wolf, and Vasilisa the Wise)<\/li>\n<li>bandits (the bandits themselves, as well as Baba Yaga and Leshy)<\/li>\n<li>independents (Zmey Gorynych, One-Eyed Woe, Princess Frog, Koshchei the Deathless, Cat-Bayun)<\/li>\n<\/ul>\n<p><\/p>\n<p>The goal of the game, as mentioned above, is to survive and win. Opponents must leave the game one way or another, and independents must also stay alive until the end of the game. There is gold in the game, a kind of game currency that players earn only within the game. The winners receive gold. The more gold, the higher the player's rating.<\/p>\n<p><\/p>\n<p>I will dwell a little more on the description of the characters.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"&quot;New Bylinas&quot;. For dev, ops, and curious minds\" src=\"\/wp-content\/uploads\/2019\/12\/c67888987787b43eb7276d8ccccc2b67.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<em>Brave Young Man<\/em><\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"&quot;New Bylinas&quot;. For dev, ops, and curious minds\" src=\"\/wp-content\/uploads\/2019\/12\/5ccd55e465086ee016cafeaa8b0f72d1.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<em>Beautiful Maiden<\/em><\/p>\n<p><\/p>\n<p><strong>Brave Young Man<\/strong> and <strong>Beautiful Maiden<\/strong> is the most common and primary role in the game. These are peaceful villagers who sleep at night and work during the day. At night, they are attacked by one of the robbers, Zmey Gorynych, and other roles, while Vasilisa the Wise heals them. With a certain small probability, the Good Young Man or Red Maiden may survive an attack without harm (possibly losing gold in the process); however, everyone learns the player's pseudonym the very next day after the attack. At night, these players do not make any moves but analyze the game situation based on messages in the game chat. During the day, these players decide by voting who among them is not a Good Young Man or Red Maiden. The player who receives the majority of votes from other players is eliminated from the game, while the remaining players either gain or lose gold. If the players do not choose anyone by majority vote, no players will be executed.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"&quot;New Bylinas&quot;. For dev, ops, and curious minds\" 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> is originally an anonymous protector of peaceful villagers. At night, he checks the roles of other players, as he only knows one ally \u2014 the Gray Wolf. With the direct participation of the Gray Wolf (who can also check the roles of other players), Ivan Tsarevich can, instead of checking, kill another character at night. If during his check Ivan Tsarevich sees the role of the Good Young Man or Red Maiden in a player, he can invite them to meet the Gray Wolf and other Good Young Men and Red Maidens. Ivan may be hindered by the Princess Frog, who can seduce him at night without revealing his role to other players during the day. If Ivan discovers the Princess Frog himself, he can offer her to join the peaceful villagers; however, if the Princess refuses, she dies at Ivan's hand. Zmey Gorynych can also obstruct Ivan Tsarevich's checks, but unlike the Princess Frog, he will tell the other players during the day who among them is Ivan Tsarevich. During the day, Ivan Tsarevich has no distinction from other Good Young Men.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"&quot;New Bylinas&quot;. For dev, ops, and curious minds\" src=\"\/wp-content\/uploads\/2019\/12\/9156c31d47bb67eabdab6866e36db7bb.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<em>Gray Wolf<\/em><\/p>\n<p><\/p>\n<p><strong>Gray Wolf<\/strong> \u2014 the assistant of Ivan Tsarevich, whose sharp instincts help Ivan find other Good Fellows and Red Maidens. The Gray Wolf tells these players who Ivan Tsarevich is and also informs about other players with the roles of Good Fellows and Red Maidens. If the Wolf discovers a bandit or another opponent, he immediately informs Ivan Tsarevich so that he can take action the next night. If the Princess-Frog attacks the Wolf, he turns into an ordinary Good Fellow and cannot check anyone, and the Princess will not know that it was really the Gray Wolf, as the Wolf does not sleep at night. However, during the day, the Wolf learns who the players are\u2014the Princess-Frog\u2014and can try to persuade the other Good Fellows and Red Maidens he brought to Ivan Tsarevich to vote for the execution of the Princess-Frog. He may also try to anonymously sway the Princess-Frog to side with the peaceful villagers the next night so that she does not harm any of them. At night, the Wolf can sacrifice himself to save Ivan Tsarevich or Vasilisa the Wise if he suspects that they might suddenly come under attack from bandits or have been zombified by Koschei (the Wolf has an innate immunity to Koschei's charms); however, the Wolf is eliminated from the game after self-sacrifice.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"&quot;New Bylinas&quot;. For dev, ops, and curious minds\" src=\"\/wp-content\/uploads\/2019\/12\/63cf0ae3985a6109bebb2cf63f809b0d.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<em>Vasilisa the Wise<\/em><\/p>\n<p><\/p>\n<p><strong>Vasilisa the Wise<\/strong> \u2014 plays for the peaceful villagers, but they do not know about her because Vasilisa is very modest. Also, Vasilisa the Wise does not ask questions when healing and treats everyone like a good doctor. But if Koschei, Likh\u043e, or Leshiy drink her medicine, they will not survive more than one day, as Vasilisa only heals humans. Zmey Gorynych or Kot-Bayun will also not benefit from Vasilisa's medicine, but it will not harm them either. Additionally, the night Kot-Bayun does not disturb Vasilisa because she does not go for healing herbs in the Lifeless Forest. Moreover, the feminine charms of the Princess-Frog do not affect Vasilisa. If her patient is attempted to be killed twice, her medicine will prove ineffective. Vasilisa cannot save from magical attacks, for example, from Likh\u043e's curse. During the day, Vasilisa behaves like a Red Maiden, and only a fleeting, slightly sad glance might hint that she is the best healer in the Three-Nine Kingdom.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"&quot;New Bylinas&quot;. For dev, ops, and curious minds\" src=\"\/wp-content\/uploads\/2019\/12\/c52dfc9670d458512e856763410196ae.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<em>Bandit<\/em><\/p>\n<p><\/p>\n<p><strong>Bandits<\/strong>, unlike all previous roles, know each other as they live in the same Lair, and are also familiar with Leshy and Baba Yaga, so they can act in concert right from the first move. However, only the Gang Leader takes action at night and does not vote during the day, while the other Bandits diligently pretend to be Good Fellows and Red Maidens. If the Leader is out of the game for any reason, one of the remaining Bandits immediately takes his place. First and foremost, the Bandits aim to incapacitate Ivan Tsarevich before he gathers enough strength from the Good Fellows and Red Maidens for active daytime resistance against the Bandits.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"&quot;New Bylinas&quot;. For dev, ops, and curious minds\" 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> spies for the Bandits at night, informing them of found roles in their Lair, but does not vote during the day as he does not live in the village. However, other players can vote for Leshy and thus execute him. Since Leshy comes from the swamps, he cannot be tempted by the Princess Frog, and if she tries, Leshy will mark her home, and the villagers will learn who she really is. Leshy need not fear the charms of Koschei, but Vasilisa could heal him to death. If Kot-Bayun tries to attack Leshy, he risks losing his iron claws and will have to put his victims to sleep with nothing but purring.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"&quot;New Bylinas&quot;. For dev, ops, and curious minds\" 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> also works with the Bandits, casting spells at night: she can either inflict illness on other players or protect one of her allies from attack. Her magic is even stronger than the curse of the Death. During the day, Baba Yaga is also active: anyone under her protection cannot be executed even by a majority vote. However, the supply of magical roots for daytime protection is limited, so Baba Yaga cannot protect anyone, including herself, more than three times in a game. During the day, Baba Yaga pretends to be an ordinary Red Maiden and votes along with everyone else.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"&quot;New Bylinas&quot;. For dev, ops, and curious minds\" 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> At night, it flies over villages, forests, and swamps, engaging in robbery while revealing the role of the robbed during the day. During the day, the Serpent sleeps and therefore does not vote, but it can be executed by majority vote. The Serpent is very dangerous to everyone, especially to the Robbers and Ivan Tsarevich. The Serpent does not care whom to rob, but if the Wolf or Leshy exposes it, it can become a valuable ally. If the Serpent is killed at night, there is a chance to obtain a very valuable item \u2014 the Serpent's Skin, which will protect its owner from a physical attack once.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"&quot;New Bylinas&quot;. For dev, ops, and curious minds\" src=\"\/wp-content\/uploads\/2019\/12\/081e412fb071cd719b8e92947d429fd8.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<em>One-eyed Trouble<\/em><\/p>\n<p><\/p>\n<p><strong>One-eyed Trouble<\/strong> kills anyone who crosses its path at night, and those it cannot kill (Leshy, Kot-Bayun, or Zmey Gorynych) are cursed, so anyone who tries to communicate with the cursed that same night will die within the day. The cursed one also dies, except Kot-Bayun, who simply goes to sleep to regain strength, skipping a turn the next night. Only Baba Yaga can save someone from the curse. The curse does not affect anyone who has defeated Kot-Bayun: like Kot, they simply go to sleep, skipping a turn.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"&quot;New Bylinas&quot;. For dev, ops, and curious minds\" src=\"\/wp-content\/uploads\/2019\/12\/eaae77fc56cde7cd3ffe1ab88dd1a117.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<em>Princess Frog<\/em><\/p>\n<p><\/p>\n<p><strong>Princess Frog<\/strong> cannot win the game, but can earn a lot of money by seducing other players at night. The seduced player skips a turn. The Frog cannot seduce Vasilisa the Wise and should also avoid Leshy, who will expose her to everyone the next day. If Ivan Tsarevich or the Robber Chief finds the Frog, they can invite her to join the peaceful villagers or the Robbers, with Ivan unwilling to accept the Frog's refusal, while the Chief is less picky. However, the Princess is clever enough to become a double agent; even though she cannot win on her own, it\u2019s a great opportunity to accumulate gold, as the chances to last until the end of the game significantly increase! During the day, the Princess Frog pretends to be the Red Maiden and votes alongside everyone.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"&quot;New Bylinas&quot;. For dev, ops, and curious minds\" src=\"\/wp-content\/uploads\/2019\/12\/d7836968bb8314b8fa89300315a0e221.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<em>Koshchei the Deathless<\/em><\/p>\n<p><\/p>\n<p><strong>Koshchei the Deathless<\/strong> lives in his castle. At night, he roams the nearby villages and zombifies the Good Youths and Red Maidens, who then serve him and comply with all his orders. Refusing to follow a command, such as voting during the day differently than how Koschei instructed, or sending messages in the chat during the day if Koschei prohibited it, leads to the Servant of Koschei's demise. Thus, Koschei can influence the results of daytime voting, even though he does not vote personally. If Koschei is killed, all his victims also perish. Vasilisa can heal the Servant of Koschei, who then returns to his original role. Zmey-Gorynych and the Wolf have an inherent immunity to zombification, so Koschei, despite his desires, cannot recruit them to his service. Additionally, the Wolf can rescue Ivan or Vasilisa, sacrificing himself in the process. Those saved by the Wolf gain Wolf's immunity to zombification.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"&quot;New Bylinas&quot;. For dev, ops, and curious minds\" src=\"\/wp-content\/uploads\/2019\/12\/c4f7c2d041cbeafd4741d2c24431c6ee.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<em>Cat-Bayun<\/em><\/p>\n<p><\/p>\n<p><strong>Cat-Bayun<\/strong> lives in the forest, hunting at night. During the day, he sleeps in his hollow, so he does not participate in voting. However, he can be executed during the day by a majority vote. The Cat can attack in two ways: by purring \u2014 causing his victim to fall asleep and rendering them unable to walk at night or vote the next day \u2014 or by killing immediately with iron claws. The claw attack does not work on Zmey-Gorynych, and by attacking Leshy, the Cat might even end up without claws! Likh never can curse the Cat, who will simply sleep for one night after the curse. If anyone is able to defeat the Cat-Bayun, they will be healed from any disease or ailment, including Likh's curse. This ability of the Cat remains with the player until the end of the game. Koschei's Servants cannot vote for the Cat during the day but can indirectly discover who the Cat is without informing Koschei. Cat-Bayun does not form alliances with Ivan or the Robbers, making them a primary target for the Cat.<\/p>\n<p><\/p>\n<h2 id=\"ispolzuemye-tehnologii\">Technologies used<\/h2>\n<p><\/p>\n<p>To create the game, I chose a serverless computing technology based on OpenFaaS, as it is simple enough to organize the game and sophisticated enough to write complex game rules without unnecessary complications. I will also use a Kubernetes cluster since this deployment method allows for quite easy and reliable rapid deployment and straightforward scalability. While it's possible to handle game logic solely with OpenFaaS, I will also try to create a Storyteller as a separate container to compare implementation complexity. For the main programming language for microservices and functions, I chose <noindex><a rel=\"nofollow\" href=\"https:\/\/golang.org\/\">Go<\/a><\/noindex>, as I have been learning it for some time in my spare time to replace Perl, and for user interaction with microservices and functions, I will use JS based on a certain framework. I will discuss the final decision in the corresponding article of the series. For communication between functions, I chose NATS.io, as I have encountered it before and it integrates quite easily into Kubernetes.<\/p>\n<p><\/p>\n<h2 id=\"anons\">Announcement<\/h2>\n<p><\/p>\n<ul>\n<li>Introduction<\/li>\n<li>Setting up the development environment, breaking the task into functions<\/li>\n<li>Working on the backend<\/li>\n<li>Working on the frontend<\/li>\n<li>Setting up CI\/CD, organizing testing<\/li>\n<li>Launching the trial game session<\/li>\n<li>Summary<\/li>\n<\/ul>\n<p>Source: <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.2 - 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\/en\/blog\/administrirovanie\/novye-byliny-dlya-dev-ops-i-lyuboznatelnyh-lyudej\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\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\/en\/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\u201cNew Bylyny\u201d. For devs, ops, and curious minds | ProHoster","description":"","canonical_url":"https:\/\/prohoster.info\/en\/blog\/administrirovanie\/novye-byliny-dlya-dev-ops-i-lyuboznatelnyh-lyudej","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"en_US","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\/en\/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\/en\/wp-json\/wp\/v2\/posts\/54515","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/comments?post=54515"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/54515\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/media?parent=54515"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/categories?post=54515"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/tags?post=54515"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}