19์ XNUMX์ผ ์์นดํ
๋ฆฐ๋ถ๋ฅดํฌ์์ ๊ฐ๋ฐ์ ์ปจํผ๋ฐ์ค๊ฐ ๊ฐ์ต๋ฉ๋๋ค
'์ถ์ ' ์ปจํผ๋ฐ์ค์ ๋ฐํ์์ ์ธ์ฌ์ดํธ๋ฅผ ๊ธฐ๋ํ๋ฉด ์ ๋๋ค๋ ์๊ฒฌ์ด ์๋ค. ๊ธฐ๋ค๋ฆด๋งํ ๊ฐ์น๊ฐ ์๋ ํ๋ก๊ทธ๋จ์ ๋ง๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ด๋ฅผ ์ํด ์ฐ๋ฆฌ๋ ์ฃผ์ ์ ๊น์ด ์๋ ์ฌ๋๋ค๋ง ๊ณจ๋ผ์ ์ง์์์ XNUMX/XNUMX๋ฅผ ๊ฑธ๋ฌ๋ด๊ณ ์ฐ์ค์ ๊ตฌ์กฐ๋ฅผ ๋์์ด ํธ์งํ๊ณ ์ฐ์ค์๋ค์๊ฒ ์ค์ ์ฌ๋ก๋ฅผ ์๊ตฌํ์ต๋๋ค.
๋ณด๊ณ ์
์ฒ์ ๋ ๋ณด๊ณ ์๋ ์๋ก ์ฐ๊ด๋์ด ์์ผ๋ฏ๋ก ๋ ๋ณด๊ณ ์ ๋ชจ๋ ๋ค์ด๋ณด๋ ๊ฒ์ด ์ข์ต๋๋ค.
๋ฌธ์ 1. ์ธ๋ถ API๋ฅผ ์ฌ์ฉํ ๋ ๋ค์ด์ค๋ ๋ฐ์ดํฐ์ ์ ํจ์ฑ์ ๊ฒ์ฌํ๋ ๋ฌธ์ ๊ฐ ํนํ ๊ด๋ จ๋ฉ๋๋ค. ํ์ ๊ฒ์ฆ๋ง์ผ๋ก๋ ์ถฉ๋ถํ์ง ์์ผ๋ฉฐ ๋ฐ์ดํฐ์ ์ผ๊ด์ฑ์ ๋ณด์ฅํ๋ ๊ฒ๋ ํ์ํฉ๋๋ค. ํด๊ฒฐ์ฑ ์ ๋ถ๋ช ํด ๋ณด์ด์ง๋ง ์ธ๋ถ ์์ค์ ์๊ฐ ์ฆ๊ฐํจ์ ๋ฐ๋ผ ์๋ง์ ๊ฐ๋ณ ๊ฒ์ฌ๋ฅผ ์ฝ๊ฒ ๊ด๋ฆฌํ ์ ์๊ฒ ๋ ์ ์์ต๋๋ค. ์ธ๋ฅด๊ฒ์ด ๋๊ฐ๋ ธํ ์ผ๋ก ์ฌ์ ํ ํ์ฑ์ธ ํจ์ํ ํ๋ก๊ทธ๋๋ฐ ๊ธฐ์ ์ ์ฌ์ฉํ์ฌ ๋ฌธ์ ์ ๋ํ ๊ตฌ์กฐํ๋ ์ ๊ทผ ๋ฐฉ์์ ๋ณด์ฌ์ค๋๋ค.
๋ฌธ์ 2. ์๋ฒ์ ํจ์จ์ ์ผ๋ก ์ํธ ์์ฉํ๋ ค๋ฉด API ํธ์ถ ์์ ๋ฐํ๋๋ ๋ฐ์ดํฐ ์์ ์ต์ ํํด์ผ ํฉ๋๋ค. ์ด๋ฅผ ์ํด์๋ ์๋ฒ ์์ค์์ ์ผ๊ด๋ ์ํฐํฐ ๋์์ธ์ด ํ์ํฉ๋๋ค. ๋๋ฏธํธ๋ฆฌ ์ฒดํ ๋ ํ (์ฌ์ ํ ํ์ฑ์ธ) GraphQL์ ์ฒ ํ๊ณผ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ด๊ฒ์ด ์ด๋ป๊ฒ ํจ๊ณผ์ ์ผ๋ก ์ํ๋ ์ ์๋์ง ์ค๋ช ํ๊ณ , ๋ฏธ๋ฌํ ์ฐจ์ด์ ์ฃผ์๋ฅผ ๊ธฐ์ธ์ด๊ณ , ๊ธฐ์กด REST์ ์์ ๋ฅผ ๋น๊ตํฉ๋๋ค.
๋ ๋ฒ์งธ ๋ธ๋ก์ Postgres์ Go์ ์กฐํฉ์ ๊ดํ ๊ฒ์ ๋๋ค. Avito์ Yandex์ ๊ฒฝํ์ ๋ค์ด๋ณด์ธ์ :)
Postgres๊ฐ ์๊ณ ํ๋ก์ ํธ์ Go๋ฅผ ์ฌ์ฉํ๊ณ ์ถ์ง๋ง ์ด๋ฒ์ด ์ฒ์์ด์ ๊ฐ์? ์ด ๋ณด๊ณ ์๋ ๊ทํ์ ์๊ฐ์ ์์ฒญ๋๊ฒ ์ ์ฝํด ์ค ๊ฒ์ ๋๋ค. ์ํํธ์จ์ด ์์ง๋์ด ์๋นํ ์๋ฅดํ ๋ฏธ ๋ฆฌ์๋น์ฝํ Avito์์ ๋งค์ผ ํด๊ฒฐํ๋ ๋ฌธ์ ์ ์๋ฅผ ์ฌ์ฉํ์ฌ Go์์ ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก ์์ ํ๋ ๋๊ตฌ์ ๋ชจ๋ ๋ณต์ก์ฑ์ ๋ํด ์ด์ผ๊ธฐํฉ๋๋ค.
PostgreSQL๊ณผ ๋ฐ์ดํฐ ๋ฐฑ์ ? ์ด ์ฃผ์ ๋ ์ด๋ฏธ ๊ด๋ฒ์ํ๊ฒ ์ฐ๊ตฌ๋ ๊ฒ ๊ฐ์ต๋๋ค. ๊ทธ๋ฌ๋ Yandex์์ ์ด๊ฒ์ด ์ด๋ป๊ฒ ๋ฐ์ํ๋์ง, ์ฆ ์์ฒญ๋ ์์ ๋ฐ์ดํฐ, ์์ถ์ ํ์์ฑ, ์ํธํ, ๋ณ๋ ฌ ์ฒ๋ฆฌ ๋ฐ ๋ฉํฐ ์ฝ์ด CPU์ ๊ฐ์ฅ ํจ์จ์ ์ธ ํ์ฉ์ ์๊ธฐ ์ ๊น์ง๋ ์ง์์ด ๋ถ์์ ํฉ๋๋ค. ์๋๋ ์ด ๋ณด๋ก๋ Yandex๊ฐ ์ ๊ทน์ ์ผ๋ก ๊ฐ๋ฐ ์ค์ด๋ฉฐ ํ๋ก์ ํธ์ ์ฌ์ฉํ ์ ์๋ Postgres ๋ฐ MySQL์ ์ง์์ ์ธ ๋ณด๊ด์ ์ํ Go์ ์คํ ์์ค ์๋ฃจ์ ์ธ WAL-G์ ์ํคํ ์ฒ์ ๋ํด ์ด์ผ๊ธฐํฉ๋๋ค.
์ธ ๋ฒ์งธ ๋ธ๋ก์ ASR ๋ฐ TTS๊ฐ ์ดํดํ ์ ์๋ ์ฝ์ด์ธ ์์ฑ ์ธ์ ๋ฐ ํฉ์ฑ ๊ธฐ์ ์ ๊ด์ฌ์ด ์๋ ์ฌ๋๋ค๊ณผ ์์ฑ ๋์ฐ๋ฏธ๋ฅผ ๋ง๋๋ ์ฌ๋๋ค์ ์ํ ๊ฒ์ ๋๋ค.
์์ฑ ๋น์๊ฐ ์ธ๊ธฐ์ ์ ์ ์ ์์ต๋๋ค. ๊ทธ๋ค ์ค ํ๋์ ๋ํ ์์ ์ ๊ธฐ์ ์ ๋ง๋๋ ๊ฒ์ ์ฝ์ง ์์ง๋ง ๋งค์ฐ ๊ฐ๋จํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ด ๊ธฐ์ ์ ์ค์ ๋ก ์ ์ฉํ ์ฌ๋ก๋ ๊ฑฐ์ ์๋ ค์ ธ ์์ง ์์ต๋๋ค. ๋นํ๋ฆฌ ์ธ๋จํจ ์ผ๋ก ์ ํธ์คํ์ผ ์ฃผ์ ์กฐ์์ ๋ฅ๋ ฅ๊ณผ ํ๊ณ์ ๋ํ ๊ฐ์๋ฅผ ์ ๊ณตํ๊ณ , ์ด๋ค ์ข ๋ฅ์ ๊ฐํด๊ฐ ๊ธฐ๋ค๋ฆฌ๊ณ ์๋์ง, ์ด๋ป๊ฒ ์์ ์ ์ผ๋ก ๊ทน๋ณตํ ์ ์๋์ง, ๊ทธ๋ฆฌ๊ณ ์ผ๋ฐ์ ์ผ๋ก ์ด ์ ์ฒด ์ด์ผ๊ธฐ๋ฅผ ์ค๋นํ ์ ์๋ ๋ฐฉ๋ฒ์ ์๋ ค์ค ๊ฒ์ ๋๋ค. ๋ํ Vitaly๋ Yandex.Station์ ๊ธฐ๋ฐ์ผ๋ก '์ค๋งํธ ๋ฏธํ '์ ๊ตฌ์ถํ ๊ฒฝํ์ ๋ํด์๋ ์ด์ผ๊ธฐํฉ๋๋ค.
์ ๋์ ์ธ ๊ธฐ์ ์ ์์ฑ ๋์ฐ๋ฏธ ๊ตฌ์ถ์ ์ํ API๋ฅผ ์ ๊ณตํฉ๋๋ค. ํ์ง๋ง ์ธ๋ถ ์๋ฃจ์ ์ ์ฌ์ฉํ ์ ์๋ค๋ฉด ์ด๋ป๊ฒ ๋ ๊น์? ์์ ์ค๊ณฝ ๊ฒฝ๋ก๊ฐ ๊น๋ค๋ก์ ์ง๋ง ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ต๋๋ค. ๋น ํฐ ์ฝ๋๋ฐ ะธ ์ค๋ฒ ํ๋ผ๋ ์๋น์๋ก๋ฐ ์ง์์ ์๋ํํ ๋ ๋ก์ปฌ ์์ฑ ์ธ์ ์๋ฃจ์ ์ ์ฌ์ฉํ ๊ฒฝํ์ ๊ณต์ ํ๊ณ ํจ์จ์ฑ์ ๋์ด๊ธฐ ์ํด ๋ฌด์์ ์ง์คํด์ผ ํ๋ฉฐ ๋ฌด์์ ํฌ์ํ ์ ์๋์ง ๋ณด์ฌ์ค๋๋ค.
๋ณด๊ณ ์์๋ ๋ ์ด๋ค ๋ด์ฉ์ด ํฌํจ๋๋์?
์ต๊ทผ Redis 5 - ์คํธ๋ฆผ์ ์๋ก์ด ๋ฐ์ดํฐ ์ ํ์ด ๋ํ๋ฌ์ต๋๋ค. ์ด๋ ์ธ๊ธฐ ์๋ ๋ฉ์์ง ๋ธ๋ก์ปค Kafka์ ์์ด๋์ด๋ฅผ ๊ตฌํํ ๊ฒ์ ๋๋ค. ๋ฐ๋์ค ์นดํ์ํ(Tinkoff.ru) ์คํธ๋ฆผ์ด ํ์ํ ์ด์ , ์ผ๋ฐ ๋๊ธฐ์ด๊ณผ์ ์ฐจ์ด์ , Kafka ์คํธ๋ฆผ๊ณผ Redis ์คํธ๋ฆผ์ ์ฐจ์ด์ ์ ์ค๋ช ํ๊ณ ์ฌ๋ฌ๋ถ์ ๊ธฐ๋ค๋ฆฌ๊ณ ์๋ ํจ์ ์ ๋ํด์๋ ์๋ ค์ค ๊ฒ์ ๋๋ค.
์์ ์ํํธ์จ์ด ์์ง๋์ด Konture Grigory Koshelev ํ๋ฃจ์ ํ ๋ผ๋ฐ์ดํธ๊ธ์ ๋ฐ์ดํฐ๊ฐ ์๋ ๊ฒฝ์ฐ ๋ก๊ทธ์ ์งํ๋ฅผ ๊ธฐ๋กํ๋ ๋ฐ ์ด๋ค ๋ฌธ์ ๊ฐ ์๋์ง ์ดํด๋ณด๊ณ , ์ถ์ ๋ ์ข๊ฒ ๋ง๋ค์ด ์ค ์๋ก์ด ์คํ ์์ค ์๋ฃจ์ ์ ๋ํด์๋ ์ด์ผ๊ธฐํฉ๋๋ค.
Kazan .Net ์ปค๋ฎค๋ํฐ์ ๋ฆฌ๋ ์ ๋ฆฌ ์ผ๋ฅด๋น์ธ ์ฝํ (Ak Bars ๋์งํธ ๊ธฐ์ )์ .Net Framework์์ ์ ํ๋ฆฌ์ผ์ด์ ๋๋ฉ์ธ์ด ํ์ํ ์ด์ ๋ฅผ ์๊ธฐ์ํค๊ณ , .Net Core์์ ์์ ํ ๋ ๋ณ๊ฒฝ๋ ์ฌํญ๊ณผ ํ์ฌ ์ผ๋ฐ์ ์ผ๋ก ์ด๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์ด์ผ๊ธฐํฉ๋๋ค. ๊ฐ์ฐ์ด ๋๋๋ฉด .NET Core๊ฐ ๋ด๋ถ์ ์ผ๋ก ์ด๋ป๊ฒ ์๋ํ๋์ง ๋ ์ ์ดํดํ๊ฒ ๋ ๊ฒ์ ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ฌ์ดํธ์์ ๊ฐ์ฅ ๋ง์ ํฌํ๋ฅผ ๋ฐ์ ์ฃผ์ ์ ๋๋ค.
2014๋ ์ ์กฐ์ฉํ ํ๋ช ์ด ์ผ์ด๋ฌ๊ณ , ๊ทธ ๋ฉ์๋ฆฌ๊ฐ ์ฐ๋ฆฌ๋ฅผ ๋ฐ๋ผ์ก๊ณ ์์ต๋๋ค. ์ด ์๊ฐ๋ถํฐ ์ธํ๋ผ๋ ์์ ํ ๋์ ๋์ง ์๊ฒ ๋๋ฉฐ ๋ ์ด์ ์ค์ํ์ง ์๊ฒ ๋ฉ๋๋ค. ์ด๊ฒ์ ๊ฐ์ ๋จธ์ ์ด๋ ์ปจํ ์ด๋์ ๊ดํ ๊ฒ์ด ์๋๋ผ ์ด๋ฏธ ๊ณผ๊ฑฐ์ ์ผ์ด์ง๋ง ํด๋ผ์ฐ๋ ์๋น์ค ์์ด๋์ด์ ์ถ๊ฐ ๊ฐ๋ฐ์ธ AWS Lambda(ํ๋ก์ธ์ ์๊ฐ์ ๋ํด์๋ง ๋น์ฉ์ ์ง๋ถํฉ๋๋ค)์ ๊ดํ ๊ฒ์ ๋๋ค. ์์ ์ ๋ฐฑ์๋ ํ๋ก์ ํธ์ ์๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ์ ํ ํ์ฑ์ธ ๋์ฝ๋ผ์ด ์ค๋ฒ ๋ฅด์น์ฝํ ์๋ฒ๋ฆฌ์ค ์์ ์ ์ค์ ์ ์ธ ์ธก๋ฉด์ ๋ํ ๋ชจ๋ ๊ฒ์ ์๋ ค์ค ๊ฒ์ ๋๋ค. ์์ํ๊ธฐ๊ฐ ์ผ๋ง๋ ์ด๋ ค์ด์ง, ๋ฌธ์์ ํํ ๋ฆฌ์ผ์ด ์ผ๋ง๋ ๋ง์์ง, ์ผ๋ฐ์ ์ผ๋ก ํ์ฉ๋๋ ํ์ค์ ๋ํ ์ง์์ด ์๋์ง, ๋ก์ปฌ์์ ํ ์คํธํ๋ ๋ฐฉ๋ฒ, ๋น์ฉ์ ์ผ๋ง์ธ์ง, ์ธ์ด๋ ๋ฌด์์ธ์ง ๋ฑ์ ์๋ ค์ค๋๋ค. ์ด๋ค ์์ ์คํ์ด ๊ฐ์ฅ ๊ด๋ จ์ฑ์ด ๋์์ง ์ฌ์ฉํ๋ ๊ฒ์ด ๋ ์ข์ต๋๋ค.
๋ง์คํฐ ํด๋์ค
CTO Mastery.pro ์๋๋ ์ด ํํ ๋กํ ๊ทธ์ ์ฐธ๊ฐ์๋ค์ postgres, Patroni, consul, s3, Walg, ansible์ 3๊ฐ ๋ ธ๋๋ก ๊ตฌ์ฑ๋ ๊ฐ๋จํ ๋ด๊ฒฐํจ์ฑ ํด๋ฌ์คํฐ๋ฅผ ๊ตฌ์ถํ๋ ๋ง์คํฐ ํด๋์ค๋ฅผ ์งํํ ์์ ์ ๋๋ค.
๋ง์คํฐ ํด๋์ค๊ฐ ๋๋๋ฉด ์ ๊ณต๋ Ansible ํ๋ ์ด๋ถ์ ์ฌ์ฉํ์ฌ ์ด๋ฌํ ํด๋ฌ์คํฐ๋ฅผ ์ฒ์๋ถํฐ ์์ํ ์ ์์ต๋๋ค.
์๋
ํ์์ ๋ชจ๋ ๋ณด๊ณ ์๋ ๋ค์์์ ๋ณผ ์ ์์ต๋๋ค.
๋ชจ๋ ๋ณด๊ณ ์ ๋ฐ ๋ฑ๋ก ์ด๋ก - at
๊ฐ๋ฐ์ ์ฌ๋ฌ๋ถ, 19์ XNUMX์ผ DUMP์์ ์ฌ๋ฌ๋ถ์ ๊ธฐ๋ค๋ฆฌ๊ณ ์์ต๋๋ค!
์ถ์ฒ : habr.com