Node.js / NestJS

Docker āđāļĨāļ° Containerization

Dockerfile āļŠāļģāļŦāļĢāļąāļš Node.js/NestJS, docker-compose (Node + DB + Redis), multi-stage builds, āļāļēāļĢāļ›āļĢāļąāļšāđāļ•āđˆāļ‡ image, .dockerignore, volumes, networks, āļžāļ·āđ‰āļ™āļāļēāļ™āļāļēāļĢ orchestrate container

25 āļ„āļģāļ–āļēāļĄāļŠāļąāļĄāļ āļēāļĐāļ“āđŒÂ·
Mid-Level
1

Docker āļ„āļ·āļ­āļ­āļ°āđ„āļĢ?

āļ„āļģāļ•āļ­āļš

Docker āļ„āļ·āļ­āđāļžāļĨāļ•āļŸāļ­āļĢāđŒāļĄ containerization āļ—āļĩāđˆāļšāļĢāļĢāļˆāļļāđāļ­āļ›āļžāļĨāļīāđ€āļ„āļŠāļąāļ™āđāļĨāļ° dependency āļ‚āļ­āļ‡āļĄāļąāļ™āļĨāļ‡āđƒāļ™ container āļ—āļĩāđˆāđāļĒāļāļ­āļ­āļāļˆāļēāļāļāļąāļ™ āļ•āđˆāļēāļ‡āļˆāļēāļāđ€āļ„āļĢāļ·āđˆāļ­āļ‡āđ€āļŠāļĄāļ·āļ­āļ™āļ—āļĩāđˆāļˆāļģāļĨāļ­āļ‡ hardware āļ—āļąāđ‰āļ‡āļŦāļĄāļ” Docker āļˆāļ°āđāļŠāļĢāđŒ kernel āļ‚āļ­āļ‡ OS host āļ—āļģāđƒāļŦāđ‰āļĄāļąāļ™āđ€āļšāļēāđāļĨāļ°āđ€āļĢāđ‡āļ§ āļāļēāļĢāđƒāļŠāđ‰ Docker āļĢāļąāļšāļ›āļĢāļ°āļāļąāļ™āļ§āđˆāļēāđāļ­āļ›āļžāļĨāļīāđ€āļ„āļŠāļąāļ™āļ—āļģāļ‡āļēāļ™āđ€āļŦāļĄāļ·āļ­āļ™āļāļąāļ™āļ—āļąāđ‰āļ‡āđƒāļ™ development, staging āđāļĨāļ° production

2

āļ„āļ§āļēāļĄāđāļ•āļāļ•āđˆāļēāļ‡āļŦāļĨāļąāļāļĢāļ°āļŦāļ§āđˆāļēāļ‡ Docker container āļāļąāļšāđ€āļ„āļĢāļ·āđˆāļ­āļ‡āđ€āļŠāļĄāļ·āļ­āļ™āļ„āļ·āļ­āļ­āļ°āđ„āļĢ?

āļ„āļģāļ•āļ­āļš

Docker container āđāļŠāļĢāđŒ kernel āļ‚āļ­āļ‡ OS host āđāļĨāļ°āļˆāļģāļĨāļ­āļ‡āđ€āļ‰āļžāļēāļ° user space āđ€āļ—āđˆāļēāļ™āļąāđ‰āļ™ āļ—āļģāđƒāļŦāđ‰āļĄāļąāļ™āđ€āļšāļēāļĄāļēāļ (āđ„āļĄāđˆāļāļĩāđˆ MB) āđāļĨāļ°āđ€āļĢāļīāđˆāļĄāļ—āļģāļ‡āļēāļ™āđƒāļ™āđ„āļĄāđˆāļāļĩāđˆāļ§āļīāļ™āļēāļ—āļĩ āļŠāđˆāļ§āļ™ VM āļˆāļģāļĨāļ­āļ‡ hardware āļ—āļąāđ‰āļ‡āļŦāļĄāļ”āđāļĨāļ°āļĢāļ§āļĄ OS āđ€āļ•āđ‡āļĄāļĢāļđāļ›āđāļšāļš (āļŦāļĨāļēāļĒ GB) āđƒāļŠāđ‰āđ€āļ§āļĨāļēāđ€āļĢāļīāđˆāļĄāļ—āļģāļ‡āļēāļ™āđ€āļ›āđ‡āļ™āļ™āļēāļ—āļĩ āļ”āļąāļ‡āļ™āļąāđ‰āļ™ container āļˆāļķāļ‡āļĄāļĩāļ›āļĢāļ°āļŠāļīāļ—āļ˜āļīāļ āļēāļžāļĄāļēāļāļāļ§āđˆāļēāļŠāļģāļŦāļĢāļąāļš microservices āđāļĨāļ° CI/CD

3

Dockerfile āļĄāļĩāļšāļ—āļšāļēāļ—āļ­āļ°āđ„āļĢ?

āļ„āļģāļ•āļ­āļš

Dockerfile āļ„āļ·āļ­āđ„āļŸāļĨāđŒāļ‚āđ‰āļ­āļ„āļ§āļēāļĄāļ—āļĩāđˆāļĄāļĩāļ„āļģāļŠāļąāđˆāļ‡āļŠāļģāļŦāļĢāļąāļš build Docker image āđāļ•āđˆāļĨāļ°āļ„āļģāļŠāļąāđˆāļ‡ (FROM, COPY, RUN, CMD) āļˆāļ°āļŠāļĢāđ‰āļēāļ‡ layer āđƒāļ™ image āļĄāļąāļ™āļāļģāļŦāļ™āļ”āļŠāļ āļēāļžāđāļ§āļ”āļĨāđ‰āļ­āļĄ runtime, dependency āđāļĨāļ°āļ„āļģāļŠāļąāđˆāļ‡āđ€āļĢāļīāđˆāļĄāļ•āđ‰āļ™ Dockerfile āļ—āļĩāđˆāļ›āļĢāļąāļšāđāļ•āđˆāļ‡āļ”āļĩāļˆāļ°āđƒāļŠāđ‰ layer caching āđāļĨāļ° multi-stage builds āđ€āļžāļ·āđˆāļ­āļĨāļ”āļ‚āļ™āļēāļ” image āļŠāļļāļ”āļ—āđ‰āļēāļĒ

4

āļ„āļģāļŠāļąāđˆāļ‡ Dockerfile āđƒāļ”āļ—āļĩāđˆāļāļģāļŦāļ™āļ” base image?

5

āļ„āļ§āļēāļĄāđāļ•āļāļ•āđˆāļēāļ‡āļĢāļ°āļŦāļ§āđˆāļēāļ‡ CMD āļāļąāļš ENTRYPOINT āđƒāļ™ Dockerfile āļ„āļ·āļ­āļ­āļ°āđ„āļĢ?

+22 āļ„āļģāļ–āļēāļĄāļŠāļąāļĄāļ āļēāļĐāļ“āđŒ

āļŦāļąāļ§āļ‚āđ‰āļ­āļŠāļąāļĄāļ āļēāļĐāļ“āđŒ Node.js / NestJS āļ­āļ·āđˆāļ™āđ†

āļžāļ·āđ‰āļ™āļāļēāļ™ Node.js

Junior
20 āļ„āļģāļ–āļēāļĄ

Core API āļ‚āļ­āļ‡ Node.js

Junior
25 āļ„āļģāļ–āļēāļĄ

āļāļēāļĢāđ€āļ‚āļĩāļĒāļ™āđ‚āļ›āļĢāđāļāļĢāļĄāđāļšāļšāļ­āļ°āļ‹āļīāļ‡āđ‚āļ„āļĢāļ™āļąāļŠ

Junior
25 āļ„āļģāļ–āļēāļĄ

āļžāļ·āđ‰āļ™āļāļēāļ™ Express.js

Junior
20 āļ„āļģāļ–āļēāļĄ

āļžāļ·āđ‰āļ™āļāļēāļ™ NestJS

Junior
23 āļ„āļģāļ–āļēāļĄ

āļāļēāļĢāļ­āļ­āļāđāļšāļš REST API

Junior
20 āļ„āļģāļ–āļēāļĄ

āļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļšāļ„āļ§āļēāļĄāļ–āļđāļāļ•āđ‰āļ­āļ‡āđāļĨāļ° DTO

Junior
20 āļ„āļģāļ–āļēāļĄ

āđ€āļ­āļāļŠāļēāļĢ API āđāļĨāļ° Contract

Junior
20 āļ„āļģāļ–āļēāļĄ

āļāļēāļĢāļˆāļąāļ”āļāļēāļĢāļ‚āđ‰āļ­āļœāļīāļ”āļžāļĨāļēāļ”

Junior
20 āļ„āļģāļ–āļēāļĄ

āļāļēāļĢāļ—āļ”āļŠāļ­āļšāļŦāļ™āđˆāļ§āļĒ (Unit Testing)

Junior
20 āļ„āļģāļ–āļēāļĄ

āļāļēāļĢāļˆāļąāļ”āļ•āļēāļĢāļēāļ‡āļ‡āļēāļ™

Junior
15 āļ„āļģāļ–āļēāļĄ

Module āđāļĨāļ° DI āļ‚āļ­āļ‡ NestJS

Mid-Level
20 āļ„āļģāļ–āļēāļĄ

āļāļēāļĢāļāļģāļŦāļ™āļ”āļ„āđˆāļēāđāļĨāļ°āļāļēāļĢāļˆāļąāļ”āļāļēāļĢāļŠāļ āļēāļžāđāļ§āļ”āļĨāđ‰āļ­āļĄ

Mid-Level
20 āļ„āļģāļ–āļēāļĄ

āļāļēāļĢāļĒāļ·āļ™āļĒāļąāļ™āļ•āļąāļ§āļ•āļ™āļ”āđ‰āļ§āļĒ JWT

Mid-Level
25 āļ„āļģāļ–āļēāļĄ

āļāļēāļĢāđƒāļŦāđ‰āļŠāļīāļ—āļ˜āļīāđŒāđāļĨāļ° RBAC

Mid-Level
20 āļ„āļģāļ–āļēāļĄ

āļāļēāļ™āļ‚āđ‰āļ­āļĄāļđāļĨāļ”āđ‰āļ§āļĒ TypeORM

Mid-Level
30 āļ„āļģāļ–āļēāļĄ

Prisma ORM

Mid-Level
25 āļ„āļģāļ–āļēāļĄ

Middleware āđāļĨāļ° Interceptor

Mid-Level
20 āļ„āļģāļ–āļēāļĄ

āļāļēāļĢāļ­āļąāļ›āđ‚āļŦāļĨāļ”āđ„āļŸāļĨāđŒ

Mid-Level
15 āļ„āļģāļ–āļēāļĄ

WebSockets

Mid-Level
20 āļ„āļģāļ–āļēāļĄ

GraphQL āļāļąāļš NestJS

Mid-Level
25 āļ„āļģāļ–āļēāļĄ

āļāļēāļĢāļ—āļ”āļŠāļ­āļšāđāļšāļš End-to-End

Mid-Level
20 āļ„āļģāļ–āļēāļĄ

āļāļēāļĢāđāļ„āļŠāļ”āđ‰āļ§āļĒ Redis

Mid-Level
20 āļ„āļģāļ–āļēāļĄ

āļ„āļīāļ§āļ”āđ‰āļ§āļĒ Bull

Mid-Level
20 āļ„āļģāļ–āļēāļĄ

DevOps, Logging āđāļĨāļ° CI/CD

Mid-Level
25 āļ„āļģāļ–āļēāļĄ

āđ„āļĄāđ‚āļ„āļĢāđ€āļ‹āļ­āļĢāđŒāļ§āļīāļŠ

Senior
30 āļ„āļģāļ–āļēāļĄ

āđāļ™āļ§āļ—āļēāļ‡āļ›āļāļīāļšāļąāļ•āļīāļ—āļĩāđˆāļ”āļĩāļ—āļĩāđˆāļŠāļļāļ”āļ”āđ‰āļēāļ™āļ„āļ§āļēāļĄāļ›āļĨāļ­āļ”āļ āļąāļĒ

Senior
25 āļ„āļģāļ–āļēāļĄ

āļ›āļĢāļ°āļŠāļīāļ—āļ˜āļīāļ āļēāļžāđāļĨāļ°āļāļēāļĢ Deploy āļšāļ™ Cloud

Senior
30 āļ„āļģāļ–āļēāļĄ

āđ€āļŠāļĩāđˆāļĒāļ§āļŠāļēāļ Node.js / NestJS āļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāļŠāļąāļĄāļ āļēāļĐāļ“āđŒāļ„āļĢāļąāđ‰āļ‡āļ–āļąāļ”āđ„āļ›

āđ€āļ‚āđ‰āļēāļ–āļķāļ‡āļ„āļģāļ–āļēāļĄāļ—āļąāđ‰āļ‡āļŦāļĄāļ” flashcards āđāļšāļšāļ—āļ”āļŠāļ­āļšāđ€āļ—āļ„āļ™āļīāļ„ āđāļšāļšāļāļķāļāļŦāļąāļ” code review āđāļĨāļ°āļ•āļąāļ§āļˆāļģāļĨāļ­āļ‡āļŠāļąāļĄāļ āļēāļĐāļ“āđŒ

āđ€āļĢāļīāđˆāļĄāđƒāļŠāđ‰āļŸāļĢāļĩ