De monólitos para a nuvem composição nativa com Sinclair Schuller apprenda – café conversa java, notícias, histórias e opiniões bitcoin gráfico da taxa de câmbio

Cameron McKenzie: Em busca do lado do serviço para saber mais sobre como a empresa tradicional de desenvolvimento Java se encaixa com este novo mundo da computação em nuvem nativa que utiliza microservices e Docker e recipiente e Kubernetes, que rastreou Sinclair Schuller. Sinclair Schuller é o CEO da Apprenda. Ele também é um defensor Kubernetes e ele também se senta no conselho de administração da Fundação Computing Nuvem nativo.

Sinclair Schuller: Ótima pergunta. Acho que vou dar-lhe uma definição de arquitetura enraizada bitcoin livre bot de negociação. Para mim, um aplicativo nativo em nuvem é um aplicativo que tem uma capacidade, quer implícita ou explícita de exercer recursos elásticas que vive e que tem um nível de portabilidade que torna mais fácil para executar em vários cenários, seja na nuvem A ou nuvem B ou nuvem C.


Mas em cada um desses casos, a sua capacidade de compreender e / ou exercer os recursos subjacentes de uma forma elástica é provavelmente a definição mais fundamental que eu usaria. Que é diferente do que aplicações nativas não nuvem tradicionais que podem ser implantados em um servidor. Aqueles não têm idéia de que os recursos abaixo deles eram substituíveis ou elástico, para que eles nunca poderiam tirar proveito desses tipos de propriedades de infra-estrutura. E é isso que os torna inerentemente não escalável, inerentemente não elástica e assim por diante.

Cameron McKenzie: Agora, há muita conversa sobre como o servidor de aplicativos está morto, mas sempre que eu olhar para estes ambientes que as pessoas estão a criar para gerir recipientes e microservices, eles estão trazendo todas essas ferramentas em conjunto para fazer coisas como monitoramento e log e orquestração definir bitcoin mineração. E, eventualmente, tudo isso vai levar a algum tipo de painel que dá às pessoas uma visão sobre o que está acontecendo em sua arquitetura nativa nuvem. Quero dizer, é o servidor de aplicativos realmente morto ou se isso simplesmente vai redefinir o que o servidor de aplicativos é?

Sinclair Schuller: Eu acho que você está realmente spot-on. Eu acho que, ao longo deste servidor de aplicativos todo é coisa morta é, infelizmente, uma consequência da comercialização de queijo, onde novos fornecedores tentar reposicionar fornecedores antigos. E é justo, certo? É assim que essas coisas vão, mas nada sobre o mesmo servidor de aplicativo de idade mortos. Em muitos casos, eles ainda implantar seus aplicativos para algo como Tomcat sentado em um recipiente bitcoin do logotipo do vetor. Então o que acontece, de modo que não foi embora por si só, mesmo se você está construindo novas microservices.

Tem o servidor aplicativo pesado tradicional ido embora? Sim. Então eu acho que tem caído em desuso. Levar os produtos mais antigos como um WebLogic ou algo nesse sentido, você não vê-los usado no desenvolvimento nativo novo nuvem mais. Mas você está certo, o que vai acontecer, e estamos vendo isso com certeza, é que há um conjunto de ferramentas bastante baixo acoplamento que está começando a rodear o novo modelo e está olhando muito como um servidor de aplicativo a esse respeito.

Este é um local onde eu discordo de você: Eu não sei se vai ser de consolidação. Mas, certamente, se houver, então o que você acabar com é um fornecedor que tem todas as ferramentas para efetivamente agora um servidor de aplicativo nativo nuvem. Se não houver consolidação e este ferramental permanece bastante baixo acoplamento e fragmentado, então temos um resultado ligeiramente melhor do que o modelo de servidor de aplicações tradicionais. Nós temos a capacidade de melhor da raça ferramentas fragmentada da maneira que precisar. Cloud computing nativa e desenvolvimento UI

Cameron McKenzie: Uma das coisas que um monte de desenvolvedores e arquitetos estão se fazendo é: “Qual é o papel da UI em um mundo de cloud computing nativa?” É simplesmente a ser desenvolvido por um JavaScript framework como Angular front-end UI? É realmente incorporado dentro do aplicativo que é distribuído para o contêiner? O que está realmente acontecendo no espaço de desenvolvimento da interface do usuário em termos de desenvolvimento nativo nuvem?

Sinclair Schuller: Eu acho que até certo ponto, a batalha UI foi vencida, por assim dizer, certo? Parece que o mercado de liquidada em JavaScript e bibliotecas como angular para construir de forma eficaz interfaces para estes serviços de back-end. Eu acho que não é muito tumultuousness ou controvérsia mais para esse lado, é por isso que você não ouve muito sobre isso. E o lado backend de coisas ficado um pouco e agora recipientes veio e que está sendo revolucionada. Então eu acho que o que está acontecendo com os serviços de back-end e recipientes para ser muito semelhante ao que aconteceu com JavaScript, digamos, 10 anos atrás, quando ele realmente começou a tomar conta Bitcoin se inscrever. Então eu acho que o papel que o JavaScript e HTML5 jogo já está muito bem definido e não vamos ver uma tonelada de mudança lá.

Cameron McKenzie: Eu posso desenvolver uma aplicação “Olá mundo”. Eu posso escrever-lo como um Microservice. I pode empacotá-lo em um recipiente Docker e posso implantá-lo em algum tipo de ambiente de hospedagem. O que eu não posso fazer é que não posso ir para o centro de dados de um fabricante de linha aérea e quebrar sua monólito, transformá-lo em microservices, descobrir quais deve ser microservices de grãos grosseiros e descobrir quais devem ser microservices de grão fino . Não tenho a menor idéia de quantos microservices I deve acabar com e depois de já ter feito tudo isso, eu não saberia como orquestrar todos que a produção de viver em hardware mineração bitcoin barato. O papel de Apprenda no avanço da computação em nuvem nativa

Sinclair Schuller: Sim, então você realmente acabamos de descrever o nosso negócio. Efetivamente, o que notamos no mercado é que se você tomar maiores empresas do mundo que foram construídas em torno dessas aplicações monolíticas, têm o desafio de “como é que vamos decompor-los, como é que vamos passar a nossa mensagem para a frente em uma era moderna? E se podemos, é claro, algumas aplicações não precisa que, como nós, pelo menos executá-los de uma maneira melhor em um ambiente de nuvem, para que possamos obter eficiências adicionais, certo?”

Então, o que nós nos concentramos em está fornecendo uma plataforma para nativa nuvem e também garantir que ele fornece, por falta de um termo melhor, capacidades ponte de erro comprar bitcoin na Austrália. Agora, em Apprenda, da maneira que o construiu, o nosso IP permitirá que você executar um monólito na plataforma e que realmente vai instrumento muda para o aplicativo e tê-lo comportar de maneira diferente para que ele possa fazer bem em um ambiente de infraestrutura de nuvem baseadas , dando aquele monólito alguns elementos de arquitetura em nuvem, se você quiser.

Agora, por que isso é importante? Se você pode fazer isso e você pode receber rapidamente um monte desses aplicativos para uma plataforma nativa nuvem como este e remover esse requisito abrupta que você tem que mudar o monólito e decompô-la rapidamente para quem sabe quantos microservices, ao seu ponto, dá um pouco de folga para que as equipes de desenvolvimento nessas empresas pode ser mais pensativo sobre essa decisão. E eles podem escolher uma parte do monólito, pegará-lo, aproveitar isso como uma Microservice puro real, e ainda tem que correr na mesma plataforma e trabalhar com a parte agora restante do monólito.

Ao fazer isso, nós realmente incentivar as empresas a acelerar a adoção de uma arquitetura nativa nuvem já que não é uma decisão necessária abrupta tal e tal mudança tão abrupta para a própria arquitetura. Portanto, para nós, estamos muito apaixonados por esse passo. E, em seguida, em segundo lugar, é o como eu gerenciar toneladas destes tudo de uma vez? O objetivo de um, na minha opinião, boa abstração nuvem como Apprenda, uma boa plataforma que é baseada em Kubernetes é para tornar o gerenciamento de 10, 1.000 ou número N de microservices sentir tão fácil quanto executar 1 ou 2.

E se você pode fazer isso, se você pode transformar correndo 1 ou 2 para o tipo do M.O. para a execução de apenas toneladas de microservices, você remove esse custo a partir da equação e torná-lo mais fácil para a empresa para digerir todo este problema. Então, nós realmente colocar muita ênfase sobre essas duas coisas. Como podemos prever que colmatar capacidade de modo que você não tem que ter uma transição tão abrupta e você pode fazê-lo em um cronograma que é mais confortável para você e que se encaixa o que você precisa e também lidar com o problema de escala?

Em última análise, a única maneira que problema de escala não são resolvidos, porém, é que uma plataforma de nuvem tem que extrair verdadeiramente os recursos infra-estrutura subjacente e agir como um intermediário entre a camada microservices e esses recursos de infra-estrutura. Se ele pode fazer isso, então escala torna-se realmente um pouco trivial, porque a consequência de uma plataforma adequada arquitetado.

Sinclair Schuller: Sim, absolutamente. Portanto, há um par de coisas. Uma delas é se você estiver indo para recursos abstratos, normalmente você precisa encontrar alguma camada que permite projectar um novo padrão ou um novo tipo de perfil de recurso da pilha calculadora taxa bitcoin transação. Agora, o que quero dizer com isso? Vamos olhar para recipientes como um exemplo.

Normalmente eu teria a estrutura rígida da minha infra-estrutura como esta VM ou esta máquina tem essa quantidade de memória. Tem uma instância OS. Ele tem esse layout de rede específica e agora se eu quiser realmente abstraí-lo, eu preciso chegar a um modelo que pode sentar-se em cima disso e dar-lhe esse app com algum tipo de capacidade significativa e dividir-lo de uma forma que não é mais especificamente vinculados a esse pedaço de infra-estrutura. Então recipientes cuidar disso e todos nós entendemos que agora.

Mas vamos olhar para subsistemas. Vamos dizer que eu estou construindo um aplicativo e vamos começar com realmente um realmente trivial. Eu tenho algo como logging, certo? Meus logs de aplicativos de dados no disco, geralmente despejar algo em um algum lugar do arquivo. Se eu tiver um aplicativo existente que já está fazendo isso, eu provavelmente estou escrevendo um monte de informações de log em um único arquivo. E se eu tiver 50 cópias do meu aplicativo em 50 casos de infra-estrutura, agora tenho 50 arquivos de log sentado em torno da infra-estrutura que sabe onde como ganhar bitcoins Ao jogar jogos. E como um desenvolvedor, se eu queria para depurar meu aplicativo, eu tenho que ir encontrar tudo isso.

Com Apprenda, o que focar está fazendo coisas como: “Bem, como podemos abstrato esse subsistema específico? Como podemos intervir no processo de registro de uma forma que realmente nos permite capturar informações e encaminhá-lo para algo que é algo como uma loja descentralizada que pode agregar registros e deixar você analisar através deles mais tarde log? Portanto, para nós, sempre que pensar em fazer isso como uma questão prática, é identificar os subsistemas em uma arquitetura app como extração de madeira, como o consumo de computação, que os recipientes de cuidar, como gerenciamento de identidade, e realmente interceptar e melhorar essas capacidades para que ele pode ser tratada de uma forma mais granular e de uma forma mais acessível. Preparação para falhas de computação em nuvem

Cameron McKenzie: No início deste ano, vimos a queda Chernobyl-esque da nuvem Amazon S3 e tinha a capacidade de assumir praticamente fora da internet. Que tipo de conselho você dá aos clientes para garantir que, se o seu provedor de nuvem vai para baixo que suas aplicações não sair completamente?

Sinclair Schuller: Eu acho que a primeira parte do que é culturalmente entender o que nuvem realmente é e certificando-se que todos os funcionários e os arquitetos sabem o que é gráfico gráfico bitcoin. Em muitos casos, pensamos em nuvem como uma espécie de, como, literalmente, nebuloso e coisa descentralizada. Cloud é realmente uma coisa muito centralizado, certo? Nós centralizar recursos entre alguns grandes fornecedores como a Amazon.

Agora, o que isso significa? Bem, se você está dependendo de um provedor, como a Amazon, para armazenamento através de algo como S3, você pode imaginar que algo poderia acontecer com essa empresa ou para que a infra-estrutura, o que tornaria essa capacidade disponível, certo? Em vez disso o que eu acho que acontece é que, culturalmente, as pessoas começaram a acreditar que, você sabe, nuvem é infalível, tem 5-9s e 9-9s, escolher o que SL você quer, e eles confiam em que, como seus meios exclusivos para garantir a disponibilidade .

Então eu acho que o número um, é só incentivando uma cultura que entende que quando você está construindo em uma nuvem, você está construindo em algum tipo de capacidade centralizada, alguma capacidade centralizada e que ele ainda pode falhar. Assim que você trazer isso para a luz e as pessoas entendem que, em seguida, a próxima pergunta é: “Como faço para contornar isso?” E nós fizemos isso em computação muitas e muitas vezes. Para contornar isso, você tem que vir para cima com padrões de arquitetura que pode lidar adequadamente com coisas como a segregação dos dados e não consegue, certo?

Então, eu poderia construir uma arquitetura de aplicativo que talvez usa S3 e potencialmente greves dados através de algo como Azure ou várias regiões no S3? Então, se você acha que se você tivesse uma mentalidade que algo como S3 pode falhar, você de repente empurrar essa preocupação na própria arquitetura do aplicativo e ele exige que um desenvolvedor começa a pensar de uma forma como essa, onde eles dizem: “Sim, eu vou começar a distribuir os dados por vários provedores ou várias regiões “. E que se livrar de este tipo de situações.

Eu acho que parte da razão que vimos o fracasso S3 acontecer e afetar tantas propriedades diferentes é que as pessoas não estavam pensando dessa forma e eles viram o número de 9s no SLA e disse: “Oh, eu vou ficar bem, ”mas não é apenas o caso. Então você tem que levar isso em consideração na própria arquitetura do aplicativo.

Cameron McKenzie: Apprenda é um líder e um defensor no mundo da Kubernetes. Qual é o papel que Kubernetes atualmente joga no mundo de orquestrar contentores Docker e arquiteturas nativas nuvem?

Sinclair Schuller: Então, quando olhamos para o tipo de mundo em torno de recipientes algumas coisas ficaram muito claras. Configurações, programação de recipientes, como certificando-se de que podemos fazer a colocação recipiente, todos estes tornaram-se coisas importantes que as pessoas se preocupavam e determinados projectos evoluíram, como Docker Swarm, como Kubernetes, competir com isso de uma forma comum.

Assim, quando olhamos para algo como Kubernetes como parte de nossa arquitetura, o objetivo foi vamos nos certificar de que estamos escolhendo um projeto e trabalhando contra um projeto que acreditamos tem as melhores primitivos fundamentais para coisas como a programação, para coisas como orquestração. E se podemos fazer isso, então podemos olhar para o conjunto de preocupações que cercam isso e subir na pilha de aplicativos para fornecer valor adicional.

Agora, no nosso caso, adotando Kubernetes como o programador principal para todas as cargas de trabalho nativas nuvem, que, em seguida, olhou para aquilo e disse: “Bem, qual é a nossa missão como empresa?” Para trazer nuvem para a empresa, certo? Ou para a empresa. E qual é a diferença entre Kubernetes e essa missão? A diferença está lidando com aplicações existentes, lidar com coisas como o Windows, porque isso não era algo que era nativa da Kubernetes. E nós dissemos: “Nós poderíamos construir IP ou anexar IP torno Kubernetes que pode resolver essas preocupações fundamentais que existem em maiores empresas do mundo como eles se movem para a nuvem?”

Portanto, para nós, fomos a um par caminhos muito específicas bitcoin preço da diária. One, que levou a nossa experiência do Windows e construiu o recipiente Windows e Windows regista o apoio em Kubernetes e contribuiu de que a volta à comunidade, algo que eu gostaria de ver entrar em produção em breve. Número dois, nós cercado Kubernetes com um monte de nosso IP que se concentra em lidar com o problema monólito e decompondo monólitos em microservices e tê-los executado em uma plataforma nativa nuvem. Portanto, para nós, foi estendendo a visão Kubernetes além orquestração recipiente, programação recipiente, e colocação e enfrentar esses desafios arquitectónicos muito específicos em suporte à plataforma e a capacidade de executar e apoiar lateral aplicações existentes a lado com nativa nuvem.

Cameron McKenzie: Para ouvir mais sobre a tomada de Sinclair sobre o estado atual de cloud computing nativo, você pode segui-lo no Twitter @sschuller. Você pode também acompanhar Apprenda e se você estiver olhando para encontrar mais informações sobre a computação em nuvem nativa, você sempre pode ir para o site da Native Computing Fundação Nuvem, cncf.io.