/hospedando-aplicacoes-web

Aplicações web, servidores e serviços de hospedagem

GNU General Public License v3.0GPL-3.0

Hospedagem de aplicações web

Aplicações web, servidores e serviços de hospedagem.


Sumário

  1. Infraestrutura
  2. Serviços de hospedagem
  3. Configuração e acesso ao servidor
  4. Aplicação web
  5. Links

Infraestrutura

Aplicações robustas demandam planejamento, pois é importante saber sobre questões de segurança, desempenho e o quanto o sistema vai precisar de memória. É possível hospedar uma aplicação em um servidor físico designado a um único usuário ou utilizar máquinas virtuais (VMs) para criar o próprio servidor. As VMs são ambientes de virtualização que simulam um ou vários sistemas operacionais (SO).

Máquinas virtuais:

Ao longo da criação do servidor algumas especificações de hardware, software e rede devem ser definidas:

Memória
Processador
Conexão de rede
Disco rígido
Sistema Operacional (SO)

Serviços de hospedagem

Existem diversas plataformas que oferecem serviços de hospedagem, muitas delas usam o conceito de computação em nuvem, são elas:

Uma alternativa gratuita:

  • Vagrant: serviço de hospedagem combinado ao VirtualBox

Servidores web (HTTP):

Os servidores abaixo são responsáveis por responderem às solicitações (HTTP) dos clientes no navegador:

  • Apache
  • Gunicorn
  • Nginx (servidor intermediário): responde às requisições de clientes que solicitam recursos de outros servidores (E-mail: IMAP, POP3)

Configuração e acesso ao servidor

O servidor não tem interface e tudo será feito através de linha de comando no terminal. As seguintes configurações básicas abaixo são necessárias para o servidor funcionar:

Nome do usuário
Host (domínio ou endereço IP)
Senha (será gerado uma chave aleatória)

Uma das formas de acessar o servidor é utilizando um cliente SSH, que vai entrar no servidor remotamente.

Cliente SSH:

Comandos para acessar o servidor:

$ ssh ssh://usuario@dominio.com:porta

ou

$ ssh usuario@<endereco-ip-servidor>

Outras configurações do servidor:

  • Permissões e privilégios de usuários
  • Segurança
  • Firewall (ufw) - analisa o trafego da rede e gerência o que pode ser executado no servidor
  • Banco de dados (MySQL, MariaDB, PostgreSQL, Oracle...)

Aplicação web

Tecnologias - frontend (parte de interação com o usuário):

  • HTML
  • CSS
  • JavaScript

Tecnologias - backend (o que está por trás do sistema, parte não visível ao usuário):

Linguagens de programação

  • Python
  • JavaScript
  • PHP

Frameworks

  • Flask
  • Django
  • Vue
  • React
  • Angular
  • Laravel

Código-fonte:

  • Git: organização e controle de versão dos códigos
  • GitHub: plataforma para hospedagem do código-fonte

O Git junto ao GitHub ajudam no processo de desenvolvimento do sistema, além de simplificar a instalação do projeto em qualquer ambiente.