Laptops rápidos são caros, laptops baratos são lentos. Mas mesmo um laptop rápido é mais lento do que uma estação de trabalho decente, e se seus desenvolvedores desejam um ambiente de construção local, eles provavelmente vão querer uma estação de trabalho decente. Eles também vão querer um laptop rápido (e caro), porque eles não vão levar sua estação de trabalho para casa e, obviamente, você espera que eles possam trabalhar em casa. E em dois ou três anos eles provavelmente vão querer um novo laptop e uma nova estação de trabalho, e isso é ainda mais dinheiro. Sem mencionar os riscos associados a eles fazerem trabalho de desenvolvimento em seu laptop e depois deixá-lo bêbado em um bar ou roubá-lo ou o conteúdo ser copiado enquanto passam pela imigração em um aeroporto. Certamente há uma maneira melhor?

Esse é o pensamento que leva a “Vamos dar aos desenvolvedores um Chromebook e uma VM rodando na nuvem”. E é uma opção atraente! Você gasta muito menos no laptop, e a VM provavelmente é mais barata que a estação de trabalho – você pode desligá-la quando estiver ociosa, pode atualizá-la para ter mais CPUs e RAM conforme necessário e impor todo tipo de arrumação adicional políticas de segurança porque você tem controle total sobre a rede. Você pode executar um ambiente de desktop completo na VM, transmiti-lo para um laptop barato e obter a experiência de estação de trabalho rápida em algo que pesa cerca de um quilo. Seus desenvolvedores obtêm o benefício de uma máquina rápida onde quer que estejam e todos ficam felizes.

Mas tendo trabalhado em mais de uma empresa que tentou essa abordagem, minha experiência é que poucas pessoas acabam felizes. Vou dar alguns motivos aqui, mas não posso garantir que eles cobrem tudo – e, para ser claro, muitos (possivelmente a maioria) dos motivos que vou descrever não são impossíveis de corrigir, eles simplesmente não são prioridades. Também vou restringir esta discussão ao caso de “Executamos um ambiente gráfico completo na VM e o transmitimos para o laptop” – uma abordagem que oferece apenas acesso SSH é muito mais gerenciável, mas também significativamente mais restrita em certas maneiras. Com esses detalhes mencionados, vamos começar.

A primeira coisa a notar é que a experiência geral é fortemente vinculado ao protocolo que você usa para o visor remoto. Área de trabalho remota do Chrome é extremamente atraente do ponto de vista da simplicidade, mas também carece de alguns recursos extremamente importantes (por exemplo, permitir que você use vários monitores no sistema local), portanto, do ponto de vista do desenvolvedor, é abaixo do ideal. Se você leu o restante deste post e deseja tentar isso de qualquer maneira, passe algum tempo trabalhando com seus usuários para descobrir quais são seus requisitos e descobrir qual tecnologia melhor se adequa a eles.

Em segundo lugar, vamos falar sobre GPUs. Tentar executar um ambiente de desktop moderno sem nenhuma aceleração de GPU será uma experiência miserável. Claro, jogar CPU suficiente no problema fará com que você supere o pior disso, mas você ainda vai acabar com usuários que precisam fazer visualização 3D, ou que estão desenvolvendo VR, ou que esperam que o WebGL funcione sem queimar cada um dos núcleos de CPU que você tão graciosamente alocou para sua VM. Os provedores de nuvem terão prazer em fornecer instâncias de GPU, mas isso custará mais e você precisará executar novamente seus números para verificar se ainda é uma vitória financeira. “Mas a maioria dos meus usuários não precisa disso!” você pode dizer, e vamos chegar a isso mais tarde.

Próximo! Qualidade de vídeo! Isso parece um ponto trivial, mas se você está dando a seus usuários uma VM como sua interface principal, então eles vão fazer coisas como tentar usar o Youtube dentro dela porque há uma apresentação de conferência que é relevante para seus interesses. A solução óbvia aqui é “Faça seu streaming de vídeo em um navegador no sistema local, não na VM”, mas, por experiência pessoal, esse é um ponto de dor super estranho! Se eu clicar em um link dentro da VM ele vai abrir um navegador lá, e agora eu tenho um navegador na VM e um navegador local e qual deles contém a aba que estou procurando WHO CAN SAY. Então, seus usuários vão assistir coisas dentro de suas VMs, e recompactar o vídeo descompactado vai parecer uma merda, a menos que você esteja jogando uma enorme quantidade de largura de banda no problema. E isso é ignorar a irritação adicional de seu navegador ser ilegível enquanto você está rolando rapidamente pelas páginas, ou a saída do terminal de processos de compilação sendo um borrão lamacento de artefatos, ou o caso de canto de “Eu trabalho para o Youtube e preciso ser capaz examinar fluxos de 4K para determinar se as alterações resultaram em uma experiência degradada”, o que é um trabalho muito real e que se torna impossível quando você passa suas otimizações cuidadosamente criadas por qualquer codec que seu protocolo de desktop remoto decidiu escolher com base em algumas suposições aleatórias sobre a rede local, e olha que todo mundo vai passar mal.

A experiência do navegador. Como mencionado anteriormente, você terá navegadores locais e navegadores remotos. Eles têm a mesma política de segurança? Quem sabe! Todos os serviços de terceiros dos quais você depende funcionarão bem com o mesmo usuário sendo conectado a partir de dois IPs diferentes simultaneamente porque eles perderam o controle de qual navegador eles tinham uma sessão aberta? Quem sabe! Seus usuários ficarão frustrados? Quem sabe oh espere não, eu sei a resposta para esta, é “sim”.

Acessibilidade! Mais usuários do que você espera contam com várias interfaces de acessibilidade, sejam esses mecanismos para aumentar o contraste, ampliadores de tela, conversão de texto em fala, fala em texto, mecanismos de entrada alternativos e assim por diante. E você provavelmente não sabe disso, mas a maioria desses mecanismos envolve fazer com que o software de acessibilidade seja capaz de introspeccionar a interface do usuário de aplicativos para fornecer entrada apropriada ou expor opções disponíveis e similares. Então, estou executando um agente local de conversão de texto em fala. Como ele sabe o que está acontecendo na VM remota? Não porque está apenas recebendo um fluxo a/v, então você precisa executar outra pilha de acessibilidade dentro da VM remota e os dois não sabem da existência um do outro e isso funciona tão mal quanto você imagina. Mecanismo de entrada alternativo? Boa sorte com isso, na melhor das hipóteses você voltará para “Enviar entradas de teclado sintetizadas” e isso não é tão bom quanto “Definir o conteúdo desta caixa de texto para esta string unicode” e sim, eu costumava trabalhar software de acessibilidade talvez você possa dizer. E como a VM enviará dados para um dispositivo de saída em braille? De qualquer forma, boa sorte com os processos por dificultar arbitrariamente a vida de um bando de membros de uma classe protegida.

Um dos benefícios aqui deveria ser uma melhoria de segurança, então vamos falar sobre o WebAuthn. Eu sou um grande fã do WebAuthn, já que é um mecanismo de autenticação multifator que realmente faz um bom trabalho de proteção contra phishing, mas se meus usuários estiverem executando coisas dentro de uma VM, como posso usá-lo? Se você trabalha no Google há uma soluçãomas isso significa limitar-se à Área de Trabalho Remota do Chrome (há motivos extremamente bons por que isso não está geralmente disponível). A Microsoft aparentemente apenas especificado um mecanismo para fazer isso por RDP, mas, caso contrário, você fica fazendo coisas como encaminhar USB sobre IP, e isso significa que seu USB WebAuthn não funciona mais localmente. Ele também não funciona para nenhum outro tipo de token WebAuthn, como um dispositivo bluetooth ou um sensor Apple TouchID ou qualquer suporte do Windows Hellow. Se você planeja migrar para o WebAuthn e também planeja migrar para áreas de trabalho de VM remotas, não terá problemas.

Essa é a coisa que vem à mente imediatamente. E com certeza, talvez cada um desses problemas seja irrelevante para a maioria de seus usuários. Mas a pergunta real que você precisa fazer é qual porcentagem de seus usuários atingirá um ou mais desses, porque se isso for mais do que uma porcentagem insignificante, você ainda estará reunindo todas as equipes que lidam com hardware, lidando com instalações de SO locais, preocupando-se sobre dispositivos perdidos ou roubados, e o glorioso futuro de apenas ser capaz de parar de se preocupar com isso vai acabar e os benefícios financeiros que você prometeu aparecer provavelmente não funcionarão da mesma maneira.

Muito disso remonta à história usual da TI corporativa – entenda as necessidades de seus usuários e se o que você está propondo realmente os atende. Quase tudo que descrevi aqui é um caso de canto, mas se sua empresa for maior que cerca de 20 pessoas, há uma alta probabilidade de que pelo menos uma pessoa caia em pelo menos um desses casos de canto. Você precisará gastar muito tempo entendendo sua população de usuários para ter uma compreensão real de quais são os custos reais aqui, e não vi ninguém fazer esse trabalho antes de tentar lançar isso e (inevitavelmente) voltar para apenas dar às pessoas computadores reais.

Existem alternativas! IDEs modernos tendem a oferecer suporte a SSHing para hosts remotos para executar compilações lá, portanto, desde que você esteja de acordo com o código-fonte visível em laptops, você pode pelo menos mudar o problema “Preciso de uma estação de trabalho com um monte de CPU” para a nuvem. Os laptops precisarão ser mais caros porque também precisarão executar mais software localmente, mas não me surpreenderia se isso acabasse sendo mais barato do que a experiência completa de desktop na nuvem na maioria dos casos.

No geral, a coisa mais importante a ser considerada aqui é que seus usuários quase certamente têm mais casos de uso do que você espera, e esse tipo de mudança terá impacto direto no fluxo de trabalho de cada um de seus usuários. Certifique-se de saber quanto isso vai custar e leve isso em consideração ao sugerir que você economizará dinheiro.




Source link

Previous articleComo encontrar colaboradores para um projeto?
Next articleChegando à Netflix em novembro de 2022 | Iptv

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.