{"id":77783,"date":"2020-04-14T01:42:28","date_gmt":"2020-04-13T23:42:28","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/metodika-razvyortyvaniya-proektov-primenyaemaya-v-slack"},"modified":"2020-04-14T01:42:28","modified_gmt":"2020-04-13T23:42:28","slug":"metodika-razvyortyvaniya-proektov-primenyaemaya-v-slack","status":"publish","type":"post","link":"https:\/\/prohoster.info\/pt\/blog\/administrirovanie\/metodika-razvyortyvaniya-proektov-primenyaemaya-v-slack","title":{"rendered":"Metodologia de implementa\u00e7\u00e3o de projetos utilizada no Slack","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>A implementa\u00e7\u00e3o de uma nova vers\u00e3o do projeto em produ\u00e7\u00e3o requer um cuidadoso equil\u00edbrio entre a velocidade de implanta\u00e7\u00e3o e a confiabilidade da solu\u00e7\u00e3o. Na empresa Slack, eles valorizam itera\u00e7\u00f5es r\u00e1pidas, ciclos de feedback curtos e uma resposta \u00e1gil \u00e0s solicita\u00e7\u00f5es dos usu\u00e1rios. Al\u00e9m disso, a empresa conta com centenas de programadores que buscam alcan\u00e7ar a m\u00e1xima produtividade poss\u00edvel.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/ruvds\/blog\/496838\/\"><img decoding=\"async\" alt=\"Metodologia de implementa\u00e7\u00e3o de projetos utilizada no Slack\" src=\"\/wp-content\/uploads\/2020\/04\/a3d3cec330e9b9bd402035c22bda48ff.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p>Os autores do material, cuja tradu\u00e7\u00e3o publicamos hoje, afirmam que uma empresa que busca manter esses valores e ainda crescer deve constantemente aprimorar seu sistema de implanta\u00e7\u00e3o de projetos. A empresa deve investir esfor\u00e7os na transpar\u00eancia e confiabilidade dos processos de trabalho, garantindo que esses processos estejam \u00e0 altura da escala do projeto. Neste contexto, falaremos sobre os processos de trabalho estabelecidos na Slack e algumas solu\u00e7\u00f5es que levaram a empresa a adotar o sistema de implanta\u00e7\u00e3o de projetos que existe atualmente.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>Como os processos de implanta\u00e7\u00e3o de projetos funcionam hoje<\/h2>\n<p>\nCada PR (pull request) na Slack deve passar obrigatoriamente por revis\u00e3o de c\u00f3digo e deve passar por todos os testes com sucesso. Somente ap\u00f3s o cumprimento dessas condi\u00e7\u00f5es \u00e9 que o programador pode mesclar seu c\u00f3digo com o branch master do projeto. No entanto, a implanta\u00e7\u00e3o desse c\u00f3digo \u00e9 realizada apenas durante o hor\u00e1rio comercial por tempo norte-americano. Como resultado, estamos totalmente preparados para resolver quaisquer problemas inesperados, j\u00e1 que nossos funcion\u00e1rios est\u00e3o em seus postos de trabalho.<\/p>\n<p>Todos os dias, realizamos cerca de 12 implanta\u00e7\u00f5es programadas. Durante cada implanta\u00e7\u00e3o, o programador designado como respons\u00e1vel pela implanta\u00e7\u00e3o \u00e9 encarregado de levar uma nova vers\u00e3o para a produ\u00e7\u00e3o. Este \u00e9 um processo em v\u00e1rias etapas que garante uma transi\u00e7\u00e3o suave da vers\u00e3o para o modo ativo. Com essa abordagem, conseguimos identificar erros antes que eles afetem todos os nossos usu\u00e1rios. Se houver muitos erros, a implanta\u00e7\u00e3o da vers\u00e3o pode ser revertida. No entanto, se um problema espec\u00edfico for detectado ap\u00f3s o lan\u00e7amento, uma corre\u00e7\u00e3o pode ser rapidamente emitida para ele.<\/p>\n<p><img decoding=\"async\" alt=\"Metodologia de implementa\u00e7\u00e3o de projetos utilizada no Slack\" src=\"\/wp-content\/uploads\/2020\/04\/e05d8ecf210832734a7bb691621a1f96.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>A interface do sistema Checkpoint, que \u00e9 utilizada na Slack para a implanta\u00e7\u00e3o de projetos<\/i><\/p>\n<p>O processo de implanta\u00e7\u00e3o de uma nova vers\u00e3o em produ\u00e7\u00e3o pode ser descrito em quatro etapas.<\/p>\n<h3>\u258d1. Cria\u00e7\u00e3o de uma branch de release<\/h3>\n<p>\nCada release come\u00e7a com uma nova branch de release, a partir de um ponto na nossa hist\u00f3ria do Git. Isso permite nomear o release com tags e d\u00e1 um espa\u00e7o onde podem ser feitas corre\u00e7\u00f5es r\u00e1pidas para problemas encontrados durante a prepara\u00e7\u00e3o do release para a produ\u00e7\u00e3o.<\/p>\n<h3>\u258d2. Implanta\u00e7\u00e3o em ambiente intermedi\u00e1rio<\/h3>\n<p>\nO pr\u00f3ximo passo \u00e9 implantar a build nos servidores intermedi\u00e1rios (staging) e realizar um teste autom\u00e1tico de funcionalidade geral do projeto (smoke test). O ambiente intermedi\u00e1rio \u00e9 um ambiente de produ\u00e7\u00e3o que n\u00e3o recebe tr\u00e1fego externo. Nesse ambiente, realizamos testes manuais adicionais. Isso nos d\u00e1 confian\u00e7a extra de que o projeto modificado est\u00e1 funcionando corretamente. Testes automatizados sozinhos n\u00e3o s\u00e3o suficientes para adquirir tal confian\u00e7a.<\/p>\n<h3>\u258d3. Implanta\u00e7\u00e3o em ambientes dogfood e canary<\/h3>\n<p>\nA implanta\u00e7\u00e3o em produ\u00e7\u00e3o come\u00e7a com o ambiente dogfood, que consiste em um conjunto de hosts que atendem nossas \u00e1reas de trabalho internas no Slack. Como somos usu\u00e1rios bem ativos do Slack, utilizar essa abordagem ajudou a identificar muitos erros nas primeiras fases de implanta\u00e7\u00e3o. Ap\u00f3s garantirmos que a funcionalidade b\u00e1sica do sistema n\u00e3o foi afetada, a build \u00e9 implantada no ambiente canary. Este representa sistemas que recebem cerca de 2% do tr\u00e1fego de produ\u00e7\u00e3o.<\/p>\n<h3>\u258d4. Gradual lan\u00e7amento em produ\u00e7\u00e3o<\/h3>\n<p>\nSe os indicadores de monitoramento da nova vers\u00e3o se mostraram est\u00e1veis, e se ap\u00f3s a implanta\u00e7\u00e3o do projeto no ambiente canary n\u00e3o recebemos reclama\u00e7\u00f5es, continuamos a migra\u00e7\u00e3o gradual dos servidores de produ\u00e7\u00e3o para a nova vers\u00e3o. O processo de implanta\u00e7\u00e3o \u00e9 dividido nas seguintes etapas: 10%, 25%, 50%, 75% e 100%. Como resultado, podemos transferir lentamente o tr\u00e1fego de produ\u00e7\u00e3o para a nova vers\u00e3o do sistema. Assim, temos tempo para investigar a situa\u00e7\u00e3o caso algumas anomalias sejam detectadas.<\/p>\n<h3>\u258dO que fazer se algo der errado durante a implanta\u00e7\u00e3o?<\/h3>\n<p>\nModificar o c\u00f3digo sempre envolve riscos. Mas conseguimos lidar com isso gra\u00e7as \u00e0 presen\u00e7a de nossos bem-preparados \"respons\u00e1veis pela implementa\u00e7\u00e3o\", que lideram o processo de lan\u00e7amento de uma nova vers\u00e3o em produ\u00e7\u00e3o, monitoram os indicadores e coordenam o trabalho dos programadores que liberam o c\u00f3digo.<\/p>\n<p>Caso algo realmente d\u00ea errado, nos esfor\u00e7amos para identificar o problema o mais cedo poss\u00edvel. Investigamos a quest\u00e3o, encontramos o PR que causa os erros, reverte o mesmo, analisamos cuidadosamente e criamos uma nova build. No entanto, \u00e0s vezes o problema passa desapercebido at\u00e9 que o projeto seja colocado em produ\u00e7\u00e3o. Nessa situa\u00e7\u00e3o, o mais importante \u00e9 restaurar o funcionamento do servi\u00e7o. Portanto, antes de come\u00e7ar a investigar o problema, imediatamente reverteremos para a \u00faltima build funcional.<\/p>\n<h2>Blocos de constru\u00e7\u00e3o do sistema de implementa\u00e7\u00e3o<\/h2>\n<p>\nVamos analisar as tecnologias que fundamentam nosso sistema de implementa\u00e7\u00e3o de projetos.<\/p>\n<h3>\u258dImplementa\u00e7\u00f5es r\u00e1pidas<\/h3>\n<p>\nO fluxo de trabalho descrito acima pode parecer, em retrospectiva, algo completamente \u00f3bvio. Mas nosso sistema de implementa\u00e7\u00e3o n\u00e3o se tornou assim imediatamente.<\/p>\n<p>Quando a empresa era muito menor, todo nosso aplicativo podia funcionar em 10 inst\u00e2ncias Amazon EC2. A implementa\u00e7\u00e3o do projeto, nessa situa\u00e7\u00e3o, significava usar rsync para uma r\u00e1pida sincroniza\u00e7\u00e3o de todos os servidores. Antes, novo c\u00f3digo em produ\u00e7\u00e3o estava separado por apenas um passo, representado por um ambiente intermedi\u00e1rio. As builds eram criadas e testadas nesse ambiente e iam direto para a produ\u00e7\u00e3o. Era muito f\u00e1cil entender esse sistema, permitindo que qualquer programador implementasse o c\u00f3digo por ele escrito a qualquer momento.<\/p>\n<p>Mas \u00e0 medida que o n\u00famero de nossos clientes crescia, tamb\u00e9m crescia a escala da infraestrutura necess\u00e1ria para suportar o projeto. Logo, considerando o crescimento constante do sistema, nosso modelo de implementa\u00e7\u00e3o, baseado em enviar novo c\u00f3digo para os servidores, deixou de ser eficiente. Especificamente, adicionar cada novo servidor significava um aumento no tempo necess\u00e1rio para a implementa\u00e7\u00e3o. Mesmo estrat\u00e9gias que utilizam a aplica\u00e7\u00e3o paralela de rsync t\u00eam certas limita\u00e7\u00f5es.<\/p>\n<p>Como resultado, resolvemos este problema ao migrar para um sistema de implanta\u00e7\u00e3o completamente paralelo, que n\u00e3o funciona como o antigo. Agora, em vez de enviar o c\u00f3digo para os servidores com um script de sincroniza\u00e7\u00e3o, cada servidor carrega a nova vers\u00e3o de forma aut\u00f4noma, por meio do monitoramento da altera\u00e7\u00e3o da chave Consul. Os servidores fazem o download do c\u00f3digo em paralelo. Isso nos permitiu manter uma alta velocidade de implanta\u00e7\u00e3o, mesmo em um ambiente de crescimento cont\u00ednuo do sistema.<\/p>\n<p><img decoding=\"async\" alt=\"Metodologia de implementa\u00e7\u00e3o de projetos utilizada no Slack\" src=\"\/wp-content\/uploads\/2020\/04\/baf52b60024eb9881e8a31fbf0da08bd.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>1. Os servidores de produ\u00e7\u00e3o monitoram a chave Consul. 2. Quando a chave muda, isso informa aos servidores que eles devem iniciar o download do novo c\u00f3digo. 3. Os servidores fazem o download de arquivos tarball com o c\u00f3digo do aplicativo.<\/i><\/p>\n<h3>\u258dImplanta\u00e7\u00f5es at\u00f4micas<\/h3>\n<p>\nOutra solu\u00e7\u00e3o que nos ajudou a alcan\u00e7ar um sistema de implanta\u00e7\u00e3o em m\u00faltiplos n\u00edveis foi a implanta\u00e7\u00e3o at\u00f4mica.<\/p>\n<p>Antes de adotarmos implanta\u00e7\u00f5es at\u00f4micas, cada implanta\u00e7\u00e3o poderia resultar em muitos erros. O problema era que o processo de c\u00f3pia de novos arquivos para os servidores de produ\u00e7\u00e3o n\u00e3o era at\u00f4mico. Isso criava uma breve janela de tempo em que o c\u00f3digo que chamava novas fun\u00e7\u00f5es se tornava dispon\u00edvel antes que as pr\u00f3prias fun\u00e7\u00f5es estivessem prontas. Quando esse c\u00f3digo era acionado, resultava em erros internos. Isso se manifestava em solicita\u00e7\u00f5es de API falhadas e em p\u00e1ginas da web 'quebradas'.<\/p>\n<p>A equipe que lidou com esse problema o resolveu introduzindo diret\u00f3rios 'quentes' (hot) e 'frios' (cold). O c\u00f3digo no diret\u00f3rio 'quente' \u00e9 respons\u00e1vel pelo processamento do tr\u00e1fego de produ\u00e7\u00e3o. Nos diret\u00f3rios 'frios', o c\u00f3digo, enquanto o sistema est\u00e1 em funcionamento, apenas se prepara para uso. Durante a implanta\u00e7\u00e3o, o novo c\u00f3digo \u00e9 copiado para o diret\u00f3rio 'frio', que n\u00e3o est\u00e1 em uso. Em seguida, quando n\u00e3o houver processos ativos no servidor, ocorre uma troca instant\u00e2nea de diret\u00f3rios.<\/p>\n<p><img decoding=\"async\" alt=\"Metodologia de implementa\u00e7\u00e3o de projetos utilizada no Slack\" src=\"\/wp-content\/uploads\/2020\/04\/05ab374f047e53e408f3e75ad3a73d68.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>1. Descompacta\u00e7\u00e3o do c\u00f3digo do aplicativo no diret\u00f3rio 'frio'. 2. Troca do sistema para o diret\u00f3rio 'frio', que se torna 'quente' (opera\u00e7\u00e3o at\u00f4mica).<\/i><\/p>\n<h2>Resultados: mudan\u00e7a de foco para a confiabilidade.<\/h2>\n<p>\nEm 2018, o projeto alcan\u00e7ou uma escala em que o r\u00e1pido lan\u00e7amento come\u00e7ou a prejudicar a estabilidade do produto. T\u00ednhamos um sistema de implanta\u00e7\u00e3o bastante avan\u00e7ado, no qual investimos muito esfor\u00e7o e tempo. Precis\u00e1vamos apenas reestruturar e aprimorar os processos de organiza\u00e7\u00e3o da implanta\u00e7\u00e3o. N\u00f3s nos tornamos uma empresa de porte consider\u00e1vel, cujas solu\u00e7\u00f5es eram utilizadas em todo o mundo para garantir comunica\u00e7\u00f5es cont\u00ednuas e resolver quest\u00f5es importantes. Por isso, a confiabilidade se tornou o nosso foco principal.<\/p>\n<p>Precis\u00e1vamos tornar o processo de implanta\u00e7\u00e3o de novas vers\u00f5es do Slack mais seguro. Essa necessidade nos levou a aprimorar nosso sistema de implanta\u00e7\u00e3o. De fato, discutimos anteriormente este sistema aprimorado. Dentro da sistem\u00e1tica, continuamos utilizando tecnologias de implanta\u00e7\u00e3o r\u00e1pida e at\u00f4mica. O que mudou foi a forma como a implanta\u00e7\u00e3o \u00e9 executada. Nosso novo sistema \u00e9 projetado para realizar a implanta\u00e7\u00e3o de novo c\u00f3digo de maneira gradual, em diferentes n\u00edveis e ambientes. Agora, utilizamos ferramentas auxiliares e recursos de monitoramento mais avan\u00e7ados do que antes. Isso nos permite detectar e corrigir erros muito antes que eles tenham a chance de chegar ao usu\u00e1rio final.<\/p>\n<p>Mas n\u00e3o pretendemos parar por aqui. Estamos constantemente aprimorando esse sistema, aplicando ferramentas auxiliares mais sofisticadas e meios de automa\u00e7\u00e3o.<\/p>\n<p><b>Prezados leitores!<\/b> Como \u00e9 o processo de implanta\u00e7\u00e3o de novas vers\u00f5es dos projetos onde voc\u00ea trabalha?<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/ruvds.com\/ru-rub\/#order\"><img decoding=\"async\" alt=\"Metodologia de implementa\u00e7\u00e3o de projetos utilizada no Slack\" src=\"\/wp-content\/uploads\/2020\/04\/1aeb4af5770ce139b651be62e955f130.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><br \/>\n<br \/>Fonte: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/ruvds\/blog\/496838\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412\u044b\u0432\u043e\u0434 \u043d\u043e\u0432\u043e\u0433\u043e \u0440\u0435\u043b\u0438\u0437\u0430 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0432 \u043f\u0440\u043e\u0434\u0430\u043a\u0448\u043d \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0442\u0449\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0441\u043e\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u044f \u0431\u0430\u043b\u0430\u043d\u0441\u0430 \u043c\u0435\u0436\u0434\u0443 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c\u044e \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u0438 \u043d\u0430\u0434\u0451\u0436\u043d\u043e\u0441\u0442\u044c\u044e \u0440\u0435\u0448\u0435\u043d\u0438\u044f. \u0412 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 Slack \u0446\u0435\u043d\u044f\u0442 \u0431\u044b\u0441\u0442\u0440\u044b\u0435 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438, \u043a\u043e\u0440\u043e\u0442\u043a\u0438\u0435 \u0446\u0438\u043a\u043b\u044b \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0439 \u0441\u0432\u044f\u0437\u0438, \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u0443\u044e \u0440\u0435\u0430\u043a\u0446\u0438\u044e \u043d\u0430 \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u0438\u043c\u0435\u044e\u0442\u0441\u044f \u0441\u043e\u0442\u043d\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u0442\u0440\u0435\u043c\u044f\u0442\u0441\u044f \u043a \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0439 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u0438. \u0410\u0432\u0442\u043e\u0440\u044b \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u0430, \u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043c\u044b \u0441\u0435\u0433\u043e\u0434\u043d\u044f \u043f\u0443\u0431\u043b\u0438\u043a\u0443\u0435\u043c, \u0433\u043e\u0432\u043e\u0440\u044f\u0442, \u0447\u0442\u043e \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u0430\u044f [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":77784,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-77783","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=\"\u0412\u044b\u0432\u043e\u0434 \u043d\u043e\u0432\u043e\u0433\u043e \u0440\u0435\u043b\u0438\u0437\u0430 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0432 \u043f\u0440\u043e\u0434\u0430\u043a\u0448\u043d \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0442\u0449\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0441\u043e\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u044f \u0431\u0430\u043b\u0430\u043d\u0441\u0430 \u043c\u0435\u0436\u0434\u0443 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c\u044e \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u0438 \u043d\u0430\u0434\u0451\u0436\u043d\u043e\u0441\u0442\u044c\u044e \u0440\u0435\u0448\u0435\u043d\u0438\u044f.\" \/>\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\/metodika-razvyortyvaniya-proektov-primenyaemaya-v-slack\" \/>\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\u041c\u0435\u0442\u043e\u0434\u0438\u043a\u0430 \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432, \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u043c\u0430\u044f \u0432 Slack | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0412\u044b\u0432\u043e\u0434 \u043d\u043e\u0432\u043e\u0433\u043e \u0440\u0435\u043b\u0438\u0437\u0430 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0432 \u043f\u0440\u043e\u0434\u0430\u043a\u0448\u043d \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0442\u0449\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0441\u043e\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u044f \u0431\u0430\u043b\u0430\u043d\u0441\u0430 \u043c\u0435\u0436\u0434\u0443 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c\u044e \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u0438 \u043d\u0430\u0434\u0451\u0436\u043d\u043e\u0441\u0442\u044c\u044e \u0440\u0435\u0448\u0435\u043d\u0438\u044f.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/pt\/blog\/administrirovanie\/metodika-razvyortyvaniya-proektov-primenyaemaya-v-slack\" \/>\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=\"2020-04-13T23:42:28+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-04-13T23:42:28+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\udd47M\u00e9todo de implanta\u00e7\u00e3o de projetos utilizado no Slack | ProHoster","description":"A libera\u00e7\u00e3o de uma nova vers\u00e3o do projeto em produ\u00e7\u00e3o requer um cuidadoso equil\u00edbrio entre a velocidade de implanta\u00e7\u00e3o e a confiabilidade da solu\u00e7\u00e3o.","canonical_url":"https:\/\/prohoster.info\/pt\/blog\/administrirovanie\/metodika-razvyortyvaniya-proektov-primenyaemaya-v-slack","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\u041c\u0435\u0442\u043e\u0434\u0438\u043a\u0430 \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432, \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u043c\u0430\u044f \u0432 Slack | ProHoster","og:description":"\u0412\u044b\u0432\u043e\u0434 \u043d\u043e\u0432\u043e\u0433\u043e \u0440\u0435\u043b\u0438\u0437\u0430 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0432 \u043f\u0440\u043e\u0434\u0430\u043a\u0448\u043d \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0442\u0449\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0441\u043e\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u044f \u0431\u0430\u043b\u0430\u043d\u0441\u0430 \u043c\u0435\u0436\u0434\u0443 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c\u044e \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u0438 \u043d\u0430\u0434\u0451\u0436\u043d\u043e\u0441\u0442\u044c\u044e \u0440\u0435\u0448\u0435\u043d\u0438\u044f.","og:url":"https:\/\/prohoster.info\/pt\/blog\/administrirovanie\/metodika-razvyortyvaniya-proektov-primenyaemaya-v-slack","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":"2020-04-13T23:42:28+00:00","article:modified_time":"2020-04-13T23:42:28+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"77783","title":null,"description":null,"keywords":null,"keyphrases":{"focus":[],"additional":[]},"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":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 17:11:30","updated":"2026-08-11 12:50:20","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\/77783","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=77783"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts\/77783\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/media\/77784"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/media?parent=77783"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/categories?post=77783"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/tags?post=77783"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}