Publicado em 29-05-2021
·
6 minutos de leitura
Aplicações são desenvolvidas e muitas vezes executadas como serviços em servidores, os quais podem rodar uma única aplicação, ou compartilhar seus recursos de hardware entre diversas aplicações. Entretanto podem existir conflitos entre as aplicações, como requisitarem a mesma porta de rede, exigirem versões diferentes de biblioteca e afins, além de questões de segurança. Nesse primeiro texto será abordado como isolar o sistema de arquivos entre os processos dessas aplicações, de forma que um processo não consiga visualizar os arquivos referentes a outra aplicação.
Publicado em 05-06-2021
·
3 minutos de leitura
Todo serviço é um processo que está em execução no sistema operacional, e é possível extrair informações de um processo, ou até mesmo interagir com ele através de sinais, como o enviado para que um serviço releia suas configurações, sem precisar parar e iniciá-lo novamente para aplicar as alterações, ou para pedir que ele finalize (pare de executar). Um processo poderia se aproveitar desses mecanismos para obter informações, ou causar uma indisponibilidade.
Publicado em 12-06-2021
·
7 minutos de leitura
Uma das formas de comunicação mais comum entre processos é através da rede, o que permite tanto a comunicação de processos no mesmo computador, quanto em diferentes computadores. A comunicação pela rede normalmente utiliza portas TCP ou UDP, porém algumas aplicações podem querer utilizar a mesma porta de rede, como a porta 80 TCP que é a porta padrão para serviços HTTP, ou 443 TCP para HTTPS, o que geraria conflitos.
Publicado em 19-06-2021
·
10 minutos de leitura
Nos textos anteriores dessa série vimos como isolar uma aplicação nos contextos de sistema de arquivos, tabela de processos e pilha de rede. Porém isso pode se tornar um pouco complexo para ser gerenciado na mão, precisando executar algo como ip netns exec app1 unshare -fp --mount-proc chroot /media/sistema bash
apenas para rodar um terminal dentro de determinados espaços de nomes, sem contar toda a configuração necessária para isso. Mas existem ferramentas que facilitam criar e executar aplicações dentre de espaço de nomes, o que hoje são conhecidas como contêineres.