Desenvolvendo um Workflow para um Servidor Web, com Apache, MySQL, PHP, SSH, FTP, SAMBA.
O processo de desenvolvimento de um ambiente Web é complexo e trabalhoso. Partimos do projeto, estudo do ambiente, criação do ambiente (S.O.), depois criamos a base para o funcionamento do ambiente Web (que é caracteriza-se por um serviço web, stack e/ou linguagem web e sistema de banco de dados), e para gerar uma camada de infraestrutura de suporte para o ambiente, implementamos serviços básicos de infraestrutura (sistema de FTP, compartilhamento de arquivos, acesso remoto e regras de firewall)
Este projeto visa demonstrar todos os principais processos existentes na produção e desenvolvimento de um ambiente web, do ponto de vista de criação de ambiente e suas especificidades.
Um servidor Web, ou uma Stack completa de produção Web deve ser separada por áreas específicas. Desta forma, cada área específica deverá ser trabalhada e desenvolvida de forma paralela, para que no final se tenha um ambiente disponível, confiável e produtivo.
Desta forma, devemos separar o desenvolvimento em:
-
Servidor web: Será o ambiente onde o site ou sistema Web será interpretado, e da onde serão respondidas as chamadas http e/ou https.
-
Stack de desenvolvimento web: Quando falamos na Stack de Desenvolvimento, nos referimos a uma ou mais linguagens de back-end que serão interpretadas e/ou pré-compiladas no servidor web.
-
SGDB web: Para completar o processo de produção, assim como viabilizar sistemas completos, faz-se necessário a utilização de um sistema gerenciador de banco de dados específico com suporte para uso sobre um servidor web.
-
Servidor de compartilhamento de arquivos: Para facilitar o compartilhamento de arquivos (principalmente na fase de desenvolvimento) entre servidor e cliente de acesso, é usual implantar e implementar serviços de compartilhamento de arquivo (multiplataforma).
-
Servidor de Transferência de Arquivos: Como já feito desde os primórdios da Web, todo servidor web deve ter um sistema de FTP.
-
Acesso remoto seguro: Assim como sistema de FTP, a utilização de um serviço de SSH também é obrigatória.
-
Regras de firewall: Ao menos no ambiente do servidor web, é extremamente importante, criar e gerenciar as regras de firewall.
-
Sistema Operacional: O Sistema operacional, em sua maioria, seguirá uma vertente de derivados de sistemas Unix, como nosso caso, o Ubuntu Server 18.04.4 (Linux).
-
Sistema de Virtualização (Opcional): O sistema de virtualização, apesar de não serem obrigatório (ainda que os principais sistemas web atualmente, esteja rodando sobre cloud, logo em ambiente virtual), podem ser usados em ambiente de testes (como por exemplo com auxílio de ferramentas específicas como Docker e/ou Vagrant).
O processo de desenvolvimento de um Workflow de um Servidor Web é demasiadamente complexo e heterogêneo, tendo em vista que muitas são as nuances que devem ser trabalhadas de forma sinérgica, para que se tenha sucesso ao final do trabalho. Devemos nos atentar, que em um ambiente corporativo, procedimentos automatizados poderão ser utilizados para optimizar os processos de desenvolvimento assim como utilização em produção. Mas, sobretudo, visando a criação de um ambiente, para que seja feito debug e/ou deploy de aplicações e soluções Web, é interessante construir o ambiente, visando todos os aspectos possíveis que serão colocados em produção, com os que já foram listados anteriormente (Desenvolvimento), simulando de fato o que se pode esperar em um grande provedor web. Desta forma, percebemos, que independente da plataforma, se é um ambiente de produção ou teste, se é um sistema e/ou aplicação web de pequeno ou grande porte, a linha base de projeto será sempre a mesma.
Download VirtualBox for Linux Hosts
Download Ubuntu Server 18.04.4
Como configurar endereço IP estático no Linux Ubuntu 18.04 com netplan
MySQL - Documentação (Instalação Geral)