Curso de TI Sistemas Informáticos e Redes 008_Serviços Web e Desenvolvimento Remoto
Ambiente do Servidor Web
O ambiente web refere-se à combinação de hardware e software que opera em um servidor web para hospedar e processar aplicações web. Normalmente inclui o sistema operacional, software do servidor web, sistemas de banco de dados, linguagens de programação e outras ferramentas relacionadas.
Sistema Operacional:
- Linux: Muitos ambientes de servidor web escolhem Linux como sistema operacional porque é estável, confiável e de código aberto. As distribuições Linux comuns incluem Ubuntu, CentOS, Debian, etc.
- Windows Server: Para alguns ambientes corporativos específicos, Windows Server também é uma escolha comum.
Software do Servidor Web:
-
Apache: Código aberto, amplamente utilizado, suporte multiplataforma, adequado para várias aplicações web.
-
Nginx: Leve, alto desempenho, especialmente adequado para manipular conteúdo estático e alta concorrência.
-
IIS (Serviços de Informações da Internet da Microsoft): O servidor web oficial em ambientes Windows, suporta ASP.NET e outras tecnologias Microsoft.
-
LiteSpeed: Alto desempenho, baixo consumo de recursos, compatível com Apache, pode servir como substituição.
-
OpenResty: Uma plataforma web de alto desempenho baseada em Nginx e Lua, que combina as funcionalidades principais do Nginx com a capacidade de programação dinâmica do Lua para construir aplicações web e sites mais poderosos e flexíveis.
-
Tomcat: Software de servidor web de código aberto que fornece suporte para Servlets e JSP Java. Não é um servidor web completo, mas deve ser usado com outros servidores web como Apache ou Nginx.
Sistemas de Banco de Dados:
- MySQL: Código aberto, leve, adequado para a maioria das aplicações web.
- PostgreSQL: Poderoso, suporta recursos avançados, adequado para requisitos de dados complexos.
- MongoDB: Banco de dados não relacional, adequado para processar grandes quantidades de dados semelhantes a documentos.
- Microsoft SQL Server: Sistema de banco de dados relacional da Microsoft.
Linguagens de Programação e Frameworks:
- PHP: Comumente usado para construir aplicações web dinâmicas, usado com Apache e Nginx, Laravel, thinkphp.
- Python: Com frameworks como Django e Flask, adequado para desenvolvimento web e ciência de dados.
- Ruby: Com o framework Ruby on Rails, adequado para desenvolvimento rápido.
- JavaScript: Desenvolvimento frontend e backend, React.js, Angular, Vue.js, Node.js.
- C#: Linguagem orientada a objetos, fortemente tipada, compilada, adequada para construir aplicações web de nível corporativo, ASP.NET.
- Java: Linguagem de propósito geral, adequada para vários tipos de aplicações, incluindo aplicações web, Spring.
- Go: Linguagem estática fortemente tipada, compilada, concorrente, adequada para construir aplicações web de alto desempenho e escaláveis, Echo.
Containerização e Virtualização:
- Docker: Fornece soluções de containerização, simplifica implantação e gerenciamento.
- Kubernetes: Sistema de orquestração de contêineres altamente escalável, adequado para implantação de contêineres em larga escala.
LAMP/LNMP/WAMP/WNMP
| Stack | Sistema Operacional | Servidor Web | Banco de Dados | Linguagem de Programação do Servidor |
|---|---|---|---|---|
| LAMP | Linux | Apache | MySQL | PHP/Perl/Python |
| LNMP | Linux | Nginx | MySQL/MariaDB | PHP/Perl/Python |
| WAMP | Windows | Apache | MySQL/MariaDB | PHP/Perl/Python |
| WNMP | Windows | Nginx | MySQL/MariaDB | PHP/Perl/Python |
Desenvolvimento Remoto
Desenvolvimento remoto significa que os desenvolvedores escrevem e fazem depuração de código em seu computador local, mas a execução e o teste real do código são feitos em um servidor remoto ou ambiente de nuvem. Este método de desenvolvimento oferece vantagens como gerenciamento centralizado de código, recursos computacionais mais potentes e um ambiente de trabalho mais flexível.
-
Controle de Versão Remoto (Remote Version Control): Git, SVN. Permite que os desenvolvedores escrevam código localmente, mas o controle de versão e a colaboração do código são feitos em um repositório remoto. Isso facilita a colaboração em equipe e o gerenciamento seguro do código.
-
Ambiente de Desenvolvimento Remoto (Remote Development Environment): Remote - SSH, Plugin Remote Development do VS Code, etc., Desenvolvimento Remoto do WebStorm. Permite que os desenvolvedores usem um ambiente de desenvolvimento integrado (IDE) localmente, mas a execução e depuração real do código são feitas em um servidor remoto. Isso ajuda a garantir a consistência entre o ambiente local e remoto, reduzindo problemas causados por ambientes diferentes.
-
Servidores Remotos (Remote Servers): SSH, FTP, SCP, etc. Os desenvolvedores podem se conectar remotamente aos servidores, executar comandos diretamente no servidor, editar arquivos, etc. Isso é especialmente útil para projetos que precisam ser desenvolvidos e testados em ambientes específicos.
-
Depuração Remota (Remote Debugging): Visual Studio Code, WebStorm e outros fornecem funcionalidade de depuração remota. Permite que os desenvolvedores façam a depuração de código em seu IDE local, mas as operações de depuração reais são executadas em um servidor remoto. Isso ajuda a resolver problemas que ocorrem em ambientes diferentes.
-
Desenvolvimento em Nuvem (Cloud Development): AWS Cloud9, Microsoft Azure Dev Spaces, Google Cloud Shell, etc. Fornece ambientes de desenvolvimento baseados em nuvem que permitem aos desenvolvedores desenvolver, construir e testar na nuvem. Isso reduz a pressão sobre recursos computacionais locais e melhora a flexibilidade.
-
Desenvolvimento Containerizado (Containerized Development): Docker, Kubernetes, VM. Encapsula aplicações e todas as suas dependências em contêineres que podem ser facilmente portados entre o ambiente de desenvolvimento local e o servidor remoto.
Links:
1Panel 宝塔 WDCP PHPStudy XAMPP OneinStack (Linux) UPUPW (Windows) phpEnv、PHPTS、LNMP……
Plugins do VS Code: Remote - SSH Remote Development
Navegador Web Google Chrome Navegador Web Google Chrome (China)