<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	
	xmlns:georss="http://www.georss.org/georss"
	xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"
	>

<channel>
	<title>Infraestrutura Archives - Hiago Silva Souza</title>
	<atom:link href="https://www.hiago.me/category/infraestrutura/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.hiago.me/category/infraestrutura/</link>
	<description></description>
	<lastBuildDate>Tue, 16 Apr 2019 01:51:02 +0000</lastBuildDate>
	<language>pt-BR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.5.5</generator>

<image>
	<url>https://www.hiago.me/wp-content/uploads/2019/01/cropped-icon-hiagus-2-32x32.png</url>
	<title>Infraestrutura Archives - Hiago Silva Souza</title>
	<link>https://www.hiago.me/category/infraestrutura/</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">147457425</site>	<item>
		<title>Error Tracking: Localizando bugs antes de seus clientes ?</title>
		<link>https://www.hiago.me/2018/10/05/error-tracking-localizando-bugs-antes-de-seus-clientes/</link>
					<comments>https://www.hiago.me/2018/10/05/error-tracking-localizando-bugs-antes-de-seus-clientes/#comments</comments>
		
		<dc:creator><![CDATA[Hiago Souza]]></dc:creator>
		<pubDate>Fri, 05 Oct 2018 11:00:09 +0000</pubDate>
				<category><![CDATA[Angular]]></category>
		<category><![CDATA[Infraestrutura]]></category>
		<category><![CDATA[Ionic]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[NodeJS]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Sentry]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[error]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[qualidade]]></category>
		<category><![CDATA[sentry]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[tracking]]></category>
		<guid isPermaLink="false">https://www.hiago.me/?p=478</guid>

					<description><![CDATA[<p>Você tem problema em não conseguir simular ou prever os erros que acontecem com o seu software? Caso a resposta seja sim pare o que está fazendo e leia esse post agora! Vamos falar de uma ferramenta para error tracking que vai salvar sua vida e tudo isso com um custo 0. O que é &#8230;</p>
<p>The post <a href="https://www.hiago.me/2018/10/05/error-tracking-localizando-bugs-antes-de-seus-clientes/">Error Tracking: Localizando bugs antes de seus clientes ?</a> appeared first on <a href="https://www.hiago.me">Hiago Silva Souza</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Você tem problema em não conseguir simular ou prever os erros que acontecem com o seu software? Caso a resposta seja sim pare o que está fazendo e leia esse post agora! Vamos falar de uma ferramenta para error tracking que vai salvar sua vida e tudo isso com um custo 0.</p>
<h1>O que é Error Tracking?</h1>
<p><span style="display: inline !important; float: none; background-color: transparent; color: #333333; cursor: text; font-family: 'Source Sans Pro',Arial,sans-serif; font-size: 16px; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;">[wp_ad_camp_3]</span></p>
<p>Error Tracking é o ato de você rastrear erros. Aplicado na área de software o &#8220;Bug Tracking&#8221; é um aplicativo de software projetado para ajudar na <strong>garantia da qualidade de software</strong>. Ter um sistema de rastreamento de bugs é extremamente valioso no desenvolvimento de software, e eles são usados extensivamente por empresas que desenvolvem produtos de software.</p>
<p>Existem sistemas para gerir erros como o MantisBT mas hoje vamos falar de um carinha &#8220;diferente&#8221;. Apesar do MantisBT ser uma ferramenta muito popular todo o seu processo querendo ou não inicia com a iteração do usuário e nosso objetivo no post é descobrir bugs antes dos clientes reportarem ou pelo menos descobrir o máximo possível.</p>
<h1>O que eu ganho com isso?</h1>
<p>Podemos começar com tempo? Sim né, tempo é dinheiro! Se você diminui tempo para resolver problemas, automaticamente ganha tempo para criar novas soluções. Após isso acredito que á confiança de seus clientes, já pensou um cliente seu reportar um problema e você talvez já ter a solução? Ou melhor ainda, talvez ele nem precise reportar isso a você! Lindo né? Não podemos deixar de falar da qualidade de seu produto, pois a evolução vai ser constante.</p>
<p>Existem muitos ganhos poderia ficar aqui falando sobre todos eles, mas com os ganhos relatados acima já vale a pena saber mais sobre o assunto né?</p>
<h1>Onde eu posso aplicar?</h1>
<p>Praticamente em qualquer produto de software, seja aplicativos mobile, api&#8217;s, front-end, é escrito usando uma linguagem de programação suportada (acredite o suporte é grande) então você pode rastrear os erros fazendo uso da ferramenta. Eu já apliquei em aplicações escritas em PHP, Java, Ionic, FrontEnd&#8217;s HTML + Javascript&#8230;</p>
<h1>Qual o trabalho para implantar?</h1>
<p><span style="display: inline !important; float: none; background-color: transparent; color: #333333; cursor: text; font-family: 'Source Sans Pro',Arial,sans-serif; font-size: 16px; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;">[wp_ad_camp_2]</span></p>
<p>Posso dizer que foi uma das ferramentas mais rápidas que já implantei na vida! Menos de 15 minutos e uau ? estava rastreando tudo. Mas isso vai alem de rastrear os erros, então temos um trabalhinho em reanalisar nosso processo de software, como por exemplo. Você versiona sua ferramenta usando um VCS? Sua aplicação tem uma politica de versionamento como por exemplo o <a href="https://semver.org/" target="_blank" rel="noopener">Semantic Versioning</a>? Isso tudo é importante mas vamos deixar esses detalhes para um próximo post.</p>
<h1>Qual ferramenta é essa, fala logo Hiago ?!</h1>
<p><img decoding="async" class="alignnone size-medium wp-image-479" src="https://www.hiago.me/wp-content/uploads/2018/10/skydive-654822cb21db40a6b29907dc217cb209edf32a552938c0f44758c80b853e5037.svg" alt="" width="1" height="1" /> <img decoding="async" class=" wp-image-480 alignleft" src="https://www.hiago.me/wp-content/uploads/2018/10/sentry-dev-heroes-300x214.png" alt="" width="149" height="106" srcset="https://www.hiago.me/wp-content/uploads/2018/10/sentry-dev-heroes-300x214.png 300w, https://www.hiago.me/wp-content/uploads/2018/10/sentry-dev-heroes-768x549.png 768w, https://www.hiago.me/wp-content/uploads/2018/10/sentry-dev-heroes.png 817w" sizes="(max-width: 149px) 100vw, 149px" />Apresento a vocês o <a href="https://sentry.io/welcome/">Sentry</a> ele atende tudo o que mencionei de forma simples, clara e objetiva! O Sentry é uma plataforma de rastreamento de erro de código aberto que fornece lógica completa de aplicativos, contexto profundo e visibilidade em toda a pilha em tempo real. <em><strong>Pela primeira vez</strong></em>, os desenvolvedores podem corrigir erros em todos os estágios do ciclo de vida do produto, bem antes dos usuários encontrarem um problema.</p>
<h1></h1>
<h1>Vamos colocar a mão na massa?</h1>
<p>Então vamos ver isso funcionando né pessoal, muito papo e pouca ação ninguém gosta disso. Para o exemplo a seguir eu gostaria de deixar umas coisas claras.</p>
<ol>
<li>O Sentry é gratuito caso você queira baixar o sistema e hospedar ele por conta própria, mas ele oferece serviços em cloud e isso é pago (mas tem uma conta free com algumas limitações). Para mostrar o funcionamento, vou estar fazendo o uso da conta free deles.</li>
<li>Capturar informações do usuário sem seu consentimento &#8220;mesmo que o produto seja seu&#8221; pode causar problemas jurídicos, então deixe bem claro isso em sua política de privacidade e consulte o jurídico de sua empresa.</li>
</ol>
<p>Agora que já sabemos essas informações, vamos lá fazer um <a href="https://sentry.io/signup/" target="_blank" rel="noopener">registro no sentry</a> e criar uma conta grátis. Após preencher os dados ele já vai perguntar em qual linguagem seu projeto está escrito, pela popularidade e facilidade vou mostrar o exemplo para rastrear erros no javascript ok? Então podem selecionar o JavaScript colocar um nome para o seu projeto e clicar em &#8220;Create Project&#8221;.</p>
<p>Ao finalizar esse processo você vai receber as instruções para configurar seu projeto, no nosso caso é só incluir uma tag `script` em nosso index.html e logo após executar a função do sentry para capturar os erros, <em>acho bom lembrar que esses devem ser os primeiros scripts de sua aplicação a serem carregados</em>&#8230; E após isso clicar em All Done.</p>
<p><img fetchpriority="high" decoding="async" class="alignnone wp-image-484" src="https://www.hiago.me/wp-content/uploads/2018/10/sentry-error-info-300x173.png" alt="" width="409" height="236" srcset="https://www.hiago.me/wp-content/uploads/2018/10/sentry-error-info-300x173.png 300w, https://www.hiago.me/wp-content/uploads/2018/10/sentry-error-info-768x443.png 768w, https://www.hiago.me/wp-content/uploads/2018/10/sentry-error-info.png 812w" sizes="(max-width: 409px) 100vw, 409px" /></p>
<h2>Testando uma captura</h2>
<p><span style="display: inline !important; float: none; background-color: transparent; color: #333333; cursor: text; font-family: 'Source Sans Pro',Arial,sans-serif; font-size: 16px; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;">[wp_ad_camp_1]</span></p>
<p>Agora é simples, você pode gerar um problema &#8220;proposital&#8221; e ver como ele chega no Sentry. Vou deixar o código HTML abaixo para vocês fazerem seus testes, lembrem-se de mudar a linha 6 com suas credenciais.</p>
<pre class="brush: xml; title: ; notranslate">
&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;pt-br&quot;&gt;
&lt;head&gt;
	&lt;title&gt;Teste Sentry - Hiago.me&lt;/title&gt;
	&lt;script src=&quot;https://browser.sentry-cdn.com/4.0.6/bundle.min.js&quot; crossorigin=&quot;anonymous&quot;&gt;&lt;/script&gt;
	&lt;script&gt;Sentry.init({ dsn: 'INSIRA_SEU_DSN' });&lt;/script&gt;
	
	&lt;script&gt;
		var gerarErro = function () {
			var teste = null;
			teste.Acao();
		};
	&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
	&lt;h1&gt;Testando erro&lt;/h1&gt;
	&lt;button onclick=&quot;gerarErro()&quot;&gt;Clique para gerar um erro&lt;/button&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre>
<p>Após clicarem no botão ele vai chamar um método dentro de um variável que é null e isso vai ser capturado e reportado para você ??. Conforme a imagem abaixo.</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-485" src="https://www.hiago.me/wp-content/uploads/2018/10/erro-gerado-sentry-300x202.png" alt="" width="478" height="322" srcset="https://www.hiago.me/wp-content/uploads/2018/10/erro-gerado-sentry-300x202.png 300w, https://www.hiago.me/wp-content/uploads/2018/10/erro-gerado-sentry.png 761w" sizes="(max-width: 478px) 100vw, 478px" /></p>
<h1>Conclusão</h1>
<p>Com o Sentry é muito simples fazer o seu Error Tracking, ele é uma ferramenta enorme e tem muitas outras funcionalidades que não quis citar aqui no post. Essa foi uma apresentação de uma série de posts que vou fazer sobre o assunto. Espero que tenham gostado e quero que fiquem por dentro de outras dicas por isso curtam minha <a href="https://www.facebook.com/hiagodotme" target="_blank" rel="noopener">página no facebook</a> =)</p>
<p>The post <a href="https://www.hiago.me/2018/10/05/error-tracking-localizando-bugs-antes-de-seus-clientes/">Error Tracking: Localizando bugs antes de seus clientes ?</a> appeared first on <a href="https://www.hiago.me">Hiago Silva Souza</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.hiago.me/2018/10/05/error-tracking-localizando-bugs-antes-de-seus-clientes/feed/</wfw:commentRss>
			<slash:comments>4</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">478</post-id>	</item>
		<item>
		<title>Ionic &#038; Angular: Fazendo o CORS seu amigo</title>
		<link>https://www.hiago.me/2018/09/08/ionic-angular-fazendo-o-cors-seu-amigo/</link>
					<comments>https://www.hiago.me/2018/09/08/ionic-angular-fazendo-o-cors-seu-amigo/#comments</comments>
		
		<dc:creator><![CDATA[Hiago Souza]]></dc:creator>
		<pubDate>Sat, 08 Sep 2018 18:03:07 +0000</pubDate>
				<category><![CDATA[Infraestrutura]]></category>
		<category><![CDATA[Ionic]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[PWA]]></category>
		<category><![CDATA[Segurança]]></category>
		<category><![CDATA[angular]]></category>
		<category><![CDATA[cors]]></category>
		<category><![CDATA[ionic]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[segurança]]></category>
		<category><![CDATA[técnicas]]></category>
		<guid isPermaLink="false">https://www.hiago.me/?p=418</guid>

					<description><![CDATA[<p>Se esse post chamou sua atenção, com certeza você já teve ou ainda tem problemas com o CORS. Meu objetivo aqui é mostrar a importância desse mecanismo de segurança e como fazer o seu uso de forma consciente e clara. Antes de criticarmos ou falar que algo é ruim, é bom entendermos o motivo pelo &#8230;</p>
<p>The post <a href="https://www.hiago.me/2018/09/08/ionic-angular-fazendo-o-cors-seu-amigo/">Ionic &#038; Angular: Fazendo o CORS seu amigo</a> appeared first on <a href="https://www.hiago.me">Hiago Silva Souza</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Se esse post chamou sua atenção, com certeza você já teve ou ainda tem problemas com o CORS. Meu objetivo aqui é mostrar a importância desse mecanismo de <em><strong>segurança</strong></em> e como fazer o seu uso de forma consciente e clara.</p>
<p>Antes de criticarmos ou falar que algo é ruim, é bom entendermos o motivo pelo qual aquilo existe.</p>
<h1>Porque o CORS existe?</h1>
<p>O CORS (do inglês cross-origin resource sharing) é um mecanismo que permite que os conteúdos de domínios diferentes sejam compartilhados. Ele existe para evitar que o conteúdo de um determinado domínio seja utilizado por outro sem a autorização do mesmo.</p>
<p>Exemplo: supondo que eu queira exibir os conteúdos do youtube em meu site, faço uma análise das requisições HTTP&#8217;s feitas pelo youtube, obtendo os parâmetros da chamada criaria uma UI para usar as informações do youtube, tirando assim proveiro dos dados deles. O CORS impediria que essa ação fosse executada na <em>camada do navegador</em>, ou seja é uma segurança para você!</p>
<h1>Como funcionar o CORS?</h1>
<p>O CORS vai analisar se o recurso que você tenta carregar está sob o mesmo domínio e porta. Com isso mesmo que você tenha sua API rodando no endereço &#8220;http://localhost:8080&#8221; e sua aplicação ionic/angular rodando em suas respectivas portas (8100/4200) ao chamar a API com toda certeza vai ter sua requisição bloqueada e vai receber a mensagem de CORS.</p>
<p>Quando você não está sob o mesmo domínio você vai notar na parte de redes que uma requisição http gera 2 outras chamadas. A primeira chamada usa o verbo http OPTIONS, ele é utilizado pelo navegador para perguntar ao  seu servidor/aplicação quais os tipos de requisição sua aplicação permite e é no OPTIONS que você deve informar suas configurações do CORS através de Headers.</p>
<h2>Opções para o CORS</h2>
<ol>
<li><strong>Access-Control-Allow-Origin: </strong>Header utilizado para informar quais domínios você <em><strong>permite</strong></em> que use o seu conteúdo.</li>
<li><strong>Access-Control-Allow-Methods:</strong> Header utilizado para informar quais verbos http você <em><strong>permite</strong></em> a partir dos <em><strong>domínios</strong></em> liberados.</li>
<li><strong>Access-Control-Allow-Headers:</strong> Header utilizado para informar quais &#8220;Headers&#8221; os domínios liberados podem enviar para você.</li>
<li><strong>Access-Control-Max-Age:</strong> Header utilizado para informar quanto tempo é válido essas configurações de CORS.</li>
</ol>
<h1>O que não devo fazer?</h1>
<p><span style="display: inline !important; float: none; background-color: transparent; color: #333333; cursor: text; font-family: 'Source Sans Pro',Arial,sans-serif; font-size: 16px; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;">[wp_ad_camp_3]</span></p>
<p>Bom acho que a primeira coisa que você deve se questionar é: Preciso realmente liberar o CORS em seu ambiente? Mesmo em aplicações ionic a liberação não é necessária. O mesmo para Angular, vendo que em produção o domínio será o mesmo (ou não rs).</p>
<p>Mas vamos lá, supondo que você chegou a conclusão que liberar o CORS é realmente necessário, não faça isso &#8220;<strong>Access-Control-Allow-Origin: *</strong>&#8221; ao fazer isso você está simplesmente tirando uma camada de segurança que foi criada para você. Caso você esteja rodando uma aplicação ionic (já compilada), não é necessário liberar o CORS mas caso queira liberar é necessário apenas  permitir o endereço http://localhost:8080/ que é o endereço que o ionic utiliza para carregar sua aplicação compilada ou seja a liberação correta (caso deseje fazer) é &#8220;<strong>Access-Control-Allow-Origin: http://localhost:8080</strong>&#8220;.</p>
<p>Outra coisa bem importante é o <strong>Access-Control-Max-Age </strong>geralmente nos tutoriais ninguém comenta sobre ele. Lembra aquela segunda requisição? A do tipo OPTIONS, então ela é feita quando expira o <strong>Access-Control-Max-Age </strong>então se você não falar para o navegador que essas definições só mudam de X em X tempos todo e qualquer request que você fizer o seu servidor vai receber duas requisições (cada browser tem seu tempo padrão). Em ambiente de desenvolvimento, geralmente desabilitamos os cache&#8217;s e com isso o <strong>Access-Control-Max-Age</strong> não vai fazer efeito. Mas em ambiente de produção é algo muito importante.</p>
<h1>Como assim não preciso liberar o CORS para o ionic?</h1>
<p>Sim é isso mesmo, não precisa! E já vou explicar o motivo. Quando você desenvolve seu aplicativo, você geralmente testa seu projeto seu navegador e ele implementa o Same-Origin-Policy por isso que você tem problemas com CORS e acaba fazendo tudo quanto é tipo de liberação. Porém quando o seu aplicativo é compilado para APK ou IPA o ionic de forma nativa consegue desabilitar o CORS da WebView (e eles já fazem isso).</p>
<p>Vale lembrar que para o iOS o ionic sempre usou o <em><strong>UIWebView</strong></em> só que agora eles migraram para o <em><strong>MKWebView</strong></em> e no iOS eles não conseguem desabilitar o CORS nessa webview em especifico =/. Então ou você faz um downgrade da webview, ou você libera o CORS para a origem &#8220;<strong>http://localhost:8080</strong>&#8221; ai é uma decisão pessoal, basta acessar a <a href="https://ionicframework.com/docs/wkwebview/">documentação</a> com as melhorias propostas pela <em><strong>MKWebView</strong></em> e colocar na balança.</p>
<p>Para fazer o downgrade da WebView basta colocar o conteúdo abaixo em seu config.xml para a plataforma iOS:</p>
<pre class="brush: xml; title: ; notranslate">

&lt;preference name=&quot;CordovaWebViewEngine&quot; value=&quot;CDVUIWebViewEngine&quot; /&gt;

</pre>
<h1>E meu ambiente de desenvolvimento, como faço?</h1>
<p>Então para você desabilitar a checagem do CORS em seu ambiente de desenvolvimento você pode fazer uso de uma <a href="https://chrome.google.com/webstore/detail/moesif-origin-cors-change/digfbfaphojjndkpccljibejjbppifbc">extensão do google chrome </a>mas eu não recomendo, tive muitos problemas com essa extensão. Ela liberou o CORS mas sempre me trouxe problema com encodings em outros sites que eu acessava.</p>
<h2>Não quer usar a extensão?</h2>
<p>Então vamos lá, o ionic e o angular tem um recurso bem interessante e muito pouco conhecido que tem exatamente essa função (impedir problemas com CORS) são os proxies.  É algo bem simples, mas eles são apenas para ambientes de desenvolvimento. Então não se esqueça de criar uma configuração para seu endpoint  🙂</p>
<h2>O que é um proxy? Como ele funciona?</h2>
<p>Um proxy basicamente é um serviço intermediário entre você e seu servidor de aplicação, ele recebe sua requisição e repassa ela para o servidor original.</p>
<p>Vamos criar o seguinte cenário: Tenho a url (http://localhost:8888/) rodando um backend, então vamos criar um mapeamento para informar que tudo que for chamado na uri <strong>/api </strong>seja passado para o backend.</p>
<p>Vamos supor que você esteja desenvolvendo em uma aplicação ionic, ao digitar o endereço http://localhost:8100/api/criar-usuario ele vai redirecionar internamente no processo do ionic serve a requisição para http://localhost:8888/criar-usuario então sua aplicação vai estar chamando uma URL que está no mesmo <strong>domínio</strong> e na mesma <strong>porta </strong>assim a Same-Origin-Policy não vai ser aplicada e você pode seguir seu desenvolvimento sem necessidade de liberar o CORS para desenvolver.</p>
<h1>Configurando o proxy no ionic</h1>
<p><span style="display: inline !important; float: none; background-color: transparent; color: #333333; cursor: text; font-family: 'Source Sans Pro',Arial,sans-serif; font-size: 16px; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;">[wp_ad_camp_2]</span></p>
<p>Para configurar o proxy no ionic basta abrir o arquivo <strong>ionic.config.json </strong>e criar uma nova propriedade chamada <strong>proxies</strong> e nela definir seus paths.</p>
<p>Exemplo:</p>
<pre class="brush: jscript; title: ; notranslate">
{
	&quot;name&quot;: &quot;app-meuapp&quot;,
	&quot;app_id&quot;: &quot;&quot;,
	&quot;type&quot;: &quot;ionic-angular&quot;,
	&quot;proxies&quot;: &#x5B;{
		&quot;path&quot;: &quot;/api&quot;,
		&quot;proxyUrl&quot;: &quot;http://localhost:8888/&quot;
	}],
	&quot;integrations&quot;: {
		&quot;cordova&quot;: {}
	}
}
</pre>
<h1>Configurando o proxy no Angular</h1>
<p>Para fazer a configuração de seu proxy no Angular o processo é semelhante. Para isso é necessário criar um arquivo JSON com as configurações os paths desejados. Então vamos criar o arquivo <strong>proxy.conf.json </strong>e vamos colocar o conteúdo abaixo. Após isso basta você inicializar seu projeto com o comando <strong>ng serve &#8211;proxy-config proxy.conf.json.</strong></p>
<p>Observação: Recomendo que coloque esse comando na chave start do <strong>package.json</strong> assim você só vai precisar rodar o comando <strong>npm start</strong></p>
<p>Conteúdo para o proxy.conf.json</p>
<pre class="brush: jscript; title: ; notranslate">
{
  &quot;/api&quot;: {
    &quot;target&quot;: &quot;http://localhost:8888&quot;,
    &quot;secure&quot;: false
  }
}
</pre>
<h1>Conclusão</h1>
<p><span style="display: inline !important; float: none; background-color: transparent; color: #333333; cursor: text; font-family: 'Source Sans Pro',Arial,sans-serif; font-size: 16px; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;">[wp_ad_camp_1]</span></p>
<p>O CORS é um recurso de segurança muito importante e precisamos gerenciar ele de acordo com as necessidades do nosso projeto, fazendo o uso das técnicas mencionadas nesse post é possível trabalhar sem dor de cabeça e claro ter um desenvolvimento saudável e seguro.</p>
<p>The post <a href="https://www.hiago.me/2018/09/08/ionic-angular-fazendo-o-cors-seu-amigo/">Ionic &#038; Angular: Fazendo o CORS seu amigo</a> appeared first on <a href="https://www.hiago.me">Hiago Silva Souza</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.hiago.me/2018/09/08/ionic-angular-fazendo-o-cors-seu-amigo/feed/</wfw:commentRss>
			<slash:comments>28</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">418</post-id>	</item>
		<item>
		<title>Seu produto está preparado para a nuvem?</title>
		<link>https://www.hiago.me/2017/06/16/seu-produto-esta-preparado-para-a-nuvem/</link>
					<comments>https://www.hiago.me/2017/06/16/seu-produto-esta-preparado-para-a-nuvem/#respond</comments>
		
		<dc:creator><![CDATA[Hiago Souza]]></dc:creator>
		<pubDate>Fri, 16 Jun 2017 15:30:52 +0000</pubDate>
				<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[Infraestrutura]]></category>
		<category><![CDATA[aws]]></category>
		<category><![CDATA[cloud]]></category>
		<category><![CDATA[cloud computing]]></category>
		<category><![CDATA[dicas]]></category>
		<category><![CDATA[google cloud]]></category>
		<category><![CDATA[infraestrutura]]></category>
		<category><![CDATA[nuvem]]></category>
		<guid isPermaLink="false">http://www.hiago.me/?p=219</guid>

					<description><![CDATA[<p>Essa é uma pergunta que não é feita por muitas pessoas, então estou aqui para colocar uma pulga atrás de sua orelha. Leia o post e veja se seu produto está preparado para a nuvem e confira algumas dicas para tornar seu software &#8220;escalável&#8221;. [wp_ad_camp_3] O que é a nuvem? Em computação, computação em nuvem &#8230;</p>
<p>The post <a href="https://www.hiago.me/2017/06/16/seu-produto-esta-preparado-para-a-nuvem/">Seu produto está preparado para a nuvem?</a> appeared first on <a href="https://www.hiago.me">Hiago Silva Souza</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Essa é uma pergunta que não é feita por muitas pessoas, então estou aqui para colocar uma pulga atrás de sua orelha. Leia o post e veja se seu produto está preparado para a nuvem e confira algumas dicas para tornar seu software &#8220;escalável&#8221;.</p>
<p>[wp_ad_camp_3]</p>
<h1>O que é a nuvem?</h1>
<p>Em computação, computação em nuvem (cloud computing, do inglês) se refere á uma utilização de memória e capacidade de armazenamento e processamento de computadores e servidores interligados pela internet.</p>
<h1>E meu produto precisa estar preparado?</h1>
<p>Sim! Algo muito bom na nuvem é que você pode &#8220;escalar&#8221; o uso de seus recursos computacionais. Hoje existe duas maneiras para se fazer a escalabilidade, são elas a escalabilidade vertical, e a horizontal.</p>
<p>[wp_ad_camp_1]</p>
<p>A escalabilidade vertical trata-se de elevar os recursos de seu servidor, um exemplo disso é você possuir um servidor com 4 núcleos de processamento e eles não darem conta de uma grande demanda, então se faz necessário fazer um upgrade aumentando os recursos da máquina, mas vai chegar um dia que nem o mais potente dos computadores vai aguentar essa malha de processamento.</p>
<p>Já a escalabilidade horizontal veio para resolver esse tipo de problema. A sua proposta é de escalar mais servidores para dividir o processamento, ou seja, você pode ter quantos servidores for necessário e eles são adicionados e removidos de acordo com a demanda.</p>
<p>Resumindo: Se você possui um e-commerce hoje e ele não gera muito processamento, pode ser que por algum motivo específicos (uma promoção, uma blackfriday) uma grande malha de acessos pode vir a aparecer e se a sua infra-estrutura não for escalável seu serviço vai ficar indisponível.</p>
<h1>Como preparo meu produto?</h1>
<p>Existem vários fatores e eles estão na área de desenvolvimento do seu produto. O investimento para desenvolver um produto escalável e preparado para a nuvem pode parecer alto, mas o retorno compensa.</p>
<p>[wp_ad_camp_2]</p>
<p>Mas vamos falar um pouco mais sobre isso em outros posts, enquanto isso deixo aqui algumas dicas:</p>
<ol>
<li>Não guarde os arquivos enviados (upload&#8217;s) no seu servidor de aplicação, lembre-se pode haver um servidor hoje, 300 amanhã e 10 depois de amanhã. Essas máquinas servem para processar, não para armazenar! Para isso use servidores de arquivos compartilhados, ou serviços como o Amazon S3.</li>
<li>Não guarde sessão localmente, a requisição de um usuário autenticado em sua máquina de aplicação 1 pode cair na maquina de aplicação 2 em algum momento. Procure armazenar as sessões no banco de dados ou em uma solução própria para isso.</li>
<li>Lembre-se o cache pode ser seu inimigo na hora de desenvolver, mas é muito importante para redução de custos e para fornecer maior velocidade para o usuário. Então desenvolva seu produto, projetando um modelo de cache.</li>
<li>Use soluções de PaaS para seu banco de dados. Você só precisa seguir a instruções do serviço e apontar para os servidores de banco dados.</li>
<li>Não execute processos pesados em foreground, crie filas para ele e libere as conexões. O máximo que vai acontecer é demorar para a operação ser concluída, porém isso nunca vai deixar alguém que esteja esperando uma operação mais simples, esperando&#8230; Um bom exemplo de empresa que faz isso é o facebook, quando você faz o post de um vídeo.</li>
</ol>
<h1></h1>
<p>The post <a href="https://www.hiago.me/2017/06/16/seu-produto-esta-preparado-para-a-nuvem/">Seu produto está preparado para a nuvem?</a> appeared first on <a href="https://www.hiago.me">Hiago Silva Souza</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.hiago.me/2017/06/16/seu-produto-esta-preparado-para-a-nuvem/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">219</post-id>	</item>
	</channel>
</rss>
