{"id":53442,"date":"2019-12-02T00:00:00","date_gmt":"2019-12-01T21:00:00","guid":{"rendered":"https:\/\/prohoster.info\/blog\/blog_prohoster\/legacy-servisy-v-vashej-infrastrukture"},"modified":"2020-02-18T14:01:20","modified_gmt":"2020-02-18T11:01:20","slug":"legacy-servisy-v-vashej-infrastrukture","status":"publish","type":"post","link":"https:\/\/prohoster.info\/pt\/blog\/administrirovanie\/legacy-servisy-v-vashej-infrastrukture","title":{"rendered":"Servi\u00e7os legados em sua infraestrutura","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Ol\u00e1! Meu nome \u00e9 Pasha Chernyak, sou desenvolvedor principal na QIWI e hoje quero falar sobre o inevit\u00e1vel. Sobre o Legacy.<\/p>\n<p>Vamos come\u00e7ar com a pergunta: o que \u00e9 um servi\u00e7o Legacy? Um servi\u00e7o Legacy \u00e9 um servi\u00e7o que nenhum desenvolvedor tocou por uma semana\/m\u00eas\/ano? Ou \u00e9 um servi\u00e7o que foi escrito por um programador menos experiente, como voc\u00ea, h\u00e1 um ano? Agora voc\u00ea \u00e9 mais habilidoso e experiente. Ou um servi\u00e7o Legacy \u00e9 aquele que voc\u00ea decidiu nunca mais atualizar e est\u00e1 aos poucos preparando uma substitui\u00e7\u00e3o? De qualquer forma, deixar esse servi\u00e7o \u00e0 deriva e n\u00e3o atualiz\u00e1-lo \u00e9 uma bomba-rel\u00f3gio que pode explodir mais tarde.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/qiwi\/blog\/477682\/\"><img decoding=\"async\" alt=\"Servi\u00e7os legados em sua infraestrutura\" src=\"\/wp-content\/uploads\/2019\/12\/d33a4a7983d1c440570bc0ff8da0f1d6.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p>Antes de falarmos sobre como trabalhamos com nossos servi\u00e7os Legacy na QIWI, vou contar como organizamos os servi\u00e7os em nossa carteira. H\u00e1 dois anos, sou respons\u00e1vel pelo seu funcionamento. Se h\u00e1 algum problema, sou sempre o primeiro a ser acionado. Normalmente n\u00e3o tenho a ousadia de ligar para algu\u00e9m \u00e0s 11 horas da noite, ent\u00e3o acabo tendo que me sentar e entender todos os servi\u00e7os do nosso dom\u00ednio. <\/p>\n<p>Mas eu, como qualquer pessoa, gosto de dormir \u00e0 noite, por isso tentei resolver a quest\u00e3o: \"Pessoal, por que voc\u00eas est\u00e3o me ligando?\". E recebi uma resposta bem direta: \"Quem mais?\". Porque eu conserto os servi\u00e7os e, al\u00e9m disso, a equipe simplesmente n\u00e3o sabe a quem ligar.<\/p>\n<p>Portanto, em uma das retrospectivas da equipe de back-end da carteira, decidimos que era necess\u00e1rio criar uma tabela listando nossos servi\u00e7os, microsservi\u00e7os e mon\u00f3litos, assim como os respons\u00e1veis por eles. Tabelas s\u00e3o realmente \u00fateis, dentro de limites razo\u00e1veis.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nAl\u00e9m das informa\u00e7\u00f5es sobre quem \u00e9 respons\u00e1vel pelo qu\u00ea, havia respostas para perguntas como: quem \u00e9 o propriet\u00e1rio do servi\u00e7o, quem \u00e9 respons\u00e1vel por seu desenvolvimento, pela arquitetura e pelo ciclo de vida. As pessoas respons\u00e1veis por esse servi\u00e7o s\u00e3o aquelas que podem consert\u00e1-lo em caso de necessidade. O propriet\u00e1rio do servi\u00e7o tem o direito de adicionar +2 nos commits, e os respons\u00e1veis tamb\u00e9m devem estar presentes na revis\u00e3o antes que esse servi\u00e7o receba um novo commit.<\/p>\n<p>O tempo passou e novas pr\u00e1ticas come\u00e7aram a ser aplicadas, como a migra\u00e7\u00e3o para Kubernetes, diversos checkstyle, spotbugs, ktlint, a presen\u00e7a de logs no Kibana, autodiscovery de servi\u00e7os em vez de indicar endere\u00e7os diretamente, e outras utilidades. E em todos os lugares nossa tabela permitia manter a atualidade de nossos servi\u00e7os. Para n\u00f3s, isso \u00e9 uma esp\u00e9cie de checklist que indica que este servi\u00e7o \u00e9 capaz de fazer isso, mas ainda n\u00e3o faz isso. Mas n\u00f3s avan\u00e7amos, percebendo que faltava informa\u00e7\u00e3o sobre nossos servi\u00e7os que monitoramos, onde est\u00e3o os c\u00f3digos-fonte do servi\u00e7o, onde s\u00e3o iniciadas as tarefas de compila\u00e7\u00e3o no TeamCity, como s\u00e3o implementados, onde est\u00e3o armazenados os c\u00f3digos-fonte dos testes end2end, fotos sobre a arquitetura, decis\u00f5es tomadas. Idealmente, gostar\u00edamos que todas essas informa\u00e7\u00f5es estivessem armazenadas em algum lugar e acess\u00edveis quando necess\u00e1rio. Assim, nossa tabela se tornou o ponto de partida na busca por informa\u00e7\u00f5es.<\/p>\n<p>Mas a QIWI, embora mantenha o esp\u00edrito de startup, \u00e9 uma grande empresa. Estamos com 12 anos e as equipes mudam: pessoas v\u00e3o, pessoas v\u00eam, novas equipes s\u00e3o formadas. E encontramos em nosso dom\u00ednio v\u00e1rios servi\u00e7os que herdamos. Algo veio com desenvolvedores de outras equipes, algo estava indiretamente relacionado \u00e0 Carteira, por isso o servi\u00e7o agora est\u00e1 sob nossa responsabilidade. Para que se preocupar com o que e como funciona \u2014 por qu\u00ea? O servi\u00e7o est\u00e1 funcionando e temos recursos que precisamos desenvolver.<\/p>\n<h2>Como costuma acontecer<\/h2>\n<p>\nMas em algum momento descobrimos que o servi\u00e7o parou de executar sua fun\u00e7\u00e3o, algo quebrou \u2014 o que fazer em uma situa\u00e7\u00e3o assim? O servi\u00e7o simplesmente parou de funcionar. Completamente. E descobrimos isso, primeiro, por acaso, e, segundo, seis meses depois. Isso acontece. A \u00fanica coisa que sab\u00edamos era em quais m\u00e1quinas virtuais o servi\u00e7o estava rodando, onde estavam seus c\u00f3digos-fonte, e s\u00f3. Fazemos git clone e mergulhamos nos pensamentos da pessoa que escreveu isso h\u00e1 alguns anos, mas o que vemos? Nenhum Spring Boot familiar para n\u00f3s, embora estejamos acostumados com tudo, j\u00e1 que temos um full stack e tudo mais. Pode ser que exista um Spring Framework? Mas n\u00e3o existe.<\/p>\n<p>O rapaz que escreveu tudo isso era rigoroso e programava tudo em Java puro. N\u00e3o h\u00e1 ferramentas familiares para os desenvolvedores e surge a ideia \u2014 seria bom reescrever tudo isso. Temos microservi\u00e7os, e de cada torradeira vem o familiar \"Pessoal, microservi\u00e7os s\u00e3o o que voc\u00eas precisam!\". Se algo n\u00e3o der certo, voc\u00ea pode pegar qualquer linguagem que tudo funcionar\u00e1 bem.<\/p>\n<p>A quest\u00e3o \u00e9 que atualmente n\u00e3o temos um cliente respons\u00e1vel por este servi\u00e7o. Quais eram suas necessidades de neg\u00f3cio? O que esse servi\u00e7o deve realmente fazer? E o servi\u00e7o est\u00e1 fortemente integrado aos seus processos de neg\u00f3cios. <\/p>\n<p>E agora me diga, qu\u00e3o f\u00e1cil \u00e9 reescrever o servi\u00e7o sem conhecer suas necessidades de neg\u00f3cio? N\u00e3o est\u00e1 claro como o servi\u00e7o faz logs, se h\u00e1 m\u00e9tricas \u2014 isso \u00e9 desconhecido. Quais s\u00e3o elas, se existirem \u2014 isso tamb\u00e9m \u00e9 desconhecido. E, al\u00e9m disso, o servi\u00e7o tem uma enorme quantidade de classes com l\u00f3gica de neg\u00f3cio confusa. Algo entra em um banco de dados do qual tamb\u00e9m n\u00e3o sabemos nada por enquanto. <\/p>\n<h2>Por onde come\u00e7ar?<\/h2>\n<p>\nPelo mais l\u00f3gico \u2014 pela exist\u00eancia de testes. Geralmente, l\u00e1 est\u00e1 escrita alguma l\u00f3gica e \u00e9 poss\u00edvel tirar conclus\u00f5es sobre o que est\u00e1 acontecendo. Atualmente, o TDD est\u00e1 na moda, mas vemos que h\u00e1 5 anos era praticamente a mesma coisa que agora: quase n\u00e3o existem testes unit\u00e1rios, e eles n\u00e3o nos dizem nada. Bem, exceto talvez alguma verifica\u00e7\u00e3o de como um xml \u00e9 assinado com algum certificado personalizado.<\/p>\n<p>N\u00e3o conseguimos entender nada pelo c\u00f3digo, ent\u00e3o decidimos verificar o que estava acontecendo na virtualiza\u00e7\u00e3o. Abrimos os logs do servi\u00e7o e encontramos um erro do cliente HTTP: o certificado autoassinado, que estava embutido nos recursos do aplicativo, estava completamente expirado. Contatamos nossos analistas, que pediram um novo certificado; conseguimos um e o servi\u00e7o voltou a funcionar. Pareceria que era isso. Ou n\u00e3o? Afinal, o servi\u00e7o est\u00e1 funcionando; ele realiza uma fun\u00e7\u00e3o que \u00e9 necess\u00e1ria para o nosso neg\u00f3cio. Temos certos padr\u00f5es de desenvolvimento de aplicativos, que provavelmente voc\u00eas tamb\u00e9m t\u00eam. Por exemplo, n\u00e3o armazenar logs no n\u00f3 dentro de uma pasta, mas sim em algum tipo de reposit\u00f3rio, como o Elasticsearch, e visualiz\u00e1-los no Kibana. Podemos lembrar tamb\u00e9m das m\u00e9tricas vitais. Ou seja, a carga no servi\u00e7o, o n\u00famero de solicita\u00e7\u00f5es para o servi\u00e7o, se ele est\u00e1 vivo ou n\u00e3o, como est\u00e1 o HealthCheck. Pelo menos, essas m\u00e9tricas ajudar\u00e3o a saber quando ele pode ser retirado de opera\u00e7\u00e3o e esquecido como um pesadelo.<\/p>\n<h2>O que fazer<\/h2>\n<p>\nPor isso, adicionamos esse servi\u00e7o antigo \u00e0 tabela, e depois vamos procurar entre os desenvolvedores volunt\u00e1rios que queiram cuidar do servi\u00e7o e coloc\u00e1-lo em ordem: escrever alguma informa\u00e7\u00e3o sobre o servi\u00e7o, adicionar links para os dashboards no Grafana, para as tarefas de compila\u00e7\u00e3o, entender como implantar o aplicativo, n\u00e3o d\u00e1 para simplesmente jogar arquivos via FTP. <\/p>\n<p>O principal \u00e9 \u2014 quanto tempo toda essa atividade volunt\u00e1ria vai levar? Um sprint para um desenvolvedor mais ou menos experiente, por exemplo, durante 20% da d\u00edvida t\u00e9cnica. E quanto tempo levou para entender toda a l\u00f3gica enraizada para se comunicar com algum sistema governamental e traz\u00ea-la para tecnologias mais modernas? N\u00e3o posso garantir, pode levar um m\u00eas ou, talvez, dois meses de trabalho da equipe. Falo isso com base na experi\u00eancia de integra\u00e7\u00e3o atual com algum novo servi\u00e7o.<\/p>\n<p>Ao mesmo tempo, n\u00e3o h\u00e1 valor comercial algum. Nenhum. Assumir o suporte do servi\u00e7o e gastar um pouco de tempo nisso \u00e9 normal. Mas ap\u00f3s nossas dan\u00e7as padr\u00e3o com o servi\u00e7o, o adicionamos \u00e0 tabela, inclu\u00edmos informa\u00e7\u00f5es sobre ele e, talvez, um dia o reescreveremos. Mas, por enquanto, ele atende aos nossos padr\u00f5es de opera\u00e7\u00e3o dos servi\u00e7os.<\/p>\n<p>Como conclus\u00e3o, gostaria de apresentar um plano sobre o que fazer com os servi\u00e7os legados. <\/p>\n<p><b>Reescrever o legado do zero \u00e9 uma m\u00e1 ideia.<\/b><br \/>\nS\u00e9rio, voc\u00ea nem deve pensar nisso. \u00c9 claro que seria bom e existem alguns benef\u00edcios, mas geralmente isso n\u00e3o \u00e9 necess\u00e1rio para ningu\u00e9m, incluindo voc\u00ea mesmo.<\/p>\n<p><b>Guia<\/b><br \/>\nDesenterram os c\u00f3digos-fonte das suas aplica\u00e7\u00f5es e criam um guia que indique o que e onde est\u00e1, e como funciona. Inclua tamb\u00e9m uma descri\u00e7\u00e3o do projeto (um readme.md), para entender rapidamente onde est\u00e3o os logs e as m\u00e9tricas. O desenvolvedor que trabalhar nisso depois de voc\u00ea s\u00f3 vai agradecer.<\/p>\n<p><b>Entenda o dom\u00ednio<\/b><br \/>\nSe voc\u00ea possui algum dom\u00ednio, tente ficar atento. Parece banal, sim, mas nem todos monitoram para que os servi\u00e7os estejam em uma mesma linha. E, na verdade, \u00e9 muito mais f\u00e1cil operar com um \u00fanico padr\u00e3o.<\/p>\n<p class=\"for_users_only_msg\">Apenas usu\u00e1rios registrados podem participar da pesquisa. <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/auth\/login\/\">Entre<\/a><\/noindex>, por favor.<\/p>\n<h2 class=\"default-block__polling-title\">O que voc\u00ea faz com seu legado?<\/h2>\n<ul class=\"poll-result\">\n<li class=\"poll-result__item\">\n<p>                <strong class=\"poll-result__data-percent\">31.5%<\/strong>Estou reescrevendo do zero, \u00e9 o mais correto12<\/p>\n<\/li>\n<li class=\"poll-result__item\">\n<p>                <strong class=\"poll-result__data-percent  poll-result__data-percent_winner\">52.6%<\/strong>Praticamente a mesma coisa que voc\u00ea20<\/p>\n<\/li>\n<li class=\"poll-result__item\">\n<p>                <strong class=\"poll-result__data-percent\">10.5%<\/strong>N\u00e3o temos legado, somos \u00f3timos4<\/p>\n<\/li>\n<li class=\"poll-result__item\">\n<p>                <strong class=\"poll-result__data-percent\">5.2%<\/strong>Vou comentar2<\/p>\n<\/li>\n<\/ul>\n<p>    38 usu\u00e1rios votaram. 20 usu\u00e1rios se abstiveram.<br \/>\n<br \/>Fonte: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/qiwi\/blog\/477682\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0440\u0438\u0432\u0435\u0442! \u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u041f\u0430\u0448\u0430 \u0427\u0435\u0440\u043d\u044f\u043a, \u044f \u0432\u0435\u0434\u0443\u0449\u0438\u0439 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u0432 QIWI, \u0438 \u0441\u0435\u0433\u043e\u0434\u043d\u044f \u044f \u0445\u043e\u0447\u0443 \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u0442\u044c \u043e \u043d\u0435\u0438\u0437\u0431\u0435\u0436\u043d\u043e\u043c. \u041e Legacy. \u041d\u0430\u0447\u043d\u0435\u043c \u0441 \u0432\u043e\u043f\u0440\u043e\u0441\u0430: \u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0435 Legacy-\u0441\u0435\u0440\u0432\u0438\u0441? Legacy-\u0441\u0435\u0440\u0432\u0438\u0441 \u2014 \u044d\u0442\u043e \u0441\u0435\u0440\u0432\u0438\u0441, \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u043d\u0435 \u043a\u0430\u0441\u0430\u043b\u0441\u044f \u0443\u0436\u0435 \u043d\u0435\u0434\u0435\u043b\u044e\/\u043c\u0435\u0441\u044f\u0446\/\u0433\u043e\u0434? \u0418\u043b\u0438 \u044d\u0442\u043e \u0441\u0435\u0440\u0432\u0438\u0441, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u044b\u043b \u043d\u0430\u043f\u0438\u0441\u0430\u043d \u043c\u0435\u043d\u0435\u0435 \u043e\u043f\u044b\u0442\u043d\u044b\u043c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u043e\u043c, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e \u0432\u0430\u043c\u0438, \u043d\u043e \u0433\u043e\u0434 \u043d\u0430\u0437\u0430\u0434? \u0410 \u0442\u0435\u043f\u0435\u0440\u044c-\u0442\u043e \u0432\u044b \u043a\u0440\u0443\u0447\u0435 \u0438 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":53443,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-53442","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.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u0440\u0438\u0432\u0435\u0442! \u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u041f\u0430\u0448\u0430 \u0427\u0435\u0440\u043d\u044f\u043a, \u044f \u0432\u0435\u0434\u0443\u0449\u0438\u0439 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u0432 QIWI, \u0438 \u0441\u0435\u0433\u043e\u0434\u043d\u044f \u044f \u0445\u043e\u0447\u0443 \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u0442\u044c \u043e \u043d\u0435\u0438\u0437\u0431\u0435\u0436\u043d\u043e\u043c. \u041e Legacy. \u041d\u0430\u0447\u043d\u0435\u043c \u0441 \u0432\u043e\u043f\u0440\u043e\u0441\u0430: \u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0435 Legacy-\u0441\u0435\u0440\u0432\u0438\u0441?\" \/>\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\/legacy-servisy-v-vashej-infrastrukture\" \/>\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\udd47Legacy-\u0441\u0435\u0440\u0432\u0438\u0441\u044b \u0432 \u0432\u0430\u0448\u0435\u0439 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0435 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0440\u0438\u0432\u0435\u0442! \u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u041f\u0430\u0448\u0430 \u0427\u0435\u0440\u043d\u044f\u043a, \u044f \u0432\u0435\u0434\u0443\u0449\u0438\u0439 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u0432 QIWI, \u0438 \u0441\u0435\u0433\u043e\u0434\u043d\u044f \u044f \u0445\u043e\u0447\u0443 \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u0442\u044c \u043e \u043d\u0435\u0438\u0437\u0431\u0435\u0436\u043d\u043e\u043c. \u041e Legacy. \u041d\u0430\u0447\u043d\u0435\u043c \u0441 \u0432\u043e\u043f\u0440\u043e\u0441\u0430: \u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0435 Legacy-\u0441\u0435\u0440\u0432\u0438\u0441?\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/pt\/blog\/administrirovanie\/legacy-servisy-v-vashej-infrastrukture\" \/>\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-01T21:00:00+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-02-18T11:01:20+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 Servi\u00e7os legados na sua infraestrutura | ProHoster","description":"Ol\u00e1! Meu nome \u00e9 Pasha Chernyak, sou desenvolvedor chefe na QIWI, e hoje quero falar sobre o inevit\u00e1vel. Sobre Legado. Vamos come\u00e7ar com a pergunta: o que \u00e9 um servi\u00e7o legado?","canonical_url":"https:\/\/prohoster.info\/pt\/blog\/administrirovanie\/legacy-servisy-v-vashej-infrastrukture","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\udd47Legacy-\u0441\u0435\u0440\u0432\u0438\u0441\u044b \u0432 \u0432\u0430\u0448\u0435\u0439 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0435 | ProHoster","og:description":"\u041f\u0440\u0438\u0432\u0435\u0442! \u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u041f\u0430\u0448\u0430 \u0427\u0435\u0440\u043d\u044f\u043a, \u044f \u0432\u0435\u0434\u0443\u0449\u0438\u0439 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u0432 QIWI, \u0438 \u0441\u0435\u0433\u043e\u0434\u043d\u044f \u044f \u0445\u043e\u0447\u0443 \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u0442\u044c \u043e \u043d\u0435\u0438\u0437\u0431\u0435\u0436\u043d\u043e\u043c. \u041e Legacy. \u041d\u0430\u0447\u043d\u0435\u043c \u0441 \u0432\u043e\u043f\u0440\u043e\u0441\u0430: \u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0435 Legacy-\u0441\u0435\u0440\u0432\u0438\u0441?","og:url":"https:\/\/prohoster.info\/pt\/blog\/administrirovanie\/legacy-servisy-v-vashej-infrastrukture","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-01T21:00:00+00:00","article:modified_time":"2020-02-18T11:01:20+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"53442","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 07:23:42","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 20:25:27","updated":"2026-01-24 07:23:42","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\/53442","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=53442"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts\/53442\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/media\/53443"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/media?parent=53442"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/categories?post=53442"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/tags?post=53442"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}