Hot n' Code: Backend
29 de junho de 2023Estou no último dia do Hot n' Code e hoje a trilha é sobre Backend. Confesso que estava muito ansioso para esse dia em específico, pois é a área que eu mais gosto e que mais me identifico. Vamos lá!
NodeJS Event Loop
O NodeJS Event Loop é o que permite que o Node.js execute operações de I/O sem bloqueio - apesar de o JavaScript ser single-threaded - descarregando operações para o kernel do sistema sempre que possível.
Trace
É um conjunto de eventos que ocorrem em uma aplicação. É possível ter um trace de uma requisição HTTP, por exemplo.
Aqui podemos referenciar o error stack trace
que é o conjunto de eventos que ocorreram até o erro acontecer.
OpenTelemetry
O OpenTelemetry é uma coleção de ferramentas, APIs e SDKs que permitem a criação de traces e métricas para aplicações. Ela tem integração com vários frameworks e libs, como por exemplo: Spring, ASP.NET Core, Express, Quarkus.
Lambda "por debaixo do capo"
- MICRO VM
- Concorrencia
Reduzir custos de Lambdas
- Otimizar o pacote
- Pré provisionar lambda
- Pré privisionar dinâmicamente (application auto-scaling)
- Criar objetos fora do handler (diminui o tempo de inicialização / cold start)
- Testar a lambda com CPU diferente para calcular o custo GBxsecond (Lambda Power Tuning, AWS Computer Optimize)
- Sempre (que possível) utilizar o chip Gravtion2 da Amazon
Amazon CodeGuru
O AWS CodeGuru é um serviço que utiliza Machine Learning para fazer revisão do código, análisando vulnerabilidades e análisando as linhas mais caras da aplicação.
AWS X-Ray
O serviço AWS XRay permite fazer o trace de uma aplicação, desde o request até o response. É possível ver o tempo de cada requisição, o tempo de cada função, o tempo de cada requisição HTTP, etc.
Cache
- Arquiteturas de cache: Embedded, Sidecar, Distributed
- Algoritmos de substituição de cache: LRU, LFU, FIFO
- Padrões de escrita de cache: Write Through, Write Back, Lazy Loading
- Limpeza do cache: Rotina, Trigger, Time to Live, Deploy