Mostrando entradas 1 para 10
Displaying posts with tag: Infra (reset)
Desenvolvimento seguro?

No cenário atual de segurança da informação, percebemos que devemos estar preparados contra os possíveis ataques. Nesse contexto, um grande aliado contra as ameaças na integração de segurança no ciclo de desenvolvimento é a metodologia OWASP Software Security Assurance Process, também descrita pela sigla OSSAP.

Neste artigo, iremos falar um pouco sobre desenvolvimento seguro e como podemos mitigar algumas ameaças já no processo de desenvolvimento.

Por onde começar?

Para saber do que precisamos nos proteger e como devemos nos proteger, precisamos entender quais são as vulnerabilidades mais encontradas em aplicações web. Para tanto, utilizamos como base o guia Open Web Application Security Project, mais conhecido como …

[Leia mais]
Replicação Mestre-Escravo MySQL escalável em contêineres Docker

A replicação permite que você mantenha facilmente várias cópias dos dados do MySQL. Ele é obtido através dos dados do contêiner mestre sendo copiados automaticamente para um ou mais bancos de dados escravos.

Ter seus dados armazenados em vários contêineres de banco de dados pode ser muito útil para melhorar o desempenho, executar serviços de backup, analisar informações e aliviar falhas do sistema.

Podem ser destacados os seguintes casos de uso para implementação de replicação MySQL:

  • Soluções de escalabilidade – melhorando o desempenho espalhando a carga entre vários escravos onde todas as leituras ocorrem, enquanto todas as escritas e atualizações ocorrem no banco de dados mestre
  • Backups – executando backups no escravo sem …
[Leia mais]
Dockerizando MySQL na Uber Engineering

O sistema de armazenamento Schemaless da Uber Engineering alimenta alguns dos maiores serviços da Uber, como o Mezzanine. Schemaless é um datastore escalável e altamente disponível no topo do grupo de clusters do MySQL[1]. Gerenciar esses clusters foi bastante fácil quando tínhamos 16 deles. Atualmente, temos mais de 1.000 clusters contendo mais de 4.000 servidores de banco de dados e isso requer uma classe diferente de ferramentas.

Inicialmente, todos os nossos clusters eram gerenciados pelo Puppet, um monte de scripts ad hoc e operações manuais que não podiam escalar no ritmo da Uber. Quando começamos a procurar por uma melhor maneira de gerenciar o crescente número de clusters do MySQL, tivemos alguns requisitos básicos:

[Leia mais]
Validação contínua do backup do MySQL: restaurando backups

Os bancos de dados MySQL do Facebook estão espalhados pelos nossos data centers globais e precisamos ser capazes de nos recuperar de uma interrupção em qualquer um desses locais, em qualquer momento. Em tal evento de desastre, não só temos que recuperar o serviço o mais rápido e confiável possível, mas também precisamos garantir que não percamos dados no processo. Para esse efeito, criamos um sistema que verifica continuamente a capacidade de restaurar os nossos bancos de dados a partir de backups.

Nosso sistema de restauração consiste em dois componentes principais:

  • Continuous Restore Tier (CRT) – Responsável por todo agendamento e monitoramento em torno de restaurações. Ele procura bancos de dados com novos backups e cria tarefas de restauração para eles, monitora o progresso da restauração e garante que cada backup seja restaurado com êxito.
  • ORC …
[Leia mais]
Controle de Failover adicional para Amazon Aurora

O Amazon Aurora é um mecanismo de banco de dados relacional, compatível com o MySQL, que combina a velocidade e disponibilidade de bancos de dados comerciais avançados com a simplicidade e a economia de bancos de dados de código aberto (se quiser se inteirar mais, leia este meu artigo, em inglês: Amazon Aurora – New Cost-Effective MySQL-Compatible Database Engine for Amazon RDS).

O Aurora permite que você crie até 15 réplicas de leitura para aumentar a taxa de transferência de leitura e para uso como destinos de failover. As réplicas compartilham armazenamento com instâncias primárias e fornecem replicação compacta, de granulação fina que é quase síncrona, com um atraso de duplicação da ordem de 10 a 20 milissegundos.

Controle de …

[Leia mais]
Vagrant – as vantagens da virtualização em ambiente local

Olá, pessoal!

Quando conheci a ferramenta, achei realmente engraçado seu nome, uma ferramenta de Vagabundo. Seu nome vem da facilidade em que se cria ambientes diversos de forma rápida e prática.

Para facilitar, todos os exemplos foram colocados nesse repositório. Cada branch representa seu tipo de provisionamento.

A proposta é poder criar e configurar ambientes de desenvolvimento leves, reprodutíveis e portáteis.

Mudando sua forma de trabalhar

O download do Vagrant pode ser feito em seu site e possui versões para Mac, Windows e Linux. Afinal, não importa o seu sistema operacional, o que importa é que seu ambiente seja o mais próximo possível do ambiente de produção/homologação.

Configurar

A configuração é a mais …

[Leia mais]
Seu site tão rápido quanto o Google usando ElasticSearch

Muitos sites são referências na área em que atuam devido à relevância do conteúdo. Mas não basta oferecer informação/produto/serviço de qualidade, é preciso fazer com que o usuário encontre o que ele tanto procura. Sabe por quê? Porque quando ele não acha o que precisa, desiste e abandona o site.

E agora, o que devemos fazer? Uma solução é utilizar um mecanismo de FullTextSearch do MySQL que, aparentemente, irá resolver o problema por um tempo. Mas digamos que o CEO de sua loja virtual resolva fazer uma megaliquidação, no Black Friday (por exemplo) e, para turbinar os acessos e vender ainda mais, promove uma megacampanha no Google e no Facebook. De repente, o fluxo de pessoas procurando desesperadamente por promoções no site aumenta 10 vezes. É aí que começa a complicar para você que resolveu utilizar o FullTextSearch.

Será que você estava de fato preparado para enfrentar essa situação? Acho que você …

[Leia mais]
Os 12 fatores: uma metodologia para criação de projetos SaaS

Todo desenvolvedor já deve ter ouvido falar do Heroku, plataforma de cloud computing que revolucionou o desenvolvimento, ajudou a criar o movimento “devops” e que foi vendida por diversos milhares de dólares para a Salesforce. Se tem algo que eles têm muita experiência é na criação e suporte de aplicativos SaaS (software-as-a-service), principalmente aplicativos web.

Eles usaram toda essa experiência para criar o 12factor, que é uma espécie de “manifesto” com os 12 pontos que uma aplicação deveria seguir para ter sucesso nesse formato.

Vou citá-los abaixo e fazer alguns comentários, principalmente usando analogias e exemplos do mundo PHP, mas os conceitos se aplicam a qualquer plataforma.

1. Codebase

Todos os seus códigos devem ser gerenciados por um sistema de controle de …

[Leia mais]
DatabaseCast: alta disponibilidade na prática

Olá, pessoal! Neste episódio do DatabaseCast, Mauro Pichiliani (Twitter | Blog), Wagner Crivelini (@wcrivelini) e os convidados Nilton Pinheiro (@nilton_pinheiro) e Marcelo Fernandes (@marcelodba) colocam a alta disponibilidade para funcionar.

Saiba como o planejamento faz toda a diferença, porquê alinhar a tropa, esperar pelo GO ou NO GO, investir em hardware, configurar um cluster pelo assistente e pela linha de comando e se lembrar de vestir a cueca da sorte no dia D.

[Leia mais]
Introdução a Infra para Devs

Um belo dia você foi testar a aplicação que está desenvolvendo e descobriu que ela não responde como deveria. As consultas que ela enviava para o banco não retornam nada, e o navegador está calado.

Por onde começar? Bom, hoje você irá partir para um troubleshooting de rede. Existem várias situações e abordagens que envolvem esse assunto, mas iremos abordar a seguinte: o cliente será a máquina de aplicação. Você se conectará a ela e ao servidor que roda o banco. Imaginemos que são duas VMs.

Considerando que você já confirmou que a aplicação está no ar e a configuração de rede está igual a quando tudo estava rodando, neste host as coisas não mudaram.

Iremos agora para o servidor. Conecte-se a ele via ssh e começamos por aí as investigações, ok?

Infra:

Temos dois hosts envolvidos, um rodando a aplicação e o outro rodando o servidor de banco, um MySQL , por exemplo.

[Leia mais]
Mostrando entradas 1 para 10