Mostrando entradas 1 para 10 de 681
Próximo 10 Entradas mais antigos »
MySQL Performance Tuning: sempre configure o InnoDB Buffer Pool

Se você for um usuário iniciante de MySQL, provavelmente vai esbarrar com a necessidade de fazer algum tuning no servidor para melhorar a performance e vai ficar na dúvida de onde iniciar. Alguns ajustes básicos podem ser antecipados, já no momento da instalação do servidor, sendo o principal innodb_buffer_pool_size. O InnoDB Buffer Pool é a principal área da memória usada pelo InnoDB, que é o storage engine default do MySQL. O ideal é que haja neste buffer espaço suficiente para os dados "mais quentes". A quantidade de memória que o MySQL vai reservar para o Buffer Pool é controlada pela variável de sistema innodb_buffer_pool_size.
Após a instalação do MySQL, o valor padrão da variável de sistema innodb_buffer_pool_size é de 128 MB (versão 5.7), o que é bem baixo para os hardwares atuais. Você pode verificar qual atual configurado no seu MySQL com o comando: mysql> SHOW GLOBAL VARIABLES LIKE …

[Leia mais]
Subindo uma aplicação Ruby on Rails 5 em um servidor Linux

Este é um processo que se faz necessário de vez em quando na vida de um desenvolvedor Ruby. Muitos dirão: “ah, usa Heroku”; mas acredite jovem padawan, existe um caminho melhor a seguir.

Este é o caminho mais sujeito a falhas, afinal, você ter o controle sobre tudo lhe permite que deixe falhas críticas na segurança. Mas é só você estudar um pouco e tomar bastante cuidado que a sua segurança não estará tão comprometida.

Eu resolvi escrever este artigo também para documentar passo-a-passo qual o procedimento que eu costumo fazer neste tipo de situação. Alguns amigos sempre me questionam como fazê-lo e esta será a forma mais prazerosa, tanto para mim, quanto para vocês, de aprender.

Resumão do que faremos hoje:

  • Criando uma máquina virtual
  • Instalando Rbenv
  • Instalando Ruby
  • Instalando Node.JS
  • Instalando Rails
  • Instalando …
[Leia mais]
Executando containers no Docker

Em resumo, o Docker é uma ferramenta que permite executar serviços facilmente em uma máquina. Ele garante que esses serviços estarão sempre no mesmo estado em todas as execuções, independentemente do sistema operacional ou bibliotecas do sistema. Isso pode parecer um pouco estranho, mas tente lembrar quantas vezes você já ouviu algo como “Eu não sei o que está acontecendo, ele funciona em minha máquina…”.

Ao lidar com aplicativos corporativos, é uma prática comum promover um artefato (uma versão de lançamento) através de muitos ambientes (como teste e casos de uso) antes de eventualmente implantá-lo para produção. No mundo ideal, esses ambientes deveriam ser como um espelho do ambiente de produção, mas na prática isso não é o que acontece na maior parte do tempo. Normalmente, esses ambientes são executados em diferentes máquinas, em diferentes sistemas operacionais e em diferentes versões da biblioteca, de …

[Leia mais]
Automação e provisionamento ágil com Ansible

Hoje, vou falar um pouco sobre minha experiência com uma ferramenta muito útil de automação, o Ansible. Estou trabalhando em uma aplicação que precisa de uma série de dependências e serviços para funcionar. Meu desafio era, além de automatizar todo o processo de instalação dessas dependências, encontrar uma forma de manter todos os pacotes atualizados com a mesma versão, validar a disponibilidade dos serviços, agilizar o processo de Deploy e encapsular tudo isso de forma que eu, futuramente, possa rodar essa mesma aplicação e suas dependências em outros servidores, mantendo sempre tudo atualizado e replicado em real time para os nós.

Eu precisava pensar em uma maneira de validar de forma idempotent essas máquinas, mas só se existissem essas dependências nelas. Ou seja, o comando só poderia ser aplicado quando ele realmente necessitasse ser aplicado. Explicando de uma forma mais …

[Leia mais]
Backup online no MySQL com xtrabackup

Meu último post referente a backups foi a bastante tempo atrás. Embora ainda válido, não é aconselhável para ser utilizado como backup diário, então resolvi mostrar uma outra opção, o XtraBackup.

Com XtraBackup, você pode realizar backups sem interromper leituras e escritas (ele requer lock por um período bem curto de tempo para pegar coordenadas do binlog).
Hoje vou mostrar como realizar backup completos utilizando a ferramenta.

Instalação:

Para realizar a instalação, eu aconselho utilizar os repositórios para Yum / Apt-get:

Centos / Redhat:

sudo yum install http://www.percona.com/downloads/percona-release/redhat/0.1-4/percona-release-0.1-4.noarch.rpm
sudo yum …
[Leia mais]
Peewee – Um ORM Python minimalista

Peewee é um ORM destinado a criar e gerenciar tabelas de banco de dados relacionais através de objetos Python. Segundo a wikipedia, um ORM é:

Mapeamento objeto-relacional (ou ORM, do inglês: Object-relational mapping) é uma técnica de desenvolvimento utilizada para reduzir a impedância da programação orientada aos objetos utilizando bancos de dados relacionais. As tabelas do banco de dados são representadas através de classes e os registros de cada tabela são representados como instâncias das classes correspondentes.

O que o ORM faz é, basicamente, transformar classes Python em tabelas no banco de dados, além de permitir construir querys usando diretamente objetos Python ao invés de SQL.

O Peewee é destinado a projetos de …

[Leia mais]
Criando um chatbot de notícias para distribuir conteúdo através Messenger do Facebook

Neste artigo, veremos como você pode criar um chatbot de notícias no Facebook. Você poderá então utilizar os serviços do IBM Watson para melhorar o chatbot. Nesse tutorial, eu mostro como desenvolver e aplicar o chatbot na plataforma Facebook Messenger. O chatbot de notícias nessa série utiliza o conteúdo do developerWorks como exemplo, mas você pode alterar a fonte do conteúdo de acordo com sua necessidade. 

Como o chatbot do exemplo funciona 

O chatbot traz até você notícias e tutoriais, e para ele realizar esse trabalho, você deve identificar os tópicos pelos quais você se interessa.

1. No Messenger do Facebook, abra uma conversa com o developerWorks News Bot.

2. Especifique os tópicos que interessam a você.

[Leia mais]
Defql: Consultas SQL como funções Elixir

O mundo Elixir é funcional. Não há objetos ou instâncias. Nesse caso, eu me fiz uma pergunta.

Preciso de ORM?

Minha resposta a essa pergunta é não.

Preciso de dados. Dados puros que vêm diretamente do banco de dados. Outra pergunta que vem à minha mente.

Preciso de um DSL para consultar banco de dados?

Outra resposta negativa.

Temos uma ótima linguagem criada para consultar o banco de dados. SQL, lembra?

E se eu pudesse criar uma função Elixir que tenha um corpo SQL? E se eu pudesse usar essa função exatamente como qualquer outra função do Elixir? Seria ótimo, não é?

Podemos arquivar isso usando o sistema macro muito poderoso do Elixir. No entanto, essa também é uma boa maneira de aprender como as macros do Elixir funcionam.

Para arquivar isso, eu comecei a escrever …

[Leia mais]
Go: carregando arquivos Sped Fiscal 95% mais rápido

Recentemente, eu e o Ricardo Gomes da Fix Auditoria fizemos pair programming com a missão de melhorar o parse de EFD Fiscal que ele esta desenvolvendo em Golang.

O nosso objetivo era fazer o parser ganhar alguma performance e também resolver alguns pequenos problemas na carga dos arquivos.

O que o sistema faz até o momento é o seguinte: lê vários arquivos texto contendo centenas de milhares de registros, parseia esse conteúdo linha a linha e por fim grava tudo no banco de dados.

Essa tarefa estava levando 37 minutos, com 36 arquivos com mais de 50 mil linhas cada, e agora leva aproximadamente 2 minutos. Um ganho de performance de 95%. Nada mau para uma manhã de domingo falando besteiras e nerdices.

Essas foram as mudanças que fizemos

A primeira coisa …

[Leia mais]
Um ambiente simples usando Kubernetes e OpenShift Next Gen – Parte 04

Este artigo é a quarta parte de uma série sobre o básico necessário para usar o Kubernetes, caso você não tenha lido o texto anterior, recomendo lê-lo e depois voltar aqui para não ficar perdido.

Como citei antes, ainda existe um ponto de desconforto no ambiente, que é o fato das senhas e usuários estarem expostos diretamente nas configurações. O Kubernetes oferece uma solução para esse problema: os Secrets.

E agora irei mostrar como adicioná-los ao projeto.

Caso não tenha mais as fontes até o estado do artigoanterior, ou prefira …

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