O documento discute as vantagens de usar o sistema de build Buck para projetos Android com arquitetura de mono repositório. O Buck permite builds mais rápidos ao permitir a paralelização de tarefas e rebuilds apenas das partes afetadas por mudanças. Embora tenha sido um processo difícil de transição devido à necessidade de manter históricos, o uso do Buck tornou builds e testes muito mais rápidos para o aplicativo móvel do Nubank.
7Masters - Devops - Do legado ao ci cd em 7 minutosiMasters
O documento discute a evolução de um sistema legado para um pipeline de CI/CD. Primeiro, descreve as limitações de um sistema legado sem controle de versão ou testes. Em seguida, introduz o conceito de integração contínua (CI), onde commits são automaticamente testados. Por fim, aborda a entrega contínua (CD), onde builds passando nos testes são implantados automaticamente na produção.
O documento descreve a evolução do processo de build e release do aplicativo móvel do Nubank ao longo dos anos. Inicialmente o app tinha builds lentos e testes demorados devido ao tamanho do código. Posteriormente o código foi dividido em projetos separados para cada time, melhorando a velocidade mas dificultando a comunicação. Mais tarde o código foi reunido em um monorepósitório para facilitar a integração, utilizando o Buck para melhorar o desempenho, porém acabou migrando para o Gradle. Atualmente o processo
O documento discute integração contínua usando Jenkins. Explica o que é integração contínua, como funciona o Jenkins e como ele pode automatizar tarefas repetitivas para liberar desenvolvedores para trabalhos mais valorosos. O Jenkins permite integrar e testar código frequentemente para encontrar e corrigir erros rapidamente.
Palestra apresentada no GDG São Luís Conf em 2016 na Instituição Devry. Além do conteúdo teórico, foi demonstrado de forma prática como utilizar o jenkins para automatização do processo de desenvolvimento de software.
O documento resume as principais novidades das bibliotecas do Jetpack. O Jetpack ajuda desenvolvedores a seguir boas práticas e escrever código consistente para Android. As bibliotecas CameraX, DataStore, WorkManager e outras receberam melhorias de desempenho e novas funcionalidades. O documento também destaca integrações entre Jetpack e Compose para facilitar o desenvolvimento em Android.
O documento discute a importância de uma cultura de testes em times de desenvolvimento mobile. Aborda os desafios de implementar testes, como código legado e resistência das equipes, e como adotar práticas como Continuous Delivery para garantir a qualidade do software e entregas contínuas. Também mostra como uma empresa evoluiu para ter mais de 96% de aplicações sem crashes graças a testes.
O Jenkins é um dos servidores de Integração Contínua mais utilizados no mundo. Mostrarei como instalar e configurar a ferramenta integrada com o GitLab
Infrastructure for Mobile - Google IO Extended POALeandro Ferreira
O documento discute as vantagens e desvantagens do uso do Buck para gerenciar builds de aplicativos móveis no Nubank. O Buck oferece builds mais rápidos do que o Gradle, especialmente para mudanças em dependências, mas é mais difícil de configurar. Embora o Buck traga ganhos de performance significativos, o suporte para Kotlin ainda está em desenvolvimento.
7Masters - Devops - Do legado ao ci cd em 7 minutosiMasters
O documento discute a evolução de um sistema legado para um pipeline de CI/CD. Primeiro, descreve as limitações de um sistema legado sem controle de versão ou testes. Em seguida, introduz o conceito de integração contínua (CI), onde commits são automaticamente testados. Por fim, aborda a entrega contínua (CD), onde builds passando nos testes são implantados automaticamente na produção.
O documento descreve a evolução do processo de build e release do aplicativo móvel do Nubank ao longo dos anos. Inicialmente o app tinha builds lentos e testes demorados devido ao tamanho do código. Posteriormente o código foi dividido em projetos separados para cada time, melhorando a velocidade mas dificultando a comunicação. Mais tarde o código foi reunido em um monorepósitório para facilitar a integração, utilizando o Buck para melhorar o desempenho, porém acabou migrando para o Gradle. Atualmente o processo
O documento discute integração contínua usando Jenkins. Explica o que é integração contínua, como funciona o Jenkins e como ele pode automatizar tarefas repetitivas para liberar desenvolvedores para trabalhos mais valorosos. O Jenkins permite integrar e testar código frequentemente para encontrar e corrigir erros rapidamente.
Palestra apresentada no GDG São Luís Conf em 2016 na Instituição Devry. Além do conteúdo teórico, foi demonstrado de forma prática como utilizar o jenkins para automatização do processo de desenvolvimento de software.
O documento resume as principais novidades das bibliotecas do Jetpack. O Jetpack ajuda desenvolvedores a seguir boas práticas e escrever código consistente para Android. As bibliotecas CameraX, DataStore, WorkManager e outras receberam melhorias de desempenho e novas funcionalidades. O documento também destaca integrações entre Jetpack e Compose para facilitar o desenvolvimento em Android.
O documento discute a importância de uma cultura de testes em times de desenvolvimento mobile. Aborda os desafios de implementar testes, como código legado e resistência das equipes, e como adotar práticas como Continuous Delivery para garantir a qualidade do software e entregas contínuas. Também mostra como uma empresa evoluiu para ter mais de 96% de aplicações sem crashes graças a testes.
O Jenkins é um dos servidores de Integração Contínua mais utilizados no mundo. Mostrarei como instalar e configurar a ferramenta integrada com o GitLab
Infrastructure for Mobile - Google IO Extended POALeandro Ferreira
O documento discute as vantagens e desvantagens do uso do Buck para gerenciar builds de aplicativos móveis no Nubank. O Buck oferece builds mais rápidos do que o Gradle, especialmente para mudanças em dependências, mas é mais difícil de configurar. Embora o Buck traga ganhos de performance significativos, o suporte para Kotlin ainda está em desenvolvimento.
O documento discute como o Jenkins pode automatizar tarefas tediosas no desenvolvimento Java, como gerar pacotes, fazer deploy e testes. O Jenkins é apresentado como um servidor de integração contínua open source que pode executar builds e testes de projetos usando plugins. Sua utilização é demonstrada e é enfatizado que o Jenkins pode integrar sistemas remotos e executar trabalhos de forma automatizada.
O documento fornece uma introdução abrangente sobre desenvolvimento para Android, cobrindo tópicos como: o que é Android, sua história, linguagens de programação, arquitetura, ferramentas, desafios e oportunidades na área.
O documento descreve a história do Jenkins, começando com seu criador Kohsuke Kawaguchi na Sun que queria um programa para detectar quebras de build. Isso levou ao projeto Hudson e posteriormente Jenkins após a Oracle comprar a Sun. Também discute os recursos atuais do Jenkins como pipelines e plugins, e vislumbra seu futuro com projetos como Blue Ocean e machine learning.
O documento discute a integração contínua em PHP usando Jenkins. Ele descreve como ferramentas como PHPUnit, PHP CodeSniffer e phpcpd podem ser usadas com Jenkins para automatizar testes, análise de código e geração de relatórios.
Infraestrutura imutável - A base das aplicações na nuvemFernando Ike
Apresentação no PHP Experience 2018 sobre os conceitos e práticas da Infraestrutura Imutável, como era o paradigma anterior e como abordar o desenvolvimento e release de software nesse novo paradigma
O documento apresenta os principais conceitos e técnicas de testes de software, incluindo testes unitários, TDD, coding dojo e diferentes tipos de testes. É destacada a importância da programação orientada a testes para melhorar a qualidade do código e reduzir bugs.
.NET 6: O que há de novo e o que está por vir?Letticia Nicoli
1. O documento descreve as principais novidades e melhorias do .NET 6, como o SDK e bibliotecas base unificadas, melhor desempenho, e suporte a desenvolvimento simplificado e multiplataforma.
2. Ele também discute recursos do C# 10, como usings globais e registros, além de melhorias em ferramentas como o Visual Studio 2022 e o assistente de atualização.
3. Por fim, apresenta novas APIs para desenvolvimento na nuvem e em dispositivos móveis, como Blazor, .NET MAUI e sup
O documento descreve o Jenkins, uma ferramenta de integração contínua open source. Ele discute o histórico do Jenkins e suas características, como construção automatizada, testes, notificações e plugins. Também compara o Jenkins a outras ferramentas como Hudson, TeamCity, Bamboo e fornece instruções sobre como instalar e configurar o Jenkins em um projeto Ruby on Rails.
O documento apresenta Stefan Teixeira, um engenheiro de QA/DevOps que dará uma palestra sobre introdução prática ao Jenkins. A palestra irá cobrir conceitos de integração contínua, vantagens do Jenkins e uma demonstração prática configurando um job no Jenkins.
O documento fornece informações sobre boas práticas em projetos open source, incluindo o uso de serviços como o GitHub. Ele discute como usar recursos como forks, branches, commits, pull requests e issues para colaborar em projetos de código aberto de forma efetiva.
O documento discute integração contínua com Jenkins, mantendo um único repositório de código e fazendo com que cada commit inicie automaticamente uma build no servidor. A integração contínua ajuda a monitorar e corrigir a qualidade do código, e é importante consertar builds quebradas rapidamente.
1. O documento discute boas práticas para construção de serviços de acordo com a metodologia 12 Factor Apps.
2. Os 12 Fatores são agrupados em fatores de design, build & release e gerenciamento, cobrindo princípios como port binding, processos sem estado, configurações externas e parity entre desenvolvimento e produção.
3. A palestrante irá demonstrar uma aplicação .NET que segue os 12 Fatores e discutirá possíveis fatores adicionais para a metodologia.
Automação dos processos para desenvolvedores. Você precisa disso!Marcela Carvalho
O documento discute ferramentas para automatizar tarefas de desenvolvimento como setup de projetos, limpeza de bancos de dados e builds. Ele apresenta ferramentas mais antigas como Bat, Bash e Make e mais modernas como PowerShell, Psake, Grunt, Gulp e NPM Scripts, demonstrando Grunt, Gulp e NPM Scripts. A mensagem principal é que essas ferramentas podem reduzir o tempo de setup de projetos de horas ou dias para apenas alguns minutos.
Automatização de Infraestrutura com JenkinsFelipe Santos
Jenkins é uma ferramenta open source de integração contínua e entrega contínua que automatiza tarefas como compilação, teste e implantação de software. Originalmente chamado de Hudson, foi renomeado para Jenkins após uma bifurcação da comunidade do projeto em 2011. O Jenkins oferece recursos como automação da infraestrutura, visualização de status de builds, encadeamento de tarefas, retry de builds falhos e notificações por SMS ou ligação.
Evoluindo bancos de dados com Flyway. E uma alternativa ao banco de dados centralizado.
Flyway auxilía na integração contínua e no desenvolvimento de software.
O documento discute refatoração de códigos PHP. Apresenta o palestrante e define refatoração como o processo de alterar o código sem alterar o comportamento, mas melhorando a estrutura interna. A refatoração é necessária pois todo software precisa evoluir e muitos desenvolvedores PHP não seguem boas práticas de programação. A refatoração trás benefícios como diminuir a complexidade, prevenir falhas e facilitar manutenção.
Este documento discute como usar o Jenkins para executar testes de software. Ele descreve como o Jenkins pode ser usado para executar testes unitários, testes de integração e testes funcionais. Além disso, fornece demonstrações e discute alguns recursos adicionais do Jenkins como a execução de testes Selenium e a integração com ferramentas como Sonar e TestLink.
Docker, jenkins e gradle para tomar o controle de sua entregaHumberto Streb
O documento discute a implementação de Continuous Delivery em um projeto de software com mais de 1 milhão de linhas de código usando ferramentas como Docker, Jenkins e Gradle. Problemas como builds manuais, dependências compartilhadas e falta de automação foram resolvidos, melhorando a qualidade e permitindo entregas contínuas com menor risco. A mudança também focou em aspectos culturais para promover aprendizado e confiança entre times de negócios e desenvolvimento.
O documento discute estratégias para usar integração e entrega contínua com o GoCD. Apresenta conceitos básicos do GoCD como servidores, agentes, pipelines, estágios e jobs. Também descreve casos de sucesso migrando do Jenkins para o GoCD e experimentos com testes móveis e de interoperabilidade.
O documento discute o desenvolvimento de aplicativos híbridos usando o framework Ionic. Descreve um projeto de aplicativo móvel para votação em tempo real desenvolvido com Ionic e as vantagens e desafios encontrados. Também fornece detalhes sobre como configurar e usar o Ionic, incluindo templates, plugins, build e publicação.
O mínimo de Integração Contínua que todo projeto deveria terÁtilla Silva Barros
Palestra ministrada no Join Community 2017.
Nessa palestra mostramos exemplos de projetos com o mínimo de Integração Contínua necessária para iniciar uma mudança na cultura de geração de binários, implantações e entregas de software.
O projeto em que você trabalha efetua a geração de binários em um ambiente diferente do ambiente de produção? É necessário vários recursos e horas, ou até mesmo dias, para efetuar uma implantação? É recorrente problemas causados por erro humano durante uma entrega? A comunicação entre as equipes da empresa só é feita por meio de canais burocráticos e protocolos como abertura de issues? O ciclo de vida de uma entrega do sistema dura até meses? Se para alguma dessas perguntas a resposta for SIM, seu projeto precisa do mínimo de Integração Contínua.
O documento discute como o Jenkins pode automatizar tarefas tediosas no desenvolvimento Java, como gerar pacotes, fazer deploy e testes. O Jenkins é apresentado como um servidor de integração contínua open source que pode executar builds e testes de projetos usando plugins. Sua utilização é demonstrada e é enfatizado que o Jenkins pode integrar sistemas remotos e executar trabalhos de forma automatizada.
O documento fornece uma introdução abrangente sobre desenvolvimento para Android, cobrindo tópicos como: o que é Android, sua história, linguagens de programação, arquitetura, ferramentas, desafios e oportunidades na área.
O documento descreve a história do Jenkins, começando com seu criador Kohsuke Kawaguchi na Sun que queria um programa para detectar quebras de build. Isso levou ao projeto Hudson e posteriormente Jenkins após a Oracle comprar a Sun. Também discute os recursos atuais do Jenkins como pipelines e plugins, e vislumbra seu futuro com projetos como Blue Ocean e machine learning.
O documento discute a integração contínua em PHP usando Jenkins. Ele descreve como ferramentas como PHPUnit, PHP CodeSniffer e phpcpd podem ser usadas com Jenkins para automatizar testes, análise de código e geração de relatórios.
Infraestrutura imutável - A base das aplicações na nuvemFernando Ike
Apresentação no PHP Experience 2018 sobre os conceitos e práticas da Infraestrutura Imutável, como era o paradigma anterior e como abordar o desenvolvimento e release de software nesse novo paradigma
O documento apresenta os principais conceitos e técnicas de testes de software, incluindo testes unitários, TDD, coding dojo e diferentes tipos de testes. É destacada a importância da programação orientada a testes para melhorar a qualidade do código e reduzir bugs.
.NET 6: O que há de novo e o que está por vir?Letticia Nicoli
1. O documento descreve as principais novidades e melhorias do .NET 6, como o SDK e bibliotecas base unificadas, melhor desempenho, e suporte a desenvolvimento simplificado e multiplataforma.
2. Ele também discute recursos do C# 10, como usings globais e registros, além de melhorias em ferramentas como o Visual Studio 2022 e o assistente de atualização.
3. Por fim, apresenta novas APIs para desenvolvimento na nuvem e em dispositivos móveis, como Blazor, .NET MAUI e sup
O documento descreve o Jenkins, uma ferramenta de integração contínua open source. Ele discute o histórico do Jenkins e suas características, como construção automatizada, testes, notificações e plugins. Também compara o Jenkins a outras ferramentas como Hudson, TeamCity, Bamboo e fornece instruções sobre como instalar e configurar o Jenkins em um projeto Ruby on Rails.
O documento apresenta Stefan Teixeira, um engenheiro de QA/DevOps que dará uma palestra sobre introdução prática ao Jenkins. A palestra irá cobrir conceitos de integração contínua, vantagens do Jenkins e uma demonstração prática configurando um job no Jenkins.
O documento fornece informações sobre boas práticas em projetos open source, incluindo o uso de serviços como o GitHub. Ele discute como usar recursos como forks, branches, commits, pull requests e issues para colaborar em projetos de código aberto de forma efetiva.
O documento discute integração contínua com Jenkins, mantendo um único repositório de código e fazendo com que cada commit inicie automaticamente uma build no servidor. A integração contínua ajuda a monitorar e corrigir a qualidade do código, e é importante consertar builds quebradas rapidamente.
1. O documento discute boas práticas para construção de serviços de acordo com a metodologia 12 Factor Apps.
2. Os 12 Fatores são agrupados em fatores de design, build & release e gerenciamento, cobrindo princípios como port binding, processos sem estado, configurações externas e parity entre desenvolvimento e produção.
3. A palestrante irá demonstrar uma aplicação .NET que segue os 12 Fatores e discutirá possíveis fatores adicionais para a metodologia.
Automação dos processos para desenvolvedores. Você precisa disso!Marcela Carvalho
O documento discute ferramentas para automatizar tarefas de desenvolvimento como setup de projetos, limpeza de bancos de dados e builds. Ele apresenta ferramentas mais antigas como Bat, Bash e Make e mais modernas como PowerShell, Psake, Grunt, Gulp e NPM Scripts, demonstrando Grunt, Gulp e NPM Scripts. A mensagem principal é que essas ferramentas podem reduzir o tempo de setup de projetos de horas ou dias para apenas alguns minutos.
Automatização de Infraestrutura com JenkinsFelipe Santos
Jenkins é uma ferramenta open source de integração contínua e entrega contínua que automatiza tarefas como compilação, teste e implantação de software. Originalmente chamado de Hudson, foi renomeado para Jenkins após uma bifurcação da comunidade do projeto em 2011. O Jenkins oferece recursos como automação da infraestrutura, visualização de status de builds, encadeamento de tarefas, retry de builds falhos e notificações por SMS ou ligação.
Evoluindo bancos de dados com Flyway. E uma alternativa ao banco de dados centralizado.
Flyway auxilía na integração contínua e no desenvolvimento de software.
O documento discute refatoração de códigos PHP. Apresenta o palestrante e define refatoração como o processo de alterar o código sem alterar o comportamento, mas melhorando a estrutura interna. A refatoração é necessária pois todo software precisa evoluir e muitos desenvolvedores PHP não seguem boas práticas de programação. A refatoração trás benefícios como diminuir a complexidade, prevenir falhas e facilitar manutenção.
Este documento discute como usar o Jenkins para executar testes de software. Ele descreve como o Jenkins pode ser usado para executar testes unitários, testes de integração e testes funcionais. Além disso, fornece demonstrações e discute alguns recursos adicionais do Jenkins como a execução de testes Selenium e a integração com ferramentas como Sonar e TestLink.
Docker, jenkins e gradle para tomar o controle de sua entregaHumberto Streb
O documento discute a implementação de Continuous Delivery em um projeto de software com mais de 1 milhão de linhas de código usando ferramentas como Docker, Jenkins e Gradle. Problemas como builds manuais, dependências compartilhadas e falta de automação foram resolvidos, melhorando a qualidade e permitindo entregas contínuas com menor risco. A mudança também focou em aspectos culturais para promover aprendizado e confiança entre times de negócios e desenvolvimento.
O documento discute estratégias para usar integração e entrega contínua com o GoCD. Apresenta conceitos básicos do GoCD como servidores, agentes, pipelines, estágios e jobs. Também descreve casos de sucesso migrando do Jenkins para o GoCD e experimentos com testes móveis e de interoperabilidade.
O documento discute o desenvolvimento de aplicativos híbridos usando o framework Ionic. Descreve um projeto de aplicativo móvel para votação em tempo real desenvolvido com Ionic e as vantagens e desafios encontrados. Também fornece detalhes sobre como configurar e usar o Ionic, incluindo templates, plugins, build e publicação.
O mínimo de Integração Contínua que todo projeto deveria terÁtilla Silva Barros
Palestra ministrada no Join Community 2017.
Nessa palestra mostramos exemplos de projetos com o mínimo de Integração Contínua necessária para iniciar uma mudança na cultura de geração de binários, implantações e entregas de software.
O projeto em que você trabalha efetua a geração de binários em um ambiente diferente do ambiente de produção? É necessário vários recursos e horas, ou até mesmo dias, para efetuar uma implantação? É recorrente problemas causados por erro humano durante uma entrega? A comunicação entre as equipes da empresa só é feita por meio de canais burocráticos e protocolos como abertura de issues? O ciclo de vida de uma entrega do sistema dura até meses? Se para alguma dessas perguntas a resposta for SIM, seu projeto precisa do mínimo de Integração Contínua.
Você já ouviu falar sobre Developer Experience? Entenda como provemos uma melhor experiência para as pessoas desenvolvedoras aqui no Nubank e possibilitamos que os times de produtos se concentrem no que é mais importante: liberar novas funcionalidades para nossos clientes, de maneira rápida, consistente e confiável.
Primeiros passos para tomar uma decisão de arquitetura com AngularJS.Cauê Alves
O documento fornece dicas para a arquitetura de aplicações AngularJS, incluindo escolher esqueletos como Angular Seed ou Yeoman, usar ferramentas como Grunt ou Gulp para concatenar arquivos, e tomar cuidado com diretivas como ng-repeat para melhor desempenho.
O documento discute integração contínua, incluindo seus conceitos, benefícios e pré-requisitos. A integração contínua envolve construir e testar automaticamente o software sempre que novas mudanças são implementadas para garantir que o software esteja sempre em um estado funcional. Isso ajuda a detectar bugs cedo e manter o software de alta qualidade. Pré-requisitos incluem controle de versão, builds automatizados e testes automatizados.
Carrefour E-commerce - Multicloud Brasil Day 2017Denis Santos
Compartilhando uma breve experiência sobre o tema Multicloud no Carrefour E-commerce, além de um How To sobre o Rundeck para viabilizar interfaces de atendimento e automação no tema Multicloud.
Desenvolvimento de software: Mundo ideal x Mundo realHenrique Schmidt
Visto que hoje cada vez mais os profissionais de qualidade e desenvolvimento de software trabalham em par, precisamos falar das duas áreas juntas para disseminar essa cultura. Esta apresentação aborda boas práticas importantes e utilizadas em desenvolvimento de software, falando sobre como elas são aplicadas no dia a dia das empresas.
Desenvolvimento de software mundo ideal x mundo realWilly Salazar
Este documento discute os desafios do desenvolvimento de software no mundo real em comparação com o mundo ideal, onde todas as melhores práticas são perfeitamente aplicadas. Ele cobre tópicos como qualidade vs desenvolvimento, pirâmide de testes, CI/CD, boas práticas de código e agilidade. O documento também fornece indicações de estudos adicionais para aperfeiçoar as práticas de desenvolvimento de software.
O documento discute o controle de versão distribuído usando o Git. Explica que o Git permite trabalhar localmente e sincronizar com um repositório remoto, ao contrário de sistemas centralizados onde as modificações só podem ser feitas após o upload. Também destaca como o GitHub popularizou o Git ao fornecer hospedagem gratuita de projetos e funcionalidades sociais que facilitam a colaboração.
O documento descreve o sistema GreenMile Deployments v2.0, que automatiza o processo de implantação de aplicativos usando ferramentas como Heaven, Fabric e hubot-deploy. A nova versão fornece maior visibilidade sobre implantações e versões de software, além de facilitar a recuperação de bancos de dados e testes em servidores remotos.
C school Extended - Liberte sua arquitetura com Cloud NativeAndré Paulovich
Vamos discutir as vantagens e implicações de aderir ao modelo de arquitetura baseado em 'Cloud Native', com um chassi de aplicações inteiramente construído com base em recursos open-source
Tiago Bonatti (ContaAzul)
Nesta palestra iremos conversar sobre boas práticas e soluções para os desafios da cultura de microserviços.
Vale do Carbono Conference
O documento apresenta três ferramentas open source do ecossistema de containers: CRI-O, Buildah e Skopeo. CRI-O é uma implementação do Kubernetes Container Runtime Interface focada em segurança e simplicidade. Buildah permite construir imagens de container sem Dockerfile. Skopeo copia imagens entre registros e formatos de armazenamento. Juntas, essas ferramentas oferecem funcionalidades essenciais para gerenciamento de containers no Openshift.
O novo IBM COBOL ENTERPRISE V5/V6 para zOS e o IBM ABOPaulo Batuta
O documento discute as ofertas mais recentes da IBM para melhorar o desempenho de aplicações COBOL no z Systems, incluindo o Enterprise COBOL for z/OS V6.1 e o Automatic Binary Optimizer for z/OS V1.1. Essas soluções otimizam código COBOL existente e compilado para explorar melhor a arquitetura z, resultando em reduções de até 60% no tempo de CPU em alguns casos.
TDC2018SP | Trilha Containers - CRI-O: Nem so de Docker vivem os containerstdc-globalcode
O documento apresenta o CRI-O, uma implementação do Kubernetes Container Runtime Interface (CRI) baseada nos padrões OCI. O CRI-O fornece as funcionalidades necessárias para o Kubernetes executar containers, como baixar imagens e armazená-las, executar containers e monitorá-los. Além disso, ferramentas como Buildah e Skopeo são apresentadas para criar e gerenciar imagens de container.
Quebrando barreiras entre desenvolvimento e operação de software com DevOpsJosé Alexandre Macedo
Apresentado para o Pop-ES e NPD da Ufes. Conheça o significado de DevOps e como ele pode apoiar entregas mais rápidas de software por meio da mudança de cultura, automatização entre outras...
TDC 2019 Cloud - Liberte sua arquitetura com cloud nativeAndré Paulovich
O documento discute como adotar uma abordagem "Cloud Native" pode ajudar empresas a liberar sua arquitetura e desenvolver soluções de nuvem de forma mais flexível e independente de fornecedores, evitando problemas como "vendor lock-in". A adoção de tecnologias como contêineres, Kubernetes e DevOps é fundamental nessa abordagem. Embora seja um desafio, é importante para as empresas se reinventarem e acompanharem as tendências da indústria.
Conceito de Integração Contínua e Ferramentas como: Jenkins e SonarQube no IV Meetup Qualyteam.
Fontes: Martin Fowler, Kent Beck, Booch
SubTemas: Continuous Delivery e Deployment, DevOps, ...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...Faga1939
Este artigo tem por objetivo apresentar como ocorreu a evolução do consumo e da produção de energia desde a pré-história até os tempos atuais, bem como propor o futuro da energia requerido para o mundo. Da pré-história até o século XVIII predominou o uso de fontes renováveis de energia como a madeira, o vento e a energia hidráulica. Do século XVIII até a era contemporânea, os combustíveis fósseis predominaram com o carvão e o petróleo, mas seu uso chegará ao fim provavelmente a partir do século XXI para evitar a mudança climática catastrófica global resultante de sua utilização ao emitir gases do efeito estufa responsáveis pelo aquecimento global. Com o fim da era dos combustíveis fósseis virá a era das fontes renováveis de energia quando prevalecerá a utilização da energia hidrelétrica, energia solar, energia eólica, energia das marés, energia das ondas, energia geotérmica, energia da biomassa e energia do hidrogênio. Não existem dúvidas de que as atividades humanas sobre a Terra provocam alterações no meio ambiente em que vivemos. Muitos destes impactos ambientais são provenientes da geração, manuseio e uso da energia com o uso de combustíveis fósseis. A principal razão para a existência desses impactos ambientais reside no fato de que o consumo mundial de energia primária proveniente de fontes não renováveis (petróleo, carvão, gás natural e nuclear) corresponde a aproximadamente 88% do total, cabendo apenas 12% às fontes renováveis. Independentemente das várias soluções que venham a ser adotadas para eliminar ou mitigar as causas do efeito estufa, a mais importante ação é, sem dúvidas, a adoção de medidas que contribuam para a eliminação ou redução do consumo de combustíveis fósseis na produção de energia, bem como para seu uso mais eficiente nos transportes, na indústria, na agropecuária e nas cidades (residências e comércio), haja vista que o uso e a produção de energia são responsáveis por 57% dos gases de estufa emitidos pela atividade humana. Neste sentido, é imprescindível a implantação de um sistema de energia sustentável no mundo. Em um sistema de energia sustentável, a matriz energética mundial só deveria contar com fontes de energia limpa e renováveis (hidroelétrica, solar, eólica, hidrogênio, geotérmica, das marés, das ondas e biomassa), não devendo contar, portanto, com o uso dos combustíveis fósseis (petróleo, carvão e gás natural).
As classes de modelagem podem ser comparadas a moldes ou
formas que definem as características e os comportamentos dos
objetos criados a partir delas. Vale traçar um paralelo com o projeto de
um automóvel. Os engenheiros definem as medidas, a quantidade de
portas, a potência do motor, a localização do estepe, dentre outras
descrições necessárias para a fabricação de um veículo
Este certificado confirma que Gabriel de Mattos Faustino concluiu com sucesso um curso de 42 horas de Gestão Estratégica de TI - ITIL na Escola Virtual entre 19 de fevereiro de 2014 a 20 de fevereiro de 2014.
Em um mundo cada vez mais digital, a segurança da informação tornou-se essencial para proteger dados pessoais e empresariais contra ameaças cibernéticas. Nesta apresentação, abordaremos os principais conceitos e práticas de segurança digital, incluindo o reconhecimento de ameaças comuns, como malware e phishing, e a implementação de medidas de proteção e mitigação para vazamento de senhas.
2. Platéia - Vamos participar?
Alguém aqui…
- Acha que o app Android “builda" rápido?
- Acha que dá pra rodar os testes de UI na própria máquina?
- Já passou alguns dias gastando mais tempo debugando
gradle/test flaky/tentando fazer CI passar…
- Nunca teve que dar “./gradlew clean” pra consertar um
problema de build?
3. Nosso app cresceu…
+/- 1k de UI
Milhares de testes unitários
+/- 10 devs de cada plataform
+/- 20 devs de RN
4. App no início de 2017
- 40~50 min clean build no CI
- ~1h UI tests
- 5~6 min de unit + (rebuild) ~15min (único flavor)
- +- 2h cada run do CI
- Um único projeto
6. Divisão por lógica de negócios
• Cada squad é empoderado a ter sua
própria parte do app
• Priorização decentralizada
• Código desacoplado
• Spikes de novas tecnologias
• Sem dor de projeto grande
16. Schemata
Managers
CoreAnalyticsblocks ui
http
Common Libraries
Nubank Android Core
Help BonafontNuConta Feed
. . .. . .
O que ganhamos?
• Build rápidos - Ao separar cada um em seu
repositório
• Test suits menores
• Felicidade 😁
• Documentação e arquitetura concisa
dentro de um projeto
19. Common Libraries
Nubank Android Core
Schemata
Managers
CoreAnalyticsblocks ui
http
Help BonafontNuConta Feed
. . .. . .
android-app
Downsides
• Mudanças em diversos projetos virou doloroso
• Comunicação cross-squad sobre as mudanças
• Nem todo mundo trabalhando em projeto
novo (build do antigo lento)
20. Common Libraries
Nubank Android Core
Schemata
Managers
CoreAnalyticsblocks ui
http
Help BonafontNuConta Feed
. . .. . .
android-app
foundation
26. Mas e o tempo de build, teste e tudo mais????
Monorepo
27. Nós vivemos no futuro
- Múltiplos Cores
- SSDs
- Muito muito RAM
- Storage é barato
- Trafego da dados é rapido
- Distributed Version Controls Systems
28. Mas nossas ferramentas vivem no passado!
- Baseado em “Tasks"
- Muito mágico
- Difícil de paralelizar
29. O que seria o ideal?
- Conseguir buildar partes pequenas do projeto separadamente
- Grafo de dependencias explicito -> Paralelização
- Rebuildar somente o necessário
30. Arquivo de configuração por package/diretório
- Fácil de compartilhar, buscar e reutilizar código
- Menos boilerplate
31. Build Rules
- Módulo tem conhecimento do que e como buildar
- Dependencias declaradas explicitamente
37. Buck - Alguns aprendizados
Vale a pena para apps modulares
Kotlin (e Swift) não é ABI estable =|
Builds mais reproduzíveis (e menos mágicos)
Kotlin support ainda é bebe
Você vai querer usar o okBuck
38. Dados Buck
Build Dep3
clean build sample staging
gradle -> `BUILD SUCCESSFUL in 3m 13s`
buck -> `Building: finished in 01:55.7 min`
Mudanças em Dep3
gradle `BUILD SUCCESSFUL in 22s`
buck -> `Building: finished in 16.4 sec`
Mudanças em Dep2
gradle -> `BUILD SUCCESSFUL in 30s`
buck -> `Building: finished in 16.3 sec`
(it only needed to recompile dep2 itself and the
sample dexing and packaging stuff)
Mudanças em Dep1
gradle -> `BUILD SUCCESSFUL in 45s`
buck -> `Building: finished in 15.2 sec` (it only
needed to recompile dep1 itself and the sample
dexing and packaging stuff)
Dep1
Dep2
Dep3
42. Problemas a resolver
Pipelines longas, flakness é um problema
Mais caro rodar nossos testes
É necessário um momento de transição
Buck nem tinha suporte a Kotlin
50. Difícil de mudar o processo atual
PRs em dois repositórios
Processo não pode ser gradual
Tabela da verdade está no gradle
Meta git é meio chato de usar
Topics:
2015:
Nubank without squads - prioritization within mobile team -> one PM
More people to attend more demand (from 1 to 3 developers)
Nothing shined on project structure / architecture
Android annotation - Cut
Dagger
Rx
Three flavors -> stag, beta, prod
2016:
Company divided into squads (few at the beginning) - Prioritization within each squad
More two developers in the start of the year
Mobile team splitted - Didn't work out
Code started to smell (needed a convention / architecture)
Kotlin
Study on MVP / MVVM
Came Lego and Managers
Better coding style / project started to feel the same and was easy to maintain
CI took too long, all runs (unit, 19, 22, 25) on the same pipeline
Refactor on CI / split pipelines (explain Gocd)
Build not consistent -> apk that was under test was not the same to go to store - unexpected crashes -> build everything before tests (all three flavors)
More 2 developers
Giant project, slow build time, hard to be incredibly productive
Created more flavors minAPI16, minAPI21 (explain beneficts of minAPI21 at development time)
CI also slower (6 builds, each taking +- 4/5 minutes + test apk)
2017:Microservices for frontend -> Project split - Attend other squad demands - improve build time for new features - More decoupled code - Create low hanging fruits for open source -
Squads could have everything need for their features -> new technologies (RN) -> Another try on mobile split up
In house mini device farm -> STF
A lot of libs (schemata, core, lego, managers, analytics, ui, etc…)
RN libs, integrations -> common bridge -> react-native-central
Bump hell -> version management -> need know how to bump
Foundation
Autobump
TestLab
So why not split the app into those business logic, as well as the company?
So why not split the app into those business logic, as well as the company?
Next: Acquisition
Ganhos:Build de começo de projeto
Desenvolvimento rapido
Boa documentação - Fácil de saber onde procurar coisas
Primeiro erro: Cores dependiam uma das outras
Esperar pelo CI
Possíveis testes falhando
Wait time (integration feedback muito demorado)
Atualizar em todas as outras
Nem todo mundo estaria mexendo com as novas libs
Desenvolvimento no app ficou difícil de ter integration-feedback
Nem todo mundo estaria mexendo com as novas libs
Desenvolvimento no app ficou difícil de ter integration-feedback
Nem todo mundo estaria mexendo com as novas libs
Desenvolvimento no app ficou difícil de ter integration-feedback
NuConta é em ReactNative
Next: Acquisition
Da pra paralelizar tudo
SSD -> Acesso randômico mto mais eficiente do que spinning
RAM -> Carregar bastante coisa de uma vez (arquivo) e uso rápido dele
Storage e networking para persistir os dados
Task Based
- Precisa perguntar pra todas as tasks se tem algo que precisa fazer
- Precisa montar cada task toda vez
Paralelizar
- Mais complicado com make e ant, gradle tem ficado cada vez melhor
M time
- VCS pode complicar bem sua vida (git pull e o build com o timestamp mais novo vai falar que não precisa rebuildar)
E se você conseguisse configurar como bulidar apenas um pedaço do código, sem necessariamente ter que ter `src/main/java`, `src/main/test`, bla bla bla
E se você conseguisse configurar como bulidar apenas um pedaço do código, sem necessariamente ter que ter `src/main/java`, `src/main/test`, bla bla bla
Seu build sabe o que ta buildando, build rules, expressar dependence entre elas
O que nos resulta num DAG
E se você conseguisse configurar como bulidar apenas um pedaço do código, sem necessariamente ter que ter `src/main/java`, `src/main/test`, bla bla bla
Seu build sabe o que ta buildando, build rules, expressar dependence entre elas
O que nos resulta num DAG
Cache local e distribuido super facil
(3%) -> Estudo realizado no facebook
Cache local e distribuido super facil
(3%) -> Estudo realizado no facebook
Cache local e distribuido super facil
(3%) -> Estudo realizado no facebook
Cache local e distribuido super facil
(3%) -> Estudo realizado no facebook
Cache local e distribuido super facil
(3%) -> Estudo realizado no facebook