Aplicações web, servidores e serviços de hospedagem.
Sumário
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)
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
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)
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...)
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.
Configurando um servidor Apache 2:
Aprenda sobre programação:
Aprenda a desenvolver uma aplicação web completa com Python e Flask:
Deploy de uma aplicação Flask no Linux:
- https://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-xvii-deployment-on-linux
- https://youtu.be/YFBRVJPhDGY
- https://www.digitalocean.com/community/tutorials/how-to-deploy-a-flask-application-on-an-ubuntu-vps
O que é uma infraestrutura de TI:
Servidores físicos vs. máquinas virtuais: principais diferenças e semelhanças:
Distribuições Linux: