ืœืึธื“ืŸ ืึทืคึผื˜ืึทืžืึทื–ื™ื™ืฉืึทืŸ ืื•ื™ืฃ ืึท ื”ื™ื’ื”ืœืึธืึทื“ ืคึผืจื•ื™ืขืงื˜ ืžื™ื˜ ElasticSearch

ื”ื™ื™ ื”ืื‘ืจ! ืžื™ื™ึทืŸ ื ืึธืžืขืŸ ืื™ื– ืžืึทืงืกื™ื ื•ื•ืึทืกื™ืœื™ืขื•ื•, ืื™ืš ืึทืจื‘ืขื˜ ื•ื•ื™ ืึทืŸ ืึทื ืึทืœื™ืกื˜ ืื•ืŸ ืคึผืจื•ื™ืขืงื˜ ืคืึทืจื•ื•ืึทืœื˜ืขืจ ืื™ืŸ FINCH. ื”ื™ื™ึทื ื˜ ืื™ืš ื•ื•ืึธืœื˜ ื•ื•ื™ ืฆื• ื–ืึธื’ืŸ ืื™ืจ ื•ื•ื™, ื ื™ืฆืŸ ElasticSearch, ืžื™ืจ ื–ืขื ืขืŸ ื‘ื™ื›ื•ืœืช ืฆื• ืคึผืจืึธืฆืขืก 15 ืžื™ืœื™ืึธืŸ ืจื™ืงื•ื•ืขืก ืื™ืŸ 6 ืžื™ื ื•ื˜ ืื•ืŸ ืึทืคึผื˜ืึทืžื™ื™ื– ื“ื™ ื˜ืขื’ืœืขืš ืœืึธื•ื“ื– ืื•ื™ืฃ ื“ื™ ืคึผืœืึทืฅ ืคื•ืŸ ืื™ื™ื ืขืจ ืคื•ืŸ ืื•ื ื“ื–ืขืจ ืงืœื™ื™ืึทื ืฅ. ืฆื•ื ื‘ืึทื“ื•ื™ืขืจืŸ, ืžื™ืจ ื•ื•ืขืœืŸ ื”ืึธื‘ืŸ ืฆื• ื˜ืึธืŸ ืึธืŸ ื ืขืžืขืŸ, ื–ื™ื ื˜ ืžื™ืจ ื”ืึธื‘ืŸ ืึท ื ื“ืึท, ืžื™ืจ ื”ืึธืคึฟืŸ ืึทื– ื“ืขืจ ืื™ื ื”ืึทืœื˜ ืคื•ืŸ ื“ืขื ืึทืจื˜ื™ืงืœ ื•ื•ืขื˜ ื ื™ืฉื˜ ืœื™ื™ึทื“ืŸ ืคื•ืŸ ื“ืขื. ืœืืžื™ืจ ื’ื™ื™ืŸ.

ื•ื•ื™ ื“ื™ ืคึผืจื•ื™ืขืงื˜ ืึทืจื‘ืขื˜

ืื•ื™ืฃ ืื•ื ื“ื–ืขืจ ื‘ืึทืงืขื ื“, ืžื™ืจ ืžืึทื›ืŸ ื‘ืึทื“ื™ื ื•ื ื’ืก ื•ื•ืึธืก ื™ื ืฉื•ืจ ื“ื™ ืคืึธืจืฉื˜ืขืœื•ื ื’ ืคื•ืŸ ืื•ื ื“ื–ืขืจ ืงืœื™ืขื ื˜ ืก ื•ื•ืขื‘ืกื™ื˜ืขืก ืื•ืŸ ืจื™ืจืขื•ื•ื“ื™ืง ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ. ื“ื™ ืึทืœื’ืขืžื™ื™ื ืข ืกื˜ืจื•ืงื˜ื•ืจ ืงืขื ืขืŸ ื–ื™ื™ืŸ ื’ืขื–ืขืŸ ืื™ืŸ ื“ื™ ื“ื™ืึทื’ืจืึทืžืข:

ืœืึธื“ืŸ ืึทืคึผื˜ืึทืžืึทื–ื™ื™ืฉืึทืŸ ืื•ื™ืฃ ืึท ื”ื™ื’ื”ืœืึธืึทื“ ืคึผืจื•ื™ืขืงื˜ ืžื™ื˜ ElasticSearch

ืื™ืŸ ื“ืขื ืคึผืจืึธืฆืขืก ืคื•ืŸ ืึทืจื‘ืขื˜, ืžื™ืจ ืคึผืจืึธืฆืขืก ืึท ื’ืจื•ื™ืก ื ื•ืžืขืจ ืคื•ืŸ ื˜ืจืึทื ื–ืึทืงืฉืึทื ื–: ืคึผืขืจื˜ืฉืึทืกืึทื–, ืคึผื™ื™ืžืึทื ืฅ, ืึทืคึผืขืจื™ื™ืฉืึทื ื– ืžื™ื˜ ื‘ืึทื ื™ืฆืขืจ ื‘ืึทืœืึทื ืกืขืก, ืคึฟืึทืจ ื•ื•ืึธืก ืžื™ืจ ืงืจืึธื ืึท ืคึผืœืึทืฅ ืคื•ืŸ ืœืึธื’ืก, ื•ื•ื™ ื’ืขื–ื•ื ื˜ ื•ื•ื™ ืึทืจื™ื™ึทื ืคื™ืจ ืื•ืŸ ืึทืจื•ื™ืกืคื™ืจืŸ ื“ื™ ื“ืึทื˜ืŸ ืฆื• ืคื•ื ื“ืจื•ื™ืกื ื“ื™ืง ืกื™ืกื˜ืขืžืขืŸ.

ืขืก ื–ืขื ืขืŸ ืื•ื™ืš ืคืึทืจืงืขืจื˜ ืคึผืจืึทืกืขืกืึทื– ื•ื•ืขืŸ ืžื™ืจ ื‘ืึทืงื•ืžืขืŸ ื“ืึทื˜ืŸ ืคื•ืŸ ื“ืขื ืงืœื™ืขื ื˜ ืื•ืŸ ืึทืจื™ื‘ืขืจืคื™ืจืŸ ืขืก ืฆื• ื“ืขืจ ื‘ืึทื ื™ืฆืขืจ. ืื™ืŸ ื“ืขืจืฆื•, ืขืก ื–ืขื ืขืŸ ื ืึธืš ืคึผืจืึทืกืขืกืึทื– ืคึฟืึทืจ ืืจื‘ืขื˜ืŸ ืžื™ื˜ ืคึผื™ื™ืžืึทื ืฅ ืื•ืŸ ื‘ืึธื ื•ืก ืžื’ื™ืœื”.

ืงื•ืจืฅ ื”ื™ื ื˜ืขืจื’ืจื•ื ื˜

ื˜ื›ื™ืœืขืก, ืžื™ืจ ื’ืขื•ื•ื™ื™ื ื˜ PostgreSQL ื•ื•ื™ ื“ืขืจ ื‘ืœื•ื™ื– ื“ืึทื˜ืŸ ืงืจืึธื. ื–ื™ื™ึทืŸ ื ืึธืจืžืึทืœ ืึทื“ื•ื•ืึทื ื˜ื™ื“ื–ืฉื™ื– ืคึฟืึทืจ ืึท ื“ื‘ืžืก: ื“ื™ ื‘ื™ื™ึทื–ื™ื™ึทืŸ ืคื•ืŸ ื˜ืจืึทื ื–ืึทืงืฉืึทื ื–, ืึท ื“ืขื•ื•ืขืœืึธืคึผืขื“ ื“ืึทื˜ืŸ ืžื•ืกื˜ืขืจื•ื ื’ ืฉืคึผืจืึทืš, ืึท ื‘ืจื™ื™ื˜ ืงื™ื™ื˜ ืคื•ืŸ ืžื›ืฉื™ืจื™ื ืคึฟืึทืจ ื™ื ื˜ืึทื’ืจื™ื™ืฉืึทืŸ; ืงืึทืžื‘ื™ื™ื ื“ ืžื™ื˜ ื’ื•ื˜ ืคืึธืจืฉื˜ืขืœื•ื ื’ ืฆื•ืคึฟืจื™ื“ืŸ ืื•ื ื“ื–ืขืจ ื‘ืื“ืขืจืคืขื ื™ืฉืŸ ืคึฟืึทืจ ื’ืึทื ืฅ ืึท ืœืึทื ื’ ืฆื™ื™ึทื˜.

ืžื™ืจ ืกื˜ืึธืจื“ ืœืขื’ืึทืžืจืข ืึทืœืข ื“ืึทื˜ืŸ ืื™ืŸ Postgres: ืคึฟื•ืŸ ื˜ืจืึทื ื–ืึทืงืฉืึทื ื– ืฆื• ื ื™ื™ึทืขืก. ืื‘ืขืจ ื“ื™ ื ื•ืžืขืจ ืคื•ืŸ ื ื™ืฆืขืจืก ื’ืขื•ื•ืืงืกืŸ, ืื•ืŸ ืžื™ื˜ ืื™ื ื“ื™ ื ื•ืžืขืจ ืคื•ืŸ ืจื™ืงื•ื•ืขืก.

ืคึฟืึทืจ ืคืืจืฉื˜ืื ื“, ื“ื™ ื™ืขืจืœืขืš ื ื•ืžืขืจ ืคื•ืŸ ืกืขืฉืึทื ื– ืื™ืŸ 2017 ื‘ืœื•ื™ื– ืื•ื™ืฃ ื“ื™ ื“ืขืกืงื˜ืึทืคึผ ืคึผืœืึทืฅ ืื™ื– 131. ืื™ืŸ 2018 - 125. 2019 ื•ื•ื™ื“ืขืจ 130. ืœื™ื™ื’ ื ืึธืš 100-200 ืžื™ืœื™ืึธืŸ ืคื•ืŸ ื“ื™ ืจื™ืจืขื•ื•ื“ื™ืง ื•ื•ืขืจืกื™ืข ืคื•ืŸ โ€‹โ€‹ื“ื™ ืคึผืœืึทืฅ ืื•ืŸ ื“ื™ ืจื™ืจืขื•ื•ื“ื™ืง ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ, ืื•ืŸ ืื™ืจ ื•ื•ืขื˜ ื‘ืึทืงื•ืžืขืŸ ืึท ืจื™ื–ื™ืง ื ื•ืžืขืจ ืคื•ืŸ ืจื™ืงื•ื•ืขืก.

ืžื™ื˜ ื“ืขื ื•ื•ื•ึผืงืก ืคื•ืŸ ื“ื™ ืคึผืจื•ื™ืขืงื˜, Postgres ืคืืจืฉื˜ืืคื˜ ืฆื• ืงืึธืคึผืข ืžื™ื˜ ื“ื™ ืžืึทืกืข, ืžื™ืจ ื”ืึธื‘ืŸ ื ื™ืฉื˜ ื”ืึธื‘ืŸ ืฆื™ื™ื˜ - ืึท ื’ืจื•ื™ืก ื ื•ืžืขืจ ืคื•ืŸ ืคืึทืจืฉื™ื“ืŸ ืคึฟืจืื’ืŸ ืืจื•ื™ืก, ืคึฟืึทืจ ื•ื•ืึธืก ืžื™ืจ ืงืขืŸ ื ื™ืฉื˜ ืžืึทื›ืŸ ืึท ื’ืขื ื•ื’ ื ื•ืžืขืจ ืคื•ืŸ ื™ื ื“ืขืงืกื™ื–.

ืžื™ืจ ืคืืจืฉื˜ืื ืขืŸ ืึทื– ืขืก ืื™ื– ืึท ื ื•ื™ื˜ ืคึฟืึทืจ ืื ื“ืขืจืข ื“ืึทื˜ืŸ ืกื˜ืึธืจื– ื•ื•ืึธืก ื•ื•ืึธืœื˜ ืฆื•ืฉื˜ืขืœืŸ ืื•ื ื“ื–ืขืจ ื‘ืื“ืขืจืคืขื ื™ืฉืŸ ืื•ืŸ ื ืขืžืขืŸ ื“ื™ ืžืึทืกืข ืคื•ืŸ โ€‹โ€‹PostgreSQL. Elasticsearch ืื•ืŸ MongoDB ื–ืขื ืขืŸ ื’ืขืจืขื›ื ื˜ ื•ื•ื™ ืžืขื’ืœืขืš ืึธืคึผืฆื™ืขืก. ื“ื™ ืœืขืฆื˜ืข ืคืืจืœื•ื™ืจืŸ ืื•ื™ืฃ ื“ื™ ืคืืœื’ืขื ื“ืข ืคื•ื ืงื˜ืŸ:

  1. ืคึผืึทืžืขืœืขืš ื™ื ื“ืขืงืกื™ื ื’ ื’ื™ื›ืงื™ื™ึทื˜ ื•ื•ื™ ื“ื™ ืกื•ืžืข ืคื•ืŸ โ€‹โ€‹ื“ืึทื˜ืŸ ืื™ืŸ ื™ื ื“ืขืงืกื™ื– ื•ื•ืืงืกื˜. ืžื™ื˜ Elastic, ื“ื™ ื’ื™ื›ืงื™ื™ึทื˜ ื˜ื•ื˜ ื ื™ืฉื˜ ืึธืคืขื ื’ืขืŸ ืื•ื™ืฃ ื“ื™ ืกื•ืžืข ืคื•ืŸ โ€‹โ€‹ื“ืึทื˜ืŸ.
  2. ืงื™ื™ืŸ ืคื•ืœ ื˜ืขืงืกื˜ ื–ื•ื›ืŸ

ืึทื–ื•ื™ ืžื™ืจ ืื•ื™ืกื“ืขืจื•ื•ื™ื™ืœื˜ Elastic ืคึฟืึทืจ ื–ื™ืš ืื•ืŸ ืฆื•ื’ืขื’ืจื™ื™ื˜ ืคึฟืึทืจ ื“ื™ ื™ื‘ืขืจื’ืึทื ื’.

ื™ื‘ืขืจื’ืึทื ื’ ืฆื• ื’ื•ืžืข

1. ืžื™ืจ ืกื˜ืึทืจื˜ืขื“ ื“ื™ ื™ื‘ืขืจื’ืึทื ื’ ืคื•ืŸ ื“ื™ ืคื•ื ื˜ ืคื•ืŸ ืคืึทืจืงื•ื™ืฃ ื–ื•ื›ืŸ ื“ื™ื ืกื˜. ืื•ื ื“ื–ืขืจ ืงืœื™ืขื ื˜ ื”ืื˜ ืึท ื’ืึทื ืฅ ืคื•ืŸ ื•ื•ืขื’ืŸ 70 ืคื•ื ื˜ ืคื•ืŸ ืคืึทืจืงื•ื™ืฃ, ืื•ืŸ ื“ืึธืก ืจื™ืงื•ื•ื™ื™ืขืจื– ืขื˜ืœืขื›ืข ื˜ื™ื™ืคึผืก ืคื•ืŸ ืึธื ืคึฟืจืขื’ืŸ ืื•ื™ืฃ ื“ืขื ืคึผืœืึทืฅ ืื•ืŸ ืื™ืŸ ื“ื™ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ:

  • ื˜ืขืงืกื˜ ื–ื•ื›ืŸ ื“ื•ืจืš ืฉื˜ืึธื˜ ื ืึธืžืขืŸ
  • ื’ืขืึธื–ื•ื›ื˜ ืื™ืŸ ืึท ื’ืขื’ืขื‘ืŸ ืจืึทื“ื™ื•ืก ืคึฟื•ืŸ ืขื˜ืœืขื›ืข ืคื•ื ื˜. ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, ืื•ื™ื‘ ื“ืขืจ ื‘ืึทื ื™ืฆืขืจ ื•ื•ื™ืœ ืฆื• ื–ืขืŸ ื•ื•ืึธืก ื ืงื•ื“ื•ืช ืคื•ืŸ ืคืึทืจืงื•ื™ืฃ ื–ืขื ืขืŸ ื ืึธืขื ื˜ ืฆื• ื–ื™ื™ืŸ ื”ื™ื™ื.
  • ื–ื•ื›ืŸ ื“ื•ืจืš ืึท ื’ืขื’ืขื‘ืŸ ืงื•ื•ืึทื“ืจืึทื˜ - ื“ืขืจ ื‘ืึทื ื™ืฆืขืจ ื“ืจืึธื– ืึท ืงื•ื•ืึทื“ืจืึทื˜ ืื•ื™ืฃ ื“ืขืจ ืžืึทืคึผืข, ืื•ืŸ ืึทืœืข ืคื•ื ืงื˜ืŸ ืื™ืŸ ื“ืขื ืจืึทื“ื™ื•ืก ื–ืขื ืขืŸ ื’ืขื•ื•ื™ื–ืŸ ืฆื• ืื™ื.
  • ื–ื•ื›ืŸ ื“ื•ืจืš ื ืึธืš ืคื™ืœื˜ืขืจืก. ืคึผืึธื™ื ืฅ ืคื•ืŸ ืคืึทืจืงื•ื™ืฃ ื–ืขื ืขืŸ ืึทื ื“ืขืจืฉ ืคื•ืŸ ื™ืขื“ืขืจ ืื ื“ืขืจืขืจ ืื™ืŸ ืกืึธืจื˜ื™ืจื•ื ื’

ืื•ื™ื‘ ืžื™ืจ ืจืขื“ืŸ ื•ื•ืขื’ืŸ ื“ืขืจ ืึธืจื’ืึทื ื™ื–ืึทืฆื™ืข, ืื™ืŸ Postgres ืžื™ืจ ื”ืึธื‘ืŸ ืึท ื“ืึทื˜ืŸ ืžืงื•ืจ ืคึฟืึทืจ ื‘ื™ื™ื“ืข ื“ื™ ืžืึทืคึผืข ืื•ืŸ ื“ื™ ื ื™ื™ึทืขืก, ืื•ืŸ ืื™ืŸ Elastic Snapshots ื–ืขื ืขืŸ ื’ืขื ื•ืžืขืŸ ืคึฟื•ืŸ ื“ืขืจ ืึธืจื™ื’ื™ื ืขืœ ื“ืึทื˜ืŸ. ื“ืขืจ ืคืึทืงื˜ ืื™ื– ืึทื– ื˜ื›ื™ืœืขืก Postgres ืงืขืŸ ื ื™ืฉื˜ ืงืึธืคึผืข ืžื™ื˜ ื“ื™ ื–ื•ื›ืŸ ื“ื•ืจืš ืึทืœืข ืงืจื™ื™ื˜ื™ืจื™ืึท. ื ื™ื˜ ื‘ืœื•ื™ื– ื–ืขื ืขืŸ ื’ืขื•ื•ืขืŸ ืคื™ืœืข ื™ื ื“ืขืงืกื™ื–, ื–ื™ื™ ืงืขืŸ ืื•ื™ืš ืึธื•ื•ื•ืขืจืœืึทืคึผ, ืึทื–ื•ื™ ื“ื™ Postgres ืกืงืขื“ื–ืฉื•ืœืขืจ ืื™ื– ืคืึทืจืคืึทืœืŸ ืื•ืŸ ื”ืื˜ ื ื™ืฉื˜ ืคึฟืึทืจืฉื˜ื™ื™ืŸ ื•ื•ืึธืก ืื™ื ื“ืขืงืก ืฆื• ื ื•ืฆืŸ.

2. ื•ื•ื™ื™ึทื˜ืขืจ ืื™ืŸ ืฉื•ืจื” ืื™ื– ื’ืขื•ื•ืขืŸ ื“ื™ ื ื™ื™ึทืขืก ืึธืคึผื˜ื™ื™ืœื•ื ื’. ืื•ื™ืกื’ืื‘ืขืก ื“ืขืจืฉื™ื™ึทื ืขืŸ ืื•ื™ืฃ ื“ืขื ืคึผืœืึทืฅ ื™ืขื“ืขืจ ื˜ืึธื’ ืึทื–ื•ื™ ืึทื– ื“ืขืจ ื‘ืึทื ื™ืฆืขืจ ืื™ื– ื ื™ืฉื˜ ืคืึทืจืคืึทืœืŸ ืื™ืŸ ื“ื™ ืฉื˜ืจืึธื ืคื•ืŸ ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข, ื“ื™ ื“ืึทื˜ืŸ ืžื•ื–ืŸ ื–ื™ื™ืŸ ืื•ื™ืกื’ืขืฉื˜ืขืœื˜ ืื™ื™ื“ืขืจ ื“ื™ ืึทืจื•ื™ืกื’ืขื‘ืŸ. ื“ืึธืก ืื™ื– ื•ื•ืึธืก ื–ื•ื›ืŸ ืื™ื– ืคึฟืึทืจ: ืื™ืจ ืงืขื ืขืŸ ื–ื•ื›ืŸ ื“ืขื ืคึผืœืึทืฅ ืœื•ื™ื˜ ื˜ืขืงืกื˜ ื’ืœื™ื™ึทื›ืŸ, ืื•ืŸ ืื™ืŸ ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ืฆื™ื™ื˜ ืคืึทืจื‘ื™ื ื“ืŸ ื ืึธืš ืคื™ืœื˜ืขืจืก, ื•ื•ื™ื™ึทืœ ื–ื™ื™ ื–ืขื ืขืŸ ืื•ื™ืš ื’ืขืžืื›ื˜ ื“ื•ืจืš Elastic.

3. ื“ืขืžืึธืœื˜ ืžื™ืจ ืืจื™ื‘ืขืจื’ืขืคืืจืŸ ื“ื™ ื˜ืจืึทื ืกืึทืงื˜ื™ืึธืŸ ืคึผืจืึทืกืขืกื™ื ื’. ื™ื•ื–ืขืจื– ืงืขื ืขืŸ ืงื•ื™ืคืŸ ืึท ื–ื™ื›ืขืจ ืคึผืจืึธื“ื•ืงื˜ ืื•ื™ืฃ ื“ืขื ืคึผืœืึทืฅ ืื•ืŸ ืึธื ื˜ื™ื™ืœ ื ืขืžืขืŸ ืื™ืŸ ืึท ืคืจื™ื™ื– ืฆื™ืขืŸ. ื ืึธืš ืึทื–ืึท ืคึผืขืจื˜ืฉืึทืกืึทื–, ืžื™ืจ ืคึผืจืึธืฆืขืก ืึท ื’ืจื•ื™ืก ืกื•ืžืข ืคื•ืŸ โ€‹โ€‹ื“ืึทื˜ืŸ, ืกืคึผืขืฆื™ืขืœ ืื•ื™ืฃ ื•ื•ื™ืงืขื ื“ื– ืื•ืŸ ื”ืึธืœื™ื“ื™ื™ึทืก. ืคึฟืึทืจ ืคืึทืจื’ืœื™ื™ึทืš, ืื•ื™ื‘ ืื•ื™ืฃ ืคึผืจืึธืกื˜ ื˜ืขื’ ื“ื™ ื ื•ืžืขืจ ืคื•ืŸ ืคึผืขืจื˜ืฉืึทืกืึทื– ืื™ื– ืขืจื’ืขืฅ ืฆื•ื•ื™ืฉืŸ 1,5-2 ืžื™ืœื™ืึธืŸ, ื“ืขืžืึธืœื˜ ืื•ื™ืฃ ื”ืึธืœื™ื“ื™ื™ึทืก ื“ื™ ืคื™ื’ื•ืจ ืงืขื ืขืŸ ื“ืขืจื’ืจื™ื™ื›ืŸ 53 ืžื™ืœื™ืึธืŸ.

ืื™ืŸ ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ืฆื™ื™ื˜, ื“ื™ ื“ืึทื˜ืŸ ืžื•ื–ืŸ ื–ื™ื™ืŸ ืคึผืจืึทืกืขืกื˜ ืื™ืŸ ื“ื™ ืฉืึธืจื˜ื™ืกื˜ ืžืขื’ืœืขืš ืฆื™ื™ื˜ - ื ื™ืฆืขืจืก ื˜ืึธืŸ ื ื™ื˜ ื•ื•ื™ ืฆื• ื•ื•ืึทืจื˜ืŸ ืคึฟืึทืจ ื“ื™ ืจืขื–ื•ืœื˜ืึทื˜ ืคึฟืึทืจ ืขื˜ืœืขื›ืข ื˜ืขื’. ืขืก ืื™ื– ืงื™ื™ืŸ ื•ื•ืขื’ ืฆื• ื“ืขืจื’ืจื™ื™ื›ืŸ ืึทื–ืึท ื“ืขื“ืœื™ื™ื ื– ื“ื•ืจืš Postgres - ืžื™ืจ ืึธืคื˜ ื‘ืืงื•ืžืขืŸ ืœืึทืงืก, ืื•ืŸ ื‘ืฉืขืช ืžื™ืจ ืคึผืจืึทืกืขืกื˜ ืึทืœืข ืจื™ืงื•ื•ืขืก, ื™ื•ื–ืขืจื– ืงืขืŸ ื ื™ืฉื˜ ืงืึธื ื˜ืจืึธืœื™ืจืŸ ืฆื™ ื–ื™ื™ ื‘ืืงื•ืžืขืŸ ืคึผืจื™ื™ื–ืึทื– ืึธื“ืขืจ ื ื™ืฉื˜. ื“ืึธืก ืื™ื– ื ื™ืฉื˜ ื–ื™ื™ืขืจ ืึธื ื’ืขื ืขื ืคึฟืึทืจ ื’ืขืฉืขืคื˜, ืึทื–ื•ื™ ืžื™ืจ ืืจื™ื‘ืขืจื’ืขืคืืจืŸ ื“ื™ ืคึผืจืึทืกืขืกื™ื ื’ ืฆื• Elasticsearch.

Periodicity

ืื™ืฆื˜ ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงื•ื ื’ืขืŸ ื–ืขื ืขืŸ ืงืึทื ืคื™ื’ื™ืขืจื“ ื’ืขืฉืขืขื ื™ืฉ-ื‘ืื–ื™ืจื˜, ืœื•ื™ื˜ ื“ื™ ืคืืœื’ืขื ื“ืข ื˜ื ืึธื™ื:

  1. ืกืึทืœืขืก ื•ื•ื™ื™ื–ื˜. ื•ื•ื™ ื‘ืึทืœื“ ื•ื•ื™ ืžื™ืจ ื‘ืึทืงื•ืžืขืŸ ื“ืึทื˜ืŸ ืคื•ืŸ ืึท ืคื•ื ื“ืจื•ื™ืกื ื“ื™ืง ืžืงื•ืจ, ืžื™ืจ ืžื™ื“ ืึธื ื”ื™ื™ื‘ืŸ ื“ืขื ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงืŸ.
  2. ื ื™ื™ึทืขืก. ื•ื•ื™ ื‘ืึทืœื“ ื•ื•ื™ ืงื™ื™ืŸ ื ื™ื™ึทืขืก ืื™ื– ืขื“ื™ื˜ื™ื“ ืื•ื™ืฃ ื“ืขื ืคึผืœืึทืฅ, ืขืก ืื™ื– ืื•ื™ื˜ืึธืžืึทื˜ื™ืฉ ื’ืขืฉื™ืงื˜ ืฆื• Elastic.

ื“ืึธ ื•ื•ื™ื“ืขืจ ืขืก ืื™ื– ื•ื•ืขืจื˜ ื“ืขืจืžืึธื ืขืŸ ื“ื™ ืึทื“ื•ื•ืึทื ื˜ื™ื“ื–ืฉื™ื– ืคื•ืŸ Elastic. ืื™ืŸ Postgres, ื•ื•ืขืŸ ืื™ืจ ืฉื™ืงืŸ ืึท ื‘ืงืฉื”, ืื™ืจ ืžื•ื–ืŸ ื•ื•ืึทืจื˜ืŸ ื‘ื™ื– ืขืก ื”ืึธื ืขืกื˜ืœื™ ืคึผืจืึทืกืขืกืึทื– ืึทืœืข ื“ื™ ืจืขืงืึธืจื“ืก. ืื™ืจ ืงืขื ืขืŸ ืฉื™ืงืŸ 10 ืจืขืงืึธืจื“ืก ืฆื• Elastic ืื•ืŸ ืึธื ื”ื™ื™ื‘ืŸ ืืจื‘ืขื˜ืŸ ื’ืœื™ื™ืš, ืึธืŸ ื•ื•ืืจื˜ืŸ ืคึฟืึทืจ ื“ื™ ืจืขืงืึธืจื“ืก ืฆื• ื–ื™ื™ืŸ ืคื•ื ืื ื“ืขืจื’ืขื˜ื™ื™ืœื˜ ืื™ื‘ืขืจ ืึทืœืข ืฉืึทืจื“ืก. ืคื•ืŸ ืงื•ืจืก, ืขื˜ืœืขื›ืข ืฉืึทืจื“ ืึธื“ืขืจ ืจืขืคึผืœื™ืงืข ืงืขืŸ ื ื™ืฉื˜ ื–ืขืŸ ื“ื™ ื“ืึทื˜ืŸ ื’ืœื™ื™ืš, ืึธื‘ืขืจ ืึทืœืฅ ื•ื•ืขื˜ ื–ื™ื™ืŸ ื‘ืืจืขื›ื˜ื™ื’ื˜ ื–ื™ื™ืขืจ ื‘ืึทืœื“.

ื™ื ืึทื’ืจื™ื™ืฉืึทืŸ ืžืขื˜ื”ืึธื“ืก

ืขืก ื–ืขื ืขืŸ 2 ื•ื•ืขื’ืŸ ืฆื• ื•ื™ืกืฉื˜ื™ืžืขืŸ ืžื™ื˜ Elastic:

  1. ื“ื•ืจืš ืึท ื’ืขื‘ื•ื™ืจืŸ ืงืœื™ืขื ื˜ ืื™ื‘ืขืจ TCP. ื“ืขืจ ื’ืขื‘ื•ื™ืจืŸ ืฉืึธืคืขืจ ืื™ื– ื‘ื™ืกืœืขื›ื•ื•ื™ื™ึทื– ืฉื˜ืึทืจื‘ืŸ ืื•ื™ืก: ืขืก ืื™ื– ื ื™ื˜ ืžืขืจ ื’ืขืฉื˜ื™ืฆื˜, ืขืก ื”ืื˜ ืึท ื–ื™ื™ืขืจ ื•ืžื‘ืึทืงื•ื•ืขื ืกื™ื ื˜ืึทืงืก. ื“ืขืจื™ื‘ืขืจ, ืžื™ืจ ืคึผืจืึทืงื˜ืึทืงืœื™ ื˜ืึธืŸ ื ื™ื˜ ื ื•ืฆืŸ ืขืก ืื•ืŸ ืคึผืจื•ื‘ื™ืจืŸ ืฆื• ื’ืึธืจ ืคืึทืจืœืึธื–ืŸ ืขืก.
  2. ื“ื•ืจืš ืึท ื”ื˜ื˜ืคึผ ืฆื•ื‘ื™ื ื“ ื•ื•ืึธืก ืงืขื ืขืŸ ื ื•ืฆืŸ ื‘ื™ื™ื“ืข JSON ืจื™ืงื•ื•ืขืก ืื•ืŸ ืœื•ืกืขื ืข ืกื™ื ื˜ืึทืงืก. ื“ื™ ืœืขืฆื˜ืข ืื™ื– ืึท ื˜ืขืงืกื˜ ืžืึธื˜ืึธืจ ื•ื•ืึธืก ื ื™ืฆื˜ Elastic. ืื™ืŸ ื“ืขื ื•ื•ืขืจืกื™ืข, ืžื™ืจ ื‘ืึทืงื•ืžืขืŸ ื“ื™ ืคื™ื™ื™ืงื™ื™ื˜ ืฆื• ื‘ืึทื˜ืฉ ื“ื•ืจืš JSON ืจื™ืงื•ื•ืขืก ืื™ื‘ืขืจ ื”ื˜ื˜ืคึผ. ื“ืึธืก ืื™ื– ื“ื™ ืึธืคึผืฆื™ืข ื•ื•ืึธืก ืžื™ืจ ื–ืขื ืขืŸ ื˜ืจื™ื™ื ื’ ืฆื• ื ื•ืฆืŸ.

ื“ืึทื ืง ืฆื• ื“ื™ ื”ื˜ื˜ืคึผ ืฆื•ื‘ื™ื ื“, ืžื™ืจ ืงืขื ืขืŸ ื ื•ืฆืŸ ืœื™ื™ื‘ืจืขืจื™ื– ื•ื•ืึธืก ืฆื•ืฉื˜ืขืœืŸ ืึท ื™ื™ืกื™ื ื’ืงืจืึทื ืึทืก ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทืŸ ืคื•ืŸ ื“ื™ ื”ื˜ื˜ืคึผ ืงืœื™ืขื ื˜. ืžื™ืจ ืงืขื ืขืŸ ื ื•ืฆืŸ ื‘ืึทื˜ืฉ ืื•ืŸ ื“ื™ ื™ื™ืกื™ื ื’ืงืจืึทื ืึทืก ืึทืคึผื™, ื•ื•ืึธืก ืจื™ื–ืึทืœื˜ื™ื“ ืื™ืŸ ื”ื•ื™ืš ืคืึธืจืฉื˜ืขืœื•ื ื’, ื•ื•ืึธืก ื’ืขื”ืึธืœืคึฟืŸ ืึท ืคึผืœืึทืฅ ืื™ืŸ ื“ื™ ื˜ืขื’ ืคื•ืŸ ื“ื™ ื’ืจื•ื™ืก ื”ืขื›ืขืจื•ื ื’ (ืžืขืจ ืื•ื™ืฃ ื“ืขื ืื•ื ื˜ืŸ)

ืขื˜ืœืขื›ืข ื ื•ืžืขืจืŸ ืคึฟืึทืจ ืคืึทืจื’ืœื™ื™ึทืš:

  • ืฉืคึผืึธืจืŸ Postgres ื‘ืจื™ื™ื˜ื”ืึทืจืฆื™ืงื™ื™ื˜ ื™ื•ื–ืขืจื– ืื™ืŸ 20 ืคึฟืขื“ืขื ืึธืŸ ื’ืจื•ืคึผื™ื ื’: 460713 ืจืขืงืึธืจื“ืก ืื™ืŸ 42 ืกืขืงื•ื ื“ืขืก
  • ื’ื•ืžืข + ืจื™ืึทืงื˜ื™ื•ื• ืงืœื™ืขื ื˜ ืคึฟืึทืจ 10 ืคึฟืขื“ืขื + ืคึผืขืงืœ ืคึฟืึทืจ 1000 ืขืœืขืžืขื ื˜ืŸ: 596749 ืจืขืงืึธืจื“ืก ืื™ืŸ 11 ืกืขืงื•ื ื“ืขืก
  • ื’ื•ืžืข + ืจื™ืึทืงื˜ื™ื•ื• ืงืœื™ืขื ื˜ ืคึฟืึทืจ 10 ืคึฟืขื“ืขื + ืคึผืขืงืœ ืคึฟืึทืจ 1000 ืขืœืขืžืขื ื˜ืŸ: 23801684 ืื™ื™ื ืกืŸ ืื™ืŸ 4 ืžื™ื ื•ื˜

ืื™ืฆื˜ ืžื™ืจ ื”ืึธื‘ืŸ ื’ืขืฉืจื™ื‘ืŸ ืึท HTTP ื‘ืขื˜ืŸ ืคืึทืจื•ื•ืึทืœื˜ืขืจ ื•ื•ืึธืก ื‘ื•ื™ืขืŸ JSON ื•ื•ื™ ื‘ืึทื˜ืฉ / ื ื™ื˜ ื‘ืึทื˜ืฉ ืื•ืŸ ืกืขื ื“ื– ืขืก ื“ื•ืจืš ืงื™ื™ืŸ ื”ื˜ื˜ืคึผ ืงืœื™ืขื ื˜, ืจืึทื’ืึทืจื“ืœืึทืก ืคื•ืŸ ื“ื™ ื‘ื™ื‘ืœื™ืึธื˜ืขืง. ืื™ืจ ืงืขื ื˜ ืื•ื™ืš ืงืœื™ื™ึทื‘ืŸ ืฆื• ืฉื™ืงืŸ ืจื™ืงื•ื•ืขืก ืกื™ื ื˜ืฉืจืึธื ืึธื•ืกืœื™ ืึธื“ืขืจ ื™ื™ืกื™ื ื’ืงืจืึทื ืึทืกืœื™.

ืื™ืŸ ืขื˜ืœืขื›ืข ื™ื ืึทื’ืจื™ื™ืฉืึทื ื–, ืžื™ืจ ื ืึธืš ื ื•ืฆืŸ ื“ืขืจ ื‘ืึทืึทืžื˜ืขืจ ืึทืจื™ื‘ืขืจืคื™ืจืŸ ืงืœื™ืขื ื˜, ืึธื‘ืขืจ ื“ืึธืก ืื™ื– ื ืึธืจ ืึท ืขื ื™ืŸ ืคื•ืŸ ื“ืขืจ ื•ื•ื™ื™ึทื˜ืขืจ ืจืขืคืึทืงื˜ืึธืจื™ื ื’. ืื™ืŸ ื“ืขื ืคืึทืœ, ืึท ืžื ื”ื’ ืงืœื™ืขื ื˜ ื’ืขื‘ื•ื™ื˜ ืื•ื™ืฃ ื“ืขืจ ื‘ืื–ืข ืคื•ืŸ โ€‹โ€‹ืกืคึผืจื™ื ื’ ื•ื•ืขื‘ืงืœื™ืขื ื˜ ืื™ื– ื’ืขื ื™ืฆื˜ ืคึฟืึทืจ ืคึผืจืึทืกืขืกื™ื ื’.

ืœืึธื“ืŸ ืึทืคึผื˜ืึทืžืึทื–ื™ื™ืฉืึทืŸ ืื•ื™ืฃ ืึท ื”ื™ื’ื”ืœืึธืึทื“ ืคึผืจื•ื™ืขืงื˜ ืžื™ื˜ ElasticSearch

ื’ืจื•ื™ืก ื”ืขื›ืขืจื•ื ื’

ืึทืžืึธืœ ืึท ื™ืึธืจ, ื“ื™ ืคึผืจื•ื™ืขืงื˜ ื”ืึธืกืฅ ืึท ื’ืจื•ื™ืก ื”ืขื›ืขืจื•ื ื’ ืคึฟืึทืจ ื™ื•ื–ืขืจื– - ื“ืึธืก ืื™ื– ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ื”ื™ื’ื”ืœืึธืึทื“, ื•ื•ื™ื™ึทืœ ืื™ืŸ ื“ืขืจ ืฆื™ื™ื˜ ืžื™ืจ ืึทืจื‘ืขื˜ืŸ ืžื™ื˜ ื˜ืขื ืก ืคื•ืŸ ืžื™ืœื™ืึทื ื– ืคื•ืŸ ื ื™ืฆืขืจืก ืื™ืŸ ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ืฆื™ื™ื˜.

ื•ืกื•ืึทืœืœื™ ืคึผื™ืงืก ืคื•ืŸ ืœืึธื•ื“ื– ืคืึทืœืŸ ื‘ืขืฉืึทืก ื“ื™ ื”ืึธืœื™ื“ื™ื™ึทืก, ืึธื‘ืขืจ ื“ืขื ื”ืขื›ืขืจื•ื ื’ ืื™ื– ืื•ื™ืฃ ืึท ื’ืึธืจ ืึทื ื“ืขืจืฉ ืžื“ืจื’ื”. ื“ืขื ื™ืึธืจ ืคืจื™ืขืจ, ืื•ื™ืฃ ื“ืขื ื˜ืึธื’ ืคื•ืŸ ื“ื™ ื”ืขื›ืขืจื•ื ื’, ืžื™ืจ ืคืืจืงื•ื™ืคื˜ 27 ื•ื ื™ืฅ ืคื•ืŸ ืกื›ื•ื™ืจืข. ื“ื™ ื“ืึทื˜ืŸ ื–ืขื ืขืŸ ืคึผืจืึทืกืขืกื˜ ืคึฟืึทืจ ืžืขืจ ื•ื•ื™ ืึท ื”ืึทืœื‘ ืฉืขื”, ื•ื•ืึธืก ื’ืขืคึฟื™ืจื˜ ื™ื ืงืึทื ื•ื•ื™ื ื™ืึทื ืก ืคึฟืึทืจ ื™ื•ื–ืขืจื–. ื‘ืื ื•ืฆืขืจ ื”ืื‘ืŸ ื‘ืืงื•ืžืขืŸ ืคืจื™ื™ื– ืคืืจ ื‘ืื˜ื™ื™ืœื™ื’ื•ื ื’, ืื‘ืขืจ ืขืก ืื™ื– ื’ืขื•ื•ืืจืŸ ืงืœืืจ ืื– ืžืขืŸ ื“ืืจืฃ ืคืืจืฉื ืขืœืขืจืŸ ื“ืขื ืคืจืืฆืขืก.

ืื™ืŸ ื“ื™ ืึธื ื”ื™ื™ื‘ ืคื•ืŸ 2019, ืžื™ืจ ื‘ืึทืฉืœืึธืกืŸ ืึทื– ืžื™ืจ ื“ืึทืจืคึฟืŸ ElasticSearch. ืคึฟืึทืจ ืึท ื’ืึทื ืฅ ื™ืึธืจ, ืžื™ืจ ืึธืจื’ืึทื ื™ื–ื™ืจื˜ ื“ื™ ืคึผืจืึทืกืขืกื™ื ื’ ืคื•ืŸ ื“ื™ ื‘ืืงื•ืžืขืŸ ื“ืึทื˜ืŸ ืื™ืŸ Elastic ืื•ืŸ ื–ื™ื™ืขืจ ื™ืฉื•ืึทื ืก ืื™ืŸ ื“ื™ ืึทืคึผื™ ืคื•ืŸ ื“ื™ ืจื™ืจืขื•ื•ื“ื™ืง ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืื•ืŸ ื•ื•ืขื‘ื–ื™ื™ื˜ืœ. ื•ื•ื™ ืึท ืจืขื–ื•ืœื˜ืึทื˜, ื“ื™ ื•ื•ื™ื™ึทื˜ืขืจ ื™ืึธืจ ื‘ืขืฉืึทืก ื“ื™ ืงืืžืคืื ื™ืข, ืžื™ืจ ืคึผืจืึทืกืขืกื˜ 15 ืื™ื™ื ืกืŸ ืื™ืŸ 131 ืžื™ื ื•ื˜.

ื–ื™ื ื˜ ืžื™ืจ ื”ืึธื‘ืŸ ืึท ืคึผืœืึทืฅ ืคื•ืŸ ืžืขื ื˜ืฉืŸ ื•ื•ืึธืก ื•ื•ื™ืœืŸ ืฆื• ืงื•ื™ืคืŸ ืกื›ื•ื™ืจืข ืื•ืŸ ืึธื ื˜ื™ื™ืœ ื ืขืžืขืŸ ืื™ืŸ ื“ื™ ืฆื™ื™ื›ืขื ื•ื ื’ ืคื•ืŸ ืคึผืจื™ื™ื–ืึทื– ืื™ืŸ ืคึผืขืจืžืึธื•ืฉืึทื ื–, ื“ืึธืก ืื™ื– ืึท ืฆื™ื™ึทื˜ื•ื•ื™ื™ึทืœื™ืง ืžืึธืก. ืื™ืฆื˜ ืžื™ืจ ืฉื™ืงืŸ ืึทืจื•ื™ืฃ-ืฆื•-ื˜ืึธื’ ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ืฆื• Elastic, ืึธื‘ืขืจ ืื™ืŸ ื“ืขืจ ืฆื•ืงื•ื ืคึฟื˜ ืžื™ืจ ืคึผืœืึทืŸ ืฆื• ืึทืจื™ื‘ืขืจืคื™ืจืŸ ืึทืจื˜ืฉื™ื•ื•ืขื“ ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ืคึฟืึทืจ ื“ื™ ืœืขืฆื˜ืข ื—ื“ืฉื™ื ืฆื• Postgres ื•ื•ื™ ืึท ืฉื˜ืขื ื“ื™ืง ืกื˜ืึธืจื™ื“ื–ืฉ. ืื™ืŸ ืกื“ืจ ื ื™ืฉื˜ ืฆื• ืคืึทืจืœื™ื™ื’ืŸ ื“ื™ ืขืœืึทืกื˜ื™ืง ืื™ื ื“ืขืงืก, ื•ื•ืึธืก ืื•ื™ืš ื”ืื˜ ื–ื™ื™ึทืŸ ืœื™ืžื™ื˜ื™ื™ืฉืึทื ื–.

ืžืกืงื ื / ืžืกืงื ื

ืื™ืŸ ื“ืขื ืžืึธืžืขื ื˜, ืžื™ืจ ื”ืึธื‘ืŸ ื˜ืจืึทื ืกืคืขืจื“ ืึทืœืข ื“ื™ ืกืขืจื•ื•ื™ืกืขืก ื•ื•ืึธืก ืžื™ืจ ื’ืขื•ื•ืืœื˜ ืฆื• Elastic ืื•ืŸ ื”ืึธื‘ืŸ ืคึผืึธื•ื–ื“ ืื•ื™ืฃ ื“ืขื ืคึฟืึทืจ ืื™ืฆื˜. ืื™ืฆื˜ ืžื™ืจ ื‘ื•ื™ืขืŸ ืึทืŸ ืื™ื ื“ืขืงืก ืื™ืŸ Elastic ืื•ื™ืฃ ืฉืคึผื™ืฅ ืคื•ืŸ ื“ื™ ื”ื•ื™ืคึผื˜ ืคึผืขืจืกื™ืกื˜ืขื ื˜ ืกื˜ืึธืจื™ื“ื–ืฉ ืื™ืŸ Postgres, ื•ื•ืึธืก ื ืขืžื˜ ืื™ื‘ืขืจ ื“ื™ ื‘ืึทื ื™ืฆืขืจ ืžืึทืกืข.

ืื™ืŸ ื“ืขืจ ืฆื•ืงื•ื ืคึฟื˜, ืžื™ืจ ืคึผืœืึทื ื™ืจืŸ ืฆื• ืึทืจื™ื‘ืขืจืคื™ืจืŸ ื‘ืึทื“ื™ื ื•ื ื’ืก ืื•ื™ื‘ ืžื™ืจ ืคึฟืึทืจืฉื˜ื™ื™ืŸ ืึทื– ื“ื™ ื“ืึทื˜ืŸ ื‘ืขื˜ืŸ ื•ื•ืขืจื˜ ืฆื• ื“ื™ื™ื•ื•ืขืจืก ืื•ืŸ ืื™ื– ื’ืขื–ื•ื›ื˜ ืคึฟืึทืจ ืึท ืึทื ืœื™ืžืึทื˜ืึทื“ ื ื•ืžืขืจ ืคื•ืŸ ืฉืคืืœื˜ืŸ. ื“ืึธืก ืื™ื– ื ื™ื˜ ืžืขืจ ืึท ืึทืจื‘ืขื˜ ืคึฟืึทืจ Postgres.

ืื•ื™ื‘ ืžื™ืจ ื“ืึทืจืคึฟืŸ ืคื•ืœ-ื˜ืขืงืกื˜ ื–ื•ื›ืŸ ืื™ืŸ ืคืึทื ื’ืงืฉืึทื ืึทืœื™ื˜ื™ ืึธื“ืขืจ ืื•ื™ื‘ ืžื™ืจ ื”ืึธื‘ืŸ ืึท ืคึผืœืึทืฅ ืคื•ืŸ ืคืึทืจืฉื™ื“ืขื ืข ื–ื•ื›ืŸ ืงืจื™ื™ื˜ื™ืจื™ืึท, ืžื™ืจ ืฉื•ื™ืŸ ื•ื•ื™ืกืŸ ืึทื– ื“ืึธืก ื“ืึทืจืฃ ื–ื™ื™ืŸ ืื™ื‘ืขืจื’ืขื–ืขืฆื˜ ืื™ืŸ ืขืœืึทืกื˜ื™ืง.

โŒ˜โŒ˜โŒ˜

ื“ืึทื ืงืขืŸ ืคึฟืึทืจ ืœื™ื™ืขื ืขืŸ. ืื•ื™ื‘ ื“ื™ื™ืŸ ืคื™ืจืžืข ืื•ื™ืš ื ื™ืฆื˜ ElasticSearch ืื•ืŸ ื”ืื˜ ื–ื™ื™ืŸ ืื™ื™ื’ืขื ืข ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทืŸ ืงืึทืกืขืก, ื–ืึธื’ืŸ ืื•ื ื“ื–. ืขืก ื•ื•ืขื˜ ื–ื™ื™ืŸ ื˜ืฉื™ืงืึทื•ื•ืข ืฆื• ื•ื•ื™ืกืŸ ื•ื•ื™ ืื ื“ืขืจืข ื–ืขื ืขืŸ ๐Ÿ™‚

ืžืงื•ืจ: www.habr.com

ืœื™ื™ื’ืŸ ืึท ื‘ืึทืžืขืจืงื•ื ื’