{"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\/es\/blog\/administrirovanie\/legacy-servisy-v-vashej-infrastrukture","title":{"rendered":"Servicios heredados en su infraestructura","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>\u00a1Hola! Me llamo Pasha Chernyak, soy desarrollador principal en QIWI, y hoy quiero hablar sobre lo inevitable. Sobre Legacy.<\/p>\n<p>Empecemos con la pregunta: \u00bfqu\u00e9 es un servicio Legacy? \u00bfEs un servicio que el desarrollador no ha tocado en una semana\/mes\/a\u00f1o? \u00bfO es un servicio que fue escrito por un programador menos experimentado, como usted, pero hace un a\u00f1o? \u00a1Ahora ya es m\u00e1s experto y competente! O, \u00bfun servicio Legacy es aquel que ha decidido no volver a modificar y que est\u00e1 preparando lentamente para reemplazar? En cualquier caso, dejar un servicio as\u00ed desatendido y sin actualizar es una bomba de tiempo que puede explotar m\u00e1s adelante.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/qiwi\/blog\/477682\/\"><img decoding=\"async\" alt=\"Servicios heredados en su infraestructura\" src=\"\/wp-content\/uploads\/2019\/12\/d33a4a7983d1c440570bc0ff8da0f1d6.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p>Antes de pasar a c\u00f3mo trabajamos en QIWI con nuestros servicios Legacy, les contar\u00e9 c\u00f3mo hemos organizado los servicios en la Billetera. Desde hace dos a\u00f1os, soy responsable de su funcionamiento. Si hay alg\u00fan problema, la primera persona a la que llaman es a m\u00ed. Normalmente, no tengo el descaro de llamar a alguien m\u00e1s a las 11 de la noche, as\u00ed que he tenido que sentarme y entender todos los servicios de nuestro dominio. <\/p>\n<p>Pero yo, como cualquier persona, amo dormir por la noche, as\u00ed que intent\u00e9 entender la explotaci\u00f3n: 'Chicos, \u00bfpor qu\u00e9 me llaman?'. A lo que recib\u00ed una respuesta bastante concisa como '\u00bfA qui\u00e9n m\u00e1s?'. Porque yo arreglo los servicios y, adem\u00e1s, los chicos simplemente no saben a qui\u00e9n llamar.<\/p>\n<p>As\u00ed que en una de las retrospectivas del equipo de backend de la Billetera, decidimos que era necesario crear una tabla con la lista de nuestros servicios, microservicios y monolitos de la billetera, y las personas responsables de ellos. Las tablas son realmente \u00fatiles, dentro de l\u00edmites razonables.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nAdem\u00e1s de la informaci\u00f3n sobre qui\u00e9n es responsable de qu\u00e9, tambi\u00e9n hab\u00eda respuestas a las preguntas: qui\u00e9n es el propietario del servicio, qui\u00e9n es responsable de su desarrollo, de la arquitectura y del ciclo de vida. Las personas responsables de este servicio son las que pueden arreglarlo si es necesario. El propietario del servicio tiene derecho a dejar +2 en los commits, y los responsables tambi\u00e9n deben asistir obligatoriamente a la revisi\u00f3n antes de que este servicio acepte un nuevo commit.<\/p>\n<p>Con el paso del tiempo, comenzaron a aplicarse nuevas pr\u00e1cticas, como la migraci\u00f3n a Kubernetes, el uso de checkstyle, spotbugs, ktlint, la inclusi\u00f3n de logs en Kibana, autodiscovery de servicios en lugar de indicar las direcciones directamente, entre otras utilidades. Y en todas partes nuestra tabla permit\u00eda mantener actualizados nuestros servicios. Para nosotros, es una especie de lista de verificaci\u00f3n que indica qu\u00e9 habilidades tiene el servicio y cu\u00e1les a\u00fan no. Pero seguimos avanzando, d\u00e1ndonos cuenta de que nos falta informaci\u00f3n sobre nuestros servicios, como d\u00f3nde se almacenan los c\u00f3digos fuente, d\u00f3nde se lanzan las tareas de construcci\u00f3n en TeamCity, c\u00f3mo se despliegan, d\u00f3nde se guardan los c\u00f3digos fuente de las pruebas end2end, fotos sobre la arquitectura y las decisiones tomadas. Idealmente, quer\u00edamos que toda esta informaci\u00f3n estuviera disponible y accesible cuando la necesit\u00e1ramos. Por eso, nuestra tabla se convirti\u00f3 en el punto de partida para buscar informaci\u00f3n.<\/p>\n<p>Pero QIWI, aunque conserva el esp\u00edritu de una startup, es una gran empresa. Ya tenemos 12 a\u00f1os, y los equipos cambian: las personas se van, otras llegan, se forman nuevos equipos. Y descubrimos en nuestro dominio varios servicios que heredamos. Algunos vinieron con desarrolladores de otros equipos, otros estaban de alguna manera relacionados con el Monedero, por lo que ahora tenemos ese servicio en nuestro balance. \u00bfPor qu\u00e9 investigar c\u00f3mo y qu\u00e9 funciona? El servicio est\u00e1 operativo, y tenemos caracter\u00edsticas del producto que necesitamos implementar.<\/p>\n<h2>Como suele suceder,<\/h2>\n<p>\nPero en alg\u00fan momento nos damos cuenta de que el servicio deja de cumplir su funci\u00f3n, algo se rompi\u00f3, \u00bfqu\u00e9 hacer en esa situaci\u00f3n? El servicio simplemente dej\u00f3 de funcionar. Por completo. Y nos enteramos de esto, primero, por casualidad y, segundo, seis meses despu\u00e9s. As\u00ed suele ser. Lo \u00fanico que sab\u00edamos era en qu\u00e9 m\u00e1quinas virtuales estaba desplegado el servicio, d\u00f3nde estaban sus c\u00f3digos fuente, y nada m\u00e1s. Hacemos un git clone y nos sumergimos en los pensamientos de la persona que escribi\u00f3 esto hace unos a\u00f1os, pero \u00bfqu\u00e9 vemos? No hay nada del habitual Spring Boot, aunque estamos acostumbrados, ya que somos full stack y esas cosas. \u00bfQuiz\u00e1s hay Spring Framework? Pero no, no hay.<\/p>\n<p>El chico que escribi\u00f3 todo esto era estricto y programaba todo en Java puro. No hay herramientas familiares para el desarrollador, y surge la idea: ser\u00eda bueno reescribir todo esto. Tenemos microservicios, y desde cada tostadora se escucha el habitual \"\u00a1Chicos, los microservicios son lo que necesitan!\". Si algo va mal, pueden tomar cualquier lenguaje y todo estar\u00e1 bien.<\/p>\n<p>El asunto es que actualmente no tenemos un cliente que se encargue de este servicio. \u00bfCu\u00e1les eran sus requisitos comerciales, qu\u00e9 deber\u00eda hacer este servicio? Y el servicio est\u00e1 estrechamente integrado en sus procesos comerciales. <\/p>\n<p>Ahora d\u00edganme, \u00bfqu\u00e9 tan f\u00e1cil es reescribir un servicio sin conocer sus requisitos comerciales? No est\u00e1 claro c\u00f3mo se est\u00e1 registrando el servicio, no se sabe si hay m\u00e9tricas. \u00bfCu\u00e1les son, si es que las hay? A\u00fan m\u00e1s desconocido. Adem\u00e1s, hay una gran cantidad de clases con l\u00f3gica comercial confusa. Algo se registra en alguna base de datos de la que tampoco sabemos nada. <\/p>\n<h2>\u00bfPor d\u00f3nde empezar?<\/h2>\n<p>\nPor lo m\u00e1s l\u00f3gico: la existencia de pruebas. Generalmente, ah\u00ed hay alguna l\u00f3gica escrita y se pueden hacer inferencias sobre lo que est\u00e1 sucediendo. Actualmente, TDD est\u00e1 de moda, pero vemos que hace 5 a\u00f1os todo era pr\u00e1cticamente igual que ahora: casi no hay pruebas unitarias, y no nos dir\u00e1n nada en concreto. Bueno, excepto tal vez alguna verificaci\u00f3n de c\u00f3mo se firma alg\u00fan xml con alg\u00fan certificado personalizado.<\/p>\n<p>No pudimos entender nada del c\u00f3digo, as\u00ed que decidimos revisar qu\u00e9 estaba pasando en la m\u00e1quina virtual. Abrimos los registros del servicio y encontramos un error del cliente HTTP: un certificado autofirmado que estaba incrustado en los recursos de la aplicaci\u00f3n hab\u00eda caducado sin piedad. Nos pusimos en contacto con nuestros analistas, pidieron un nuevo certificado, nos lo emitieron y el servicio volvi\u00f3 a funcionar. En apariencia, eso deber\u00eda ser todo. \u00bfO no? De hecho, el servicio funciona, realiza una funci\u00f3n que necesita nuestro negocio. Tenemos ciertos est\u00e1ndares de desarrollo de aplicaciones, que probablemente tambi\u00e9n tenga usted. Por ejemplo, no almacenar registros en el nodo dentro de una carpeta, sino en alg\u00fan tipo de almacenamiento, como Elastic, y consultarlos en Kibana. Tambi\u00e9n podr\u00edamos recordar las m\u00e9tricas doradas. Es decir, la carga en el servicio, la cantidad de solicitudes al servicio, si est\u00e1 vivo o no, c\u00f3mo pasa su HealthCheck. Al menos, estas m\u00e9tricas ayudar\u00e1n a saber cu\u00e1ndo se puede retirar el servicio de manera tranquila y olvidar su existencia como un mal sue\u00f1o.<\/p>\n<h2>\u00bfQu\u00e9 hacer?<\/h2>\n<p>\nPor lo tanto, a\u00f1adimos este viejo servicio a la tabla y luego vamos a buscar entre los desarrolladores voluntarios que se encarguen del servicio y lo pongan en orden: que escriban al menos alguna informaci\u00f3n sobre el servicio, que a\u00f1adan enlaces a los paneles en Grafana, a las tareas de compilaci\u00f3n, que entiendan c\u00f3mo desplegar la aplicaci\u00f3n; no se puede simplemente subir archivos mediante FTP. <\/p>\n<p>Lo principal: \u00bfcu\u00e1nto tiempo tomar\u00e1 toda esta \u00fatil actividad de voluntariado? Un sprint para un desarrollador m\u00e1s o menos experimentado, por ejemplo, durante el 20% de la deuda t\u00e9cnica. \u00bfY cu\u00e1nto tiempo se ha gastado en entender toda la enraizada l\u00f3gica de comunicaci\u00f3n con alg\u00fan sistema gubernamental, y actualizarla a tecnolog\u00edas m\u00e1s nuevas? No puedo garantizarlo, tal vez un mes, o tal vez dos de trabajo del equipo. Lo digo por la experiencia de integraci\u00f3n en la actualidad con alg\u00fan nuevo servicio.<\/p>\n<p>Sin embargo, no hay salida de valor empresarial alguna. Absolutamente ninguna. Tomar un servicio en soporte y dedicarle algo de tiempo es normal. Pero despu\u00e9s de nuestros est\u00e1ndares habituales de trabajo con el servicio, lo a\u00f1adimos a la tabla, se agreg\u00f3 informaci\u00f3n sobre \u00e9l y, quiz\u00e1s, en alg\u00fan momento lo reescribamos. Pero ahora cumple con nuestros est\u00e1ndares de operaci\u00f3n de servicios.<\/p>\n<p>Como conclusi\u00f3n, me gustar\u00eda proponer un plan sobre qu\u00e9 hacer con los servicios Legacy. <\/p>\n<p><b>Reescribir el legado desde cero es una mala idea.<\/b><br \/>\nEn serio, ni siquiera hay que pensarlo. Es claro que hay preferencias, y hay algunas ventajas, pero generalmente, a nadie le importa, incluyendo a ustedes mismos.<\/p>\n<p><b>Gu\u00eda<\/b><br \/>\nRevise los c\u00f3digos fuente de sus aplicaciones, haga una gu\u00eda que indique qu\u00e9 hay y d\u00f3nde est\u00e1, adem\u00e1s de c\u00f3mo funciona. Tambi\u00e9n incluya una descripci\u00f3n del proyecto (el correspondiente readme.md) para que quien se encargue de esto despu\u00e9s de ustedes pueda entender r\u00e1pidamente d\u00f3nde se encuentran los registros y las m\u00e9tricas. El desarrollador que se haga cargo solo les dar\u00e1 las gracias.<\/p>\n<p><b>Entienda el dominio<\/b><br \/>\nSi posee alg\u00fan dominio, trate de estar al tanto. Puede sonar obvio, s\u00ed, pero no todos se aseguran de que los servicios est\u00e9n alineados. En realidad, trabajar bajo un mismo est\u00e1ndar es mucho m\u00e1s sencillo.<\/p>\n<p class=\"for_users_only_msg\">Solo los usuarios registrados pueden participar en la encuesta. <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/auth\/login\/\">Inicie sesi\u00f3n<\/a><\/noindex>, por favor.<\/p>\n<h2 class=\"default-block__polling-title\">\u00bfQu\u00e9 hace con su legado?<\/h2>\n<ul class=\"poll-result\">\n<li class=\"poll-result__item\">\n<p>                <strong class=\"poll-result__data-percent\">31.5%<\/strong>Lo estoy reescribiendo desde cero, es lo correcto12<\/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>Casi lo mismo que usted20<\/p>\n<\/li>\n<li class=\"poll-result__item\">\n<p>                <strong class=\"poll-result__data-percent\">10.5%<\/strong>No tenemos legado, somos geniales4<\/p>\n<\/li>\n<li class=\"poll-result__item\">\n<p>                <strong class=\"poll-result__data-percent\">5.2%<\/strong>Lo escribir\u00e9 en los comentarios2<\/p>\n<\/li>\n<\/ul>\n<p>    Votaron 38 usuarios. 20 usuarios se abstuvieron.<br \/>\n<br \/>Fuente: <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.2 - 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\/es\/blog\/administrirovanie\/legacy-servisy-v-vashej-infrastrukture\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"es_ES\" \/>\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\/es\/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\udd47Servicios legados en su infraestructura | ProHoster","description":"\u00a1Hola! Me llamo Pasha Chernyak, soy el desarrollador principal en QIWI, y hoy quiero hablar sobre lo inevitable. Sobre el legado. Comencemos con la pregunta: \u00bfqu\u00e9 es un servicio legado?","canonical_url":"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/legacy-servisy-v-vashej-infrastrukture","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"es_ES","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\/es\/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\/es\/wp-json\/wp\/v2\/posts\/53442","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/comments?post=53442"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts\/53442\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/media\/53443"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/media?parent=53442"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/categories?post=53442"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/tags?post=53442"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}