Kubernetes — é o novo Linux? Entrevista com Pavel Selivanov

Por que no hosting comum a administração do PrestaShop é lenta, e no seu não é?

Transcrição:
Azat Khadiev: Olá. Meu nome é Azat Khadiev. Sou desenvolvedor da linha PaaS da Mail.ru Cloud Solutions. Estou aqui com Pavel Selivanov da empresa Southbridge. Estamos na conferência DevOpsDays. Ele fará uma apresentação sobre a possibilidade de construir DevOps com Kubernetes, mas provavelmente você não conseguirá. Por que um tema tão sombrio?

Pavel Selivanov: Na verdade, não é sombrio. É sobre como tentamos resolver muitos problemas em nossa comunidade com tecnologia. E tentamos fazer isso de uma maneira bastante unilateral. Kubernetes é uma coisa da qual os Ops são responsáveis. Mas temos um conceito maravilhoso de engenheiro DevOps. É o engenheiro DevOps que cuida do Kubernetes. Entretanto… Tipo, você faz Kubernetes, e os desenvolvedores estão totalmente alheios a todos esses aspectos do Kubernetes, sem saber o que ele permite fazer — e tudo parece igual para eles. E isso apesar do fato de que o Kubernetes contém soluções prontas, ferramentas prontas para estender essa abordagem DevOps, interagir entre Dev e Ops. Usamos muito pouco essa oportunidade. Ao tentarmos mover as estruturas atuais para todas essas ferramentas de DevOps — Docker, Kubernetes, nuvens e assim por diante — estamos agravando ainda mais essa situação. E começamos a usar as ferramentas de uma maneira que não era a intenção inicial. E ao redor de todas essas tecnologias, acabam se formando soluções improvisadas muito ruins.

Azat Khadiev: Entendi. Sinto que o tema é amplo. O que você acha que é o problema mais comum que as empresas enfrentam agora? Com Kubernetes.

Pavel Selivanov: Com Kubernetes, o problema mais comum é a falta de competências. No setor de TI, essa é uma questão recorrente. Sempre falta especialistas. Sempre falta capacidade. E agora, com Kubernetes, as competências estão em falta. O que é pior, existem soluções prontas no mercado que permitem que se obtenha Kubernetes sem possuir as competências necessárias, mas elas são bastante escassas. E as que existem costumam levantar algumas questões. Estamos constantemente à procura de pessoas que entendem disso. Estamos tentando integrar o desenvolvimento a isso.

Azat Khadiev: E considerando a atual escassez de profissionais em TI. Que sempre existiu. E ainda existe. O que você pensa, como viver nessas condições? Quais são as dicas úteis?

Pavel Selivanov: Dicas úteis. Primeiro, do ponto de vista das nuvens, a dica se apresenta assim – que tal você nos ceder parte de suas competências. E nós as absorveremos. E cuidaremos disso internamente. E tudo isso é bom. Exceto que é importante entender para aqueles que utilizam… Na verdade, é um ótimo momento… Mas é importante entender que ao ceder parte de suas competências para a nuvem ou para um provedor, recebemos em troca uma solução universalizada. De forma grosseira, temos um banco de dados que executa tarefas muito específicas, e ele foi ajustado de forma muito particular. Ao transferir esse banco de dados para a nuvem, podemos, sem dúvida, demitir o administrador que lidava com os clusters de banco de dados — o mesmo Amazon ou Google fará isso por nós. Mas, ao mesmo tempo, o Amazon ou Google não nos permitirá configurar nosso banco de dados de forma precisa. Grandes projetos, grandes empresas — de qualquer forma, chegam ao ponto em que, em algum estágio de sua trajetória, utilizam soluções em nuvem, e depois, de qualquer forma, retornam para reassumir as competências, porque são necessárias soluções mais específicas.

Azat Khadiev: Soluções universais — são ruins ou pode-se construir mais sobre elas?

Pavel Selivanov: Não, soluções universais — definitivamente não são ruins. Soluções universais — são boas. Apenas soluções universais … são universais. É importante entender isso. É como pegar um script geral… Se você conseguir construir toda a lógica de funcionamento da empresa em torno desse script geral, essa aplicação geral — é incrível. Mas se a lógica de trabalho for diferente, mas você pega essa solução universal, o script universal — e começa, como uma coruja esticando no globo, isso é ruim. E no próprio universalismo não há nada de ruim.

Azat Khadiev: Se o administrador já está trabalhando para você, a questão não é a demissão dele. Ele simplesmente poderá fazer mais.

Pavel Selivanov: Sim, tirar a rotina dele e delegar isso a alguém, para que seja feito em outro lugar. Isso é, sem dúvida, uma boa abordagem. Um ponto importante é se essa solução padrão se adequa ao caso específico.

Azat Khadiev: Apenas com base na minha experiência, vejo que muitas empresas estão fazendo a mesma coisa. Elas configuram um cluster Kubernetes e pensam sobre sua escalabilidade. E todas essas operações são muito repetitivas.

Pavel Selivanov: Sim, sem dúvida. Especialmente porque, se olharmos especificamente para o Kubernetes, há o fato de que atualmente existem realmente poucos conhecimentos profundos e bons sobre Kubernetes no mercado. Kubernetes é uma estrutura gigantesca, então, se você a levou para a empresa, esteja preparado para trazer junto um engenheiro que irá trabalhar em tempo integral com isso. E isso é caro. E ainda assim, tente encontrar esse engenheiro. Se eu falar sobre mim, não gosto muito de soluções em nuvem, porque entendo bastante bem como o Kubernetes funciona. E muitas vezes em soluções em nuvem falta alguma funcionalidade que eu solicito — e eles dizem 'Não, não é possível'. Bom, nesse caso, desculpe, mas eu consigo fazer melhor do que uma solução em nuvem. Mas ao mesmo tempo, se você não tem um engenheiro em tempo integral, não deseja pagar por esse engenheiro que gerencia o Kubernetes, e você o paga constantemente muito dinheiro apenas para que ele experimente, então a nuvem é uma ótima solução. Porque pelo menos lá, existem pessoas que o provedor já contratou. E eles entendem o que estão fazendo. E as coisas básicas que você precisa no seu dia a dia estão disponíveis lá.

Azat Khadiev: O que você pensa sobre o estado atual do Kubernetes? O que acontecerá com ele em cinco e dez anos?

Pavel Selivanov: Boa pergunta. Eu apenas sei o que está acontecendo em nossa comunidade a respeito. Algumas pessoas acreditam que, além do Kubernetes, nada mais restará. A situação que aconteceu há muito tempo com os sistemas Linux. Ou seja, fora do Linux, existem pessoas que vivem com BSD, e provavelmente têm necessidades muito específicas. Há pessoas que trabalham com Windows — servidores Windows — provavelmente, elas também têm tarefas específicas, ou simplesmente têm competência nessa área e não estão dispostas a mudar. De qualquer forma, o padrão em nossa área é o Linux. Há uma opinião de que o Kubernetes se tornará esse padrão de fato, e que, além do Kubernetes, não haverá mais nada. O Kubernetes irá gerenciar não apenas aplicações, seu provisionamento, implantação, escalonamento. Basicamente, irá gerenciar tudo. Já estão perguntando: "É possível colocar um banco de dados no Kubernetes?" Eu geralmente falo que a questão não está no Kubernetes, mas no Docker. Se você estiver disposto a que seu banco de dados funcione em contêineres, assim ele funcionará. Eu recebo como resposta: "Não, não, não, espere. Não precisamos de contêineres. Precisamos de Kubernetes. Vamos ligá-lo a um nó. Ou seja, tudo ficará como temos agora, apenas o Kubernetes gerenciará tudo isso." E, na verdade, essa é uma boa ideia. O Kubernetes é algo que, ao chegar em uma empresa que possui Kubernetes e processos construídos sobre ele, uma pessoa que entende disso precisa apenas olhar por alguns dias para dizer: "Estou pronto para apoiá-los. Completamente. Totalmente. Eu entendi como tudo funciona aqui." Ao contrário das abordagens sem Kubernetes — onde aqui você tem uns palitos empurrados, ali outros. Aqui está o Ansible, ali o Terraform. Alguém escreveu tudo isso, e leva seis meses para se entender. Assim, se o Kubernetes se tornará o padrão de fato, não sei. No dia de hoje, ele parece muito mais ambicioso e seguro do que as soluções ao seu redor.

Azat Khadiev: Bem, a comparação com Linux é bastante ousada. Ele opera em uma única máquina — e só. Já o Kubernetes opera em muitas máquinas. Surge imediatamente um milhão de variações e motivos. Sim, isso é ousado. É apenas que se considerar que existem concorrentes a essa paradigma. Por exemplo, Serverless. O Kubernetes está em risco com tais concorrentes?

Pavel Selivanov: Do Serverless… (risos) Serverless — nós sempre entendemos que servidor ainda existe. Recentemente ouvi uma apresentação sobre isso. A pessoa disse que servidores ainda existem — e isso é a nuvem. Mas devemos sempre entender que na nuvem — também há servidores. Ali estão servidores físicos reais, montados em racks, e eles estão instalados em algum lugar. Isso é a nuvem. Acima disso existe o Serverless, onde servidores não há. Portanto, a pergunta é: o Serverless vai dominar o Kubernetes? Eu acho que o Serverless vai para o Kubernetes. Para os provedores que oferecem Serverless, o Kubernetes é uma plataforma muito conveniente para fornecer isso. Sim, talvez, em algum momento, deixemos de falar sobre Kubernetes como uma plataforma comum para o desenvolvimento de aplicações empresariais. Mas lá no fundo, os provedores e engenheiros estarão rodando Kubernetes, onde tudo isso será implementado.

Azat Khadiyev: Um tema um pouco diferente. Existe o conceito de engenheiro fullstack. O que você pensa sobre eles? Eles realmente existem?

Pavel Selivanov: Hm… Engenheiro fullstack… Bem, eu acho que devemos diferenciar essas coisas, porque… Sabe, há uma coisa chamada pessoas em T. São necessárias essas pessoas na indústria atual? Sim, sem dúvida. Precisamos de pessoas que tenham uma ampla visão, mas que ao mesmo tempo sejam especialistas em alguma área específica. E aqui o engenheiro fullstack é o mesmo — é a pessoa que faz tudo. Desde o desenvolvimento do frontend, testes, backend, servidores e tudo mais. Eu não acredito que em uma grande empresa isso possa ser feito por uma só pessoa, sem ter especializações específicas em cada um dos parâmetros. Mas ao mesmo tempo, simplesmente ter uma especialização estreita, sem saber o que acontece ao redor disso — também não funciona no mundo moderno. Então, aqui eu diria… eu descartaria a palavra Fullstack. Precisamos realmente de engenheiros. Precisamos de DevOps. Tenho a sensação de que logo vamos rever esse ponto. E eles não serão mais necessários.

Azat Khadiyev: Você pode explicar mais?

Pavel Selivanov: Eu sinto que na nossa indústria, as funções de Dev e Ops logo deixarão de existir. Se precisamos de especialistas e estamos recrutando... Precisamos de um desenvolvedor específico, precisamos de administradores específicos, e agora temos engenheiros DevOps; em breve, teremos engenheiros de produção e engenheiros SRE. Na verdade, o que precisamos são engenheiros que queremos contratar. A experiência, na verdade, não é tão importante. Porque... Por exemplo, SRE diz que os problemas de infraestrutura sempre são problemas de software. Então, por que não contratar desenvolvedores — considerando que desenvolvedor é um engenheiro — colocá-los na equipe de suporte e eles resolverão esses problemas da mesma forma que resolvem problemas de negócios com código, com engenharia, como um todo.

Azat Khadiev: E nesse sentido... Como entrevistar esses engenheiros?

Pavel Selivanov: Ah, uma boa pergunta. Ele, provavelmente, está além do que eu compreendo nesta vida. Mas eu traria apenas um exemplo. Isso não tem relação com a entrevista. Trata-se do nosso sistema educacional na Rússia. Na área de TI, sabemos que nosso sistema educacional na Rússia está muito defasado para o mundo de TI, não é como deveria ser. Estou falando em média sobre a vasta Rússia — e o que acontece lá. Pessoas se formam completamente despreparadas para ir amanhã mesmo se inserir em desenvolvimento web, em uma empresa de tecnologia. E isso é ruim. Estamos ensinando coisas estranhas, quando na verdade deveríamos estar ensinando como desenvolver para Android, iOS, como usar Git e tudo isso. Na verdade, parece que não. A universidade é um período em que, na maior parte, seus pais pagam. Durante toda a sua vida. E você pode dedicar cinco anos de sua vida para estudar em profundidade. E aprender tudo isso em formato T. Quando você pode na universidade estudar o que é um sistema de controle de versões, quais padrões de desenvolvimento existem, como tudo isso é testado, quais bases de dados existem, balanceadores. E quando você já começa a trabalhar, você começa a se aprofundar em uma área específica. E assim, obtemos engenheiros. E nosso sistema educacional na Rússia está muito mais próximo dessa verdade do que parece. Recebemos uma boa formação matemática, uma boa formação em algoritmos, temos uma noção sobre linguagens de programação. E sobre a entrevista, me parece que é algo próximo disso. Precisamos entrevistar engenheiros. Precisamos da parte superior da letra T do T-shaped. Porque a barra vertical da letra T ele adquirirá.

Azat Khadiyev: Sim, interessante. Por cinco anos após a universidade, parecia que minha educação era estranha e inadequada. Mas depois, ao longo do trabalho, à medida que as tarefas se tornaram mais profundas, os projetos maiores, percebi que não, eu aprendi coisas muito importantes. Pavel, obrigado. Foi muito interessante ouvir suas respostas. Vamos ouvir sua palestra.

Pavel Selivanov: Obrigado a vocês.

Fonte: habr.com

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster