SlideShare a Scribd company logo
1 of 74
Download to read offline
๋‚ ๋กœ ๋จน๋Š”
Scalable ์ด์•ผ๊ธฐ!

       charsyam@naver.com
๋ฐœํ‘œ์ž ์†Œ๊ฐœ!
               ๋‚˜! ์ด๋Ÿฐ ์‚ฌ๋žŒ์ด์•ผ~
โ€ข   ์ด๋ฆ„ : ๊ฐ•๋Œ€๋ช…
โ€ข   ์„ฑ๋ณ„: ๋‚จ!
โ€ข   ์ง์—…: ์•„ํ‚คํ…ํŠธ๋ฅผ ๊ฟˆ๊พธ๋Š” ํ”„๋กœ๊ทธ๋ž˜๋จธ
โ€ข   ์ง์žฅ: NHN( 6๊ฐœ์›”๋œ ์ž‰์—ฌ ์„œ๋ฒ„ ๊ฐœ๋ฐœ์ž )
โ€ข   ํŠน๊ธฐ: ์Šคํ„ฐ๋”” ๋ฐœํ‘œ ๋‚ ๋กœ ๋จน๊ธฐ!
Topic: ์ด์•ผ๊ธฐ ๊ฑฐ๋ฆฌ
Scalable
Scale UP
   Vs
Scale OUT
Scale UP
์ดˆ๋‹น 1000 TPS
์ดˆ๋‹น 3000 TPS




3๋ฐฐ ์ฒ˜๋ฆฌ ๊ฐ€๋Šฅํ•œ ์„œ๋ฒ„๋ฅผ ํˆฌ์ž…
Scale OUT
์ดˆ๋‹น 1000 TPS
์ดˆ๋‹น 2000 TPS
์ดˆ๋‹น 3000 TPS
What is Better?
Depends on
๊ตฌ์ž… ๊ฐ€๊ฒฉ


    Depends on
๊ตฌ์ž… ๊ฐ€๊ฒฉ


    Depends on
             ๊ด€๋ฆฌ/์œ ์ง€๋น„
rchitecture
Distribution
Transparency
Access : ์‚ฌ์šฉ์ž๊ฐ€ ์ž์›์— ๋Œ€ํ•œ ์ ‘๊ทผ ๋ฐฉ๋ฒ•์„ ์•Œ ํ•„์š”๊ฐ€ ์—†๋‹ค.

                 Location: ์‚ฌ์šฉ์ž๋Š” ์ž์›์ด ๋กœ์ปฌ์ธ์ง€,
            ์›๊ฒฉ์ธ์ง€ ๋ฌผ๋ฆฌ์  ์œ„์น˜์— ๋Œ€ํ•ด์„œ ์•Œ ํ•„์š”๊ฐ€ ์—†๋‹ค.
         Migration: ์‚ฌ์šฉ์ž๋Š” ์ž์›์˜ ๋ฌผ๋ฆฌ์  ์œ„์น˜๊ฐ€ ์ด๋™ํ•˜๋”๋ผ๋„,
                   ๊ธฐ์กด ์ด๋ฆ„์œผ๋กœ ์„œ๋น„์Šค ๊ฐ€๋Šฅํ•ด์•ผ ํ•œ๋‹ค.
       Relocation: ์‚ฌ์šฉ์ž๋Š” ์‚ฌ์šฉ ์ค‘์— ์ž์›์˜ ์œ„์น˜๊ฐ€ ์ด๋™ํ•˜๋”๋ผ๋„,
                     ์ด์— ๋Œ€ํ•ด ์•Œ ํ•„์š”๊ฐ€ ์—†๋‹ค.
      Replication: ์‚ฌ์šฉ์ž๋Š” ์‚ฌ์šฉ ์ค‘์ธ ์ž์›์ด ๋ณต์ œ๋œ ๊ฒƒ์ธ์ง€ ์›๋ณธ์ธ์ง€
                         ์•Œ ํ•„์š”๊ฐ€ ์—†๋‹ค
Concurrency: ์‚ฌ์šฉ์ž๋Š” ์‚ฌ์šฉ ์ค‘์ธ ์ž์›์˜ ๋™์‹œ์„ฑ์— ๋Œ€ํ•ด์„œ ์‹ž๊ฒฝ ์“ธ ํ•„์š”๊ฐ€ ์—†๋‹ค.
                ๊ทธ๋ƒฅ ํ˜ผ์ž ์“ฐ๋Š” ์ž์›์ฒ˜๋Ÿผ ์ธ์‹๋˜์–ด์•ผ ํ•œ๋‹ค.
          Failure: ์‚ฌ์šฉ์ž๋Š” ์‚ฌ์šฉ ์ค‘์ธ ์ž์›์ด ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•˜๊ณ ,
        ์ด์— ๋Œ€ํ•œ ๋ณต์›์ด ์ด๋ฃจ์–ด์ง€๋”๋ผ๋„ ๊ทธ์— ๋Œ€ํ•ด ์•Œ ํ•„์š”๊ฐ€ ์—†๋‹ค.
Access : ์‚ฌ์šฉ์ž๊ฐ€ ์ž์›์— ๋Œ€ํ•œ ์ ‘๊ทผ ๋ฐฉ๋ฒ•์„ ์•Œ ํ•„์š”๊ฐ€ ์—†๋‹ค.

                 Location: ์‚ฌ์šฉ์ž๋Š” ์ž์›์ด ๋กœ์ปฌ์ธ์ง€,
            ์›๊ฒฉ์ธ์ง€ ๋ฌผ๋ฆฌ์  ์œ„์น˜์— ๋Œ€ํ•ด์„œ ์•Œ ํ•„์š”๊ฐ€ ์—†๋‹ค.
         Migration: ์‚ฌ์šฉ์ž๋Š” ์ž์›์˜ ๋ฌผ๋ฆฌ์  ์œ„์น˜๊ฐ€ ์ด๋™ํ•˜๋”๋ผ๋„,
                   ๊ธฐ์กด ์ด๋ฆ„์œผ๋กœ ์„œ๋น„์Šค ๊ฐ€๋Šฅํ•ด์•ผ ํ•œ๋‹ค.
       Relocation: ์‚ฌ์šฉ์ž๋Š” ์‚ฌ์šฉ ์ค‘์— ์ž์›์˜ ์œ„์น˜๊ฐ€ ์ด๋™ํ•˜๋”๋ผ๋„,
                     ์ด์— ๋Œ€ํ•ด ์•Œ ํ•„์š”๊ฐ€ ์—†๋‹ค.
      Replication: ์‚ฌ์šฉ์ž๋Š” ์‚ฌ์šฉ ์ค‘์ธ ์ž์›์ด ๋ณต์ œ๋œ ๊ฒƒ์ธ์ง€ ์›๋ณธ์ธ์ง€
                         ์•Œ ํ•„์š”๊ฐ€ ์—†๋‹ค
Concurrency: ์‚ฌ์šฉ์ž๋Š” ์‚ฌ์šฉ ์ค‘์ธ ์ž์›์˜ ๋™์‹œ์„ฑ์— ๋Œ€ํ•ด์„œ ์‹ž๊ฒฝ ์“ธ ํ•„์š”๊ฐ€ ์—†๋‹ค.
                ๊ทธ๋ƒฅ ํ˜ผ์ž ์“ฐ๋Š” ์ž์›์ฒ˜๋Ÿผ ์ธ์‹๋˜์–ด์•ผ ํ•œ๋‹ค.
          Failure: ์‚ฌ์šฉ์ž๋Š” ์‚ฌ์šฉ ์ค‘์ธ ์ž์›์ด ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•˜๊ณ ,
        ์ด์— ๋Œ€ํ•œ ๋ณต์›์ด ์ด๋ฃจ์–ด์ง€๋”๋ผ๋„ ๊ทธ์— ๋Œ€ํ•ด ์•Œ ํ•„์š”๊ฐ€ ์—†๋‹ค.
Access : ์‚ฌ์šฉ์ž๊ฐ€ ์ž์›์— ๋Œ€ํ•œ ์ ‘๊ทผ ๋ฐฉ๋ฒ•์„ ์•Œ ํ•„์š”๊ฐ€ ์—†๋‹ค.

                 Location: ์‚ฌ์šฉ์ž๋Š” ์ž์›์ด ๋กœ์ปฌ์ธ์ง€,
            ์›๊ฒฉ์ธ์ง€ ๋ฌผ๋ฆฌ์  ์œ„์น˜์— ๋Œ€ํ•ด์„œ ์•Œ ํ•„์š”๊ฐ€ ์—†๋‹ค.
         Migration: ์‚ฌ์šฉ์ž๋Š” ์ž์›์˜ ๋ฌผ๋ฆฌ์  ์œ„์น˜๊ฐ€ ์ด๋™ํ•˜๋”๋ผ๋„,
                   ๊ธฐ์กด ์ด๋ฆ„์œผ๋กœ ์„œ๋น„์Šค ๊ฐ€๋Šฅํ•ด์•ผ ํ•œ๋‹ค.
       Relocation: ์‚ฌ์šฉ์ž๋Š” ์‚ฌ์šฉ ์ค‘์— ์ž์›์˜ ์œ„์น˜๊ฐ€ ์ด๋™ํ•˜๋”๋ผ๋„,
                     ์ด์— ๋Œ€ํ•ด ์•Œ ํ•„์š”๊ฐ€ ์—†๋‹ค.
      Replication: ์‚ฌ์šฉ์ž๋Š” ์‚ฌ์šฉ ์ค‘์ธ ์ž์›์ด ๋ณต์ œ๋œ ๊ฒƒ์ธ์ง€ ์›๋ณธ์ธ์ง€
                         ์•Œ ํ•„์š”๊ฐ€ ์—†๋‹ค
Concurrency: ์‚ฌ์šฉ์ž๋Š” ์‚ฌ์šฉ ์ค‘์ธ ์ž์›์˜ ๋™์‹œ์„ฑ์— ๋Œ€ํ•ด์„œ ์‹ž๊ฒฝ ์“ธ ํ•„์š”๊ฐ€ ์—†๋‹ค.
                ๊ทธ๋ƒฅ ํ˜ผ์ž ์“ฐ๋Š” ์ž์›์ฒ˜๋Ÿผ ์ธ์‹๋˜์–ด์•ผ ํ•œ๋‹ค.
          Failure: ์‚ฌ์šฉ์ž๋Š” ์‚ฌ์šฉ ์ค‘์ธ ์ž์›์ด ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•˜๊ณ ,
        ์ด์— ๋Œ€ํ•œ ๋ณต์›์ด ์ด๋ฃจ์–ด์ง€๋”๋ผ๋„ ๊ทธ์— ๋Œ€ํ•ด ์•Œ ํ•„์š”๊ฐ€ ์—†๋‹ค.
Access : ์‚ฌ์šฉ์ž๊ฐ€ ์ž์›์— ๋Œ€ํ•œ ์ ‘๊ทผ ๋ฐฉ๋ฒ•์„ ์•Œ ํ•„์š”๊ฐ€ ์—†๋‹ค.

                 Location: ์‚ฌ์šฉ์ž๋Š” ์ž์›์ด ๋กœ์ปฌ์ธ์ง€,
            ์›๊ฒฉ์ธ์ง€ ๋ฌผ๋ฆฌ์  ์œ„์น˜์— ๋Œ€ํ•ด์„œ ์•Œ ํ•„์š”๊ฐ€ ์—†๋‹ค.
         Migration: ์‚ฌ์šฉ์ž๋Š” ์ž์›์˜ ๋ฌผ๋ฆฌ์  ์œ„์น˜๊ฐ€ ์ด๋™ํ•˜๋”๋ผ๋„,
                   ๊ธฐ์กด ์ด๋ฆ„์œผ๋กœ ์„œ๋น„์Šค ๊ฐ€๋Šฅํ•ด์•ผ ํ•œ๋‹ค.
       Relocation: ์‚ฌ์šฉ์ž๋Š” ์‚ฌ์šฉ ์ค‘์— ์ž์›์˜ ์œ„์น˜๊ฐ€ ์ด๋™ํ•˜๋”๋ผ๋„,
                     ์ด์— ๋Œ€ํ•ด ์•Œ ํ•„์š”๊ฐ€ ์—†๋‹ค.
      Replication: ์‚ฌ์šฉ์ž๋Š” ์‚ฌ์šฉ ์ค‘์ธ ์ž์›์ด ๋ณต์ œ๋œ ๊ฒƒ์ธ์ง€ ์›๋ณธ์ธ์ง€
                         ์•Œ ํ•„์š”๊ฐ€ ์—†๋‹ค
Concurrency: ์‚ฌ์šฉ์ž๋Š” ์‚ฌ์šฉ ์ค‘์ธ ์ž์›์˜ ๋™์‹œ์„ฑ์— ๋Œ€ํ•ด์„œ ์‹ž๊ฒฝ ์“ธ ํ•„์š”๊ฐ€ ์—†๋‹ค.
                ๊ทธ๋ƒฅ ํ˜ผ์ž ์“ฐ๋Š” ์ž์›์ฒ˜๋Ÿผ ์ธ์‹๋˜์–ด์•ผ ํ•œ๋‹ค.
          Failure: ์‚ฌ์šฉ์ž๋Š” ์‚ฌ์šฉ ์ค‘์ธ ์ž์›์ด ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•˜๊ณ ,
        ์ด์— ๋Œ€ํ•œ ๋ณต์›์ด ์ด๋ฃจ์–ด์ง€๋”๋ผ๋„ ๊ทธ์— ๋Œ€ํ•ด ์•Œ ํ•„์š”๊ฐ€ ์—†๋‹ค.
Access : ์‚ฌ์šฉ์ž๊ฐ€ ์ž์›์— ๋Œ€ํ•œ ์ ‘๊ทผ ๋ฐฉ๋ฒ•์„ ์•Œ ํ•„์š”๊ฐ€ ์—†๋‹ค.

                 Location: ์‚ฌ์šฉ์ž๋Š” ์ž์›์ด ๋กœ์ปฌ์ธ์ง€,
            ์›๊ฒฉ์ธ์ง€ ๋ฌผ๋ฆฌ์  ์œ„์น˜์— ๋Œ€ํ•ด์„œ ์•Œ ํ•„์š”๊ฐ€ ์—†๋‹ค.
         Migration: ์‚ฌ์šฉ์ž๋Š” ์ž์›์˜ ๋ฌผ๋ฆฌ์  ์œ„์น˜๊ฐ€ ์ด๋™ํ•˜๋”๋ผ๋„,
                   ๊ธฐ์กด ์ด๋ฆ„์œผ๋กœ ์„œ๋น„์Šค ๊ฐ€๋Šฅํ•ด์•ผ ํ•œ๋‹ค.
       Relocation: ์‚ฌ์šฉ์ž๋Š” ์‚ฌ์šฉ ์ค‘์— ์ž์›์˜ ์œ„์น˜๊ฐ€ ์ด๋™ํ•˜๋”๋ผ๋„,
                     ์ด์— ๋Œ€ํ•ด ์•Œ ํ•„์š”๊ฐ€ ์—†๋‹ค.
      Replication: ์‚ฌ์šฉ์ž๋Š” ์‚ฌ์šฉ ์ค‘์ธ ์ž์›์ด ๋ณต์ œ๋œ ๊ฒƒ์ธ์ง€ ์›๋ณธ์ธ์ง€
                         ์•Œ ํ•„์š”๊ฐ€ ์—†๋‹ค
Concurrency: ์‚ฌ์šฉ์ž๋Š” ์‚ฌ์šฉ ์ค‘์ธ ์ž์›์˜ ๋™์‹œ์„ฑ์— ๋Œ€ํ•ด์„œ ์‹ž๊ฒฝ ์“ธ ํ•„์š”๊ฐ€ ์—†๋‹ค.
                ๊ทธ๋ƒฅ ํ˜ผ์ž ์“ฐ๋Š” ์ž์›์ฒ˜๋Ÿผ ์ธ์‹๋˜์–ด์•ผ ํ•œ๋‹ค.
          Failure: ์‚ฌ์šฉ์ž๋Š” ์‚ฌ์šฉ ์ค‘์ธ ์ž์›์ด ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•˜๊ณ ,
        ์ด์— ๋Œ€ํ•œ ๋ณต์›์ด ์ด๋ฃจ์–ด์ง€๋”๋ผ๋„ ๊ทธ์— ๋Œ€ํ•ด ์•Œ ํ•„์š”๊ฐ€ ์—†๋‹ค.
Access : ์‚ฌ์šฉ์ž๊ฐ€ ์ž์›์— ๋Œ€ํ•œ ์ ‘๊ทผ ๋ฐฉ๋ฒ•์„ ์•Œ ํ•„์š”๊ฐ€ ์—†๋‹ค.

                 Location: ์‚ฌ์šฉ์ž๋Š” ์ž์›์ด ๋กœ์ปฌ์ธ์ง€,
            ์›๊ฒฉ์ธ์ง€ ๋ฌผ๋ฆฌ์  ์œ„์น˜์— ๋Œ€ํ•ด์„œ ์•Œ ํ•„์š”๊ฐ€ ์—†๋‹ค.
         Migration: ์‚ฌ์šฉ์ž๋Š” ์ž์›์˜ ๋ฌผ๋ฆฌ์  ์œ„์น˜๊ฐ€ ์ด๋™ํ•˜๋”๋ผ๋„,
                   ๊ธฐ์กด ์ด๋ฆ„์œผ๋กœ ์„œ๋น„์Šค ๊ฐ€๋Šฅํ•ด์•ผ ํ•œ๋‹ค.
       Relocation: ์‚ฌ์šฉ์ž๋Š” ์‚ฌ์šฉ ์ค‘์— ์ž์›์˜ ์œ„์น˜๊ฐ€ ์ด๋™ํ•˜๋”๋ผ๋„,
                     ์ด์— ๋Œ€ํ•ด ์•Œ ํ•„์š”๊ฐ€ ์—†๋‹ค.
      Replication: ์‚ฌ์šฉ์ž๋Š” ์‚ฌ์šฉ ์ค‘์ธ ์ž์›์ด ๋ณต์ œ๋œ ๊ฒƒ์ธ์ง€ ์›๋ณธ์ธ์ง€
                         ์•Œ ํ•„์š”๊ฐ€ ์—†๋‹ค
Concurrency: ์‚ฌ์šฉ์ž๋Š” ์‚ฌ์šฉ ์ค‘์ธ ์ž์›์˜ ๋™์‹œ์„ฑ์— ๋Œ€ํ•ด์„œ ์‹ž๊ฒฝ ์“ธ ํ•„์š”๊ฐ€ ์—†๋‹ค.
                ๊ทธ๋ƒฅ ํ˜ผ์ž ์“ฐ๋Š” ์ž์›์ฒ˜๋Ÿผ ์ธ์‹๋˜์–ด์•ผ ํ•œ๋‹ค.
          Failure: ์‚ฌ์šฉ์ž๋Š” ์‚ฌ์šฉ ์ค‘์ธ ์ž์›์ด ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•˜๊ณ ,
        ์ด์— ๋Œ€ํ•œ ๋ณต์›์ด ์ด๋ฃจ์–ด์ง€๋”๋ผ๋„ ๊ทธ์— ๋Œ€ํ•ด ์•Œ ํ•„์š”๊ฐ€ ์—†๋‹ค.
Access : ์‚ฌ์šฉ์ž๊ฐ€ ์ž์›์— ๋Œ€ํ•œ ์ ‘๊ทผ ๋ฐฉ๋ฒ•์„ ์•Œ ํ•„์š”๊ฐ€ ์—†๋‹ค.

                 Location: ์‚ฌ์šฉ์ž๋Š” ์ž์›์ด ๋กœ์ปฌ์ธ์ง€,
            ์›๊ฒฉ์ธ์ง€ ๋ฌผ๋ฆฌ์  ์œ„์น˜์— ๋Œ€ํ•ด์„œ ์•Œ ํ•„์š”๊ฐ€ ์—†๋‹ค.
         Migration: ์‚ฌ์šฉ์ž๋Š” ์ž์›์˜ ๋ฌผ๋ฆฌ์  ์œ„์น˜๊ฐ€ ์ด๋™ํ•˜๋”๋ผ๋„,
                   ๊ธฐ์กด ์ด๋ฆ„์œผ๋กœ ์„œ๋น„์Šค ๊ฐ€๋Šฅํ•ด์•ผ ํ•œ๋‹ค.
       Relocation: ์‚ฌ์šฉ์ž๋Š” ์‚ฌ์šฉ ์ค‘์— ์ž์›์˜ ์œ„์น˜๊ฐ€ ์ด๋™ํ•˜๋”๋ผ๋„,
                     ์ด์— ๋Œ€ํ•ด ์•Œ ํ•„์š”๊ฐ€ ์—†๋‹ค.
      Replication: ์‚ฌ์šฉ์ž๋Š” ์‚ฌ์šฉ ์ค‘์ธ ์ž์›์ด ๋ณต์ œ๋œ ๊ฒƒ์ธ์ง€ ์›๋ณธ์ธ์ง€
                         ์•Œ ํ•„์š”๊ฐ€ ์—†๋‹ค
Concurrency: ์‚ฌ์šฉ์ž๋Š” ์‚ฌ์šฉ ์ค‘์ธ ์ž์›์˜ ๋™์‹œ์„ฑ์— ๋Œ€ํ•ด์„œ ์‹ž๊ฒฝ ์“ธ ํ•„์š”๊ฐ€ ์—†๋‹ค.
                ๊ทธ๋ƒฅ ํ˜ผ์ž ์“ฐ๋Š” ์ž์›์ฒ˜๋Ÿผ ์ธ์‹๋˜์–ด์•ผ ํ•œ๋‹ค.
          Failure: ์‚ฌ์šฉ์ž๋Š” ์‚ฌ์šฉ ์ค‘์ธ ์ž์›์ด ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•˜๊ณ ,
        ์ด์— ๋Œ€ํ•œ ๋ณต์›์ด ์ด๋ฃจ์–ด์ง€๋”๋ผ๋„ ๊ทธ์— ๋Œ€ํ•ด ์•Œ ํ•„์š”๊ฐ€ ์—†๋‹ค.
Access : ์‚ฌ์šฉ์ž๊ฐ€ ์ž์›์— ๋Œ€ํ•œ ์ ‘๊ทผ ๋ฐฉ๋ฒ•์„ ์•Œ ํ•„์š”๊ฐ€ ์—†๋‹ค.

                 Location: ์‚ฌ์šฉ์ž๋Š” ์ž์›์ด ๋กœ์ปฌ์ธ์ง€,
            ์›๊ฒฉ์ธ์ง€ ๋ฌผ๋ฆฌ์  ์œ„์น˜์— ๋Œ€ํ•ด์„œ ์•Œ ํ•„์š”๊ฐ€ ์—†๋‹ค.
         Migration: ์‚ฌ์šฉ์ž๋Š” ์ž์›์˜ ๋ฌผ๋ฆฌ์  ์œ„์น˜๊ฐ€ ์ด๋™ํ•˜๋”๋ผ๋„,
                   ๊ธฐ์กด ์ด๋ฆ„์œผ๋กœ ์„œ๋น„์Šค ๊ฐ€๋Šฅํ•ด์•ผ ํ•œ๋‹ค.
       Relocation: ์‚ฌ์šฉ์ž๋Š” ์‚ฌ์šฉ ์ค‘์— ์ž์›์˜ ์œ„์น˜๊ฐ€ ์ด๋™ํ•˜๋”๋ผ๋„,
                     ์ด์— ๋Œ€ํ•ด ์•Œ ํ•„์š”๊ฐ€ ์—†๋‹ค.
      Replication: ์‚ฌ์šฉ์ž๋Š” ์‚ฌ์šฉ ์ค‘์ธ ์ž์›์ด ๋ณต์ œ๋œ ๊ฒƒ์ธ์ง€ ์›๋ณธ์ธ์ง€
                         ์•Œ ํ•„์š”๊ฐ€ ์—†๋‹ค
Concurrency: ์‚ฌ์šฉ์ž๋Š” ์‚ฌ์šฉ ์ค‘์ธ ์ž์›์˜ ๋™์‹œ์„ฑ์— ๋Œ€ํ•ด์„œ ์‹ž๊ฒฝ ์“ธ ํ•„์š”๊ฐ€ ์—†๋‹ค.
                ๊ทธ๋ƒฅ ํ˜ผ์ž ์“ฐ๋Š” ์ž์›์ฒ˜๋Ÿผ ์ธ์‹๋˜์–ด์•ผ ํ•œ๋‹ค.
          Failure: ์‚ฌ์šฉ์ž๋Š” ์‚ฌ์šฉ ์ค‘์ธ ์ž์›์ด ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•˜๊ณ ,
        ์ด์— ๋Œ€ํ•œ ๋ณต์›์ด ์ด๋ฃจ์–ด์ง€๋”๋ผ๋„ ๊ทธ์— ๋Œ€ํ•ด ์•Œ ํ•„์š”๊ฐ€ ์—†๋‹ค.
ifficult!!!
Use
Framework
3 Things
   +1
3 Things
    Gearman
   Memcached
 MySQL Scale Out
GEARMAN
Queue         Job
Service   +   Server
Multi platform
Multi Language
Gearman Flow
Gearman Cluster
GEARMAN
MANAGER
Gearman Cluster

   ํ•œ๋Œ€๊ฐ€ ์˜ค๋ฅ˜๊ฐ€ ๋‚˜๋”๋ผ๋„ ๋‹ค๋ฅธ ์„œ๋ฒ„๋กœ ์ ‘๊ทผ
    ๋‹จ, addserver ๋กœ ์ถ”๊ฐ€ํ•ด์ค˜์•ผ ํ•œ๋‹ค.
Gearman Dynamic
Gearman A,B          Worker A ๋“ฑ๋ก
   ์„œ๋น„์Šค



              ์ž‘์—…์ฒ˜๋ฆฌ
  ๊ฒฐ๊ณผ ์ „์†ก              Client A ์š”์ฒญ
Gearman Dynamic 2
Gearman A,B
                     Client A ์š”์ฒญ
   ์„œ๋น„์Šค

                             A ๋Œ€๊ธฐ
              ์ž‘์—…์ฒ˜๋ฆฌ
  ๊ฒฐ๊ณผ ์ „์†ก              Worker A ๋“ฑ๋ก
Gearman Map/Reduce
             Client

       Gearman Job Server

        Map/Reduce Worker
   Client     Client     Client

        Gearman Job Server

  Worker     Worker      Worker
Who Use Gearman!

Digg: 45+ Server, 400K Jobs/day
Yahoo: 120+ Server, 12M jobs/day
Apply Cache Server

Perfomance   UP
Client        Client       Client



              Server

                 Write

Cache Layer              DBMS
              Update
MEMCACHED
NoSQL
Key-Value Store
Atomic
Operation
Who use Memcached?
โ€ข Facebook and Google and Many Companies
โ€ข Facebook
  โ€“ ํ˜„์žฌ ๊ฐ€์ž…์ž ์ˆ˜ 6์–ต๋ช…
  โ€“ ํ™œ์„ฑ ์‚ฌ์šฉ์ž 7,000๋งŒ
  โ€“ ์‚ฌ์šฉ์ž ์ฆ๊ฐ€ ๋น„์œจ 4์ผ์— 100๋งŒ๋ช…
  โ€“ Web ์„œ๋ฒ„ 10,000 ๋Œ€, Web Request ์ดˆ๋‹น 2000๋งŒ๋ฒˆ
  โ€“ Memcached ์„œ๋ฒ„ 805๋Œ€ -> 15TB, HitRate: 95%
  โ€“ Mysq server 1,800 ๋Œ€ Master/Slave(๊ฐ๊ฐ, 900๋Œ€)
     โ€ข Mem: 25TB, SQL Query ์ดˆ๋‹น 50๋งŒ๋ฒˆ
CACHE ์ด์šฉ์˜ 2๊ฐ€์ง€ ๋ชจ๋ธ: 1
         Client




 CACHE            SERVER
CACHE ์ด์šฉ์˜ 2๊ฐ€์ง€ ๋ชจ๋ธ: 2
        Client




       SERVER

       CACHE
No, Free Lunch
No, Silver Bullet
1G MEM vs 4G MEM
Appling Scale Out
       On
Memcached Server
Distributed
Memcached Server
Client



     Proxy : Key Management


Memcached   Memcached   Memcached
 Server      Server      Server
NorthScale
 Project
MySQL Scale Out
Default
Architecture
Client



Master

    REPLICATION/FailOver

Slave
One Write
    Master
       +
Multi Read Slave
Client
     ONLY
     WRITE             Only READ
    Master

REPLICATION
     Slave     Slave         Slave
Partitioning
Why?
Partitioning
Scalable Partitioning
              Client


   PART 1               PART 2
 Web Server            Web Server
   DBMS                  DBMS
์ถ”๊ฐ€๋กœ ๊ณ ๋ฏผํ•˜๋ฉด
  ์ข‹์€๊ฑฐ?
Elastic!!!
Thank You!
๊ถŒ์žฅ ๋„์„œ

More Related Content

Viewers also liked

Db ์ง„๋‹จ ๋ฐ ํŠœ๋‹ ๋ณด๊ณ  (example)
Db ์ง„๋‹จ ๋ฐ ํŠœ๋‹ ๋ณด๊ณ  (example)Db ์ง„๋‹จ ๋ฐ ํŠœ๋‹ ๋ณด๊ณ  (example)
Db ์ง„๋‹จ ๋ฐ ํŠœ๋‹ ๋ณด๊ณ  (example)์ค‘์„  ๊ณฝ
ย 
Ssd ์„ฑ๋Šฅ์‹œํ—˜ cubrid mysql
Ssd ์„ฑ๋Šฅ์‹œํ—˜ cubrid mysqlSsd ์„ฑ๋Šฅ์‹œํ—˜ cubrid mysql
Ssd ์„ฑ๋Šฅ์‹œํ—˜ cubrid mysqlswkim79
ย 
์ปดํ“จํ„ฐ ๋„คํŠธ์›Œํฌ์™€ ์ธํ„ฐ๋„ท
์ปดํ“จํ„ฐ ๋„คํŠธ์›Œํฌ์™€ ์ธํ„ฐ๋„ท์ปดํ“จํ„ฐ ๋„คํŠธ์›Œํฌ์™€ ์ธํ„ฐ๋„ท
์ปดํ“จํ„ฐ ๋„คํŠธ์›Œํฌ์™€ ์ธํ„ฐ๋„ท์ค‘์„  ๊ณฝ
ย 
09. Memory, Storage (RAM, Cache, HDD, ODD, SSD, Flashdrives)
09. Memory, Storage (RAM, Cache, HDD, ODD, SSD, Flashdrives)09. Memory, Storage (RAM, Cache, HDD, ODD, SSD, Flashdrives)
09. Memory, Storage (RAM, Cache, HDD, ODD, SSD, Flashdrives)Akhila Dakshina
ย 
Data models
Data modelsData models
Data modelsAnuj Modi
ย 
[์˜คํ”ˆ์†Œ์Šค์ปจ์„คํŒ…]Day #3 MySQL Monitoring, Trouble Shooting
[์˜คํ”ˆ์†Œ์Šค์ปจ์„คํŒ…]Day #3 MySQL Monitoring, Trouble Shooting[์˜คํ”ˆ์†Œ์Šค์ปจ์„คํŒ…]Day #3 MySQL Monitoring, Trouble Shooting
[์˜คํ”ˆ์†Œ์Šค์ปจ์„คํŒ…]Day #3 MySQL Monitoring, Trouble ShootingJi-Woong Choi
ย 
Data Modeling PPT
Data Modeling PPTData Modeling PPT
Data Modeling PPTTrinath
ย 
SSD Deployment Strategies for MySQL
SSD Deployment Strategies for MySQLSSD Deployment Strategies for MySQL
SSD Deployment Strategies for MySQLYoshinori Matsunobu
ย 

Viewers also liked (8)

Db ์ง„๋‹จ ๋ฐ ํŠœ๋‹ ๋ณด๊ณ  (example)
Db ์ง„๋‹จ ๋ฐ ํŠœ๋‹ ๋ณด๊ณ  (example)Db ์ง„๋‹จ ๋ฐ ํŠœ๋‹ ๋ณด๊ณ  (example)
Db ์ง„๋‹จ ๋ฐ ํŠœ๋‹ ๋ณด๊ณ  (example)
ย 
Ssd ์„ฑ๋Šฅ์‹œํ—˜ cubrid mysql
Ssd ์„ฑ๋Šฅ์‹œํ—˜ cubrid mysqlSsd ์„ฑ๋Šฅ์‹œํ—˜ cubrid mysql
Ssd ์„ฑ๋Šฅ์‹œํ—˜ cubrid mysql
ย 
์ปดํ“จํ„ฐ ๋„คํŠธ์›Œํฌ์™€ ์ธํ„ฐ๋„ท
์ปดํ“จํ„ฐ ๋„คํŠธ์›Œํฌ์™€ ์ธํ„ฐ๋„ท์ปดํ“จํ„ฐ ๋„คํŠธ์›Œํฌ์™€ ์ธํ„ฐ๋„ท
์ปดํ“จํ„ฐ ๋„คํŠธ์›Œํฌ์™€ ์ธํ„ฐ๋„ท
ย 
09. Memory, Storage (RAM, Cache, HDD, ODD, SSD, Flashdrives)
09. Memory, Storage (RAM, Cache, HDD, ODD, SSD, Flashdrives)09. Memory, Storage (RAM, Cache, HDD, ODD, SSD, Flashdrives)
09. Memory, Storage (RAM, Cache, HDD, ODD, SSD, Flashdrives)
ย 
Data models
Data modelsData models
Data models
ย 
[์˜คํ”ˆ์†Œ์Šค์ปจ์„คํŒ…]Day #3 MySQL Monitoring, Trouble Shooting
[์˜คํ”ˆ์†Œ์Šค์ปจ์„คํŒ…]Day #3 MySQL Monitoring, Trouble Shooting[์˜คํ”ˆ์†Œ์Šค์ปจ์„คํŒ…]Day #3 MySQL Monitoring, Trouble Shooting
[์˜คํ”ˆ์†Œ์Šค์ปจ์„คํŒ…]Day #3 MySQL Monitoring, Trouble Shooting
ย 
Data Modeling PPT
Data Modeling PPTData Modeling PPT
Data Modeling PPT
ย 
SSD Deployment Strategies for MySQL
SSD Deployment Strategies for MySQLSSD Deployment Strategies for MySQL
SSD Deployment Strategies for MySQL
ย 

More from DaeMyung Kang

Count min sketch
Count min sketchCount min sketch
Count min sketchDaeMyung Kang
ย 
Why GUID is needed
Why GUID is neededWhy GUID is needed
Why GUID is neededDaeMyung Kang
ย 
How to use redis well
How to use redis wellHow to use redis well
How to use redis wellDaeMyung Kang
ย 
The easiest consistent hashing
The easiest consistent hashingThe easiest consistent hashing
The easiest consistent hashingDaeMyung Kang
ย 
How to name a cache key
How to name a cache keyHow to name a cache key
How to name a cache keyDaeMyung Kang
ย 
Integration between Filebeat and logstash
Integration between Filebeat and logstash Integration between Filebeat and logstash
Integration between Filebeat and logstash DaeMyung Kang
ย 
How to build massive service for advance
How to build massive service for advanceHow to build massive service for advance
How to build massive service for advanceDaeMyung Kang
ย 
Massive service basic
Massive service basicMassive service basic
Massive service basicDaeMyung Kang
ย 
Data Engineering 101
Data Engineering 101Data Engineering 101
Data Engineering 101DaeMyung Kang
ย 
How To Become Better Engineer
How To Become Better EngineerHow To Become Better Engineer
How To Become Better EngineerDaeMyung Kang
ย 
Kafka timestamp offset_final
Kafka timestamp offset_finalKafka timestamp offset_final
Kafka timestamp offset_finalDaeMyung Kang
ย 
Kafka timestamp offset
Kafka timestamp offsetKafka timestamp offset
Kafka timestamp offsetDaeMyung Kang
ย 
Data pipeline and data lake
Data pipeline and data lakeData pipeline and data lake
Data pipeline and data lakeDaeMyung Kang
ย 
Coffee store
Coffee storeCoffee store
Coffee storeDaeMyung Kang
ย 
Scalable webservice
Scalable webserviceScalable webservice
Scalable webserviceDaeMyung Kang
ย 
Number system
Number systemNumber system
Number systemDaeMyung Kang
ย 
webservice scaling for newbie
webservice scaling for newbiewebservice scaling for newbie
webservice scaling for newbieDaeMyung Kang
ย 

More from DaeMyung Kang (20)

Count min sketch
Count min sketchCount min sketch
Count min sketch
ย 
Redis
RedisRedis
Redis
ย 
Ansible
AnsibleAnsible
Ansible
ย 
Why GUID is needed
Why GUID is neededWhy GUID is needed
Why GUID is needed
ย 
How to use redis well
How to use redis wellHow to use redis well
How to use redis well
ย 
The easiest consistent hashing
The easiest consistent hashingThe easiest consistent hashing
The easiest consistent hashing
ย 
How to name a cache key
How to name a cache keyHow to name a cache key
How to name a cache key
ย 
Integration between Filebeat and logstash
Integration between Filebeat and logstash Integration between Filebeat and logstash
Integration between Filebeat and logstash
ย 
How to build massive service for advance
How to build massive service for advanceHow to build massive service for advance
How to build massive service for advance
ย 
Massive service basic
Massive service basicMassive service basic
Massive service basic
ย 
Data Engineering 101
Data Engineering 101Data Engineering 101
Data Engineering 101
ย 
How To Become Better Engineer
How To Become Better EngineerHow To Become Better Engineer
How To Become Better Engineer
ย 
Kafka timestamp offset_final
Kafka timestamp offset_finalKafka timestamp offset_final
Kafka timestamp offset_final
ย 
Kafka timestamp offset
Kafka timestamp offsetKafka timestamp offset
Kafka timestamp offset
ย 
Data pipeline and data lake
Data pipeline and data lakeData pipeline and data lake
Data pipeline and data lake
ย 
Redis acl
Redis aclRedis acl
Redis acl
ย 
Coffee store
Coffee storeCoffee store
Coffee store
ย 
Scalable webservice
Scalable webserviceScalable webservice
Scalable webservice
ย 
Number system
Number systemNumber system
Number system
ย 
webservice scaling for newbie
webservice scaling for newbiewebservice scaling for newbie
webservice scaling for newbie
ย 

Scalable

  • 2. ๋ฐœํ‘œ์ž ์†Œ๊ฐœ! ๋‚˜! ์ด๋Ÿฐ ์‚ฌ๋žŒ์ด์•ผ~ โ€ข ์ด๋ฆ„ : ๊ฐ•๋Œ€๋ช… โ€ข ์„ฑ๋ณ„: ๋‚จ! โ€ข ์ง์—…: ์•„ํ‚คํ…ํŠธ๋ฅผ ๊ฟˆ๊พธ๋Š” ํ”„๋กœ๊ทธ๋ž˜๋จธ โ€ข ์ง์žฅ: NHN( 6๊ฐœ์›”๋œ ์ž‰์—ฌ ์„œ๋ฒ„ ๊ฐœ๋ฐœ์ž ) โ€ข ํŠน๊ธฐ: ์Šคํ„ฐ๋”” ๋ฐœํ‘œ ๋‚ ๋กœ ๋จน๊ธฐ!
  • 5. Scale UP Vs Scale OUT
  • 8. ์ดˆ๋‹น 3000 TPS 3๋ฐฐ ์ฒ˜๋ฆฌ ๊ฐ€๋Šฅํ•œ ์„œ๋ฒ„๋ฅผ ํˆฌ์ž…
  • 16. ๊ตฌ์ž… ๊ฐ€๊ฒฉ Depends on ๊ด€๋ฆฌ/์œ ์ง€๋น„
  • 19. Access : ์‚ฌ์šฉ์ž๊ฐ€ ์ž์›์— ๋Œ€ํ•œ ์ ‘๊ทผ ๋ฐฉ๋ฒ•์„ ์•Œ ํ•„์š”๊ฐ€ ์—†๋‹ค. Location: ์‚ฌ์šฉ์ž๋Š” ์ž์›์ด ๋กœ์ปฌ์ธ์ง€, ์›๊ฒฉ์ธ์ง€ ๋ฌผ๋ฆฌ์  ์œ„์น˜์— ๋Œ€ํ•ด์„œ ์•Œ ํ•„์š”๊ฐ€ ์—†๋‹ค. Migration: ์‚ฌ์šฉ์ž๋Š” ์ž์›์˜ ๋ฌผ๋ฆฌ์  ์œ„์น˜๊ฐ€ ์ด๋™ํ•˜๋”๋ผ๋„, ๊ธฐ์กด ์ด๋ฆ„์œผ๋กœ ์„œ๋น„์Šค ๊ฐ€๋Šฅํ•ด์•ผ ํ•œ๋‹ค. Relocation: ์‚ฌ์šฉ์ž๋Š” ์‚ฌ์šฉ ์ค‘์— ์ž์›์˜ ์œ„์น˜๊ฐ€ ์ด๋™ํ•˜๋”๋ผ๋„, ์ด์— ๋Œ€ํ•ด ์•Œ ํ•„์š”๊ฐ€ ์—†๋‹ค. Replication: ์‚ฌ์šฉ์ž๋Š” ์‚ฌ์šฉ ์ค‘์ธ ์ž์›์ด ๋ณต์ œ๋œ ๊ฒƒ์ธ์ง€ ์›๋ณธ์ธ์ง€ ์•Œ ํ•„์š”๊ฐ€ ์—†๋‹ค Concurrency: ์‚ฌ์šฉ์ž๋Š” ์‚ฌ์šฉ ์ค‘์ธ ์ž์›์˜ ๋™์‹œ์„ฑ์— ๋Œ€ํ•ด์„œ ์‹ž๊ฒฝ ์“ธ ํ•„์š”๊ฐ€ ์—†๋‹ค. ๊ทธ๋ƒฅ ํ˜ผ์ž ์“ฐ๋Š” ์ž์›์ฒ˜๋Ÿผ ์ธ์‹๋˜์–ด์•ผ ํ•œ๋‹ค. Failure: ์‚ฌ์šฉ์ž๋Š” ์‚ฌ์šฉ ์ค‘์ธ ์ž์›์ด ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•˜๊ณ , ์ด์— ๋Œ€ํ•œ ๋ณต์›์ด ์ด๋ฃจ์–ด์ง€๋”๋ผ๋„ ๊ทธ์— ๋Œ€ํ•ด ์•Œ ํ•„์š”๊ฐ€ ์—†๋‹ค.
  • 20. Access : ์‚ฌ์šฉ์ž๊ฐ€ ์ž์›์— ๋Œ€ํ•œ ์ ‘๊ทผ ๋ฐฉ๋ฒ•์„ ์•Œ ํ•„์š”๊ฐ€ ์—†๋‹ค. Location: ์‚ฌ์šฉ์ž๋Š” ์ž์›์ด ๋กœ์ปฌ์ธ์ง€, ์›๊ฒฉ์ธ์ง€ ๋ฌผ๋ฆฌ์  ์œ„์น˜์— ๋Œ€ํ•ด์„œ ์•Œ ํ•„์š”๊ฐ€ ์—†๋‹ค. Migration: ์‚ฌ์šฉ์ž๋Š” ์ž์›์˜ ๋ฌผ๋ฆฌ์  ์œ„์น˜๊ฐ€ ์ด๋™ํ•˜๋”๋ผ๋„, ๊ธฐ์กด ์ด๋ฆ„์œผ๋กœ ์„œ๋น„์Šค ๊ฐ€๋Šฅํ•ด์•ผ ํ•œ๋‹ค. Relocation: ์‚ฌ์šฉ์ž๋Š” ์‚ฌ์šฉ ์ค‘์— ์ž์›์˜ ์œ„์น˜๊ฐ€ ์ด๋™ํ•˜๋”๋ผ๋„, ์ด์— ๋Œ€ํ•ด ์•Œ ํ•„์š”๊ฐ€ ์—†๋‹ค. Replication: ์‚ฌ์šฉ์ž๋Š” ์‚ฌ์šฉ ์ค‘์ธ ์ž์›์ด ๋ณต์ œ๋œ ๊ฒƒ์ธ์ง€ ์›๋ณธ์ธ์ง€ ์•Œ ํ•„์š”๊ฐ€ ์—†๋‹ค Concurrency: ์‚ฌ์šฉ์ž๋Š” ์‚ฌ์šฉ ์ค‘์ธ ์ž์›์˜ ๋™์‹œ์„ฑ์— ๋Œ€ํ•ด์„œ ์‹ž๊ฒฝ ์“ธ ํ•„์š”๊ฐ€ ์—†๋‹ค. ๊ทธ๋ƒฅ ํ˜ผ์ž ์“ฐ๋Š” ์ž์›์ฒ˜๋Ÿผ ์ธ์‹๋˜์–ด์•ผ ํ•œ๋‹ค. Failure: ์‚ฌ์šฉ์ž๋Š” ์‚ฌ์šฉ ์ค‘์ธ ์ž์›์ด ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•˜๊ณ , ์ด์— ๋Œ€ํ•œ ๋ณต์›์ด ์ด๋ฃจ์–ด์ง€๋”๋ผ๋„ ๊ทธ์— ๋Œ€ํ•ด ์•Œ ํ•„์š”๊ฐ€ ์—†๋‹ค.
  • 21. Access : ์‚ฌ์šฉ์ž๊ฐ€ ์ž์›์— ๋Œ€ํ•œ ์ ‘๊ทผ ๋ฐฉ๋ฒ•์„ ์•Œ ํ•„์š”๊ฐ€ ์—†๋‹ค. Location: ์‚ฌ์šฉ์ž๋Š” ์ž์›์ด ๋กœ์ปฌ์ธ์ง€, ์›๊ฒฉ์ธ์ง€ ๋ฌผ๋ฆฌ์  ์œ„์น˜์— ๋Œ€ํ•ด์„œ ์•Œ ํ•„์š”๊ฐ€ ์—†๋‹ค. Migration: ์‚ฌ์šฉ์ž๋Š” ์ž์›์˜ ๋ฌผ๋ฆฌ์  ์œ„์น˜๊ฐ€ ์ด๋™ํ•˜๋”๋ผ๋„, ๊ธฐ์กด ์ด๋ฆ„์œผ๋กœ ์„œ๋น„์Šค ๊ฐ€๋Šฅํ•ด์•ผ ํ•œ๋‹ค. Relocation: ์‚ฌ์šฉ์ž๋Š” ์‚ฌ์šฉ ์ค‘์— ์ž์›์˜ ์œ„์น˜๊ฐ€ ์ด๋™ํ•˜๋”๋ผ๋„, ์ด์— ๋Œ€ํ•ด ์•Œ ํ•„์š”๊ฐ€ ์—†๋‹ค. Replication: ์‚ฌ์šฉ์ž๋Š” ์‚ฌ์šฉ ์ค‘์ธ ์ž์›์ด ๋ณต์ œ๋œ ๊ฒƒ์ธ์ง€ ์›๋ณธ์ธ์ง€ ์•Œ ํ•„์š”๊ฐ€ ์—†๋‹ค Concurrency: ์‚ฌ์šฉ์ž๋Š” ์‚ฌ์šฉ ์ค‘์ธ ์ž์›์˜ ๋™์‹œ์„ฑ์— ๋Œ€ํ•ด์„œ ์‹ž๊ฒฝ ์“ธ ํ•„์š”๊ฐ€ ์—†๋‹ค. ๊ทธ๋ƒฅ ํ˜ผ์ž ์“ฐ๋Š” ์ž์›์ฒ˜๋Ÿผ ์ธ์‹๋˜์–ด์•ผ ํ•œ๋‹ค. Failure: ์‚ฌ์šฉ์ž๋Š” ์‚ฌ์šฉ ์ค‘์ธ ์ž์›์ด ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•˜๊ณ , ์ด์— ๋Œ€ํ•œ ๋ณต์›์ด ์ด๋ฃจ์–ด์ง€๋”๋ผ๋„ ๊ทธ์— ๋Œ€ํ•ด ์•Œ ํ•„์š”๊ฐ€ ์—†๋‹ค.
  • 22. Access : ์‚ฌ์šฉ์ž๊ฐ€ ์ž์›์— ๋Œ€ํ•œ ์ ‘๊ทผ ๋ฐฉ๋ฒ•์„ ์•Œ ํ•„์š”๊ฐ€ ์—†๋‹ค. Location: ์‚ฌ์šฉ์ž๋Š” ์ž์›์ด ๋กœ์ปฌ์ธ์ง€, ์›๊ฒฉ์ธ์ง€ ๋ฌผ๋ฆฌ์  ์œ„์น˜์— ๋Œ€ํ•ด์„œ ์•Œ ํ•„์š”๊ฐ€ ์—†๋‹ค. Migration: ์‚ฌ์šฉ์ž๋Š” ์ž์›์˜ ๋ฌผ๋ฆฌ์  ์œ„์น˜๊ฐ€ ์ด๋™ํ•˜๋”๋ผ๋„, ๊ธฐ์กด ์ด๋ฆ„์œผ๋กœ ์„œ๋น„์Šค ๊ฐ€๋Šฅํ•ด์•ผ ํ•œ๋‹ค. Relocation: ์‚ฌ์šฉ์ž๋Š” ์‚ฌ์šฉ ์ค‘์— ์ž์›์˜ ์œ„์น˜๊ฐ€ ์ด๋™ํ•˜๋”๋ผ๋„, ์ด์— ๋Œ€ํ•ด ์•Œ ํ•„์š”๊ฐ€ ์—†๋‹ค. Replication: ์‚ฌ์šฉ์ž๋Š” ์‚ฌ์šฉ ์ค‘์ธ ์ž์›์ด ๋ณต์ œ๋œ ๊ฒƒ์ธ์ง€ ์›๋ณธ์ธ์ง€ ์•Œ ํ•„์š”๊ฐ€ ์—†๋‹ค Concurrency: ์‚ฌ์šฉ์ž๋Š” ์‚ฌ์šฉ ์ค‘์ธ ์ž์›์˜ ๋™์‹œ์„ฑ์— ๋Œ€ํ•ด์„œ ์‹ž๊ฒฝ ์“ธ ํ•„์š”๊ฐ€ ์—†๋‹ค. ๊ทธ๋ƒฅ ํ˜ผ์ž ์“ฐ๋Š” ์ž์›์ฒ˜๋Ÿผ ์ธ์‹๋˜์–ด์•ผ ํ•œ๋‹ค. Failure: ์‚ฌ์šฉ์ž๋Š” ์‚ฌ์šฉ ์ค‘์ธ ์ž์›์ด ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•˜๊ณ , ์ด์— ๋Œ€ํ•œ ๋ณต์›์ด ์ด๋ฃจ์–ด์ง€๋”๋ผ๋„ ๊ทธ์— ๋Œ€ํ•ด ์•Œ ํ•„์š”๊ฐ€ ์—†๋‹ค.
  • 23. Access : ์‚ฌ์šฉ์ž๊ฐ€ ์ž์›์— ๋Œ€ํ•œ ์ ‘๊ทผ ๋ฐฉ๋ฒ•์„ ์•Œ ํ•„์š”๊ฐ€ ์—†๋‹ค. Location: ์‚ฌ์šฉ์ž๋Š” ์ž์›์ด ๋กœ์ปฌ์ธ์ง€, ์›๊ฒฉ์ธ์ง€ ๋ฌผ๋ฆฌ์  ์œ„์น˜์— ๋Œ€ํ•ด์„œ ์•Œ ํ•„์š”๊ฐ€ ์—†๋‹ค. Migration: ์‚ฌ์šฉ์ž๋Š” ์ž์›์˜ ๋ฌผ๋ฆฌ์  ์œ„์น˜๊ฐ€ ์ด๋™ํ•˜๋”๋ผ๋„, ๊ธฐ์กด ์ด๋ฆ„์œผ๋กœ ์„œ๋น„์Šค ๊ฐ€๋Šฅํ•ด์•ผ ํ•œ๋‹ค. Relocation: ์‚ฌ์šฉ์ž๋Š” ์‚ฌ์šฉ ์ค‘์— ์ž์›์˜ ์œ„์น˜๊ฐ€ ์ด๋™ํ•˜๋”๋ผ๋„, ์ด์— ๋Œ€ํ•ด ์•Œ ํ•„์š”๊ฐ€ ์—†๋‹ค. Replication: ์‚ฌ์šฉ์ž๋Š” ์‚ฌ์šฉ ์ค‘์ธ ์ž์›์ด ๋ณต์ œ๋œ ๊ฒƒ์ธ์ง€ ์›๋ณธ์ธ์ง€ ์•Œ ํ•„์š”๊ฐ€ ์—†๋‹ค Concurrency: ์‚ฌ์šฉ์ž๋Š” ์‚ฌ์šฉ ์ค‘์ธ ์ž์›์˜ ๋™์‹œ์„ฑ์— ๋Œ€ํ•ด์„œ ์‹ž๊ฒฝ ์“ธ ํ•„์š”๊ฐ€ ์—†๋‹ค. ๊ทธ๋ƒฅ ํ˜ผ์ž ์“ฐ๋Š” ์ž์›์ฒ˜๋Ÿผ ์ธ์‹๋˜์–ด์•ผ ํ•œ๋‹ค. Failure: ์‚ฌ์šฉ์ž๋Š” ์‚ฌ์šฉ ์ค‘์ธ ์ž์›์ด ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•˜๊ณ , ์ด์— ๋Œ€ํ•œ ๋ณต์›์ด ์ด๋ฃจ์–ด์ง€๋”๋ผ๋„ ๊ทธ์— ๋Œ€ํ•ด ์•Œ ํ•„์š”๊ฐ€ ์—†๋‹ค.
  • 24. Access : ์‚ฌ์šฉ์ž๊ฐ€ ์ž์›์— ๋Œ€ํ•œ ์ ‘๊ทผ ๋ฐฉ๋ฒ•์„ ์•Œ ํ•„์š”๊ฐ€ ์—†๋‹ค. Location: ์‚ฌ์šฉ์ž๋Š” ์ž์›์ด ๋กœ์ปฌ์ธ์ง€, ์›๊ฒฉ์ธ์ง€ ๋ฌผ๋ฆฌ์  ์œ„์น˜์— ๋Œ€ํ•ด์„œ ์•Œ ํ•„์š”๊ฐ€ ์—†๋‹ค. Migration: ์‚ฌ์šฉ์ž๋Š” ์ž์›์˜ ๋ฌผ๋ฆฌ์  ์œ„์น˜๊ฐ€ ์ด๋™ํ•˜๋”๋ผ๋„, ๊ธฐ์กด ์ด๋ฆ„์œผ๋กœ ์„œ๋น„์Šค ๊ฐ€๋Šฅํ•ด์•ผ ํ•œ๋‹ค. Relocation: ์‚ฌ์šฉ์ž๋Š” ์‚ฌ์šฉ ์ค‘์— ์ž์›์˜ ์œ„์น˜๊ฐ€ ์ด๋™ํ•˜๋”๋ผ๋„, ์ด์— ๋Œ€ํ•ด ์•Œ ํ•„์š”๊ฐ€ ์—†๋‹ค. Replication: ์‚ฌ์šฉ์ž๋Š” ์‚ฌ์šฉ ์ค‘์ธ ์ž์›์ด ๋ณต์ œ๋œ ๊ฒƒ์ธ์ง€ ์›๋ณธ์ธ์ง€ ์•Œ ํ•„์š”๊ฐ€ ์—†๋‹ค Concurrency: ์‚ฌ์šฉ์ž๋Š” ์‚ฌ์šฉ ์ค‘์ธ ์ž์›์˜ ๋™์‹œ์„ฑ์— ๋Œ€ํ•ด์„œ ์‹ž๊ฒฝ ์“ธ ํ•„์š”๊ฐ€ ์—†๋‹ค. ๊ทธ๋ƒฅ ํ˜ผ์ž ์“ฐ๋Š” ์ž์›์ฒ˜๋Ÿผ ์ธ์‹๋˜์–ด์•ผ ํ•œ๋‹ค. Failure: ์‚ฌ์šฉ์ž๋Š” ์‚ฌ์šฉ ์ค‘์ธ ์ž์›์ด ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•˜๊ณ , ์ด์— ๋Œ€ํ•œ ๋ณต์›์ด ์ด๋ฃจ์–ด์ง€๋”๋ผ๋„ ๊ทธ์— ๋Œ€ํ•ด ์•Œ ํ•„์š”๊ฐ€ ์—†๋‹ค.
  • 25. Access : ์‚ฌ์šฉ์ž๊ฐ€ ์ž์›์— ๋Œ€ํ•œ ์ ‘๊ทผ ๋ฐฉ๋ฒ•์„ ์•Œ ํ•„์š”๊ฐ€ ์—†๋‹ค. Location: ์‚ฌ์šฉ์ž๋Š” ์ž์›์ด ๋กœ์ปฌ์ธ์ง€, ์›๊ฒฉ์ธ์ง€ ๋ฌผ๋ฆฌ์  ์œ„์น˜์— ๋Œ€ํ•ด์„œ ์•Œ ํ•„์š”๊ฐ€ ์—†๋‹ค. Migration: ์‚ฌ์šฉ์ž๋Š” ์ž์›์˜ ๋ฌผ๋ฆฌ์  ์œ„์น˜๊ฐ€ ์ด๋™ํ•˜๋”๋ผ๋„, ๊ธฐ์กด ์ด๋ฆ„์œผ๋กœ ์„œ๋น„์Šค ๊ฐ€๋Šฅํ•ด์•ผ ํ•œ๋‹ค. Relocation: ์‚ฌ์šฉ์ž๋Š” ์‚ฌ์šฉ ์ค‘์— ์ž์›์˜ ์œ„์น˜๊ฐ€ ์ด๋™ํ•˜๋”๋ผ๋„, ์ด์— ๋Œ€ํ•ด ์•Œ ํ•„์š”๊ฐ€ ์—†๋‹ค. Replication: ์‚ฌ์šฉ์ž๋Š” ์‚ฌ์šฉ ์ค‘์ธ ์ž์›์ด ๋ณต์ œ๋œ ๊ฒƒ์ธ์ง€ ์›๋ณธ์ธ์ง€ ์•Œ ํ•„์š”๊ฐ€ ์—†๋‹ค Concurrency: ์‚ฌ์šฉ์ž๋Š” ์‚ฌ์šฉ ์ค‘์ธ ์ž์›์˜ ๋™์‹œ์„ฑ์— ๋Œ€ํ•ด์„œ ์‹ž๊ฒฝ ์“ธ ํ•„์š”๊ฐ€ ์—†๋‹ค. ๊ทธ๋ƒฅ ํ˜ผ์ž ์“ฐ๋Š” ์ž์›์ฒ˜๋Ÿผ ์ธ์‹๋˜์–ด์•ผ ํ•œ๋‹ค. Failure: ์‚ฌ์šฉ์ž๋Š” ์‚ฌ์šฉ ์ค‘์ธ ์ž์›์ด ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•˜๊ณ , ์ด์— ๋Œ€ํ•œ ๋ณต์›์ด ์ด๋ฃจ์–ด์ง€๋”๋ผ๋„ ๊ทธ์— ๋Œ€ํ•ด ์•Œ ํ•„์š”๊ฐ€ ์—†๋‹ค.
  • 26. Access : ์‚ฌ์šฉ์ž๊ฐ€ ์ž์›์— ๋Œ€ํ•œ ์ ‘๊ทผ ๋ฐฉ๋ฒ•์„ ์•Œ ํ•„์š”๊ฐ€ ์—†๋‹ค. Location: ์‚ฌ์šฉ์ž๋Š” ์ž์›์ด ๋กœ์ปฌ์ธ์ง€, ์›๊ฒฉ์ธ์ง€ ๋ฌผ๋ฆฌ์  ์œ„์น˜์— ๋Œ€ํ•ด์„œ ์•Œ ํ•„์š”๊ฐ€ ์—†๋‹ค. Migration: ์‚ฌ์šฉ์ž๋Š” ์ž์›์˜ ๋ฌผ๋ฆฌ์  ์œ„์น˜๊ฐ€ ์ด๋™ํ•˜๋”๋ผ๋„, ๊ธฐ์กด ์ด๋ฆ„์œผ๋กœ ์„œ๋น„์Šค ๊ฐ€๋Šฅํ•ด์•ผ ํ•œ๋‹ค. Relocation: ์‚ฌ์šฉ์ž๋Š” ์‚ฌ์šฉ ์ค‘์— ์ž์›์˜ ์œ„์น˜๊ฐ€ ์ด๋™ํ•˜๋”๋ผ๋„, ์ด์— ๋Œ€ํ•ด ์•Œ ํ•„์š”๊ฐ€ ์—†๋‹ค. Replication: ์‚ฌ์šฉ์ž๋Š” ์‚ฌ์šฉ ์ค‘์ธ ์ž์›์ด ๋ณต์ œ๋œ ๊ฒƒ์ธ์ง€ ์›๋ณธ์ธ์ง€ ์•Œ ํ•„์š”๊ฐ€ ์—†๋‹ค Concurrency: ์‚ฌ์šฉ์ž๋Š” ์‚ฌ์šฉ ์ค‘์ธ ์ž์›์˜ ๋™์‹œ์„ฑ์— ๋Œ€ํ•ด์„œ ์‹ž๊ฒฝ ์“ธ ํ•„์š”๊ฐ€ ์—†๋‹ค. ๊ทธ๋ƒฅ ํ˜ผ์ž ์“ฐ๋Š” ์ž์›์ฒ˜๋Ÿผ ์ธ์‹๋˜์–ด์•ผ ํ•œ๋‹ค. Failure: ์‚ฌ์šฉ์ž๋Š” ์‚ฌ์šฉ ์ค‘์ธ ์ž์›์ด ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•˜๊ณ , ์ด์— ๋Œ€ํ•œ ๋ณต์›์ด ์ด๋ฃจ์–ด์ง€๋”๋ผ๋„ ๊ทธ์— ๋Œ€ํ•ด ์•Œ ํ•„์š”๊ฐ€ ์—†๋‹ค.
  • 29. 3 Things +1
  • 30. 3 Things Gearman Memcached MySQL Scale Out
  • 32. Queue Job Service + Server
  • 36.
  • 38. Gearman Cluster ํ•œ๋Œ€๊ฐ€ ์˜ค๋ฅ˜๊ฐ€ ๋‚˜๋”๋ผ๋„ ๋‹ค๋ฅธ ์„œ๋ฒ„๋กœ ์ ‘๊ทผ ๋‹จ, addserver ๋กœ ์ถ”๊ฐ€ํ•ด์ค˜์•ผ ํ•œ๋‹ค.
  • 39. Gearman Dynamic Gearman A,B Worker A ๋“ฑ๋ก ์„œ๋น„์Šค ์ž‘์—…์ฒ˜๋ฆฌ ๊ฒฐ๊ณผ ์ „์†ก Client A ์š”์ฒญ
  • 40. Gearman Dynamic 2 Gearman A,B Client A ์š”์ฒญ ์„œ๋น„์Šค A ๋Œ€๊ธฐ ์ž‘์—…์ฒ˜๋ฆฌ ๊ฒฐ๊ณผ ์ „์†ก Worker A ๋“ฑ๋ก
  • 41. Gearman Map/Reduce Client Gearman Job Server Map/Reduce Worker Client Client Client Gearman Job Server Worker Worker Worker
  • 42. Who Use Gearman! Digg: 45+ Server, 400K Jobs/day Yahoo: 120+ Server, 12M jobs/day
  • 43.
  • 45. Client Client Client Server Write Cache Layer DBMS Update
  • 49. Who use Memcached? โ€ข Facebook and Google and Many Companies โ€ข Facebook โ€“ ํ˜„์žฌ ๊ฐ€์ž…์ž ์ˆ˜ 6์–ต๋ช… โ€“ ํ™œ์„ฑ ์‚ฌ์šฉ์ž 7,000๋งŒ โ€“ ์‚ฌ์šฉ์ž ์ฆ๊ฐ€ ๋น„์œจ 4์ผ์— 100๋งŒ๋ช… โ€“ Web ์„œ๋ฒ„ 10,000 ๋Œ€, Web Request ์ดˆ๋‹น 2000๋งŒ๋ฒˆ โ€“ Memcached ์„œ๋ฒ„ 805๋Œ€ -> 15TB, HitRate: 95% โ€“ Mysq server 1,800 ๋Œ€ Master/Slave(๊ฐ๊ฐ, 900๋Œ€) โ€ข Mem: 25TB, SQL Query ์ดˆ๋‹น 50๋งŒ๋ฒˆ
  • 50. CACHE ์ด์šฉ์˜ 2๊ฐ€์ง€ ๋ชจ๋ธ: 1 Client CACHE SERVER
  • 51. CACHE ์ด์šฉ์˜ 2๊ฐ€์ง€ ๋ชจ๋ธ: 2 Client SERVER CACHE
  • 52.
  • 53.
  • 54. No, Free Lunch No, Silver Bullet
  • 55. 1G MEM vs 4G MEM
  • 56. Appling Scale Out On Memcached Server
  • 58. Client Proxy : Key Management Memcached Memcached Memcached Server Server Server
  • 62. Client Master REPLICATION/FailOver Slave
  • 63. One Write Master + Multi Read Slave
  • 64. Client ONLY WRITE Only READ Master REPLICATION Slave Slave Slave
  • 65.
  • 68.
  • 69.
  • 70. Scalable Partitioning Client PART 1 PART 2 Web Server Web Server DBMS DBMS