Mostrando entradas 1 para 10 de 673
Próximo 10 Entradas mais antigos »
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]
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]
Um ambiente simples usando Kubernetes e OpenShift Next Gen – Parte 03

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

Como comentei no artigo anterior, existem alguns problemas no ambiente que construí, e o principal deles é que os Pods não totalmente efêmeros, ou seja, se eu adicionar novos dados nele, no momento que o Pod fosse destruído, os dados iriam junto e sem backup!

E agora iremos tratar esse primeiro problema. Caso não tenha mais os fontes até o estado do artigo anterior, ou prefira acompanhar o meu andamento, pode pode pegá-los aqui: …

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

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

Conhecendo os componentes básicos explicados no post anterior, posso preparar a aplicação que mostrei para o Kubernetes.

O primeiro passo é definir quais são os Pods do meu cluster.

Embora o primeiro impulso seja colocar cada um dos contêineres em um Pod distinto e seguir em frente, esse não é necessariamente a melhor forma de defini-los. Por exemplo, em uma situação, certos contêineres têm o mesmo objetivo, ou dependem muito um do outro …

[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]
Um ambiente simples usando Kubernetes e OpenShift Next Gen – Parte 01

Como parte das minhas metas dentro da Coderockr está a construção de um cluster usando algumas das ferramentas de orquestração de contêineres que existem no mercado; como o Docker Swarm, Kubernetes, Apache Mesos etc.

Optei pelo Kubernetes no momento, tanto pelo pedigree, criado pelo Google e mantido pela Cloud Native Computing Foundation; quanto pela oferta de grandes clouds como a Red Hat, Azure e Google.

Quando estava avaliando as opções disponíveis, o Jean Carlo Machado (colega da CompuFácil), me sugeriu usar o …

[Leia mais]
Como fazer subconsultas: um passo a passo

Apesar da maioria das consultas feitas por quem está começando em SQL ser com SELECT externos, nesse artigo vou apresentar um recurso bastante útil que vai ajudar você a melhorar a legibilidade da sua query assim como, em alguns casos, otimizar o tempo do retorno das suas informações para o usuário. As chamadas subconsultas.

Uma subconsulta nada mais é do que uma instrução SELECT dentro de outro SELECT que retorna algumas colunas específicas que são usadas em algumas funções como INSERT e UPDATE por exemplo.

1. Tipos de subconsultas

Segue abaixo os tipos de subconsultas:

  • Subconsultas de uma única linha: retornam zero ou uma linha para a instrução SQL externa;
  • Subconsultas de várias linhas: retornam uma ou mais linhas para a SQL externa;
  • Subconsultas de várias colunas: retornam mais de uma coluna …
[Leia mais]
Pacote PHP notável: PHP Elastic Search para MySQL

O MySQL tem um bom mecanismo de pesquisa de texto completo, mas quando você tenta usar pesquisas de texto completo e, ao mesmo tempo, tem o aplicativo atualizando o banco de dados, isto pode ser muito lento porque atualizar os índices deixa mais lento o resto dos acessos de banco de dados.

Muitas vezes, é mais rápido indexar os dados a serem pesquisados com um banco de dados separado.

A Elastic search é um mecanismo independente para indexação e pesquisa de dados usando uma API REST.

Esta classe pode indexar e pesquisar registros MySQL usando o Elastic Search. Desta forma, você pode fornecer uma pesquisa de texto completo em dados em um banco de dados MySQL sem sobrecarregar o servidor MySQL principal.

O pacote PHP Elastic Search para MySQL é um dos poucos pacotes do PHP que …

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