Dapper + .NET Core 2.0: exemplos utilizando PostgreSQL e MySQL

Este novo artigo sobre Dapper traz exemplos de uso deste micro-ORM com PostgreSQL e MySQL, em conjunto com o package Dapper.Contrib (este último sendo uma extensão do Dapper, que facilita a implementação de operações de CRUD). Além disso, foram incluídas aqui, orientações a respeito de quais providers ADO.NET empregar ao optar estes SGBDs.

Caso tenha interesse em conhecer mais sobre o Dapper, consulte também os seguintes artigos:

[Leia mais]
Painel Permanente da Engenharia da Uber

Os engenheiros permanentes da Uber facilitam experiências perfeitas para passageiros e motoristas em todo o mundo, mantendo a confiabilidade 24 horas por dia em nossos aplicativos. Para executar essa confiabilidade, no entanto, precisamos garantir que nossas equipes permanentes estejam configuradas para o sucesso.

Até janeiro de 2016, a nossa caixa de ferramentas permanente esteve dispersa em vários sistemas, dificultando que os engenheiros respondessem com alertas de forma rápida e eficiente. Somado a isso, estava a incapacidade da solução de rastreamento que estávamos usando naquele momento – relatórios de e-mail – para efetivamente retransmitir informações contextuais sobre mudanças anteriores para engenheiros permanentes integrados. Precisávamos de uma solução que centralizasse a nossa caixa de ferramentas permanente e providenciasse o próximo engenheiro permanente com uma imagem mais completa do estado do sistema na …

[Leia mais]
Autenticação externa via PAM no MySQL Enterprise e Oracle Linux 7.4

O MySQL Enterprise Edition suporta um método de autenticação que permite que o MySQL Server use o PAM (Pluggable Authentication Modules) para autenticar usuários do MySQL.
O PAM pode ser visto como um subsistema do Linux e macOS que provê uma interface padronizada para autenticação. Ou seja, os aplicativos podem usar a interface do PAM para confirmar usuários e senhas. Pode-se configurar o PAM para vários métodos de autenticação, incluindo usuários e senhas armazenados localmente no próprio SO ou buscá-los remotamente em um diretório LDAP.
Com o plugin authentication_pam habilitado, o MySQL server vai delegar a autenticação dos usuários para o PAM. Você pode, por exemplo, usar os usuários/senhas do Sistema Operacional para fazer login no MySQL. Outro exemplo, se o SO e o PAM estiverem integrados a um serviço de identidade e autenticação, tais como Open LDAP ou Active Directory, o MySQL pode usar os …

[Leia mais]
Livro: Pro MySQL NDB Cluster



Adquiri recentemente o excelente livro Pro MySQL NDB Cluster na versão eBook. Faltava um guia definitivo, agora o temos.

O livro Pro MySQL NDB Cluster é escrito por dois engenheiros de suporte do time Oracle MySQL, Jesper W. Krogh e Mikiya Okuno. É um mergulho profundo de quase 700 páginas no produto, publicado pela Apress (em Inglês).

É importante enfatizar que há várias formas de trabalhar com o MySQL em Cluster. Há a Replicação nativa do MySQL, há também o MySQL InnoDB Cluster e o MySQL (NDB) Cluster. O livro é dedicado inteiramente a este último.

De forma sucinta, o MySQL NDB Cluster é uma solução que vai atender muito …

[Leia mais]
MySQL InnoDB Tablespace Encryption

MySQL Tablespace Encryption is relatively simple to set up. You have to be using MySQL 5.7, innodb_file_per_table


The MySQL documentation covers everything you need to set this up:

[Leia mais]
Cluster MySQL Escalável com Replicação Mestre-Escravo, Balanceador de Carga ProxySQL e Orchestrator

O MySQL é um dos bancos de dados relacionais de código aberto mais populares, usado por muitos projetos em todo o mundo, incluindo alguns incríveis em larga escala, como Facebook, Twitter, YouTube, etc. Obviamente, esses projetos precisam de um sistema de armazenamento de dados verdadeiramente confiável e altamente disponível para garantir o nível adequado de qualidade de serviço. E a primeira e a principal maneira de obter a maior eficiência do seu armazenamento de dados é configurar clustering de banco de dados para que ele possa processar um grande número de solicitações simultaneamente e permanecer funcional em condições de carga aumentada. No entanto, configurar essa solução a partir do zero pode parecer uma tarefa bastante complicada.

Assim, a equipe Jelastic preparou um pacote de instalação em um clique para você – um Cluster MySQL Escalável com replicação master-slave de fábrica, distribuição …

[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]
MariaDB MaxScale 2.1 com padrão para IPv6

Esta pequena atualização surpreendeu. Em um upgrade do MaxScale 2.0 para 2.1, o MaxScale alterou o endereço de ligação padrão de IPv4 para IPv6. Isso é mencionado nas notas de versão como esta:

O MaxScale 2.1.2 adicionou suporte para endereços IPv6. A interface padrão a que os ouvintes se ligam foi alterada do endereço IPv4 0.0.0.0 para o endereço IPv6 ::. Para vincular ao endereço IPv4 antigo, adicione address=0.0.0.0 à definição do ouvinte. – Upgrading MariaDB MaxScale from 2.0 to 2.1

O resultado é bastante significativo, porém, porque a autenticação no MySQL é geralmente baseada em host ou em IP, com permissões concedidas, como esta:

$ SET PASSWORD FOR 'xxx'@'10.0.0.1' = PASSWORD('your_password');

Observe o uso explícito do endereço IP …

[Leia mais]
MySQL – Criação de Tablespace

No começo, antes da versão 5.1, quando ainda não tínhamos o “innodb-file-per-table” todas as tabelas eram criadas, e, armazenadas dentro de uma única tablespace, chamada de  “shared tablespace”, em português “área compartilhada de tabelas”, ou ainda, em “brasileiro”: casa da mãe Joana. Os famosos arquivos IBDATAx. Uma baderna. Dados, índices, metadados, transações, catálogos… Enfim, tudo … Continue lendo MySQL – Criação de Tablespace →

MySQL 5.7 – Explain de Sessão

Como sempre digo… uma conexão em um banco de dados pode ser chamada de thread, sessão, conexão, etc. Cada um dá o nome que quiser à conexão feita em seu banco de dados. Nunca, jamais, discuta com o DBA! Cenário: Uma query está rodando no MySQL. Roubando sua paciência, além de recursos de I/O, memória, … Continue lendo MySQL 5.7 – Explain de Sessão →