 Nós estamos aqui para apresentar um caso de fachemessos e calico em nossa companhia. Nós vamos falar um pouco sobre o processo que fizemos para fazer o nosso clússar de mesos e como finalizarmos usando calico como solução de networks, como isso traz a segurança para nosso set-up. E nós também vamos mostrar como nós conseguimos usar calico para extender o seu centro de data para AWS, que é algo que nós vimos pessoas tentando dizer que queriam fazer, mas eu não vi nenhuma apresentação sobre isso, então nós vamos mostrar isso. E é muito interessante falar agora, porque nós vimos um monte de conversa sobre as coisas que estamos ensinando aqui, e é um caso de produção. Bem, primeiro, falamos sobre nós. Meu nome é Acácio. É difícil dizer isso em inglês, mas as pessoas não entendem isso. Eu sou uma pessoa simples. Você me dê um problema. Eu vou tentar resolver em uma forma simples. Eu gostaria de fazer as coisas mais rápido. Eu também sou um cook at home, e eu sempre estou viajando. Sim, e eu estou apaixonado com os desafios. E eu gosto muito de gravar o motorcycle, então se você gostar do motorcycle, venha para falar comigo também. Eu cheguei muito, e nós estamos mortos. E essa é a nossa vida personal, a nossa pessoa. Então, nós estamos trabalhando em uma empresa brasiliana chamada Paxiguru, que é um tipo de pagamento de gaito. Nós também estamos trabalhando com carros creditosos. E nós temos essa missão de dar novas soluções simples e seguras no serviço financeiro. E nós estamos... Sim, e isso é um desafio em si, porque eu não sei quem aqui trabalha com instituições financeiras ou coisas assim. E para ter... Sim, estamos no mesmo time. E para ter soluções inovativas em esse tipo de ambiente é algo muito difícil, porque eles são muito direitos e dificil para mover as coisas em diferentes direções. Eu tenho muitas vezes o desafio. Sim, nós trabalhamos com dinheiro. Muitos dinheiro. E isso não é nosso dinheiro, isso é alguém mais dinheiro. Isso faz as coisas um pouco mais dificuldas. Sim, e eu não sei exatamente aqui, nos Estados Unidos e ao redor da rua, mas lá no Brasil, nós temos muitos taxas, muitos competidores. E cada coisa que você faça melhor do que o seu competitor, você vai ter outro customário, você vai ter mais dinheiro. Então, o que é importante é ter coisas feitas, certo? Sim, e os competidores são grandes companheiros e instituições ao redor da rua. Então, nós precisamos ter um diferencial para eles. Então, o desafio. Nós vamos falar sobre algo que aconteceu em 2015. Nós tínhamos, naquela época, uma aplicação monolítica que todo mundo estava jogando dentro da caixa de merda, e isso foi muito difícil de manter a aplicação, foi muito difícil de adicionar novos features. Então, nós começamos a falar sobre microservices e começamos a falar sobre como nós jogamos, em um simples e um melhor jeito, com todos os features que o mercado estava fazendo naquela época. Então, nós ganhamos de pesquisa, e nós ganhamos de mesmas. Sim, e esse é o problema que eu acho que você pode entender. Algum eco-procESS, o CAB, o Chanda de Vaziboard, o I2-procESS, e isso é algo que ele está tentando cuidar da segurança e de mudança, de engenharia, e de manter as coisas seguras. E eu não sei se você passou por esses problemas, que não é especificamente na instituição finaça, mas o hiperbro e a socialização pura, algo que aconteceu aí também. Sim, exatamente. Retornar para o outro. Você trabalha aqui com o I2? Você provavelmente sabe como é bom, não é? Para morrer rápido. O I2 é algo que foi feito para não romper, e nós estávamos planejando morrer rápido, então é o opósito para o que estamos tentando fazer. Então, devido essa situação, eu sei que todos vocês sabem a solução, mas essa introdução é interessante, porque é uma caixa de partidos, o jeito que você acha. E dentro da nossa campanha, nós tínhamos esses dois momentos distinctos, o primeiro momento em que nós tínhamos o primeiro clússico, um tipo de conceito profundo, que cresceu na solução. Nós fomos vítimas de nosso sucesso, e aqui ele ainda não colicou, e as coisas eram algo macio. O mapa usual que vemos, o clússico está funcionando, e o segredo não foi nada, que nós tomamos muito cuidado no nível que precisamos de você. Ser honesto, foi tipo um setup muito puro. Foi tipo que nós justizamos, que as coisas aconteçam, e então nós fomos surpresos com quantas aplicações nós tínhamos, em dois ou três meses. Foi tipo... É louco. E depois nós começamos o segundo fase, fazendo as coisas de certo. E depois nós vimos que o mestre, e o desafio de networking e o desafio de segurança era algo verdadeiro, que nós precisamos de muito cuidado, e o segundo setup foi o setup de atualidade. E nós temos muito bons resultados sobre segurança, e o processo de delivery, e etc. Sim, naquele momento, a equipe de segurança e a equipe de networking se engajou no projeto, e então decidimos plantar as coisas, e então, ok, nós vamos... Nós queremos essa tipo de segurança, queremos esse tipo de featuramento na equipe, etc. Então, é por isso que nós fomos com... com a solução de calico, e especialmente, não só calico, mas o setup todo foi planejado, foi tipo... nós arquitecturamos para crescer, nós planejamos como os salveiros iriam trabalhar, etc. E depois fomos com a segurança de networking. A equipe de segurança nos disse, ok, nós somos uma companhia que trabalha com dinheiro, nós precisamos ter a segurança, precisamos ter alguma isolação, precisamos ter alguns controles sobre quem vai dar acesso à aplicação data ou a outra aplicação. Nós também fomos com algumas features de compliança que foram necessárias, como a PCI, a CSI, a certificação, então, eles disseram que, ok, se você quer aplicar uma aplicação com a PCI, aqui no Cluster, você precisa seguir esse passo. Então, nós temos muitas coisas de compliança para... ativar. E isso foi um joint effort, como eu disse antes, nós tínhamos os secretários trabalhando no projeto, e nós temos, agora, trabalhando na aplicação. Então, nós tínhamos uma aplicação, um hack-up, tipo de coisa, e, como eu disse, a mensagem plus calico é a combinação perfeita para a segurança, mano. Eu não sei se alguns de vocês, eu acho, que principalmente todo mundo era na apresentação anterior, onde o cara falou sobre a CSI, que foi uma forma que nós tínhamos de conectar nosso clúster a essa solução. Nós tínhamos, ao mesmo tempo, o unificador unificado, e... e então, decidimos, ok, eu preciso de um layer de segurança, mas eu preciso de uma complicação com isso. Então, fora da curiosidade, quem já trabalha com calico? Ok. Então, nós tínhamos um pouco de tempo, não muito, mas qualquer pergunta, por favor, usam a pergunta final, ou, como caso, depois da apresentação. Então, calico, em si, tem uma documentação muito boa, eles estão usando algumas setops, e... para configurar as coisas, e foi algo muito simples para usar. Sim, exatamente. Como eu falei antes, a toda setop foi criada e foi planejada para escalar, como horizontal. Então, nós decidimos para... Ok, qualquer solução precisa escalar da mesma forma como o clúster, e precisa ser deployable em qualquer coisa que precisamos para colocar dentro do clúster, porque isso é como um plataforma de serviço, para nós é um passo. Então, nós estamos adiando features lá, nós estamos adiando tipo, file storage, database as a serviço, etc. Seria plugable na toda solução, não só no Messas Barão, todas as partes da solução. E uma coisa interessante que eu esqueci de falar no início, é que nós somos parte de uma grande organização, o Pagseguro é parte de uma grande companhia, um grande grupo no Brasil, e nós temos algumas outras armas dentro da Ambraula, e por exemplo, nós temos os nossos data centers, e nós precisamos ter uma solução que escala, não só dentro de uma, da instância data center, mas através da instância data center e em uma variedade de environment, usando machine bareb, virtualizando, etc. Então, essa simples estrutura de calico e para a escala, através da data center, é algo que é muito único, e é um driver para a toda a solução. Sim, outro featuro que nós encontramos no calico que foi bom para nós, foi que nós podemos correr os mesmos tipos de proteção e layer de segurança, tanto na desenvolvedora, environment, e também na environment e na produção. Então, nós podemos simular em cada passo o que vai acontecer na produção usando o mesmo set-up. E é seguro. Eu não sei como muito de vocês conhecem o Português, mas o Pagse Guru é a melhor transição para ser um salve-pay ou algo assim. Então, nós precisamos ser seguros. É o nosso nome, e nós recebemos isso usando calico. Sim, exatamente. Então, há algumas features que são bem bonitas para nós, e a equipe de seco que é o conceito de grupo de segurança e no ano passado nós tínhamos uma network de segregação, nós tínhamos algumas VLANs, nós tínhamos um minuto de running, mas não era tão rápido como precisamos nesse momento, porque nós tínhamos growing rápido. Quando o projeto começou, nós tínhamos a empresa, e nós tínhamos cerca de cento de equipamentos, então eles aplicaram muito, então precisamos de algo que fosse muito rápido. E a network, nesse momento, não era dinâmico como precisamos. Então, esse conceito, como base no código e nas coisas que pudimos aplicar, e nós tínhamos em qualquer ambiente que fomos running, era algo muito bom, e nós tínhamos planos de grupos de segurança, porque nesse momento, nós tínhamos um provider, que é uma empresa que é uma da nossa companhia, e essa companhia trabalha para outras companhias do país, mas eles são mais generalistas e nós tínhamos algumas soluções específicas. Então, para nós, foi mais fácil para ter isso nas nossas mãos. E uma coisa interessante é que nós estamos falando sobre uma infraestrutura de liga, onde você pergunta algo para ser feito, e os roles de segurança, por exemplo. Eu preciso acessar alguns serviços, alguns portas, e eu não sei como fazer isso, mas nós tínhamos coisas como semanas. Eu pedi para acessar algumas semanas depois, foi tudo bem. Quando você trya aquela coisa que não funciona, e você precisa reopenar o incidente e etc. Então, nós precisamos esse processo mais rápido, e o mais controlado é o 1. E esse conceito de grupo de segurança foi o importante para começar, como eu disse antes, o primeiro conceito foi usar a maneira comum para que você tivesse um tasco e fazer uma mapping para conectar ao seu tasco. Isso funciona, mas é muito diferente quando você tem um tasco IP. E eu estou falando de usar simples serviços para descobrir como DNS sem fazer record calls e você sabe exatamente em que portas a sua aplicação vai funcionar. Por exemplo, nós tínhamos uma aplicação que aconteceu em dois portas em nosso setup e nós não sabíamos exatamente qual protocolo a sua portada estava funcionando, porque era um portada normal. Então, nós precisamos fazer algumas hoques e tentar conectar uma a outra portada usando os record calls e, tendo um tasco IP, foi simples. Você faz um simple DNS call e usa o portada que você já sabia. E há alguns benefícios muito bons. Por exemplo, nós tínhamos um debugging que não é específico, mas é relacionado. Mas o debugging foi algo muito difícil. Você pode fazer um TSP dump em uma máquina e você sabe o que o IP adreve e é muito, muito fácil para o debugging. O comum setup, foi isso. Se você tem um único machine recebendo calls de muitas máquinas correndo no cluster, o que processos estão fazendo se você tem 15 processos correndo dentro do sandbox? Sim, e é muito melhor para o debugging. Eu acho que é o ponto. É mais fácil para o debugging, é mais fácil para ver que esses IPs são da data center. Então essa aplicação é conectada de uma a outra. Isso é um exemplo de como o calico funciona. É um router correndo no da máquina da máquina do calico. Então é adicionado algumas adresas específicas que estão correndo em outras notas. Assim, o container que está correndo na máquina pode conectar uma à outra e saber onde está a aplicação. É baseado no BGP, como Diego disse. Quando você precisa plug o calico em sua metade, você pode usar esse protocolo para fazer isso. Esse protocolo é por décadas que está funcionando. É isso que a internet funciona. O calico é um AS, então todo node que está setado no control da máquina. E aí, eles todos percam o BGP entre os outros. Isso também é algo que nos permite conectar a outras routas. Nós usamos um Reflector que usamos para conectar o clússer todo para o nosso centro de data. Usando um fio que estava fazendo esse trabalho nós podíamos conectar o IP que estava correndo em um container específico para o centro de data. E depois podíamos pegar uma aplicação fora do clússer. E aí, há algo interessante aqui, de novo, falar sobre o sistema de ligação e a configuração da networking é algo que você tem medo. Eu não sei se você tem um fio tão grande, ou se você quer fazer uma configuração ou um fio tão grande que não é louco para a máquina que está lá por décadas. Quem é o cara louco? É, eu preciso para você perguntar algum cara louco. E isso foi um desafio para ter um fio mais difícil. E, como eu disse, quando você tem o seu centro de data tem muitas coisas boas. Mas, para ter muitas coisas boas para atender, por exemplo, nós precisamos encontrar um espaço para colocar um novo fio dentro do centro de data para ter a configuração correta, para comunicar para o resto da infraestrutura e isso é o tipo de situação que você precisa ter quando você tem o seu centro de data. Sim. Então, no próximo slide tem um diagrama de como os containers se conectam ao mundo exterior. Nós temos um container que vai funcionando no cluster de data A, B, C e D que está funcionando no cluster de data quando B precisa conectar para C, vai para aquelas cartas que foram mostradas no previous slide. Mas quando o container C precisa conectar para o sistema de legação, vai para o reflejador de cartas que é conectado para o BGP no centro de data e na agregação e tudo isso. Você tem as aplicações conhecidas com todos os features que você viu nos presentamentos serviços de descobrição etc. E o mundo exterior se conecta para os containers que podem ir direto para o IP address e portas. Uma parte interessante é que é possível para você ter uma mistura de workload usando sua nova infraestrutura com o sistema de legação misturando alguns aspectos de cada um. Por exemplo, aqui na base de database se você vê, você não tem os dois indo direto para lá porque nós não poderíamos usar calico naquela máquina que foi fora da área. Então, nós falamos e falamos, ok, vamos fazer o processo ACL, o processo ACO e quando nós saímos do clima de mesos nós estamos em uma configura natural com configura natural com o botão IP. E esse é outro ponto para o container de um IP Calico tem um IP e quando você começar um container ele recebe um IP de esse específico que você diz a equipe de network pode combater o IP e o ACL está funcionando e você não precisa perguntar de novo para isso funcionar porque é constrado no calico. Esse é um exemplo de como os desenvolvedores podem usar o calico para dizer as aplicações que vão para conectar e o que precisa para ter atenção o que as pessoas precisam ter de cuidar. E aqui nós temos algo muito interessante, eu tento mostrar que a mistura do seco de vops e nós temos diferentes roles de tempo, por exemplo no lado direito temos uma configuração que é realizada no calico e direita você é direita dera esquerda a configuração do calico e se você vê temos mais secos menos de vops trabalhando nessa configuração é uma regra de como as conexões vão e no seu coletivo, por exemplo aqui nós temos um exemplo de configuração e eu estou dizendo calico, por favor eu tenho mais seco o melhor exemplo e a destinação qualquer que quer conectar essa coisa é permitida para o número de destinação no lado direito e aplicar esse rol usando esse tipo de selecção qualquer que quiser usar um database chamado seco de vops é bem aberto talvez a equipe de seco não pede muito atenção não mostre isso e a parte interessante que nós devemos ter uma configuração de sotaque qual aplicação pode conectar a essa database temos um framework que os secretos poderiam apoiar qual database tem específicamente acessos contra os rules e como aplicar esses rules no clússer há uma coisa que é importante dizer é que todas essas configuras estão aplicadas no processo CINCD então quando alguns devops set up um novo ACL e ele envia um pôr-request para a equipe de seco a equipe de seco vai lá e diz que é ok pode ir ou não e é plugado direto para os jankos nós nunca falamos de produção nós falamos de produção de janks para a configuração você precisa colocar alguns labels para instruir um protocolo para o que os rules precisam ser aplicados para esse método e por exemplo essa configuração eu tenho uma app que é meu nome o nome que eu registro e eu preciso falar de outras apps preciso falar da database preciso falar da infraestrutura para o que os rules são aplicados em um lugar certo usando IP tables e câmeras e é interessante que é aplicado na parte do cliente que é abrindo a conexão na parte do server então temos 2-point verificação de seco e da data center mas nós não somos escalados e nós gostaríamos de ser o nosso setup e quando precisamos em um rush nós sempre precisamos fazer alguma negociação internamente para ter mais machine ou mais espaço aqui e lá então extendendo para o cloud é algo muito direto quando você tem a data center você nunca é tão rápido como um provider cloud não é possível não é seu trabalho para ter um sistema cloud então você provavelmente vai ter uma massa com alguns copics ou discussões sobre o dinheiro e é muito fácil só estender para o cloud na AWS, à Ásia e é um projeto que começamos no começo do ano em dezembro e temos coisas trabalhando e a ideia era ter uma extensão da data center para algum provider cloud como eu disse antes temos 3 data centers e a comunicação é algo muito fluente e muito direto e começamos a procurar um caminho para ter essa malabilidade e a configuração usa algum provider e usa a capacidade de expandir em um outro caminho exatamente então este é o diagrama da solução que acima o que temos na sua esquerda a nossa cluster está funcionando no data center tem BGP entre os nodes e todas as ruas que falamos sobre esse fio depois de é como o reflejamento e depois na direita você tem o account então nós temos a cluster funcionando, nós temos tudo na direita da AWS mas nós não poderíamos conectar o calico usando o router da AWS porque não foi feito para fazer isso é a fault da AWS de novo, quem está aqui é o familiar de AWS Things, Names e etc então nós decidimos aplicar um fio por nós mesmos para fazer a mesma coisa que o que nós fizemos na nossa própria data center então nós tínhamos ambos os infraestrutores falando a cada outro usando uma connexão de VPN é aquele no meio e para fazer as clússicas falarmos a cada outro um instante microtique é um muito bom router é cheio é muito bom e funciona mas é a melhor combinação cheio e funciona e nós usamos o microtique como o reflejamento de hout dentro da AWS account e nós conectamos todos eles e similmente como um node de um lado o hout para o outro do lado usando os reflejadores de hout nós usamos em ambos os lados e nós tínhamos um um diagramo mais difícil que esse que simplificamos mas aqui aqui nós temos infraestrutores que são aplicados quando eu vi o trabalho que o Network Guide fez com a ajuda do Amazon eu estava com um chocado porque quando você pinta novos equipamentos na nossa clússica AWS é automaticamente conectar e configurar o microtique para fazer o direito ao hout e nós também temos e porque nós temos mais controle usando o BGP como eu disse, nós temos direto conectado mas nós também temos VPN e nós temos algo em redondante entre as regras entre os 3 os data centers que nós conectamos porque esse diagramo nós exploramos nós temos mais um copo da AWS e mais 3 copos das coisas das datas e isso é fluentemente comunicado sem nenhum ponto de failure se você quitar algo lá eles vão encontrar uma nova rota se você tem problemas na configuração de direto conectado eles vão através da internet usando o VPN essa é uma versão simplificada da diagrama obviamente e tudo isso depois de 1 ou 2 meses nós procuramos terminamos sendo uma solução simples mas funciona e agora um container da data center pode conectar com o container da AWS e nós podemos fazer os 2 containers conhecê-los e essa solução nós estamos usando para fazer não apenas os containers, mas a data center para conectar a cada outro e depois nós podemos não apenas runar mesos apps docker apps ou qualquer coisa na AWS mas nós podemos runar aplicações normais que nós poderíamos fazer e conectar a cada outro e isso é muito interessante eu não sei se o diagrama está falando mas na Calico o outro é o próximo de esperança você vai enviar um package e a destinação será o próximo o próximo que você está procurando e nesse caso nós estamos falando temos 1 coisa na AWS que não pode falar direitamente para 1 coisa que running inside our data center sem internet ou overlay como eu disse antes o debugging é algo simples você pode deslogar o IP address do cliente e você tem a conexão entre o color e o Kali as coisas começam a ser muito mais simples bom temos apenas 5 minutos então qualquer pergunta você está falando ok ele está perguntando se estamos usando BGP apenas para não ir para a publica internet não exatamente nós queremos ter o mesmo setup em todos os centros na verdade nós temos isso running on two of our own e then on AWS nós estamos usando a VPN para não ir para a publica internet é o negócio e BGP é algo muito calico calico usa isso quando você põe um novo task, por exemplo e nós como ele disse é um BGP para ter uma solução que nós sabemos que funciona local em uma grande escala ele está perguntando qual tipo de encapsulação é running não é VxLan para certeza eu sei isso, mas eu não sei exatamente o que é se você quer saber eu posso pegar o seu cartão eu me sinto eu sei que não é VxLan porque nós estamos falando um ano atrás e as pessoas disseram nós não vamos usar isso agora mas talvez no futuro qualquer outro? não, bem precisamos dizer obrigado sim, obrigado