Mostrando entradas 1 para 10 de 21
Próximo 10 Entradas mais antigos »
Displaying posts with tag: Infra (reset)
O Caminho para o uChat: Construindo a solução de bate papo interna da Uber

Há dois anos, a aplicação de bate papo anterior da Uber começou a apresentar sinais de que ele não conseguiria acompanhar nosso crescimento. Haviam travamentos na aplicação, oscilações de performance, e quedas que prejudicavam a habilidade de se comunicar efetivamente online de nossa empresa. Com a satisfação do cliente no menor nível de todos os tempos, nós precisávamos de uma nova solução.

Com operações em mais de 620 cidades, era crucial que identificássemos uma solução de bate papo que permitiria aos colaboradores da Uber se comunicar confiavelmente em nossos aparelhos desktop e móveis, independentemente de onde eles estivessem no mundo. Para atingir esse objetivo, nós estabelecemos alguns requisitos principais. Para começar, precisávamos de algo que pudesse ser escalonado para suportar nossa crescente população de colaboradores e, como …

[Leia mais]
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]
Validando componentes vulneráveis com Maven

Tivemos a Semana da Segurança na Concrete, e para continuar debatendo o tema, hoje vou mostrar como configurar um projeto Maven para validarmos o uso de bibliotecas e frameworks vulneráveis, usando o OWASP Dependency Check.

Um pouco sobre o projeto OWASP Dependency Check

Dependency Check é uma solução open-source que leva em conta o OWASP Top 10 A-9 “Uso de Componentes com Vulnerabilidades Conhecidas”. Atualmente, a solução pode ser usada para escanear aplicações Java e .NET em busca de componentes vulneráveis conhecidos. Em fase experimental, devido às taxas de falsos positivos e falsos negativos, também pode ser usada para aplicações Python, Ruby, PHP (Composer) e Node.js. …

[Leia mais]
Cacheamento de informações com Redis

Finalizei o meu artigo anterior com a promessa de trazer um texto sobre o uso do Redis para fazer o cacheamento de informações do WordPress. É preciso deixar bem claro que estes procedimentos podem ser úteis para diversas configurações do Redis como cacheamento, irei apenas utilizar de exemplo o WordPress, já que ele é um CMS bem popular e acredito que tem muita gente que vai gostar de ter estas dicas para configurar seu WordPress e deixar ele voando!

Para os que ainda estão um pouco perdidos com relação ao que é o Redis, volto a explicar. O Redis é um servidor de estruturas de dados que pode ser usado como um servidor de banco de dados ou utilizado em paralelo com o MySQL para aumentar o seu desempenho.

Nele podemos gravar informações em Strings, Integers, Lists, Sets, Ordered Sets e Hash …

[Leia mais]
Estrutura em cloud para grandes sites WordPress

Estamos em uma era que não podemos negar o poder do WordPress em administrar sites, muito além dos antigos blogs que víamos sempre por aí. Grandes sites, portais e até mesmos lojas virtuais já podem utilizar esta plataforma para se estabelecerem online – e estão fazendo isso! É o caso de sites como o da USP (Universidade de São Paulo) e o próprio iMasters.

Sites como esses têm em comum alguns pontos que não permitem mais que eles funcionem normalmente dentro de uma estrutura compartilhada. A utilização de plugins para controle
e segurança do WordPress, e o nível de personalização do próprio WordPress para atender às demandas destes tipos de projetos podem ser um fator a se analisar. Mas sem dúvida o
fluxo de processos, acessos e atualizações de banco de dados que superam, e muito, qualquer …

[Leia mais]
Guia de configuração de containers para aplicativos Java complexos

O sonho sagrado de todo desenvolvedor é reduzir o tempo de produção dos projetos através da automatização de processos DevOps e reduzir significativamente o custo de implementação de novas tecnologias. Para ajudar os desenvolvedores Java a conquistarem a onda da tecnologia de containers, reunimos vários tutoriais e estatísticas úteis dentro de um guia:

  • Migração de VM para Containers
  • Distribuição Automatizada de Tráfego para Implantação Blue-Green, Updates Zero Downtime e Failover Protection
  • Java e Limites de Memória em Containers: LXC, Docker e OpenVZ
  • Live Migration de Containers: Por Trás das Cenas
  • Ferramentas Java e Tecnologias Landscape Report 2016
  • Perfil do Desenvolvedor Java Bem Sucedido em 2016
  • Plataforma Java Elastic Cloud

Obtenha a versão completa dos …

[Leia mais]
Atualização do Amazon Aurora – Leitura paralela adiantada, indexação rápida, consciência NUMA

O Amazon Aurora é, atualmente, o serviço AWS que cresce mais rápido!

Como um banco de dados relacional projetado para a nuvem (leia Amazon Aurora – New Cost-Effective MySQL-Compatible Database Engine for Amazon RDS para saber mais), o Aurora oferece um excelente desempenho, dimensionamento fácil do armazenamento até 64 TB, durabilidade e alta disponibilidade. Uma vez que o Aurora foi projetado para ser compatível com o MySQL, os nossos clientes têm sido capazes de mover suas aplicações existentes e construir novas com facilidade.

Com a compatibilidade do MySQL “em cima” e a arquitetura voltada para nuvem do Aurora “embaixo”, temos um monte de espaço para inovar. Podemos tornar o Aurora ainda mais eficiente e ainda mantê-lo compatível …

[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]
Projetando o Euclid para tornar a engenharia de marketing do Uber mais sábia

Rápido, granular e com ROI confiável no desempenho de anúncios foram o nosso estopim para construir Euclid, a plataforma de marketing interno do Uber. No início deste ano, a Euclid substituiu um sistema legado que processava os dados do ROI manualmente, enquanto lutava para se manter escalável com o Uber e a complexidade dos dados.

Ao contrário de qualquer solução fora da caixa, o Hadoop, ecossistema Euclid baseado em Spark, nos permite escalar o crescimento do Uber com uma arquitetura de plugin de API agnóstico de canal chamada MaRS, bem como um pipeline ETL personalizado que cede dados heterogêneos em um único esquema para uma consulta simples. Uma camada visual em cima da Euclid permite que os profissionais de marketing tirem métricas de ROI para otimizar o gasto com anúncios. As capacidades de reconhecimento de …

[Leia mais]
Mostrando entradas 1 para 10 de 21
Próximo 10 Entradas mais antigos »