Os serviços em nuvem há muito entraram em nossa vida, agora já é impensável imaginar uma existência moderna no espaço digital sem eles, eles simplificam muito a vida e diminuem o limite de entrada de TI para pequenas empresas, livrando-as da necessidade de adquirir e configurar sua própria infraestrutura. Smartphones e computadores são conectados às nuvens e mais e mais dados e serviços são transferidos para eles.
Os IDEs também não escaparam da migração para a nuvem. Cerca de dez anos atrás, isso era um truque, Cloud IDEs estavam apenas começando a se desenvolver, mas então os maiores participantes do setor de TI chamaram a atenção para eles.
A Amazon comprou e desenvolve o serviço Cloud9 :
O Google incorporou o Cloud Shell Editor em sua plataforma de nuvem :
A Microsoft inicialmente criou sua própria plataforma de desenvolvimento baseada em nuvem, mas depois a abandonou em favor da solução que o GitHub está preparando agora - Codespaces :
Todos eles estão unidos por uma ideia: "Use ferramentas de desenvolvimento em qualquer lugar e em qualquer plataforma!" O desempenho do IDE não depende mais de um computador pessoal, não há necessidade de comprar um desktop poderoso e caro ou um laptop ainda mais caro - a nuvem fará a computação. E o usuário receberá um ambiente de desenvolvimento que não depende do seu sistema, não necessita de configuração local, você pode trabalhar no IDE da nuvem até mesmo em um tablet, se conectar um mouse e teclado nele. E não será vi por meio de um console médio, mas um aplicativo GUI completo.
Existem também ambientes de desenvolvimento de nuvem menos comuns, de sandboxes simples como CodePen a outros mais sérios como Codenvy , que a Red Hat assumiu sob sua proteção.
Mas todas essas soluções têm mais algumas coisas em comum: elas são executadas em seus próprios servidores; alguns exigem pagamento por parte da funcionalidade de trabalho; sua interface demora para se acostumar. Você pode resolver esses problemas instalando o conhecido Cloud IDE em um VPS alugado. O pagamento será feito apenas pelo aluguel de um servidor com a capacidade exigida, sem restrições de capacidades, e a interface será familiar e familiar para um grande número de desenvolvedores, pois nada mais é do que o Microsoft Visual Studio Code . Esta oportunidade apareceu recentemente graças ao projeto de servidor de código . Este artigo descreve a instalação passo a passo do código VC no servidor virtual RuVDS.
Preparando o servidor para instalação
Primeiro você precisa selecionar e executar um VPS de teste . Para a demonstração, escolhi o servidor virtual RUCLOUD em Moscou para reduzir o ping:
ping -c4 194.87.103.124 PING 194.87.103.124 (194.87.103.124) 56(84) bytes of data. 64 bytes from 194.87.103.124: icmp_seq=1 ttl=55 time=4.98 ms 64 bytes from 194.87.103.124: icmp_seq=2 ttl=55 time=5.27 ms 64 bytes from 194.87.103.124: icmp_seq=3 ttl=55 time=14.3 ms 64 bytes from 194.87.103.124: icmp_seq=4 ttl=55 time=5.30 ms --- 194.87.103.124 ping statistics --- 4 packets transmitted, 4 received, 0% packet loss, time 3003ms rtt min/avg/max/mdev = 4.984/7.487/14.384/3.984 ms
A opção mais acessível com um sistema de disco SSD:
Isso é o suficiente para testar o funcionamento do Cloud IDE e trabalhar nos projetos mais simples que não requerem muito poder de computação.
Depois de conectar-se a um novo servidor com o usuário root , vamos realizar a configuração inicial. Primeiro, vamos criar um novo usuário <nome do usuário> e adicioná-lo ao grupo sudo : Em seguida, desative a autorização do usuário root via SSH, para isso, no arquivo / etc / ssh / sshd_config , altere o parâmetro PermitRootLogin yes para no
adduser <user-name>
adduser <user-name> sudo
nano /etc/ssh/sshd_config
Para simplificar a descrição, vamos deixar a entrada da senha, sem gerar chaves. Em seguida, corrigimos o arquivo host adicionando o nome da máquina virtual a ele para não receber o aviso " sudo: não foi possível resolver o host ruvds-xx12x: Nome ou serviço desconhecido" :
echo 127.0.0.1 $HOSTNAME >> /etc/hosts
Depois disso, desconectamos do servidor, conectamos como um novo usuário e concluímos
a configuração definindo as regras para o firewall:
sudo ufw allow OpenSSH sudo ufw enable
Vamos verificar as configurações com o comando sudo ufw status.
sudo ufw status
A saída do programa deve ser assim:
Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6)
Vamos atualizar o sistema e instalar o servidor da web nginx :
sudo apt update sudo apt upgrade sudo apt install nginx
Depois disso, vários novos perfis serão adicionados ao firewall, que podem ser visualizados com o comando sudo ufw app list:
sudo ufw app list Available applications: Nginx Full Nginx HTTP Nginx HTTPS OpenSSH
Para verificar as configurações do servidor web, precisamos dos dois tipos de conexão, ative-os:
sudo ufw allow 'Nginx Full'
Vamos ter certeza de que tudo está incluído corretamente:
sudo ufw status Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere Nginx HTTP ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) Nginx HTTP (v6) ALLOW Anywhere (v6)
Verifique se o servidor da web está funcionando:
systemctl status nginx
O resultado deve ser algo assim: Verifique no navegador se o servidor está servindo a página do nosso site ( <your_server_ip> é o endereço do seu VPS): O seguinte texto deve aparecer:
nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2020-04-20 16:08:19 UTC; 3 days ago
Docs: man:nginx(8)
Main PID: 2369 (nginx)
Tasks: 2 (limit: 1153)
Memory: 3.5M
CGroup: /system.slice/nginx.service
├─2369 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
└─2380 nginx: worker process
http://<your_server_ip>
A configuração inicial está concluída, vamos começar a instalar o ambiente de desenvolvimento.
Primeiro, vamos criar um diretório onde todos os dados IDE serão armazenados e ir para ele:
mkdir ~/code-server cd ~/code-server
Em seguida, baixe a versão mais recente do lançamento do projeto e descompacte-o. O número da versão pode ser encontrado em: https://github.com/cdr/code-server/releases . No momento, é a v3.8.0 e o arquivo para ela se chama: code-server-3.8.0-linux-amd64.tar.gz
wget https://github.com/cdr/code-server/releases/download/v3.8.0/code-server-3.8.0-linux-amd64.tar.gz tar -xzvf code-server-3.8.0-linux-amd64.tar.gz
O diretório resultante deve ser copiado para / usr / lib / code-server
sudo cp -r code-server-3.8.0-linux-amd64 /usr/lib/code-server
Em seguida, faça um link sim para o arquivo executável IDE e crie um diretório onde os dados do usuário serão armazenados:
sudo ln -s /usr/lib/code-server/bin/code-server /usr/bin/code-server sudo mkdir /var/lib/code-server
É hora de configurar o serviço de ambiente de desenvolvimento em nuvem. Crie um arquivo code-server.service no editor e adicione as seguintes linhas: Certifique-se de definir a senha <sua_senha> , ela será usada para fazer login no IDE, é melhor escolher uma que não corresponda à senha da conta. Quase tudo pronto, você pode iniciar o serviço:
sudo nano /lib/systemd/system/code-server.service
[Unit]
Description=code-server
After=nginx.service
[Service]
Type=simple
Environment=PASSWORD=<your_password>
ExecStart=/usr/bin/code-server --bind-addr 127.0.0.1:8080 --user-data-dir /var/lib/code-server --auth password
Restart=always
[Install]
WantedBy=multi-user.target
sudo systemctl start code-server
Vamos verificar o status de seu trabalho.
sudo systemctl status code-server
Se tudo foi feito corretamente, ele ficará Ativo: ativo (em execução) : Para que o serviço reinicie em caso de falhas, execute o seguinte comando:
code-server.service - code-server
Loaded: loaded (/lib/systemd/system/code-server.service; disabled; vendor preset: enabled)
Active: active (running) since Mon 2020-12-21 07:28:53 MSK; 4s ago
Main PID: 32357 (node)
Tasks: 22 (limit: 1094)
Memory: 55.6M
CGroup: /system.slice/code-server.service
├─32357 /usr/lib/code-server/lib/node /usr/lib/code-server --bind-addr 127.0.0.1:8080 --user-data-dir /var/lib/code-server --aut>
└─32390 /usr/lib/code-server/lib/node /usr/lib/code-server --bind-addr 127.0.0.1:8080 --user-data-dir /var/lib/code-server --aut>
sudo systemctl enable code-server
Resta vincular um domínio ao nosso servidor, protegê-lo instalando um certificado do Let's Encrypt e configurar o Nginx para trabalhar com ele. Um domínio gratuito é fácil de obter em https://www.freenom.com e é o suficiente para colocar nosso ambiente em funcionamento. Você pode ler sobre como vinculá-lo na seção de ajuda do RuVDS .
Crie um arquivo de configuração no editor:
sudo nano /etc/nginx/sites-available/code-server.conf
E adicione as seguintes linhas: No lugar de <vc-code.domain> você precisa substituir seu domínio que você registrou para o IDE. Para que a configuração funcione, você precisa criar um link simbólico para ele no diretório / etc / nginx / sites-enabled .
server {
listen 80;
listen [::]:80;
server_name <vc-code.domain>;
location / {
proxy_pass http://localhost:8080/;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection upgrade;
proxy_set_header Accept-Encoding gzip;
}
}
sudo ln -s /etc/nginx/sites-available/code-server.conf /etc/nginx/sites-enabled/code-server.conf
Por precaução, vamos verificar a validade das configurações:
sudo nginx -t
Se tudo estiver em ordem, veremos o seguinte texto no console:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
Nos últimos anos, fomos ensinados que os sites devem ser protegidos e trabalhar com o protocolo HTTPS, um site que funciona sem SSL parece estranho e estranho, como se o administrador tivesse preguiça de escrever algumas linhas no console. Portanto, obteremos um certificado da conhecida empresa Let's Encrypt e o IDE da nuvem estará pronto para uso.
Vamos instalar um dos bots de configuração mais comuns:
sudo apt install certbot python3-certbot-nginx
E então, com sua ajuda, iremos registrar e instalar um certificado para nosso domínio <vc-code.domain> :
sudo certbot --nginx -d <vc-code.domain>
Durante o processo de configuração, teremos que responder a várias perguntas: insira seu endereço de e-mail mail, concorde com os termos de serviço, compartilhe (ou não) o endereço de e-mail com a Electronic Frontier e configure um redirecionamento forçado para HTTPS (recomendado). Em seguida, você pode instalar o Git:
sudo apt install git
Tudo está pronto!
Abra seu site no navegador e você receberá um convite do VC Code para inserir a senha que foi especificada no arquivo de configuração
O ambiente está funcionando, vemos a interface familiar do código VC:
Você pode começar a trabalhar. Como um teste, vamos tentar editar o arquivo com o prompt Nginx padrão.
Vamos substituir o nginx pelo código VC e atualizar a página que o servidor emite em resposta a uma chamada direta para o endereço IP:
Tudo está funcionando!
Este é um Código VC totalmente funcional e familiar, ele funcionará com um sistema de controle de versão:
Você pode conectar plug-ins a ele:
Um IDE não é diferente de um aplicativo de desktop, exceto que ele é executado em um servidor remoto e em um navegador.
Boa sorte na nuvem! :)