Mostrando entradas 1 para 8
Displaying posts with tag: devops (reset)
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]
Criando um Lamp com seu Docker

Bastante pessoas me pediram para criar uma documentação sobre como configurar um LAMP (Linux, Apache, Mysql e PHP) com o Docker.

Para esse artigo, usaremos o Docker e Docker-compose, mas não entremos nos detalhes básicos sobre seu uso. Caso ainda não sabia usar essas ferramentas, apresento os links abaixo para aprender as ferramentas citadas:

Para configurar um LAMP, faremos o uso de um ambiente com dois containers.

Crie uma pasta para seu projeto e dentro dessa pasta crie um arquivo docker-compose.yml com o seguinte conteúdo:

web:
image: tutum/apache-php …
[Leia mais]
Deploy ágil com Docker

Com vários projetos usando tecnologias diferentes, surgiu a necessidade de uma maneira mais ágil de organizar o deploy em produção, desses e de outros novos projetos que surgem. Uma dessas maneiras, que escolhi explicar nesse artigo, é rodar cada aplicação dentro de um contêiner. Quando fazemos isso, basta fazer uma única configuração, uma única vez, para garantir o mesmo funcionamento nas máquinas de desenvolvimento, homologação e produção. Isso permite que cada time de desenvolvimento seja responsável por decidir e gerenciar quais versões de bibliotecas e dependências seus projetos vão utilizar.

Na arquitetura abaixo, cada aplicação web roda dentro de um contêiner, expondo uma porta específica. Cada contêiner rodando uma aplicação web notifica ao serviço do etcd (que também roda dentro de um contêiner) seu próprio IP e a porta exposta. Certo? Agora vamos ao passo a passo.

Configurando o …

[Leia mais]
Python para DevOps: uma habilidade para se desenvolver

A complexidade das camadas que compõem um sistema web exige cada vez mais esforço dos full stack developers ou full stack integrators, que devido à natureza dinâmica dos requisitos da indústria de software precisam se manter atualizados com as novas linguagens de programação e ferramentas que surgem e se provam eficazes com o passar dos anos.

Tim Peters, um guru da linguagem Python e muito influente na comunidade, escreveu em uma lista (muito famosa) que deve existir um e, preferencialmente um, jeito óbvio de solucionar um problema.

Podemos implementar uma lista de requisitos de várias formas, mas a produtividade que cobiçamos está diretamente relacionada à nossa capacidade de escolher os melhores acessórios possíveis para a realização do trabalho.

Todas as linguagens de programação têm seus contras e …

[Leia mais]
Conhecendo a ferramenta Docker Compose – Parte 02

Oi, pessoal!

Seguindo nossa série de artigos sobre as ferramentas do ecossistema Docker, hoje veremos um pouco mais sobre o Docker Compose, uma ferramenta que vai agilizar no deploy de seu ambiente, utilizando uma forma simples, clara e padronizada.

O Docker Compose é uma ferramenta para a criação e execução de múltiplos containers de aplicação. Com o Compose, você usar um arquivo do tipo yaml para definir como será o ambiente de sua aplicação e usando um único comando você criará e iniciará todos os serviços definidos.

O Compose é ótimo para desenvolvimento, testes e homologação, bem como para melhorar seu fluxo de integração continua. Por exemplo:

  • Em ambiente de desenvolvimento: Você pode utilizar ele para simular todo o ambiente de produção, ou seja, precisando de serviço redis, php, mysql? Basta definir isso em um arquivo .yml e quando você executar o …
[Leia mais]
Link entre containers – Parte 01

Olá, pessoal!

Hoje vou mostrar como podemos interligar containers sem precisar expor as portas do nosso host. Mapeamentos de portas não são a única maneira de conectar um container ao outro. Docker também tem um sistema de ligação que permite interligar vários containers juntos e enviar as informações de conexão de um para outro.

A importância de nomear

Para estabelecer os links, o Docker conta com os nomes dos container. Você já viu que cada container que você criar tem um nome criado automaticamente, mas você mesmo pode dar um nome ao container. Essa nomeação fornece duas funções úteis:

  1. Torna-se útil quando você precisa criar containers com funções especificas e precisa lembrar-se deles, por exemplo um container web ou mysql etc.
  2. Fica mais fácil fazer o link entre os containers, pois você não precisa decorar um nome que foi gerado …
[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]
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 neste repositório, e 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 ele possui versões para Mac, Windows e Linux. Afinal, não importa o seu sistema operacional, o que importa é que seu ambiente é o mais próximo possível do ambiente de produção/homologação.

Configurar

A configuração é …

[Leia mais]
Mostrando entradas 1 para 8