Academia.eduAcademia.edu

Netflix Design System Turma Jan

Netflix Design System Pedido: Quero um sistema parecido com a Netflix que vai exibir apenas esportes. Dicas Pense antes de falar, não traga algo que você não está confiante Lembre-se que o objetivo principal é resolver um problema juntos Você não precisa desenhar o sistema por completo Desenhe algo Foco DevOps => Infra Frontend => Componentes, estrutura e rotas Backend => Endpoints, estrutura, rotas, modelagem, arquivos Perguntas em aberto Quais esportes você vai exibir? Futebol, NBA, NFL Ao vivo ou apenas conteúdo gravado? Ambos Quais são as categorias de cobrança: pay per view, assinatura, conteúdo de graça? Assinatura mensal Existe a possibilidade de exibirmos, no futuro, algo além dos esportes? Não Precisamos de suporte para vários idiomas? Se sim, qual é o padrão? Sim, o padrão é inglês. É uma empresa americana tipo ESPN. Existem features diferentes para assinantes ou não assinantes? Não, temos apenas assinantes mensais. Quem não for assinante, não pode assistir. Vai disponibilizar download da media? Não Quais dispositivos serão compatíveis para exibição? Browser, Mobile App, TV, PS5, Xbox Qual é a qualidade da resolução desejada? No mínimo 720p, no máximo 4k O usuário terá uma sugestão com base em seu histórico? Sim, teremos um Data Engineer Existe restrição de conteúdo de acordo com o plano? Não, teremos 1 plano mensal. Um login poderá ser usado em mais de 1 IP diferente simultaneamente? Não pode! Precisa seguir LGPD-GPDR? Sim e teremos um especialista nos auxiliando Qual é a tecnologia que vai usar? Indiferente Quantos usuários esperemos ter? 1 milhão Quais os requisitos de acessibilidade? Neste mvp, não teremos nenhum suporte acessibilidade Qual é o budget para investir em infra? Estamos abertos a sugestões A partida durará no máximo 4 horas a 4k Tamanho máximo é de 30GB cada vídeo Usuários simultaneos? 200k em eventos normais, e 500k em eventos específicos 30GB * 200k = 6.000.000GB = 6PB 30GB * 500k = 14PB Design Infra Com base nos cálculos, precisamos de um servidor com mais de 14PB de bandwidth A melhor opção seria um AWS c5.18xlarge Não sou um DevOps Engineer, mas a sugestão que eu daria é irmos para um AWS e usarmos microserviços para ter uma maior flexibilidade nos custos e aumentar ou diminuir microserviço específico dependendo dos requests Também eu indicaria usarmos Kubernetes para ter este crescimento de modo mais organizado e ter maior autonomia no auto scaling Microserviços Billing: assinatura User: usuário, recomendações, histórico Streaming: passar os vídeos Database Users Field Type Constraint Notes id UUID PK fullname VARCHAR(255) email VARCHAR(255) password VARCHAR(255) Streaming Field Type Constraint Notes id UUID PK fullname VARCHAR(255) email VARCHAR(255) password VARCHAR(255) Backend Node: Streaming => MS Streaming Node: Clean Code, Clean Architecture, TDD Src Entities User.ts App Contracts IUser.ts Errors UserNotFound.ts InvalidRequest.ts Use Cases CreateUser.ts UpdateUser.ts Externals Repositories UserMySQL.ts (IUser.ts) Http Nest ou Express Frontend Browser React: comunidade forte, libs, é fácil encontrar mão de obra Libs que podem nos ajudar? Clean Code, TDD Src components <component> index.tsx <component>.test.tsx <component>.tsx Create-user-form index.tsx create-user-form.test.tsx create-user-form.tsx pages tests