{"id":3791,"date":"2017-08-17T17:29:20","date_gmt":"2017-08-17T20:29:20","guid":{"rendered":"http:\/\/blog.dialhost.com.br\/?p=3791"},"modified":"2019-05-03T17:38:37","modified_gmt":"2019-05-03T20:38:37","slug":"micro-servicos-e-cloud-computing","status":"publish","type":"post","link":"https:\/\/www.dialhost.com.br\/blog\/micro-servicos-e-cloud-computing\/","title":{"rendered":"Micro servi\u00e7os e cloud computing"},"content":{"rendered":"\n<p>Para a edi\u00e7\u00e3o de hoje gostaria de mostrar um pouco da arquitetura de micro servi\u00e7os utilizando uma estrutura em cloud computing. Assim, mostrarei um pouco sobre esta estrutura e como podemos tirar ganhos em diversos projetos.<\/p>\n\n\n\n<div id=\"toc_container\" class=\"have_bullets\"><p class=\"toc_title\">T&oacute;picos<\/p><ul class=\"toc_list\"><li><a href=\"#os-micro-servicos\">Os micro servi\u00e7os<\/a><ul><li><a href=\"#resultado-disto-tudo\">Resultado disto tudo<\/a><\/li><\/ul><\/li><li><a href=\"#onde-o-cloud-computing-entra-nisto-tudo\">Onde o cloud computing entra nisto tudo?<\/a><\/li><li><a href=\"#mas-nem-tudo-sao-flores\">Mas, Nem tudo s\u00e3o flores<\/a><\/li><\/ul><\/div>\n<h2><span id=\"os-micro-servicos\">Os micro servi\u00e7os<\/span><\/h2>\n\n\n\n<p>Antes de mais nada \u00e9 preciso entender alguns pontos chaves do conceito de micro servi\u00e7os. Imagine um cen\u00e1rio onde voc\u00ea possui uma aplica\u00e7\u00e3o que deve suportar uma gama diferente de usu\u00e1rios que utilizam browsers desktop, mobile e alguns ainda utilizam sua aplica\u00e7\u00e3o atrav\u00e9s de um app nativo. Complicando um pouco mais esta aplica\u00e7\u00e3o possui uma API aberta para integra\u00e7\u00e3o do seu sistema com outros sistemas (Algo muito comum por exemplo, no facebook, google, twitter e etc).<\/p>\n\n\n\n<p>Concordam que est\u00e1 aplica\u00e7\u00e3o, sem nem mesmo falarmos das funcionalidades, teria um corpo complexo e demasiadas responsabilidades para conseguir gerenciar? Mas porque deixar isto tudo nas m\u00e3os de apenas um sistema?!<\/p>\n\n\n\n<p>Desde que comecei a aprender um pouco sobre orienta\u00e7\u00f5es a objetos (h\u00e1 uns 8-9 anos atr\u00e1s) comecei a relacionar sistemas como o pr\u00f3prio sistema org\u00e2nico. Ou seja, cada coisa deve ter sua responsabilidade espec\u00edfica e simples. Assim, ela pode exercer melhor e com mais desempenho sua determinada fun\u00e7\u00e3o.<\/p>\n\n\n\n<p>Quando comecei a conhecer a arquitetura de <strong>micro servi\u00e7os<\/strong> consegui enxergar perfeitamente esta organicidade no macro de um projeto. Poxa, porque um projeto com tantos requisitos e tantas responsabilidades precisam sem emaranhar em apenas uma estrutura <strong>monol\u00edtica<\/strong> gigantesca. Consegue imaginar a complexidade de c\u00f3digos, classes que v\u00e3o se desembrulhando para responder \u00e0s regras exemplificadas acima?!<\/p>\n\n\n\n<p>O conceito de <strong>micro servi\u00e7os<\/strong>&nbsp;traz uma proposta simplicadora. Vamos reduzir este grande sistema em um sistema com <strong>N <\/strong>servi\u00e7os auxiliares e espec\u00edficos&nbsp;que ser\u00e3o respons\u00e1veis por cada regra. Um servi\u00e7o respons\u00e1vel pelo tratamento de clientes, um pela comunica\u00e7\u00e3o da API que por sua vez trabalhar\u00e1 com um servi\u00e7o que montar\u00e1 a interface para o usu\u00e1rio e assim por diante&#8230; Posso trazer mil analogias com o que vemos no mundo real em grandes organiza\u00e7\u00f5es, orquestras, times e etc. Os <strong>micro servi\u00e7os<\/strong> trabalham de forma grupal para trazer um resultado unificado.<\/p>\n\n\n\n<h3><span id=\"resultado-disto-tudo\">Resultado disto tudo<\/span><\/h3>\n\n\n\n<ul><li>Micro servi\u00e7os devem ser considerados como sistemas relativamente pequenos assim temos maior simplicidade em entender seu c\u00f3digo<\/li><li>Maior produtividade no desenvolvimento, desde o processamento de menos arquivos pela IDE de desenvolvimento at\u00e9 menor curva de aprendizado do servi\u00e7o.<\/li><li>Facilidade ao escalar seu desenvolvimento. J\u00e1 que estes servi\u00e7os trabalham em paralelo \u00e9 poss\u00edvel que diferentes times de desenvolvimento possam trabalhar e fazer o deploy de cada servi\u00e7o de forma independente.<\/li><li>Atualizar apenas um servi\u00e7o para novas tecnologias (como um novo framework, uma nova vers\u00e3o de PHP etc) se torna mais simples, r\u00e1pido e menos custoso do que readaptar todo o sistema.<\/li><\/ul>\n\n\n\n<h2><span id=\"onde-o-cloud-computing-entra-nisto-tudo\">Onde o cloud computing entra nisto tudo?<\/span><\/h2>\n\n\n\n<p>Com a separa\u00e7\u00e3o de cada servi\u00e7o, imagine estes servi\u00e7os trabalhando em paralelo, cada um com sua pr\u00f3pria inst\u00e2ncia e configura\u00e7\u00e3o ideal para o funcionamento mais otimizado poss\u00edvel do projeto. Cheguei apenas a esta lista de possibilidades.<\/p>\n\n\n\n<ul><li><strong>Otimiza\u00e7\u00e3o de recursos:<\/strong> Voc\u00ea pode elevar ou descer recursos ajustando de acordo com a necessidade espec\u00edfica de cada servi\u00e7o.<\/li><li><strong>Otimiza\u00e7\u00e3o dos custos:&nbsp;<\/strong>Com a maior flexibilidade no ajuste dos recursos voc\u00ea notar\u00e1 que seus custos ser\u00e3o otimizados apenas para o que voc\u00ea&nbsp;realmente utiliza.<\/li><li><strong>Otimiza\u00e7\u00e3o do sistema:<\/strong> Como cada inst\u00e2ncia \u00e9 isolada voc\u00ea pode configurar o servidor de acordo com a necessidade espec\u00edfica do servi\u00e7o em quest\u00e3o. <strong>Ex.:<\/strong> Voc\u00ea pode configurar um sistema de cacheamento para servi\u00e7os que demandem informa\u00e7\u00f5es est\u00e1ticas, configurar um inst\u00e2ncia apenas com otimiza\u00e7\u00f5es para bancos de dados.<\/li><li><strong>Estabilidade do sistema:<\/strong> Se um servi\u00e7o tiver um pico de uso, de mem\u00f3ria por exemplo, por conta de um processo, um outro servi\u00e7o n\u00e3o ser\u00e1 penalizado por isto. O mesmo ocorre com o funcionamento do sistema, como um todo, se houver um deploy bugado de apenas um servi\u00e7o.<\/li><li><strong>Escalabilidade:<\/strong>&nbsp;\u00c9 bem mais r\u00e1pido e econ\u00f4mico escalar em diversas inst\u00e2ncias um \u00fanico servi\u00e7o que j\u00e1 n\u00e3o \u00e9 suportado mais com apenas uma inst\u00e2ncia do que o sistema completo.<\/li><\/ul>\n\n\n\n<p>Como integrante da equipe de desenvolvimento da <a href=\"https:\/\/www.dialhost.com.br\" target=\"_blank\" rel=\"noopener noreferrer\">DialHost<\/a>, vi e participei da implementa\u00e7\u00e3o de alguns <strong>micro servi\u00e7os<\/strong>&nbsp;em nossos projetos e conseguimos ver principalmente uma melhora grande na produtividade da equipe em manuten\u00e7\u00f5es e maior facilidade para resolver bugs que ocorriam. Conseguimos tamb\u00e9m dinamizar e escalar de forma mais eficiente ao utilizar nossa solu\u00e7\u00e3o de Cloud computing colocando apenas os recursos ideais para cada servi\u00e7os que criamos<\/p>\n\n\n\n<h2><span id=\"mas-nem-tudo-sao-flores\">Mas, Nem tudo s\u00e3o flores<\/span><\/h2>\n\n\n\n<p>A principal quest\u00e3o a se avaliar antes de seguir na arquitetura de <strong>micro servi\u00e7os&nbsp;<\/strong>\u00e9 que o time de desenvolvedores precisa ter o conhecimento para criar um sistema que funcione de forma distribuida. Como em um trabalho em equipe na vida real, se os servi\u00e7os n\u00e3o trabalharem com sintonia seu sistema n\u00e3o funcionar\u00e1. A equipe de desenvolvimento fica respons\u00e1vel por criar um mecanismo de comunica\u00e7\u00e3o entre estes servi\u00e7os, afinal eles s\u00e3o servi\u00e7os isolados que podem trabalhar em conjunto.<\/p>\n\n\n\n<p>As principais IDE&#8217;s do mercado hoje em dia, ainda s\u00e3o focadas na cria\u00e7\u00e3o de aplica\u00e7\u00f5es monol\u00edticas. Assim, voc\u00ea n\u00e3o ter\u00e1 muito apoio destas ferramentas para a cria\u00e7\u00e3o de aplica\u00e7\u00f5es distribu\u00eddas.<\/p>\n\n\n\n<p>Por fim, se n\u00e3o for muito bem planejado o uso dos microservi\u00e7os pode ter um efeito reverso na otimiza\u00e7\u00e3o dos seus recursos. \u00c9 preciso avaliar bem at\u00e9 que ponto voc\u00ea quer ou precisa separar um sistema em diversos micro servi\u00e7os para que ele n\u00e3o acabe aumentando seu consumo de mem\u00f3ria ou at\u00e9 mesmo processamento.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Conhe\u00e7a mais um pouco da arquitetura de micro servi\u00e7os utilizando uma estrutura em cloud computing. Neste artigo, mostrarei sobre esta estrutura e como podemos tirar ganhos em diversos projetos.\t\t\t\t<\/p>\n","protected":false},"author":1,"featured_media":8891,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[15,17,12],"tags":[51,52,149],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v15.0 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Micro servi\u00e7os e cloud computing - Blog DialHost<\/title>\n<meta name=\"description\" content=\"Neste artigo mostrarei sobre a arquitetura em micro servi\u00e7os e como podemos tirar ganhos em diversos projetos com cloud computing.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.dialhost.com.br\/blog\/micro-servicos-e-cloud-computing\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Micro servi\u00e7os e cloud computing - Blog DialHost\" \/>\n<meta property=\"og:description\" content=\"Neste artigo mostrarei sobre a arquitetura em micro servi\u00e7os e como podemos tirar ganhos em diversos projetos com cloud computing.\" \/>\n<meta property=\"og:url\" content=\"\/blog\/micro-servicos-e-cloud-computing\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog DialHost\" \/>\n<meta property=\"article:publisher\" content=\"http:\/\/www.facebook.com\/DialHost\" \/>\n<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/DialHost\" \/>\n<meta property=\"article:published_time\" content=\"2017-08-17T20:29:20+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2019-05-03T20:38:37+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.dialhost.com.br\/blog\/wp-content\/uploads\/2019\/04\/og-image.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"630\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:image\" content=\"http:\/\/blog.dialhost.com.br\/wp-content\/uploads\/2017\/08\/micro-servicos-cloud-scl-link.png\" \/>\n<meta name=\"twitter:creator\" content=\"@dialhost\" \/>\n<meta name=\"twitter:site\" content=\"@dialhost\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/#organization\",\"name\":\"DialHost Internet\",\"url\":\"https:\/\/www.dialhost.com.br\/blog\/\",\"sameAs\":[\"http:\/\/www.facebook.com\/DialHost\",\"https:\/\/www.instagram.com\/dialhost_oficial\/\",\"https:\/\/www.linkedin.com\/company\/dialhost-internet\",\"https:\/\/www.youtube.com\/channel\/UCAiqiX8IiqTSfA8wQhpzgXQ\",\"https:\/\/twitter.com\/dialhost\"],\"logo\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/#logo\",\"inLanguage\":\"pt-BR\",\"url\":\"https:\/\/www.dialhost.com.br\/blog\/wp-content\/uploads\/2019\/03\/marca-dialhost.png\",\"width\":81,\"height\":81,\"caption\":\"DialHost Internet\"},\"image\":{\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/#logo\"}},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/#website\",\"url\":\"https:\/\/www.dialhost.com.br\/blog\/\",\"name\":\"Blog DialHost\",\"description\":\"Os melhores conte\\u00fados sobre Desenvolvimento Web, Marketing e Neg\\u00f3cios\",\"publisher\":{\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":\"https:\/\/www.dialhost.com.br\/blog\/?s={search_term_string}\",\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/micro-servicos-e-cloud-computing\/#primaryimage\",\"inLanguage\":\"pt-BR\",\"url\":\"https:\/\/www.dialhost.com.br\/blog\/wp-content\/uploads\/2017\/08\/micro-servicos-cloud-thumb.png\",\"width\":730,\"height\":449},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/micro-servicos-e-cloud-computing\/#webpage\",\"url\":\"https:\/\/www.dialhost.com.br\/blog\/micro-servicos-e-cloud-computing\/\",\"name\":\"Micro servi\\u00e7os e cloud computing - Blog DialHost\",\"isPartOf\":{\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/micro-servicos-e-cloud-computing\/#primaryimage\"},\"datePublished\":\"2017-08-17T20:29:20+00:00\",\"dateModified\":\"2019-05-03T20:38:37+00:00\",\"description\":\"Neste artigo mostrarei sobre a arquitetura em micro servi\\u00e7os e como podemos tirar ganhos em diversos projetos com cloud computing.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/micro-servicos-e-cloud-computing\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.dialhost.com.br\/blog\/micro-servicos-e-cloud-computing\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/micro-servicos-e-cloud-computing\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"item\":{\"@type\":\"WebPage\",\"@id\":\"\/blog\/\",\"url\":\"\/blog\/\",\"name\":\"In\\u00edcio\"}},{\"@type\":\"ListItem\",\"position\":2,\"item\":{\"@type\":\"WebPage\",\"@id\":\"\/blog\/micro-servicos-e-cloud-computing\/\",\"url\":\"\/blog\/micro-servicos-e-cloud-computing\/\",\"name\":\"Micro servi\\u00e7os e cloud computing\"}}]},{\"@type\":\"Article\",\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/micro-servicos-e-cloud-computing\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/micro-servicos-e-cloud-computing\/#webpage\"},\"author\":{\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/#\/schema\/person\/a0b10cbe35449dea173a06d4664f9fcc\"},\"headline\":\"Micro servi\\u00e7os e cloud computing\",\"datePublished\":\"2017-08-17T20:29:20+00:00\",\"dateModified\":\"2019-05-03T20:38:37+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/micro-servicos-e-cloud-computing\/#webpage\"},\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/micro-servicos-e-cloud-computing\/#primaryimage\"},\"keywords\":\"cloud,cloud computing,Micro servi\\u00e7os\",\"articleSection\":\"Cloud Computing,Desenvolvimento,Tecnologias\",\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.dialhost.com.br\/blog\/micro-servicos-e-cloud-computing\/#respond\"]}]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/#\/schema\/person\/a0b10cbe35449dea173a06d4664f9fcc\",\"name\":\"DialHost Internet\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/#personlogo\",\"inLanguage\":\"pt-BR\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/05feec2f99aef1c42b09aeaa637ee66f?s=96&r=g\",\"caption\":\"DialHost Internet\"},\"description\":\"H\\u00e1 mais de 18 anos proporcionando um servi\\u00e7o de hospedagem de sites voltado 100% na Experi\\u00eancia e Sucesso do Cliente, prezando a qualidade, transpar\\u00eancia e seguran\\u00e7a.\",\"sameAs\":[\"https:\/\/www.facebook.com\/DialHost\",\"https:\/\/www.instagram.com\/dialhost_oficial\/\",\"https:\/\/www.linkedin.com\/company\/dialhost-internet\",\"https:\/\/twitter.com\/dialhost\",\"https:\/\/www.youtube.com\/channel\/UCAiqiX8IiqTSfA8wQhpzgXQ\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","_links":{"self":[{"href":"https:\/\/www.dialhost.com.br\/blog\/wp-json\/wp\/v2\/posts\/3791"}],"collection":[{"href":"https:\/\/www.dialhost.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dialhost.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dialhost.com.br\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dialhost.com.br\/blog\/wp-json\/wp\/v2\/comments?post=3791"}],"version-history":[{"count":0,"href":"https:\/\/www.dialhost.com.br\/blog\/wp-json\/wp\/v2\/posts\/3791\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.dialhost.com.br\/blog\/wp-json\/wp\/v2\/media\/8891"}],"wp:attachment":[{"href":"https:\/\/www.dialhost.com.br\/blog\/wp-json\/wp\/v2\/media?parent=3791"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dialhost.com.br\/blog\/wp-json\/wp\/v2\/categories?post=3791"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dialhost.com.br\/blog\/wp-json\/wp\/v2\/tags?post=3791"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}