Mostrando entradas 1 para 10 de 26
Próximo 10 Entradas mais antigos »
Displaying posts with tag: Docker (reset)
Docker Compose: O que é? Para que serve? O que come?

Docker Compose é o orquestrador de containers da Docker. E como funciona um orquestrador em uma orquestra? Ele rege como uma banda deve se comportar/tocar durante uma determinada apresentação ou música.

Com o Docker Compose é a mesma coisa, mas os maestros somos nós! Nós que iremos reger esse comportamento através do arquivo chamado docker-compose, semelhante ao Dockerfile, escrito em YAML (acrônimo recursivo para YAML Ain’t Markup Language) é um formato de codificação de dados legíveis por humanos, o que torna fácil de ler e entender o que um Compose faz! Mais informações na Wikipedia.

Um exemplo prático de como funciona o Docker Compose é: imagine que temos uma aplicação Java ou PHP e que essa aplicação depende de um banco de dados MySQL e, para disponibilizar essa aplicação na internet, …

[Leia mais]
Dockerizando seu ambiente de desenvolvimento

Hoje, vou trazer um assunto que venho estudando e aprimorando que é a criação de ambiente Docker para desenvolvimento, onde se tem equipes envolvidas.

Vemos como é difícil o trabalho para configurar ambientes de desenvolvimento mesmo que sejam de fácil configuração, principalmente, quando um novo membro é integrado ao time.

Caso você use um ambiente Git de forma tradicional e possua servidores web configurados e está pensando em implementar um ambiente mais robusto e que promova uma integração de sua equipe, você poderá optar diretamente pelo Docker. Existem outras soluções como o Vagrant, que você pode até experimentar, mas chegará em um ponto que mudará para o Docker.

De onde vem a ideia de container?

O LXC (Linux Container) nasceu em meados de 2008, com o objetivo de ser uma alternativa ao comando chroot. Para quem não conhece, o chroot é um comando do Linux que muda o diretório root do …

[Leia mais]
APIs REST em ASP.NET Core – Guia de Referência

A intenção deste artigo é agrupar os diferentes conteúdos (artigos, vídeos, slides, posts) que venho produzindo sobre a implementação de APIs REST com o ASP.NET Core.

Continuarei mantendo em paralelo listagens similares, nas quais vocês poderão encontrar materiais que vão desde o .NET Core 1.0 e o ASP.NET Core 1.0, além das versões mais recentes da linguagem C# (7.0, 7.1, etc):

Autenticação com JWT (JSON …

[Leia mais]
Obter Shell no container Docker em execução

Isso me salvou mais vezes do que eu posso contar, podendo depurar um container em execução do jeito que você faria em uma VM “normal”.

Primeiro, veja quais containers estão em execução:

$ docker ps
CONTAINER ID        IMAGE               COMMAND                  [...] NAMES
925cc10d55df        66cc85c3f275        "gitlab-runner-ser..."   [...] runner-f500bed1-project-3888560-concurrent-0-mysql-0-wait-for-service
0ab431ea0bcf        3e3878acd190        "docker-entrypoint..."   [...] runner-f500bed1-project-3888560-concurrent-0-mysql-0
4d9de6c0fba1        nginx:alpine        "nginx -g 'daemon ..."   [...] nginx-container

Para obter um Shell (Bash) em um container de escolha, execute isso:

$ docker exec -i -t nginx-container /bin/bash

O nginx-container determina qual container você deseja inserir. É o nome na última coluna da saída docker ps.

Alternativamente, use a ID do container:

[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]
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]
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]
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]
Mostrando entradas 1 para 10 de 26
Próximo 10 Entradas mais antigos »