๐Ÿ›ณ DevOps

๋‹จ๊ณ„๋ณ„๋กœ ์„ฑ์žฅํ•˜์ž!
์ด๋ฒˆ์— ํ”„๋กœ์ ํŠธ์—์„œ MSA๋ฅผ ์ ์šฉํ•˜๊ฒŒ ๋˜๋ฉด์„œ ๋น„๋™๊ธฐ ํ†ต์‹  ์ž‘์—…์„ ์œ„ํ•ด Kafka๋ฅผ ํ•™์Šตํ•˜์˜€๊ณ  ํ™˜๊ฒฝ์„ค์ •์„ ํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. 1. kafka, zookeeper Docker Compose๋กœ ์„ค์น˜ version: '3.8' services: zookeeper: image: wurstmeister/zookeeper container_name: zookeeper ports: - "2181:2181" kafka: image: wurstmeister/kafka container_name: kafka ports: - "9092:9092" environment: KAFKA_ADVERTISED_HOST_NAME: 127.0.0.1 KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 KAFKA_CREATE_..
In-Sync-Replicas(ISR) ๋ฆฌ๋”์™€ Sync(๋™๊ธฐ)๊ฐ€ ๋งž๊ณ ์žˆ๋Š”(๋ณต์‚ฌ๊ฐ€ ์ž˜ ์ˆ˜ํ–‰ํ•˜๊ณ  ์žˆ๋Š”) ๋ชจ๋“  Replicas์˜ ๋ชฉ๋ก ํ•˜๋‚˜์˜ ๋ธŒ๋กœ์ปค์—๋งŒ Partition Leader๋“ค์ด ๋ชฐ๋ ค์žˆ๋‹ค๋ฉด Hot Spot ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. ๋”ฐ๋ผ์„œ, Leader ์žฅ์•  ์‹œ Leader๋ฅผ ์„ ์ถœํ•˜๋Š”๋ฐ ์‚ฌ์šฉ replica.lag.max.messages: Follower์™€ Leader๊ฐ„์˜ ๋ฉ”์‹œ์ง€ ์ฐจ์ด (follower๊ฐ€ ๋ณต์‚ฌ๋ฅผ ์ž˜ ์ˆ˜ํ–‰ํ•˜๊ณ  ์žˆ๋Š”์ง€ ํŒ๋‹จํ•˜๋Š” ์ง€ํ‘œ) ์ƒ์œ„๋ฒ„์ „์—์„œ๋Š” ํ˜„์žฌ deprecated ๋ผ๊ณ  ํ•œ๋‹ค. Fully-Replicated Commited์˜ Commit์€ Consumer์˜ Commit๊ณผ ๋‹ค๋ฆ„ Follower๊ฐ€ ๋ณต์ œํ–ˆ์Œ์„ ์˜๋ฏธ consumer๋Š” hign water mark๊ฐ€ ํ‘œ์‹œ๋œ ๋ฐ์ดํ„ฐ๊นŒ์ง€๋งŒ ์ฝ์„ ์ˆ˜ ์žˆ์Œ r..
๋‚˜๋Š” ์ด๋ฒˆ์— ์ฐธ์—ฌํ•˜๋Š” ํ”„๋กœ์ ํŠธ์—์„œ Micro Service Architecture๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ๋กœ ํ–ˆ๊ธฐ์— ๋ฐ์ดํ„ฐ ๋™๊ธฐํ™” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด Kafka๋ฅผ ๊ณต๋ถ€ํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. Kafka์˜ ํƒ„์ƒ ๋ฐฐ๊ฒฝ ๋งํฌ๋“œ์ธ์ด๋ผ๋Š” ์‚ฌ์ดํŠธ๊ฐ€ ๊ธ‰์†๋„๋กœ ์„ฑ์žฅํ•˜๊ฒŒ ๋˜๋ฉด์„œ ์‹œ์Šคํ…œ ์œ ์ง€ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์˜€๊ณ  ์†Œ์Šค ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ๋ฐ์ดํ„ฐ๊ฐ€ ์ตœ์ข… ์ ์žฌ๋˜๋Š” Target ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ์—ฐ๊ฒฐํ•˜๋Š” ๋ณต์žก์„ฑ์ด ์žˆ์—ˆ๋‹ค. ์œ„์™€ ๊ฐ™์ด ์‹œ์Šคํ…œ์ด ๋ณต์žกํ•ด์งˆ์ˆ˜๋ก ์•„๋ž˜์™€ ๊ฐ™์€ End-to-End ์‹œ์Šคํ…œ์˜ ๋ฌธ์ œ์ ์ด ๋ฐœ์ƒํ•œ๋‹ค. ๋ฐ์ดํ„ฐ ์ „์†ก ํŒŒ์ดํ”„๋ผ์ธ์ด ๊ธฐํ•˜๊ธ‰์ˆ˜์ ์œผ๋กœ ๋ณต์žกํ•ด์ง Src-to-Target ํŒŒ์ดํ”„๋ผ์ธ ๊ฐœ์ˆ˜๊ฐ€ ๋งŽ์•„์ง€๋ฉด์„œ ์†Œ์Šค์ฝ”๋“œ ๋ฐ ๋ฒ„์ „ ๊ด€๋ฆฌ ์ด์Šˆ ๋ฐœ์ƒ target app์— ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ๊ฒฝ์šฐ, Source app์—๋„ ์˜ํ–ฅ์„ ์คŒ (๋†’์€ ๊ฒฐํ•ฉ๋„) ๋‹ค์–‘ํ•œ ETL(Extra..
Docker Compose๊ฐ€ ๋ญ˜๊นŒ? ๊ฐ๊ฐ ํ•˜๋‚˜์”ฉ ๊ด€๋ฆฌํ•˜๋˜ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ํ•˜๋‚˜๋กœ ๋ชจ์•„์„œ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ํˆด (ํ˜„์žฌ ๋‚ด๊ฐ€ ์ง„ํ–‰ ์ค‘์ธ ํ”„๋กœ์ ํŠธ์—์„œ Spring ๋ฐฑ์—”๋“œ ์„œ๋ฒ„, React ํ”„๋ก ํŠธ ์„œ๋ฒ„, MariaDB, Redis์˜ ์—ฌ๋Ÿฌ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋ชจ์•„์„œ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.) ์–ด๋–ค ํ˜•์‹์ธ์ง€ ๊ฐ„๋žตํ•˜๊ฒŒ ์„ค๋ช…ํ•ด์ค˜ docker-compose.yml ํŒŒ์ผ์„ ์ž‘์„ฑํ•˜์—ฌ ์‹คํ–‰ํ•˜๋ฉด ํ•œ๋ฒˆ์— ์ด๋ฏธ์ง€๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค. yml ํ˜•์‹์— ๋Œ€ํ•ด์„œ ์กฐ๊ธˆ๋งŒ ๋งํ•˜์ž๋ฉด key-value ํ˜•์‹์ด๋ฉฐ int, boolean, String ํƒ€์ž…์„ ์ง€์›ํ•œ๋‹ค. ๋ฆฌ์ŠคํŠธ์˜ ์•ž์—๋Š” ๋“ค์—ฌ์“ฐ๊ธฐ๋“ค์—ฌ ์“ฐ๊ธฐ ํ›„ - ๋ฅผ ๋ถ™์ด๊ณ , ๋ฆฌ์ŠคํŠธ๊ฐ€ ์•„๋‹Œ ๊ฒฝ์šฐ๋Š” ๋“ค์—ฌ ์“ฐ๊ธฐ๋กœ ๊ตฌ๋ถ„ํ•œ๋‹ค. ์ด์™ธ์— |, |-, ---, > ๋“ฑ ๋‹ค์–‘ํ•œ ๊ธฐํ˜ธ๊ฐ€ ์žˆ๋Š”๋ฐ ๋‚˜์ค‘์— ๋”ฐ๋กœ ์ž์„ธํžˆ ์•Œ์•„๋ณด์ž! versio..
Dockerfile์ด๋ž€? ๋„์ปค์—์„œ ์‚ฌ์šฉ๋˜๋Š” ์ด๋ฏธ์ง€๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ํ…์ŠคํŠธ ํ˜•์‹์˜ ํŒŒ์ผ์ด๋‹ค. ์ฃผ์š” ๋ช…๋ น์–ด Command Description FROM Base ์ด๋ฏธ์ง€๋ฅผ ์ง€์ • (ex: Node ๋‚˜ JDK ์ง€์ •) LABEL Version, Writer์™€ ๊ฐ™์€ ์ด๋ฏธ์ง€ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ์ž‘์„ฑ CMD ๋„์ปค ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์‹œ์ž‘๋  ๋•Œ ์‹คํ–‰๋˜๋Š” shell ๋ช…๋ น์„ ์„ค์ • RUN ์ด๋ฏธ์ง€ ์ž‘์„ฑ์‹œ ์‹คํ–‰๋˜๋Š” shell ๋ช…๋ น ์„ค์ • ๋ฐ ์ƒˆ๋กœ์šด ์ด๋ฏธ์ง€ layer๋ฅผ ๋งŒ๋“œ๋Š” ์—ญํ•  ENTRYPOINT ๋„์ปค ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์‹œ์ž‘๋  ๋•Œ ์‹คํ–‰๋˜๋Š” shell ๋ช…๋ น์„ ์„ค์ • CMD์™€๋Š” ๋‹ค๋ฅด๊ฒŒ docker run์—์„œ ๋ถ€์—ฌ๋˜๋Š” ๋ช…๋ น์— overrride๊ฐ€ ๋˜์ง€ ์•Š๊ณ  ์‹คํ–‰๋จ EXPOSE ๋„์ปค ์ปจํ…Œ์ด๋„ˆ ์™ธ๋ถ€์— ์˜คํ”ˆํ•  Port ์„ค์ • ENV ๋„์ปค ์ปจํ…Œ..
1. docker run ๋ช…๋ น pull, create, start๋ช…๋ น์„ ํ•œ๋ฒˆ์— ์ฒ˜๋ฆฌํ•˜๋ฉฐ ํƒ€๊ฒŸ ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์ ธ์™€์„œ ์ปค์Šคํ…€ ์„ค์ •์— ๋”ฐ๋ผ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ์‹คํ–‰ํ•˜๋Š” ๋ช…๋ น์–ด 2. ์˜ต์…˜ Option Description -i ์ปจํ…Œ์ด๋„ˆ์—์„œ ์™ธ๋ถ€๋กœ ํ‘œ์ค€ ์ž…๋ ฅ( ex: STDIN )์„ open. ๋‚ด๋ถ€ ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ ์ž…๋ ฅ์„ ์ „๋‹ฌํ•˜๊ธฐ ์œ„ํ•ด -t ๊ฐ€์ƒ ํ„ฐ๋ฏธ๋„(tty)์„ ํ• ๋‹น -d ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ ์‹คํ–‰ --name ์ปจํ…Œ์ด๋„ˆ ์ด๋ฆ„ ์„ค์ • =rm ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์ข…๋ฃŒ๋˜๋ฉด ์ž๋™์œผ๋กœ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‚ญ์ œ -p Host์™€ ์ปจํ…Œ์ด๋„ˆ ํฌํŠธ๋ฅผ ์—ฐ๊ฒฐ -v Host์™€ ์ปจํ…Œ์ด๋„ˆ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์—ฐ๊ฒฐ 3. -it ์ž์ฃผ ๊ฐ™์ด ์“ฐ๋Š” ์˜ต์…˜ -i ์˜ต์…˜์œผ๋กœ ๋„์ปค ์ปจํ…Œ์ด๋„ˆ์— ์™ธ๋ถ€๋กœ์˜ ํ‘œ์ค€ ์ž…๋ ฅ์„ openํ•˜๊ณ  -t ์˜ต์…˜์œผ๋กœ ๊ฐ€์ƒ(psedo) tty๋ฅผ ๋งŒ๋“ค์–ด ํ‘œ์ค€ ์ž…๋ ฅ์„..
DevPoong
'๐Ÿ›ณ DevOps' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก (2 Page)