Profile

hugobessa @hugobessa


About Me

-

Proposals

Domando a irreversibilidade com Feature Flags


Continuous delivery ganhou muita popularidade em equipes de desenvolvimento de software ultimamente. Hoje em dia, temos muitas ferramentas disponíveis para tornar esta prática mais fácil de implementar, coisas como ferramentas de teste, linters, serviços de integração contínua, hook de deploy contínuo etc.

Um dos principais ganhos dessas ferramentas é a capacidade de manter ciclos de entrega mais curtos, o que torna os deploys uma atividade diária ao invés de um raro evento assustador. Essa mudança de mentalidade ajuda as equipes a construir um software melhor e mais robusto ao mesmo tempo que proporciona um ambiente mais seguro [e paz de espírito]. Mas ciclos curtos não são balas de prata. Para que eles sejam corretamente implementados, nenhuma branch deve viver muito longe de master e isso significa que funcionalidades incompletas devem ir pra produção de vez em quando. Eles também não garantem software sem bugs ou que as features implementadas satisfazem corretamente as necessidades dos usuários.

Feature flags são um design que vem, não apenas para ajudar a desativar funcionalidades bugadas ou incompletas, mas também para nos permitir testar se novas funcionalidades estão realmente melhorando a experiência do usuário. Isso melhora o processo de desenvolvimento, permitindo que os desenvolvedores sincronizem o código com mais freqüência (mesmo com funcionalidades incompletas) e possam reagir rapidamente quando houverem erros de produção, reduzindo o estresse da equipe em crises.

Nesse talk, você aprenderá como as Feature Flags podem melhorar o seu fluxo de desenvolvimento e quais são as boas práticas e precauções que todos os desenvolvedores devem tomar para alcançar os melhores resultados usando-as.

Domando a irreversibilidade com Feature Flags

Resumo


Faz 10 anos desde que o time de desenvolvimento do Flickr documentou o uso de feature flags no software deles. Gigantes da tecnologia como Google e Facebook também já afirmaram usar, mas ainda assim parece que poucos times estão se beneficiando dessa ferramenta.


Feature Flags tornam possível ativar e desativar funcionalidades sem a necessidade de mexer em código. Isso pode, não só ajudar time a melhorar o tempo de resposta em desastres, como também trazer paz de espírito aos desenvolvedores. Há também muitos benefícios em relação a frequência em que o código central é atualizado e ao fluxo de lançar novas funcionalidades, especialmente em aplicações com um grande número de usuários.


Junto com essas benesses, feature flags também adicionam algumas novas preocupações: existem muitas estratégias de implementação e inúmeras novos pontos de falha que podem surgir caso não sejam implementadas da melhor maneira. Desde as ferramentas usadas para armazenar as flag até os padrões de software para garantir a manutenção da consistência na sua aplicação independente dos valores das flags.


 


Público-alvo


Para entender o conteúdo completo da palestra, os participantes devem ter conhecimento do Git SCM e de Python básico. O público-alvo são desenvolvedores interessados no processo de desenvolvimento de software, desenvolvedores que trabalham em software em produção e desejam uma maneira mais segura de criar novas funcionalidades, e aqueles que já estão usando Feature Flags, mas não têm confiança no seu processo atual.


 


O Que Esperar da Palestra


Essa talk foca nos benefícios e desafios que podem ser encontrados ao usar Feature Flags e como extrair o melhor dessa técnica sem perder de vista a qualidade do seu código.

Multi-Tenancy sem dor de cabeça

Resumo


A popularização dos softwares como serviço e a crescente flexibilidade de serviços de infraestrutura em nuvem tornaram mais comum a necessidade de criar aplicações que suportem múltiplos tenants (ou organizações/clientes). A arquitetura multi-tenant, além de trazer diminuição de custos de infraestrutura e manutenção, facilita a implementação de entrega contínua.


Porém, além de grandes benefícios, algumas preocupações se tornam mais frequentes com o uso dessa técnica. Entre elas a segurança das informações, a distribuição de recursos, o controle de acesso, o desempenho, a extração de métricas, entre outras.


Nessa palestra você vai aprender na prática como dar suporte a multi-tenancy em aplicações novas e já existentes: que alternativas temos pra isso, que cuidados devemos ter, e como fazer o processo ser indolor utilizando o django-shared-schema-tenants – um pacote django open source que promete simplificar esse tipo de migrações com uma abordagem de schema compartilhado.


Rundown


1. O que é Multi-tenancy (2min)
2. Quais as abordagens mais usadas para resolver suas vantagens e desvantagens
    * Separação dos dados (1min)
        * Instâncias diferentes (1min)
        * Multi bancos (1min)
        * Multi schema (1min)
        * Schema Compartilhado (tabelas compartilhadas) (1min)
    * Customização de tabelas e campos por tenant (1min)
        * Tabelas universais (1min)
        * Tabelas Pivot (1min)
        * Tabelas de Chunks (1min) 
        * Extensão XML (YML/JSON) (1min)
    * Autenticação e permissões (2min)
3. Ferramentas disponíveis para django (2min)
4. Sobre O Django-Shared-Schema-Tenants
    * Motivação (1min)
    * Que abordagens ele suporta (1min)
    * Quick start (2min)
5. Migrando uma aplicação single-tenant para multi-tenant com Django-Shared-Schema-Tenants
    * Contextualização no projeto que iremos migrar (2min)
    * Migração (8min)

Não fique desatualizado: Gestão de dependências em Python

Resumo
Hoje em dia é quase impossível (e, na maioria das vezes, não muito inteligente) desenvolver software sem depender de terceiros. O acervo de pacotes disponíveis pra Python é enorme e podem diminuir muito o tempo pra sua aplicação sair do zero pra produção. Porém como garantir que vai ficar tudo bem mesmo dependendo de código que não foi você nem seu time que escreveu?


Do requirements.txt basicão ao Poetry, existem várias ferramentas para gerir as dependências da sua aplicação e garantir que seu software está sempre com o que há de melhor no mundo open-source. Nessa talk serão abordados os diferentes métodos e as melhores práticas quando o assunto é estar atualizado.

Público-alvo
Desenvolvedores que utilizem python profissionalmente.

O Que Esperar da Palestra
Aprender as melhores práticas para gestão de dependências e ambiente em Python.