แž‘แžทแžŠแŸ’แž‹แž—แžถแž–แž‘แžผแž‘แŸ…แž“แŸƒแžŸแŸ’แžแžถแž”แžแŸ’แž™แž€แž˜แŸ’แž˜แžŸแŸแžœแžถแž€แž˜แŸ’แž˜แžŸแž˜แŸ’แžšแžถแž”แŸ‹แž€แžถแžšแžœแžถแž™แžแž˜แŸ’แž›แŸƒแžšแžผแž”แžšแžถแž„แžŠแŸ„แž™แž•แŸ’แžขแŸ‚แž€แž›แžพแž”แžŽแŸ’แžแžถแž‰แžŸแžšแžŸแŸƒแž”แŸ’แžšแžŸแžถแž‘

แž‘แžทแžŠแŸ’แž‹แž—แžถแž–แž‘แžผแž‘แŸ…แž“แŸƒแžŸแŸ’แžแžถแž”แžแŸ’แž™แž€แž˜แŸ’แž˜แžŸแŸแžœแžถแž€แž˜แŸ’แž˜แžŸแž˜แŸ’แžšแžถแž”แŸ‹แž€แžถแžšแžœแžถแž™แžแž˜แŸ’แž›แŸƒแžšแžผแž”แžšแžถแž„แžŠแŸ„แž™แž•แŸ’แžขแŸ‚แž€แž›แžพแž”แžŽแŸ’แžแžถแž‰แžŸแžšแžŸแŸƒแž”แŸ’แžšแžŸแžถแž‘

แž’แžถแžแžป

แž‡แŸ†แžšแžถแž”แžŸแžฝแžš!

แž“แŸ…แž€แŸ’แž“แžปแž„แžขแžแŸ’แžแž”แž‘แž“แŸแŸ‡ แžแŸ’แž‰แžปแŸ†แž“แžนแž„แž…แŸ‚แž€แžšแŸ†แž›แŸ‚แž€แž”แž‘แž–แžทแžŸแŸ„แž’แž“แŸแžšแž”แžŸแŸ‹แžแŸ’แž‰แžปแŸ†แž€แŸ’แž“แžปแž„แž€แžถแžšแž€แžŸแžถแž„แžŸแŸ’แžแžถแž”แžแŸ’แž™แž€แž˜แŸ’แž˜ microservice แžŸแž˜แŸ’แžšแžถแž”แŸ‹แž‚แž˜แŸ’แžšแŸ„แž„แžŠแŸ„แž™แž”แŸ’แžšแžพแž”แžŽแŸ’แžแžถแž‰แžŸแžšแžŸแŸƒแž”แŸ’แžšแžŸแžถแž‘แŸ”

แž…แžผแžšแž“แžทแž™แžถแž™แžขแŸ†แž–แžธแžแž˜แŸ’แžšแžผแžœแž€แžถแžšแžŸแŸ’แžแžถแž”แžแŸ’แž™แž€แž˜แŸ’แž˜ แž˜แžพแž›แžŠแŸ’แž™แžถแž€แŸ’แžšแžถแž˜แžšแž…แž“แžถแžŸแž˜แŸ’แž–แŸแž“แŸ’แž’แž•แŸ’แžŸแŸแž„แŸ— แžœแžทแž—แžถแž‚แž’แžถแžแžปแž•แŸ’แžŸแŸ†แž“แžธแž˜แžฝแž™แŸ—แž“แŸƒแžŸแŸ’แžแžถแž”แžแŸ’แž™แž€แž˜แŸ’แž˜แžŠแŸ‚แž›แž”แžถแž“แž”แž‰แŸ’แž…แž”แŸ‹ แž“แžทแž„แžœแžถแž™แžแž˜แŸ’แž›แŸƒแž˜แŸ‰แŸ‚แžแŸ’แžšแž”แž…แŸ’แž…แŸแž€แž‘แŸแžŸแž“แŸƒแžŠแŸ†แžŽแŸ„แŸ‡แžŸแŸ’แžšแžถแž™แž•แž„แžŠแŸ‚แžšแŸ”

แžšแžธแž€แžšแžถแž™แžขแžถแž“!

แž–แžถแž€แŸ’แž™แž–แžธแžšแž”แžธแžขแŸ†แž–แžธแž”แž‰แŸ’แž แžถ แž“แžทแž„แžŠแŸ†แžŽแŸ„แŸ‡แžŸแŸ’แžšแžถแž™แžšแž”แžŸแŸ‹แžœแžถแŸ”

แž‚แŸ†แž“แžทแžแž…แž˜แŸ’แž”แž„แž‚แžบแžŠแžพแž˜แŸ’แž”แžธแžœแžถแž™แžแž˜แŸ’แž›แŸƒแž—แžถแž–แž‘แžถแž€แŸ‹แž‘แžถแž‰แžšแž”แžŸแŸ‹แž˜แž“แžปแžŸแŸ’แžŸแž“แŸ…แž›แžพแž˜แžถแžแŸ’แžšแžŠแŸ’แž‹แžถแž“แžŠแž”แŸ‹แž…แŸ†แžŽแžปแž…แžŠแŸ„แž™แž•แŸ’แžขแŸ‚แž€แž›แžพแžšแžผแž”แžแžแŸ”

แž“แŸ…แž€แŸ’แž“แžปแž„แžขแžแŸ’แžแž”แž‘แž“แŸแŸ‡ แž™แžพแž„แž“แžนแž„แž•แŸ’แž›แžถแžŸแŸ‹แž‘แžธแž†แŸ’แž„แžถแž™แž–แžธแž€แžถแžšแž–แžทแž–แžŽแŸŒแž“แžถแž‘แžถแŸ†แž„แž”แžŽแŸ’แžแžถแž‰แžŸแžšแžŸแŸƒแž”แŸ’แžšแžŸแžถแž‘แžŠแŸ‚แž›แž”แžถแž“แž”แŸ’แžšแžพ แž“แžทแž„แžŠแŸ†แžŽแžพแžšแž€แžถแžšแž“แŸƒแž€แžถแžšแžšแŸ€แž”แž…แŸ†แž‘แžทแž“แŸ’แž“แž“แŸแž™ แž“แžทแž„แž€แžถแžšแž”แžŽแŸ’แžแžปแŸ‡แž”แžŽแŸ’แžแžถแž›แŸ” แž‘แŸ„แŸ‡แž‡แžถแž™แŸ‰แžถแž„แžŽแžถแž€แŸแžŠแŸ„แž™ แž“แŸ…แž€แŸ’แž“แžปแž„แž€แžถแžšแž”แŸ„แŸ‡แž–แžปแž˜แŸ’แž–แž•แŸ’แžŸแžถแž™แž˜แžฝแž™แžแžถแž„แž€แŸ’แžšแŸ„แž˜แž“แŸแŸ‡ แž™แžพแž„แž–แžทแžแž‡แžถแž“แžนแž„แžแŸ’แžšแž›แž”แŸ‹แž‘แŸ…แž€แžถแžšแžœแžทแž—แžถแž‚แž”แŸ†แž–แž„แŸ‹แž”แž„แŸ’แž แžผแžšแž€แžถแžšแžœแžถแž™แžแž˜แŸ’แž›แŸƒแž“แŸ…แž€แž˜แŸ’แžšแžทแžแžŸแŸŠแžธแž‡แž˜แŸ’แžšแŸ…แž˜แžฝแž™แŸ”

แžฅแžกแžผแžœแž“แŸแŸ‡แž™แžพแž„แž“แžนแž„แž†แŸ’แž›แž„แž€แžถแžแŸ‹แž”แŸ†แž–แž„แŸ‹แžœแžถแž™แžแž˜แŸ’แž›แŸƒแž“แŸ…แž€แž˜แŸ’แžšแžทแžแž€แŸ†แž–แžผแž› แž แžพแž™แž“แžนแž„แž•แŸ’แžแŸ„แžแž›แžพแžขแž“แŸ’แžแžšแž€แž˜แŸ’แž˜แž“แŸƒแžŸแŸแžœแžถแž€แž˜แŸ’แž˜แžแŸ’แž“แžถแžแžแžผแž…แž“แŸ…แž€แŸ’แž“แžปแž„แž”แžšแžทแž”แž‘แž“แŸƒแžŸแŸ’แžแžถแž”แžแŸ’แž™แž€แž˜แŸ’แž˜แž‚แž˜แŸ’แžšแŸ„แž„แž‘แžถแŸ†แž„แž˜แžผแž›แŸ” 

แž“แŸ…แž–แŸแž›แž’แŸ’แžœแžพแž€แžถแžšแž›แžพแž”แŸ†แž–แž„แŸ‹แžœแžถแž™แžแž˜แŸ’แž›แŸƒแž—แžถแž–แž‘แžถแž€แŸ‹แž‘แžถแž‰ แž€แžทแž…แŸ’แž…แž€แžถแžšแžแŸ’แžšแžผแžœแž”แžถแž“แž”แŸ†แž”แŸ‚แž€แž‘แŸ…แž‡แžถแžŸแž˜แžถแžŸแž’แžถแžแžปแžŠแžผแž…แžแžถแž„แž€แŸ’แžšแŸ„แž˜แŸˆ

  1. แž€แžถแžšแž‡แŸ’แžšแžพแžŸแžšแžพแžŸแž˜แžปแžแž“แŸ…แž€แŸ’แž“แžปแž„แžšแžผแž”แžแž
  2. แž€แžถแžšแžœแžถแž™แžแž˜แŸ’แž›แŸƒแžšแž”แžŸแŸ‹แž˜แž“แžปแžŸแŸ’แžŸแž˜แŸ’แž“แžถแž€แŸ‹แŸ—
  3. แž”แž„แŸ’แž แžถแž‰แž›แž‘แŸ’แž’แž•แž›

แž‘แžธแž˜แžฝแž™แžแŸ’แžšแžผแžœแž”แžถแž“แžŠแŸ„แŸ‡แžŸแŸ’แžšแžถแž™แžŠแŸ„แž™แž€แž„แž€แž˜แŸ’แž›แžถแŸ†แž„แž“แŸƒแž€แžถแžšแž”แžŽแŸ’แžแžปแŸ‡แž”แžŽแŸ’แžแžถแž›แž‡แžถแž˜แžปแž“ MTCNN. แžŸแž˜แŸ’แžšแžถแž”แŸ‹แž‘แžธแž–แžธแžš แž”แžŽแŸ’แžแžถแž‰แžŸแžšแžŸแŸƒแž”แŸ’แžšแžŸแžถแž‘ convolutional แžแŸ’แžšแžผแžœแž”แžถแž“แž”แžŽแŸ’แžแžปแŸ‡แž”แžŽแŸ’แžแžถแž›แž“แŸ…แž›แžพ PyTorch แžŠแŸ„แž™แž”แŸ’แžšแžพ ResNet แŸฅแŸ  - แž–แžธแžแžปแž›แŸ’แž™แž—แžถแž– "แž‚แžปแžŽแž—แžถแž– / แž›แŸ’แž”แžฟแž“แž“แŸƒแž€แžถแžšแžŸแž“แŸ’แž“แžทแžŠแŸ’แž‹แžถแž“แž“แŸ…แž›แžพแžŸแŸŠแžธแž—แžธแž™แžผ"

แž‘แžทแžŠแŸ’แž‹แž—แžถแž–แž‘แžผแž‘แŸ…แž“แŸƒแžŸแŸ’แžแžถแž”แžแŸ’แž™แž€แž˜แŸ’แž˜แžŸแŸแžœแžถแž€แž˜แŸ’แž˜แžŸแž˜แŸ’แžšแžถแž”แŸ‹แž€แžถแžšแžœแžถแž™แžแž˜แŸ’แž›แŸƒแžšแžผแž”แžšแžถแž„แžŠแŸ„แž™แž•แŸ’แžขแŸ‚แž€แž›แžพแž”แžŽแŸ’แžแžถแž‰แžŸแžšแžŸแŸƒแž”แŸ’แžšแžŸแžถแž‘

แžŠแŸ’แž™แžถแž€แŸ’แžšแžถแž˜แž˜แžปแžแž„แžถแžšแž“แŸƒแž”แŸ†แž–แž„แŸ‹แž”แž„แŸ’แž แžผแžšแžœแžถแž™แžแž˜แŸ’แž›แŸƒ

แž€แžถแžšแžœแžทแž—แžถแž‚แžแž˜แŸ’แžšแžผแžœแž€แžถแžšแžŸแŸ’แžแžถแž”แžแŸ’แž™แž€แž˜แŸ’แž˜แž‚แž˜แŸ’แžšแŸ„แž„

แž“แŸ…แž€แŸ’แž“แžปแž„แžœแžŠแŸ’แžแž‡แžธแžœแžทแž ML แžŠแŸ†แžŽแžถแž€แŸ‹แž€แžถแž›แž‚แž˜แŸ’แžšแŸ„แž„แž“แŸƒแž€แžถแžšแž„แžถแžšแž›แžพแžŸแŸ’แžแžถแž”แžแŸ’แž™แž€แž˜แŸ’แž˜ แž“แžทแž„แžŸแŸ’แžœแŸแž™แž”แŸ’แžšแžœแžแŸ’แžแžทแž€แž˜แŸ’แž˜แž“แŸƒแž€แžถแžšแžŠแžถแž€แŸ‹แž–แž„แŸ’แžšแžถแž™แž‚แŸ†แžšแžผ แž‡แžถแžšแžฟแž™แŸ—แžŸแŸ’แžแžทแžแž€แŸ’แž“แžปแž„แž…แŸ†แžŽแŸ„แž˜แž€แžถแžšแž…แŸ†แžŽแžถแž™แž–แŸแž›แžœแŸแž›แžถแž…แŸ’แžšแžพแž“แž”แŸ†แž•แžปแž แž“แžทแž„แž”แŸ’แžšแžพแž”แŸ’แžšแžถแžŸแŸ‹แž’แž“แž’แžถแž“แŸ”

แž‘แžทแžŠแŸ’แž‹แž—แžถแž–แž‘แžผแž‘แŸ…แž“แŸƒแžŸแŸ’แžแžถแž”แžแŸ’แž™แž€แž˜แŸ’แž˜แžŸแŸแžœแžถแž€แž˜แŸ’แž˜แžŸแž˜แŸ’แžšแžถแž”แŸ‹แž€แžถแžšแžœแžถแž™แžแž˜แŸ’แž›แŸƒแžšแžผแž”แžšแžถแž„แžŠแŸ„แž™แž•แŸ’แžขแŸ‚แž€แž›แžพแž”แžŽแŸ’แžแžถแž‰แžŸแžšแžŸแŸƒแž”แŸ’แžšแžŸแžถแž‘

แžœแžŠแŸ’แžแž‡แžธแžœแžทแžแž“แŸƒแž‚แž˜แŸ’แžšแŸ„แž„ ML

แž‚แž˜แŸ’แžšแŸ„แž„แž“แŸแŸ‡แž˜แžทแž“แž˜แžถแž“แž€แžšแžŽแžธแž›แžพแž€แž›แŸ‚แž„แž“แŸ„แŸ‡แž‘แŸ - แž€แžถแžšแžŸแž˜แŸ’แžšแŸแž…แž…แžทแžแŸ’แžแžแŸ’แžšแžผแžœแž”แžถแž“แž’แŸ’แžœแžพแžกแžพแž„แžŠแžพแž˜แŸ’แž”แžธแžšแžปแŸ†แž”แŸ†แž–แž„แŸ‹แž€แžถแžšแžœแžถแž™แžแž˜แŸ’แž›แŸƒแž‘แŸ…แž€แŸ’แž“แžปแž„แžŸแŸแžœแžถแž€แž˜แŸ’แž˜แžขแž“แžกแžถแž‰ แžŠแŸ‚แž›แžแž˜แŸ’แžšแžผแžœแžฑแŸ’แž™แž”แž‰แŸ’แž…แžผแž›แžแŸ’แž›แžฝแž“แž™แžพแž„แž“แŸ…แž€แŸ’แž“แžปแž„แžŸแŸ’แžแžถแž”แžแŸ’แž™แž€แž˜แŸ’แž˜แŸ” แžแž˜แŸ’แžšแžผแžœแž€แžถแžšแž˜แžผแž›แžŠแŸ’แž‹แžถแž“แžแžถแž„แž€แŸ’แžšแŸ„แž˜แžแŸ’แžšแžผแžœแž”แžถแž“แž€แŸ†แžŽแžแŸ‹แŸ–

  1. แž€แžถแžšแž•แŸ’แž‘แžปแž€แž€แŸ†แžŽแžแŸ‹แž แŸแžแžปแž”แž„แŸ’แžšแžฝแž”แž”แž„แŸ’แžšแžฝแž˜ - แžŸแŸแžœแžถแž€แž˜แŸ’แž˜แž‘แžถแŸ†แž„แžขแžŸแŸ‹แž‚แžฝแžšแžแŸ‚แžŸแžšแžŸแŸแžšแž€แŸ†แžŽแžแŸ‹แž แŸแžแžปแž“แŸ…แž€แž“แŸ’แž›แŸ‚แž„แžแŸ‚แž˜แžฝแž™ แž–แžฝแž€แž‚แŸแž‚แžฝแžšแžแŸ‚แž„แžถแž™แžŸแŸ’แžšแžฝแž›แž€แŸ’แž“แžปแž„แž€แžถแžšแžœแžทแž—แžถแž‚
  2. แž›แž‘แŸ’แž’แž—แžถแž–แž“แŸƒแž€แžถแžšแž’แŸ’แžœแžพแž˜แžถแžแŸ’แžšแžŠแŸ’แž‹แžถแž“แž•แŸ’แžแŸแž€แž“แŸƒแžŸแŸแžœแžถแžœแžถแž™แžแž˜แŸ’แž›แŸƒ - แž‡แžถ Bottleneck แž‘แŸ†แž“แž„แž”แŸ†แž•แžปแž
  3. แž…แŸ†แž“แžฝแž“แžŠแžผแž…แž‚แŸ’แž“แžถแž“แŸƒแž’แž“แž’แžถแž“แžŠแŸ†แžŽแžพแžšแž€แžถแžšแž‚แžฝแžšแžแŸ‚แžแŸ’แžšแžผแžœแž”แžถแž“แž”แŸ‚แž„แž…แŸ‚แž€แžŠแžพแž˜แŸ’แž”แžธแžœแžถแž™แžแž˜แŸ’แž›แŸƒแžšแžผแž”แž—แžถแž–แž“แžธแž˜แžฝแž™แŸ— แžŠแžพแž˜แŸ’แž”แžธแž‡แŸ€แžŸแžœแžถแž„แž€แžถแžšแž แžฝแžŸแž”แŸ’แžšแž˜แžถแžŽแž€แŸ’แž“แžปแž„แž€แžถแžšแž…แŸ‚แž€แž…แžถแž™แž–แŸแž›แžœแŸแž›แžถแžŸแž˜แŸ’แžšแžถแž”แŸ‹แž€แžถแžšแžŸแž“แŸ’แž“แžทแžŠแŸ’แž‹แžถแž“
  4. แž€แžถแžšแžŠแžถแž€แŸ‹แž–แž„แŸ’แžšแžถแž™แžกแžพแž„แžœแžทแž‰แž“แžผแžœแžŸแŸแžœแžถแž€แž˜แŸ’แž˜แž‡แžถแž€แŸ‹แž›แžถแž€แŸ‹ แž“แžทแž„แž‡แž„แŸ‹แž‘แžถแŸ†แž„แž˜แžผแž›
  5. แžŸแž˜แžแŸ’แžแž—แžถแž–แž€แŸ’แž“แžปแž„แž€แžถแžšแž”แŸ’แžšแžพแž”แŸ’แžšแžถแžŸแŸ‹แžœแžแŸ’แžแžปแž‘แžผแž‘แŸ…แž“แŸ…แž€แŸ’แž“แžปแž„แžŸแŸแžœแžถแž€แž˜แŸ’แž˜แž•แŸ’แžŸแŸแž„แŸ— แž”แŸ’แžšแžŸแžทแž“แž”แžพแž…แžถแŸ†แž”แžถแž…แŸ‹

แžŸแŸ’แžแžถแž”แžแŸ’แž™แž€แž˜แŸ’แž˜

แž”แž“แŸ’แž‘แžถแž”แŸ‹โ€‹แž–แžธโ€‹แž€แžถแžšโ€‹แžœแžทแž—แžถแž‚โ€‹แžแž˜แŸ’แžšแžผแžœโ€‹แž€แžถแžš แžœแžถโ€‹แž”แžถแž“โ€‹แž€แŸ’แž›แžถแž™โ€‹แž‡แžถโ€‹แž…แŸ’แž”แžถแžŸแŸ‹โ€‹แžแžถโ€‹แžŸแŸ’แžแžถแž”แžแŸ’แž™แž€แž˜แŸ’แž˜โ€‹แž˜แžธแž€แŸ’แžšแžผโ€‹แžŸแŸแžœแžถโ€‹แžŸแž˜โ€‹แžŸแŸ’แž‘แžพแžšโ€‹แžแŸ‚โ€‹แžฅแžแžแŸ’แž…แŸ„แŸ‡แŸ”

แžŠแžพแž˜แŸ’แž”แžธแž€แž˜แŸ’แž…แžถแžแŸ‹แž€แžถแžšแžˆแžบแž€แŸ’แž”แžถแž›แžŠแŸ‚แž›แž˜แžทแž“แž…แžถแŸ†แž”แžถแž…แŸ‹แž“แŸ„แŸ‡ Telegram API แžแŸ’แžšแžผแžœแž”แžถแž“แž‡แŸ’แžšแžพแžŸแžšแžพแžŸแž‡แžถแž•แŸ’แž“แŸ‚แž€แžแžถแž„แž˜แžปแžแŸ”

แž‡แžถแžŠแŸ†แž”แžผแž„ แžŸแžผแž˜แž€แŸ’แžšแžกแŸแž€แž˜แžพแž›แžŠแŸ’แž™แžถแž€แŸ’แžšแžถแž˜แžšแž…แž“แžถแžŸแž˜แŸ’แž–แŸแž“แž“แŸƒแžŸแŸ’แžแžถแž”แžแŸ’แž™แž€แž˜แŸ’แž˜แžŠแŸ‚แž›แž”แžถแž“แž”แž‰แŸ’แž…แž”แŸ‹ แž”แž“แŸ’แž‘แžถแž”แŸ‹แž˜แž€แž”แž“แŸ’แžแž‘แŸ…แž€แžถแžšแž–แžทแž–แžŽแŸŒแž“แžถแž“แŸƒแž’แžถแžแžปแž•แŸ’แžŸแŸ†แž“แžธแž˜แžฝแž™แŸ— แž แžพแž™แžแŸ‚แž˜แž‘แžถแŸ†แž„แž’แŸ’แžœแžพแž”แŸ‚แž”แž”แž‘แž“แŸƒแžŠแŸ†แžŽแžพแžšแž€แžถแžšแžšแžผแž”แž—แžถแž–แžŠแŸ‚แž›แž‘แž‘แžฝแž›แž”แžถแž“แž‡แŸ„แž‚แž‡แŸแž™แž•แž„แžŠแŸ‚แžšแŸ”

แž‘แžทแžŠแŸ’แž‹แž—แžถแž–แž‘แžผแž‘แŸ…แž“แŸƒแžŸแŸ’แžแžถแž”แžแŸ’แž™แž€แž˜แŸ’แž˜แžŸแŸแžœแžถแž€แž˜แŸ’แž˜แžŸแž˜แŸ’แžšแžถแž”แŸ‹แž€แžถแžšแžœแžถแž™แžแž˜แŸ’แž›แŸƒแžšแžผแž”แžšแžถแž„แžŠแŸ„แž™แž•แŸ’แžขแŸ‚แž€แž›แžพแž”แžŽแŸ’แžแžถแž‰แžŸแžšแžŸแŸƒแž”แŸ’แžšแžŸแžถแž‘

แžŠแŸ’แž™แžถแž€แŸ’แžšแžถแž˜แžšแž…แž“แžถแžŸแž˜แŸ’แž–แŸแž“แŸ’แž’แž“แŸƒแžŸแŸ’แžแžถแž”แžแŸ’แž™แž€แž˜แŸ’แž˜แžŠแŸ‚แž›แž”แžถแž“แž”แž‰แŸ’แž…แž”แŸ‹

แž…แžผแžšโ€‹แž™แžพแž„โ€‹แž“แžทแž™แžถแž™โ€‹แž›แž˜แŸ’แžขแžทแžโ€‹แž”แž“แŸ’แžแŸ‚แž˜โ€‹แž‘แŸ€แžโ€‹แžขแŸ†แž–แžธโ€‹แž’แžถแžแžปแž•แŸ’แžŸแŸ†โ€‹แž“แžธแž˜แžฝแž™แŸ—โ€‹แž“แŸƒโ€‹แžŠแŸ’แž™แžถแž€แŸ’แžšแžถแž˜ แžŠแŸ„แž™โ€‹แž”แž‰แŸ’แž‡แžถแž€แŸ‹โ€‹แž–แžธโ€‹แž‘แŸ†แž“แžฝแž›โ€‹แžแžปแžŸโ€‹แžแŸ’แžšแžผแžœโ€‹แžแŸ‚โ€‹แž˜แžฝแž™โ€‹แž€แŸ’แž“แžปแž„โ€‹แžŠแŸ†แžŽแžพแžšโ€‹แž€แžถแžšโ€‹แžœแžถแž™โ€‹แžแž˜แŸ’แž›แŸƒโ€‹แžšแžผแž”แž—แžถแž–แŸ”

แžŸแŸแžœแžถแž˜แžธแž€แŸ’แžšแžผ "attrai-telegram-bot"

แžŸแŸแžœแžถแž˜แžธแž€แŸ’แžšแžผแž“แŸแŸ‡แž‚แŸ’แžšแž”แžŠแžŽแŸ’แžแž”แŸ‹แžขแž“แŸ’แžแžšแž€แž˜แŸ’แž˜แž‘แžถแŸ†แž„แžขแžŸแŸ‹แž‡แžถแž˜แžฝแž™ Telegram API แŸ” แž˜แžถแž“แžŸแŸแžŽแžถแžšแžธแž™แŸ‰แžผแžŸแŸ†แžแžถแž“แŸ‹แŸ—แž…แŸ†แž“แžฝแž“ 2แŸ– แž’แŸ’แžœแžพแž€แžถแžšแž‡แžถแž˜แžฝแž™แžšแžผแž”แž—แžถแž–แž•แŸ’แž‘แžถแž›แŸ‹แžแŸ’แž›แžฝแž“ แž“แžทแž„แž’แŸ’แžœแžพแž€แžถแžšแž‡แžถแž˜แžฝแž™แž›แž‘แŸ’แž’แž•แž›แž“แŸƒแž”แŸ†แž–แž„แŸ‹แž”แž„แŸ’แž แžผแžšแžœแžถแž™แžแž˜แŸ’แž›แŸƒแŸ” แžŸแžผแž˜แž€แŸ’แžšแžกแŸแž€แž˜แžพแž›แžŸแŸแžŽแžถแžšแžธแž™แŸ‰แžผแž‘แžถแŸ†แž„แž–แžธแžšแž€แŸ’แž“แžปแž„แž“แŸแž™แž‘แžผแž‘แŸ…แŸ”

แž“แŸ…แž–แŸแž›แž‘แž‘แžฝแž›แž”แžถแž“แžŸแžถแžšแž•แŸ’แž‘แžถแž›แŸ‹แžแŸ’แž›แžฝแž“แž‡แžถแž˜แžฝแž™แžšแžผแž”แž—แžถแž–แŸ–

  1. แž€แžถแžšแžแŸ’แžšแž„แžแŸ’แžšแžผแžœแž”แžถแž“แžขแž“แžปแžœแžแŸ’แž แžŠแŸ„แž™แž˜แžถแž“แž€แžถแžšแžแŸ’แžšแžฝแžแž–แžทแž“แžทแžแŸ’แž™แžŠแžผแž…แžแžถแž„แž€แŸ’แžšแŸ„แž˜แŸˆ
    • แž—แžถแž–แžขแžถแž…แžšแž€แž”แžถแž“แž“แŸƒแž‘แŸ†แž แŸ†แžšแžผแž”แž—แžถแž–แž›แŸ’แžขแž”แŸ†แž•แžปแž
    • แž…แŸ†แž“แžฝแž“แžšแžผแž”แž—แžถแž–แžขแŸ’แž“แž€แž”แŸ’แžšแžพแž”แŸ’แžšแžถแžŸแŸ‹แžšแžฝแž…แž แžพแž™แž“แŸ…แž€แŸ’แž“แžปแž„แž‡แžฝแžš
  2. แž“แŸ…แž–แŸแž›แž†แŸ’แž›แž„แž€แžถแžแŸ‹แž€แžถแžšแžแŸ’แžšแž„แžŠแŸ†แž”แžผแž„ แžšแžผแž”แž—แžถแž–แžแŸ’แžšแžผแžœแž”แžถแž“แžšแž€แŸ’แžŸแžถแž‘แžปแž€แž€แŸ’แž“แžปแž„แž€แž˜แŸ’แžšแžทแžแžŸแŸ†แžกแŸแž„ docker
  3. แž—แžถแžšแž€แžทแž…แŸ’แž…แž˜แžฝแž™แžแŸ’แžšแžผแžœแž”แžถแž“แž•แž›แžทแžแž“แŸ…แž€แŸ’แž“แžปแž„แž‡แžฝแžš "to_estimate" แžŠแŸ‚แž›แžšแžฝแž˜แž˜แžถแž“แž•แŸ’แž›แžผแžœแž‘แŸ…แž€แžถแž“แŸ‹แžšแžผแž”แž—แžถแž–แžŠแŸ‚แž›แž˜แžถแž“แž“แŸ…แž€แŸ’แž“แžปแž„แž”แžšแžทแž˜แžถแžŽแžšแž”แžŸแŸ‹แž™แžพแž„
  4. แž”แŸ’แžšแžŸแžทแž“แž”แžพแž‡แŸ†แž แžถแž“แžแžถแž„แž›แžพแžแŸ’แžšแžผแžœแž”แžถแž“แž”แž‰แŸ’แž…แž”แŸ‹แžŠแŸ„แž™แž‡แŸ„แž‚แž‡แŸแž™ แžขแŸ’แž“แž€แž”แŸ’แžšแžพแž”แŸ’แžšแžถแžŸแŸ‹แž“แžนแž„แž‘แž‘แžฝแž›แž”แžถแž“แžŸแžถแžšแž‡แžถแž˜แžฝแž™แž“แžนแž„แž–แŸแž›แžœแŸแž›แžถแžŠแŸ†แžŽแžพแžšแž€แžถแžšแžšแžผแž”แž—แžถแž–แž”แŸ’แžšแž แžถแž€แŸ‹แž”แŸ’แžšแž แŸ‚แž› แžŠแŸ‚แž›แžแŸ’แžšแžผแžœแž”แžถแž“แž‚แžŽแž“แžถแžŠแŸ„แž™แž•แŸ’แžขแŸ‚แž€แž›แžพแž…แŸ†แž“แžฝแž“แž€แžทแž…แŸ’แž…แž€แžถแžšแž€แŸ’แž“แžปแž„แž‡แžฝแžšแŸ” แž”แŸ’แžšแžŸแžทแž“แž”แžพแž˜แžถแž“แž€แŸ†แž แžปแžŸแž€แžพแžแžกแžพแž„ แžขแŸ’แž“แž€แž”แŸ’แžšแžพแž”แŸ’แžšแžถแžŸแŸ‹แž“แžนแž„แžแŸ’แžšแžผแžœแž”แžถแž“แž‡แžผแž“แžŠแŸ†แžŽแžนแž„แž™แŸ‰แžถแž„แž…แŸ’แž”แžถแžŸแŸ‹แžแžถแž˜แžšแž™แŸˆแž€แžถแžšแž•แŸ’แž‰แžพแžŸแžถแžšแž‡แžถแž˜แžฝแž™แž“แžนแž„แž–แŸแžแŸŒแž˜แžถแž“แžขแŸ†แž–แžธแžขแŸ’แžœแžธแžŠแŸ‚แž›แžขแžถแž…แž“แžนแž„แžแžปแžŸแŸ”

แž•แž„แžŠแŸ‚แžš แžŸแŸแžœแžถแž˜แžธแž€แŸ’แžšแžผแž“แŸแŸ‡ แžŠแžผแž…แž‡แžถแž€แž˜แŸ’แž˜แž€แžš celery แžŸแŸ’แžแžถแž”แŸ‹แž‡แžฝแžš "after_estimate" แžŠแŸ‚แž›แž˜แžถแž“แž”แŸ†แžŽแž„แžŸแž˜แŸ’แžšแžถแž”แŸ‹แž€แžทแž…แŸ’แž…แž€แžถแžšแžŠแŸ‚แž›แž”แžถแž“แž†แŸ’แž›แž„แž€แžถแžแŸ‹แž”แŸ†แž–แž„แŸ‹แžœแžถแž™แžแž˜แŸ’แž›แŸƒแŸ”

แž“แŸ…แž–แŸแž›แž‘แž‘แžฝแž›แž”แžถแž“แž€แžทแž…แŸ’แž…แž€แžถแžšแžแŸ’แž˜แžธแž–แžธ โ€œafter_estimateโ€แŸ–

  1. แž”แŸ’แžšแžŸแžทแž“แž”แžพแžšแžผแž”แž—แžถแž–แžแŸ’แžšแžผแžœแž”แžถแž“แžŠแŸ†แžŽแžพแžšแž€แžถแžšแžŠแŸ„แž™แž‡แŸ„แž‚แž‡แŸแž™ แž™แžพแž„แž•แŸ’แž‰แžพแž›แž‘แŸ’แž’แž•แž›แž‘แŸ…แžขแŸ’แž“แž€แž”แŸ’แžšแžพแž”แŸ’แžšแžถแžŸแŸ‹ แž”แŸ’แžšแžŸแžทแž“แž”แžพแž˜แžทแž“แž˜แžถแž“แž‘แŸ แž™แžพแž„แž‡แžผแž“แžŠแŸ†แžŽแžนแž„แžขแŸ†แž–แžธแž”แž‰แŸ’แž แžถแŸ”
  2. แž€แžถแžšแžŠแž€แžšแžผแž”แž—แžถแž–แžŠแŸ‚แž›แž‡แžถแž›แž‘แŸ’แž’แž•แž›แž“แŸƒแž”แŸ†แž–แž„แŸ‹แž”แž„แŸ’แž แžผแžšแžœแžถแž™แžแž˜แŸ’แž›แŸƒ

แžŸแŸแžœแžถแžœแžถแž™แžแž˜แŸ’แž›แŸƒแžแŸ’แž“แžถแžแžแžผแž… "แžขแŸ’แž“แž€แž”แŸ‰แžถแž“แŸ‹แž”แŸ’แžšแž˜แžถแžŽ"

microservice แž“แŸแŸ‡โ€‹แž‚แžบโ€‹แž‡แžถโ€‹แž”แžปแž‚แŸ’แž‚แž›แžทแž€ celery แž“แžทแž„โ€‹แžšแžปแŸ†โ€‹แž–แŸแž‘แŸ’แž’โ€‹แž‚แŸ’แžšแž”แŸ‹โ€‹แž™แŸ‰แžถแž„โ€‹แžŠแŸ‚แž›โ€‹แž‘แžถแž€แŸ‹โ€‹แž‘แž„โ€‹แž“แžนแž„โ€‹แž”แŸ†แž–แž„แŸ‹โ€‹แž”แž„แŸ’แž แžผแžšโ€‹แž€แžถแžšโ€‹แžœแžถแž™โ€‹แžแž˜แŸ’แž›แŸƒโ€‹แžšแžผแž”แž—แžถแž–แŸ” แž˜แžถแž“แž€แŸ’แž”แžฝแž“แžŠแŸ„แŸ‡แžŸแŸ’แžšแžถแž™แžแŸ‚แž˜แžฝแž™แž‚แžแŸ‹แžŠแŸ‚แž›แž’แŸ’แžœแžพแž€แžถแžšแž“แŸ…แž‘แžธแž“แŸแŸ‡ - แžแŸ„แŸ‡แžœแžทแž—แžถแž‚แžœแžถแŸ”

แž“แŸ…แž–แŸแž›แž‘แž‘แžฝแž›แž”แžถแž“แž€แžทแž…แŸ’แž…แž€แžถแžšแžแŸ’แž˜แžธแž–แžธ โ€œto_estimateโ€แŸ–

  1. แž…แžผแžšแžŠแŸ†แžŽแžพแžšแž€แžถแžšแžšแžผแž”แž—แžถแž–แžแžถแž˜แžšแž™แŸˆแž”แŸ†แž–แž„แŸ‹แžœแžถแž™แžแž˜แŸ’แž›แŸƒแŸ–
    1. แž€แŸ†แž–แžปแž„แž•แŸ’แž‘แžปแž€แžšแžผแž”แž—แžถแž–แž‘แŸ…แž€แŸ’แž“แžปแž„แžขแž„แŸ’แž‚แž…แž„แž…แžถแŸ†
    2. แž™แžพแž„แž“แžถแŸ†แž™แž€แžšแžผแž”แž—แžถแž–แž‘แŸ…แž‘แŸ†แž แŸ†แžŠแŸ‚แž›แžแŸ’แžšแžผแžœแž€แžถแžš
    3. แžŸแŸ’แžœแŸ‚แž„แžšแž€แž˜แžปแžแž‘แžถแŸ†แž„แžขแžŸแŸ‹ (MTCNN)
    4. แž™แžพแž„แžœแžถแž™แžแž˜แŸ’แž›แŸƒแž˜แžปแžแž‘แžถแŸ†แž„แžขแžŸแŸ‹ (แž™แžพแž„แžšแžปแŸ†แž˜แžปแžแžŠแŸ‚แž›แžšแž€แžƒแžพแž‰แž€แŸ’แž“แžปแž„แž‡แŸ†แž แžถแž“แž…แžปแž„แž€แŸ’แžšแŸ„แž™แž‘แŸ…แž‡แžถแž”แžŽแŸ’แžแžปแŸ† แž“แžทแž„แž€แžถแžšแžŸแž“แŸ’แž“แžทแžŠแŸ’แž‹แžถแž“ ResNet34)
    5. แž”แž„แŸ’แž แžถแž‰แžšแžผแž”แž—แžถแž–แž…แžปแž„แž€แŸ’แžšแŸ„แž™
      1. แž…แžผแžšแž™แžพแž„แž‚แžผแžšแž”แŸ’แžšแžขแž”แŸ‹แžŠแŸ‚แž›แž˜แžถแž“แž–แŸ’แžšแŸ†แžŠแŸ‚แž“
      2. แž‚แžผแžšแž€แžถแžšแžœแžถแž™แžแž˜แŸ’แž›แŸƒ
  2. แž€แžถแžšแž›แžปแž”แžšแžผแž”แž—แžถแž–แž•แŸ’แž‘แžถแž›แŸ‹แžแŸ’แž›แžฝแž“ (แžŠแžพแž˜)
  3. แž€แžถแžšแžšแž€แŸ’แžŸแžถแž‘แžปแž€แž‘แžทแž“แŸ’แž“แž•แž›แž–แžธแž”แŸ†แž–แž„แŸ‹แžœแžถแž™แžแž˜แŸ’แž›แŸƒ
  4. แž™แžพแž„แžŠแžถแž€แŸ‹แž—แžถแžšแž€แžทแž…แŸ’แž…แž“แŸ…แž€แŸ’แž“แžปแž„แž‡แžฝแžš "after_estimate" แžŠแŸ‚แž›แžแŸ’แžšแžผแžœแž”แžถแž“แžŸแŸ’แžแžถแž”แŸ‹แžŠแŸ„แž™ "attrai-telegram-bot" microservice แžŠแŸ‚แž›แž”แžถแž“แž–แžทแž—แžถแž€แŸ’แžŸแžถแžแžถแž„แž›แžพแŸ”

Graylog (+ mongoDB + Elasticsearch)

แž”แŸ’แžšแž•แŸแŸ‡ แž‚แžบแž‡แžถแžŠแŸ†แžŽแŸ„แŸ‡แžŸแŸ’แžšแžถแž™แžŸแž˜แŸ’แžšแžถแž”แŸ‹แž€แžถแžšแž‚แŸ’แžšแž”แŸ‹แž‚แŸ’แžšแž„แž€แŸ†แžŽแžแŸ‹แž แŸแžแžปแž€แžŽแŸ’แžแžถแž›แŸ” แž“แŸ…แž€แŸ’แž“แžปแž„แž‚แž˜แŸ’แžšแŸ„แž„แž“แŸแŸ‡ แžœแžถแžแŸ’แžšแžผแžœแž”แžถแž“แž”แŸ’แžšแžพแž”แŸ’แžšแžถแžŸแŸ‹แžŸแž˜แŸ’แžšแžถแž”แŸ‹แž‚แŸ„แž›แž”แŸ†แžŽแž„แžŠแŸ‚แž›แž”แžถแž“แž‚แŸ’แžšแŸ„แž„แž‘แžปแž€แŸ”

แž‡แž˜แŸ’แžšแžพแžŸโ€‹แž”แžถแž“โ€‹แž’แŸ’แž›แžถแž€แŸ‹โ€‹แž˜แž€โ€‹แž›แžพโ€‹แž‚แžถแžแŸ‹ แž แžพแž™โ€‹แž˜แžทแž“โ€‹แž˜แŸ‚แž“โ€‹แž›แžพโ€‹แž‡แž˜แŸ’แžšแžพแžŸโ€‹แž’แž˜แŸ’แž˜แžแžถโ€‹แž‘แŸแŸ” ELK stack แžŠแŸ„แž™แžŸแžถแžšแžแŸ‚แž—แžถแž–แž„แžถแž™แžŸแŸ’แžšแžฝแž›แž“แŸƒแž€แžถแžšแž’แŸ’แžœแžพแž€แžถแžšแž‡แžถแž˜แžฝแž™แžœแžถแž–แžธ Python แŸ” แžขแŸ’แžœแžธแžŠแŸ‚แž›แžขแŸ’แž“แž€แžแŸ’แžšแžผแžœแž’แŸ’แžœแžพแžŠแžพแž˜แŸ’แž”แžธแž…แžผแž› Graylog แž‚แžบแž”แž“แŸ’แžแŸ‚แž˜ GELFTCPHandler แž–แžธแž€แž‰แŸ’แž…แž”แŸ‹ แž”แŸ’แžšแž•แŸแŸ‡ แž‘แŸ…แž€แžถแž“แŸ‹แžขแŸ’แž“แž€แžŠแŸ„แŸ‡แžŸแŸ’แžšแžถแž™แž€แžถแžšแž€แžถแž”แŸ‹แžˆแžพแž‡แžถ root แžŠแŸ‚แž›แž“แŸ…แžŸแž›แŸ‹แž“แŸƒแžŸแŸแžœแžถแž€แž˜แŸ’แž˜แž˜แžธแž€แŸ’แžšแžผ python แžšแž”แžŸแŸ‹แž™แžพแž„แŸ”

แž€แŸ’แž“แžปแž„แž“แžถแž˜แž‡แžถแž˜แž“แžปแžŸแŸ’แžŸแž˜แŸ’แž“แžถแž€แŸ‹แžŠแŸ‚แž›แž’แŸ’แž›แžถแž”แŸ‹แž’แŸ’แžœแžพแž€แžถแžšแžแŸ‚แž‡แžถแž˜แžฝแž™ ELK stack แž–แžธแž˜แžปแž“แž˜แž€ แžแŸ’แž‰แžปแŸ†แž˜แžถแž“แž”แž‘แž–แžทแžŸแŸ„แž’แž“แŸแžœแžทแž‡แŸ’แž‡แž˜แžถแž“แž‡แžถแžšแžฝแž˜แž“แŸ…แž–แŸแž›แž’แŸ’แžœแžพแž€แžถแžšแž‡แžถแž˜แžฝแž™ Graylog แŸ” แžšแžฟแž„แžแŸ‚แž˜แžฝแž™แž‚แžแŸ‹แžŠแŸ‚แž›แž’แŸ’แžœแžพแžฑแŸ’แž™แž’แŸ’แž›แžถแž€แŸ‹แž‘แžนแž€แž…แžทแžแŸ’แžแž‚แžบแžงแžแŸ’แžแž˜แž—แžถแž–แž“แŸ…แž€แŸ’แž“แžปแž„แž›แž€แŸ’แžแžŽแŸˆแž–แžทแžŸแŸแžŸแžšแž”แžŸแŸ‹ Kibana แž›แžพแž…แŸ†แžŽแžปแž…แž”แŸ’แžšแž‘แžถแž€แŸ‹แž”แžŽแŸ’แžแžถแž‰ Graylog แŸ”

RabbitMQ

RabbitMQ แž‚แžบแž‡แžถแžˆแŸ’แž˜แžฝแž‰แž€แžŽแŸ’แžแžถแž›แžŸแžถแžšแžŠแŸ‚แž›แž˜แžถแž“แž˜แžผแž›แžŠแŸ’แž‹แžถแž“แž›แžพแž–แžทแž’แžธแž€แžถแžš AMQP แŸ”

แž“แŸ…แž€แŸ’แž“แžปแž„แž‚แž˜แŸ’แžšแŸ„แž„แž“แŸแŸ‡แžœแžถแžแŸ’แžšแžผแžœแž”แžถแž“แž‚แŸแž”แŸ’แžšแžพแž‡แžถ แžŸแŸ’แžแŸแžšแž—แžถแž–แž”แŸ†แž•แžปแžแž“แžทแž„แž–แŸแž›แžœแŸแž›แžถแžŸแžถแž€แž›แŸ’แž”แž„ แžˆแŸ’แž˜แžฝแž‰แž€แžŽแŸ’แžแžถแž›แžŸแž˜แŸ’แžšแžถแž”แŸ‹ Celery แž“แžทแž„แž’แŸ’แžœแžพแž€แžถแžšแž“แŸ…แž€แŸ’แž“แžปแž„แžšแž”แŸ€แž”แž”แŸ’แžšแžพแž”แŸ’แžšแžถแžŸแŸ‹แž”แžถแž“แž™แžผแžšแŸ”

Redis

Redis แž‚แžบแž‡แžถ NoSQL DBMS แžŠแŸ‚แž›แž’แŸ’แžœแžพแž€แžถแžšแž‡แžถแž˜แžฝแž™แžšแž…แž“แžถแžŸแž˜แŸ’แž–แŸแž“แŸ’แž’แž‘แžทแž“แŸ’แž“แž“แŸแž™แžแž˜แŸ’แž›แŸƒแž‚แž“แŸ’แž›แžนแŸ‡

แž‡แžฝแž“แž€แžถแž›แž˜แžถแž“แžแž˜แŸ’แžšแžผแžœแž€แžถแžšแž”แŸ’แžšแžพแž”แŸ’แžšแžถแžŸแŸ‹แžœแžแŸ’แžแžปแž‘แžผแž‘แŸ…แžŠแŸ‚แž›แžขแž“แžปแžœแžแŸ’แžแžšแž…แž“แžถแžŸแž˜แŸ’แž–แŸแž“แŸ’แž’แž‘แžทแž“แŸ’แž“แž“แŸแž™แž‡แžถแž€แŸ‹แž›แžถแž€แŸ‹แž“แŸ…แž€แŸ’แž“แžปแž„แž˜แžธแž€แŸ’แžšแžผแžŸแŸแžœแžถ Python แž•แŸ’แžŸแŸแž„แŸ—แž‚แŸ’แž“แžถแŸ”

แžงแž‘แžถแž แžšแžŽแŸ Redis แžšแž€แŸ’แžŸแžถแž‘แžปแž€ hashmap แž“แŸƒแž‘แž˜แŸ’แžšแž„แŸ‹ โ€œtelegram_user_id => แž…แŸ†แž“แžฝแž“แž“แŸƒแž€แžทแž…แŸ’แž…แž€แžถแžšแžŸแž€แž˜แŸ’แž˜แž“แŸ…แž€แŸ’แž“แžปแž„แž‡แžฝแžšโ€ แžŠแŸ‚แž›แžขแž“แžปแž‰แŸ’แž‰แžถแžแžฑแŸ’แž™แžขแŸ’แž“แž€แž€แŸ†แžŽแžแŸ‹แž…แŸ†แž“แžฝแž“แžŸแŸ†แžŽแžพแž–แžธแžขแŸ’แž“แž€แž”แŸ’แžšแžพแž”แŸ’แžšแžถแžŸแŸ‹แž˜แŸ’แž“แžถแž€แŸ‹แž‘แŸ…แžแž˜แŸ’แž›แŸƒแž‡แžถแž€แŸ‹แž›แžถแž€แŸ‹แž˜แžฝแž™ แž แžพแž™แžŠแŸ„แž™แž แŸแžแžปแž“แŸแŸ‡ แž€แžถแžšแž–แžถแžšแž€แžถแžšแžœแžถแž™แž”แŸ’แžšแž แžถแžš DoS แŸ”

แž…แžผแžšแž™แžพแž„แžšแŸ€แž”แž…แŸ†แžŠแŸ†แžŽแžพแžšแž€แžถแžšแž“แŸƒแžŠแŸ†แžŽแžพแžšแž€แžถแžšแžšแžผแž”แž—แžถแž–แžŠแŸ‚แž›แž‘แž‘แžฝแž›แž”แžถแž“แž‡แŸ„แž‚แž‡แŸแž™แž‡แžถแž•แŸ’แž›แžผแžœแž€แžถแžš

  1. แžขแŸ’แž“แž€แž”แŸ’แžšแžพแž”แŸ’แžšแžถแžŸแŸ‹แž•แŸ’แž‰แžพแžšแžผแž”แž—แžถแž–แž‘แŸ…แž€แžถแž“แŸ‹ Telegram bot
  2. "attrai-telegram-bot" แž‘แž‘แžฝแž›แžŸแžถแžšแž–แžธ Telegram API แž แžพแž™แž‰แŸ‚แž€แžœแžถแŸ”
  3. แž—แžถแžšแž€แžทแž…แŸ’แž…แžŠแŸ‚แž›แž˜แžถแž“แžšแžผแž”แž—แžถแž–แžแŸ’แžšแžผแžœแž”แžถแž“แž”แž“แŸ’แžแŸ‚แž˜แž‘แŸ…แž‡แžฝแžšแžขแžŸแž˜แž€แžถแž› "to_estimate"
  4. แžขแŸ’แž“แž€แž”แŸ’แžšแžพแž”แŸ’แžšแžถแžŸแŸ‹แž‘แž‘แžฝแž›แž”แžถแž“แžŸแžถแžšแž‡แžถแž˜แžฝแž™แž“แžนแž„แž–แŸแž›แžœแŸแž›แžถแžœแžถแž™แžแž˜แŸ’แž›แŸƒแžŠแŸ‚แž›แž”แžถแž“แž‚แŸ’แžšแŸ„แž„แž‘แžปแž€
  5. "attrai-estimator" แž™แž€แž—แžถแžšแž€แžทแž…แŸ’แž…แž–แžธแž‡แžฝแžš "to_estimate" แžŠแŸ†แžŽแžพแžšแž€แžถแžšแž€แžถแžšแž”แŸ‰แžถแž“แŸ‹แž”แŸ’แžšแž˜แžถแžŽแžแžถแž˜แžšแž™แŸˆแž”แŸ†แž–แž„แŸ‹แž”แž„แŸ’แž แžผแžšแž”แŸ’แžšแŸแž„ แž“แžทแž„แž•แž›แžทแžแž€แžทแž…แŸ’แž…แž€แžถแžšแž‘แŸ…แž€แŸ’แž“แžปแž„แž‡แžฝแžš "after_estimate"
  6. "attrai-telegram-bot" แžŸแŸ’แžแžถแž”แŸ‹แž‡แžฝแžš "after_estimate" แž•แŸ’แž‰แžพแž›แž‘แŸ’แž’แž•แž›แž‘แŸ…แžขแŸ’แž“แž€แž”แŸ’แžšแžพแž”แŸ’แžšแžถแžŸแŸ‹

DevOps

แž‡แžถแž…แžปแž„แž€แŸ’แžšแŸ„แž™ แž”แž“แŸ’แž‘แžถแž”แŸ‹แž–แžธแž–แžทแž“แžทแžแŸ’แž™แž˜แžพแž›แžŸแŸ’แžแžถแž”แžแŸ’แž™แž€แž˜แŸ’แž˜ แžขแŸ’แž“แž€แžขแžถแž…แž”แž“แŸ’แžแž‘แŸ…แž•แŸ’แž“แŸ‚แž€แž‚แžฝแžšแžฑแŸ’แž™แž…แžถแž”แŸ‹แžขแžถแžšแž˜แŸ’แž˜แžŽแŸแžŠแžผแž…แž‚แŸ’แž“แžถ - DevOps

Docker Swarm

 

แž‘แžทแžŠแŸ’แž‹แž—แžถแž–แž‘แžผแž‘แŸ…แž“แŸƒแžŸแŸ’แžแžถแž”แžแŸ’แž™แž€แž˜แŸ’แž˜แžŸแŸแžœแžถแž€แž˜แŸ’แž˜แžŸแž˜แŸ’แžšแžถแž”แŸ‹แž€แžถแžšแžœแžถแž™แžแž˜แŸ’แž›แŸƒแžšแžผแž”แžšแžถแž„แžŠแŸ„แž™แž•แŸ’แžขแŸ‚แž€แž›แžพแž”แžŽแŸ’แžแžถแž‰แžŸแžšแžŸแŸƒแž”แŸ’แžšแžŸแžถแž‘

Docker Swarm  - แž”แŸ’แžšแž–แŸแž“แŸ’แž’แž…แž„แŸ’แž€แŸ„แž˜ แž˜แžปแžแž„แžถแžšแžŠแŸ‚แž›แžแŸ’แžšแžผแžœแž”แžถแž“แžขแž“แžปแžœแžแŸ’แžแž“แŸ…แžแžถแž„แž€แŸ’แž“แžปแž„ Docker Engine แž แžพแž™แž˜แžถแž“แž“แŸ…แž€แŸ’แžšแŸ…แž”แŸ’แžšแžขแž”แŸ‹แŸ”

แžŠแŸ„แž™แž”แŸ’แžšแžพ "swarm" แžแŸ’แž“แžถแŸ†แž„แž‘แžถแŸ†แž„แžขแžŸแŸ‹แž“แŸ…แž€แŸ’แž“แžปแž„แž…แž„แŸ’แž€แŸ„แž˜แžšแž”แžŸแŸ‹แž™แžพแž„แžขแžถแž…แžแŸ’แžšแžผแžœแž”แžถแž“แž”แŸ‚แž„แž…แŸ‚แž€แž‡แžถ 2 แž”แŸ’แžšแž—แŸแž‘ - แž€แž˜แŸ’แž˜แž€แžš แž“แžทแž„แžขแŸ’แž“แž€แž‚แŸ’แžšแž”แŸ‹แž‚แŸ’แžšแž„แŸ” แž“แŸ…แž›แžพแž˜แŸ‰แžถแžŸแŸŠแžธแž“แž”แŸ’แžšแž—แŸแž‘แž‘แžธแž˜แžฝแž™ แž€แŸ’แžšแžปแž˜แž€แžปแž„แžแžบแž“แŸแžš (แž‡แž„แŸ‹) แžแŸ’แžšแžผแžœแž”แžถแž“แžŠแžถแž€แŸ‹แž–แž„แŸ’แžšแžถแž™ แž˜แŸ‰แžถแžŸแŸŠแžธแž“แž“แŸƒแž”แŸ’แžšแž—แŸแž‘แž‘แžธแž–แžธแžš แž‘แž‘แžฝแž›แžแžปแžŸแžแŸ’แžšแžผแžœแž…แŸ†แž–แŸ„แŸ‡แž€แžถแžšแž’แŸ’แžœแžพแž˜แžถแžแŸ’แžšแžŠแŸ’แž‹แžถแž“ แžแžปแž›แŸ’แž™แž—แžถแž– แž“แžทแž„ แž›แž€แŸ’แžแžŽแŸˆแž–แžทแžŸแŸแžŸแžแŸ’แžšแž‡แžถแž€แŸ‹แž•แŸ’แžŸแŸแž„แž‘แŸ€แžแŸ”. แžขแŸ’แž“แž€แž‚แŸ’แžšแž”แŸ‹แž‚แŸ’แžšแž„แž€แŸแž‡แžถแž€แž˜แŸ’แž˜แž€แžšแžแžถแž˜แž›แŸ†แž“แžถแŸ†แžŠแžพแž˜แž•แž„แžŠแŸ‚แžšแŸ”

แž‘แžทแžŠแŸ’แž‹แž—แžถแž–แž‘แžผแž‘แŸ…แž“แŸƒแžŸแŸ’แžแžถแž”แžแŸ’แž™แž€แž˜แŸ’แž˜แžŸแŸแžœแžถแž€แž˜แŸ’แž˜แžŸแž˜แŸ’แžšแžถแž”แŸ‹แž€แžถแžšแžœแžถแž™แžแž˜แŸ’แž›แŸƒแžšแžผแž”แžšแžถแž„แžŠแŸ„แž™แž•แŸ’แžขแŸ‚แž€แž›แžพแž”แžŽแŸ’แžแžถแž‰แžŸแžšแžŸแŸƒแž”แŸ’แžšแžŸแžถแž‘

แž…แž„แŸ’แž€แŸ„แž˜โ€‹แžŠแŸ‚แž›โ€‹แž˜แžถแž“โ€‹แžขแŸ’แž“แž€โ€‹แž‚แŸ’แžšแž”แŸ‹โ€‹แž‚แŸ’แžšแž„โ€‹แžแŸ’แž“แžถแž€แŸ‹โ€‹แžŠแžนแž€โ€‹แž“แžถแŸ†โ€‹แž˜แŸ’แž“แžถแž€แŸ‹ แž“แžทแž„โ€‹แž€แž˜แŸ’แž˜แž€แžšโ€‹แž”แžธโ€‹แž“แžถแž€แŸ‹แŸ”

แž‘แŸ†แž แŸ†แž…แž„แŸ’แž€แŸ„แž˜แžขแž”แŸ’แž”แž”แžšแž˜แžถแžŠแŸ‚แž›แžขแžถแž…แž’แŸ’แžœแžพแž”แžถแž“แž‚แžบ 1 แžแŸ’แž“แžถแŸ†แž„ แž˜แŸ‰แžถแžŸแŸŠแžธแž“แžแŸ‚แž˜แžฝแž™แž“แžนแž„แžŠแžพแžšแžแžฝแž‡แžถแžขแŸ’แž“แž€แž‚แŸ’แžšแž”แŸ‹แž‚แŸ’แžšแž„ แž“แžทแž„แž€แž˜แŸ’แž˜แž€แžšแž€แŸ’แž“แžปแž„แž–แŸแž›แžŠแŸ†แžŽแžถแž›แž‚แŸ’แž“แžถแŸ” แžŠแŸ„แž™แž•แŸ’แžขแŸ‚แž€แž›แžพแž‘แŸ†แž แŸ†แž“แŸƒแž‚แž˜แŸ’แžšแŸ„แž„แž“แžทแž„แžแž˜แŸ’แžšแžผแžœแž€แžถแžšแžขแž”แŸ’แž”แž”แžšแž˜แžถแžŸแž˜แŸ’แžšแžถแž”แŸ‹แž€แžถแžšแžขแžแŸ‹แžฑแž“แž€แŸ†แž แžปแžŸแžœแžถแžแŸ’แžšแžผแžœแž”แžถแž“แžŸแž˜แŸ’แžšแŸแž…แž…แžทแžแŸ’แžแž”แŸ’แžšแžพแžœแžทแž’แžธแžŸแžถแžŸแŸ’แžšแŸ’แžแž“แŸแŸ‡แŸ”

แžŸแž˜แŸ’แž›แžนแž„แž‘แŸ…แž˜แžปแž แžแŸ’แž‰แžปแŸ†แž“แžนแž„แž“แžทแž™แžถแž™แžแžถ แž…แžถแž”แŸ‹แžแžถแŸ†แž„แž–แžธแž€แžถแžšแž…แŸ‚แž€แž…แžถแž™แž•แž›แžทแžแž€แž˜แŸ’แž˜แž›แžพแž€แžŠแŸ†แž”แžผแž„ แžŠแŸ‚แž›แž’แŸ’แžœแžพแžกแžพแž„แž“แŸ…แž–แžถแž€แŸ‹แž€แžŽแŸ’แžแžถแž›แžแŸ‚แž˜แžทแžแžปแž“แžถ แž˜แžทแž“แž˜แžถแž“แž”แž‰แŸ’แž แžถแž‘แžถแž€แŸ‹แž‘แž„แž“แžนแž„แžขแž„แŸ’แž‚แž€แžถแžšแž…แž„แŸ’แž€แŸ„แž˜แž“แŸแŸ‡แž‘แŸ (แž”แŸ‰แžปแž“แŸ’แžแŸ‚แž“แŸแŸ‡แž˜แžทแž“แž˜แŸ‚แž“แž˜แžถแž“แž“แŸแž™แžแžถ แžขแž„แŸ’แž‚แž€แžถแžšแž”แŸ‚แž”แž“แŸแŸ‡แžขแžถแž…แž‘แž‘แžฝแž›แž™แž€แž”แžถแž“แž€แŸ’แž“แžปแž„แž€แž˜แŸ’แžšแžทแžแž˜แž’แŸ’แž™แž˜แžŽแžถแž˜แžฝแž™แž“แŸ„แŸ‡แž‘แŸแŸ” แž‚แž˜แŸ’แžšแŸ„แž„โ€‹แžŠแŸ‚แž›โ€‹แž‡แžถโ€‹แž€แž˜แŸ’แž˜แžœแžแŸ’แžแžปโ€‹แžแž˜แŸ’แžšแžผแžœโ€‹แž€แžถแžšโ€‹แžขแžแŸ‹โ€‹แžฑแž“โ€‹แž€แŸ†แž แžปแžŸโ€‹) แŸ”

แž‡แž„แŸ‹ Docker

แž“แŸ…แž€แŸ’แž“แžปแž„แžšแž”แŸ€แž” swarm แž‚แžถแžแŸ‹แž‘แž‘แžฝแž›แžแžปแžŸแžแŸ’แžšแžผแžœแž›แžพแž€แžถแžšแžŠแžถแž€แŸ‹แž–แž„แŸ’แžšแžถแž™ stacks (แžŸแŸ†แžŽแžปแŸ†แž“แŸƒแžŸแŸแžœแžถแž€แž˜แŸ’แž˜ docker) แž‡แž„แŸ‹ docker

แžœแžถแž‚แžถแŸ†แž‘แŸ’แžšแž€แžถแžšแž€แŸ†แžŽแžแŸ‹แžšแž…แž“แžถแžŸแž˜แŸ’แž–แŸแž“แŸ’แž’ docker-compose แžŠแŸ‚แž›แžขแž“แžปแž‰แŸ’แž‰แžถแžแžฑแŸ’แž™แžขแŸ’แž“แž€แž”แž“แŸ’แžแŸ‚แž˜แž”แŸ‰แžถแžšแŸ‰แžถแž˜แŸ‰แŸ‚แžแŸ’แžšแžŠแžถแž€แŸ‹แž–แž„แŸ’แžšแžถแž™แŸ”  

แžงแž‘แžถแž แžšแžŽแŸ แžŠแŸ„แž™แž”แŸ’แžšแžพแž”แŸ‰แžถแžšแŸ‰แžถแž˜แŸ‰แŸ‚แžแŸ’แžšแž‘แžถแŸ†แž„แž“แŸแŸ‡ แž’แž“แž’แžถแž“แžŸแž˜แŸ’แžšแžถแž”แŸ‹แž€แžšแžŽแžธ microservice แžœแžถแž™แžแž˜แŸ’แž›แŸƒแž“แžธแž˜แžฝแž™แŸ—แžแŸ’แžšแžผแžœแž”แžถแž“แž€แŸ†แžŽแžแŸ‹ (แž™แžพแž„แž”แŸ‚แž„แž…แŸ‚แž€ N cores แžŸแž˜แŸ’แžšแžถแž”แŸ‹ N instances แž“แŸ…แž€แŸ’แž“แžปแž„ microservice แž™แžพแž„แž€แŸ†แžŽแžแŸ‹แž…แŸ†แž“แžฝแž“แžŸแŸ’แž“แžผแž›แžŠแŸ‚แž›แž”แŸ’แžšแžพแžŠแŸ„แž™ PyTorch แž‘แŸ…แž˜แžฝแž™)

attrai_estimator:
  image: 'erqups/attrai_estimator:1.2'
  deploy:
    replicas: 4
    resources:
      limits:
        cpus: '4'
    restart_policy:
      condition: on-failure
      โ€ฆ

แžœแžถแž‡แžถแž€แžถแžšแžŸแŸ†แžแžถแž“แŸ‹แž€แŸ’แž“แžปแž„แž€แžถแžšแž€แžแŸ‹แžŸแž˜แŸ’แž‚แžถแž›แŸ‹แžแžถ Redis, RabbitMQ แž“แžทแž„ Graylog แž‚แžบแž‡แžถแžŸแŸแžœแžถแž€แž˜แŸ’แž˜แžŠแŸ‚แž›แž˜แžถแž“แž›แž€แŸ’แžแžŽแŸˆแžšแžŠแŸ’แž‹ แž แžพแž™แž–แžฝแž€แž‚แŸแž˜แžทแž“แžขแžถแž…แž’แŸ’แžœแžพแž˜แžถแžแŸ’แžšแžŠแŸ’แž‹แžถแž“แž”แžถแž“แž™แŸ‰แžถแž„แž„แžถแž™แžŸแŸ’แžšแžฝแž›แžŠแžผแž… "attrai-estimator" แž“แŸ„แŸ‡แž‘แŸแŸ”

แž‘แžถแž™แžŸแŸ†แžŽแžฝแžš - แž แŸแžแžปแžขแŸ’แžœแžธแž˜แžทแž“ Kubernetes?

แžœแžถแž แžถแž€แŸ‹แž”แžธแžŠแžผแž…แž‡แžถแž€แžถแžšแž”แŸ’แžšแžพแž”แŸ’แžšแžถแžŸแŸ‹ Kubernetes แž“แŸ…แž€แŸ’แž“แžปแž„แž‚แž˜แŸ’แžšแŸ„แž„แžแŸ’แž“แžถแžแžแžผแž… แž“แžทแž„แž˜แž’แŸ’แž™แž˜แž‚แžบแž‡แžถแž€แžถแžšแž…แŸ†แžŽแžถแž™แž›แžพแžŸแž˜แžฝแž™ แž˜แžปแžแž„แžถแžšแž…แžถแŸ†แž”แžถแž…แŸ‹แž‘แžถแŸ†แž„แžขแžŸแŸ‹แžขแžถแž…แž‘แž‘แžฝแž›แž”แžถแž“แž–แžธ Docker Swarm แžŠแŸ‚แž›แž„แžถแž™แžŸแŸ’แžšแžฝแž›แž”แŸ’แžšแžพแžŸแž˜แŸ’แžšแžถแž”แŸ‹แžขแŸ’แž“แž€แžœแž„แŸ‹แž—แŸ’แž›แŸแž„แž€แžปแž„แžแžบแž“แŸแžš แž แžพแž™แž€แŸแž˜แžถแž“แžงแž”แžŸแž‚แŸ’แž‚แž‘แžถแž”แž€แŸ’แž“แžปแž„แž€แžถแžšแž…แžผแž›แž•แž„แžŠแŸ‚แžšแŸ”

แž แŸแžŠแŸ’แž‹แžถแžšแž…แž“แžถแžŸแž˜แŸ’แž–แŸแž“แŸ’แž’

แž‘แžถแŸ†แž„แžขแžŸแŸ‹แž“แŸแŸ‡แžแŸ’แžšแžผแžœแž”แžถแž“แžŠแžถแž€แŸ‹แž–แž„แŸ’แžšแžถแž™แž“แŸ…แž›แžพ VDS แžŠแŸ‚แž›แž˜แžถแž“แž›แž€แŸ’แžแžŽแŸˆแžŠแžผแž…แžแžถแž„แž€แŸ’แžšแŸ„แž˜แŸˆ

  • แžŸแŸŠแžธแž—แžธแž™แžผแŸ– แžŸแŸŠแžธแž—แžธแž™แžผ Intelยฎ Xeonยฎ Gold 4 แž…แŸ†แž“แžฝแž“ 5120 แžŸแŸ’แž“แžผแž› @ 2.20GHz
  • แžขแž„แŸ’แž‚แž…แž„แž…แžถแŸ†: 8 GB
  • SSDแŸ– แŸกแŸขแŸจ แž‡แžธแž€แžถแž”แŸƒ

แž”แž“แŸ’แž‘แžถแž”แŸ‹แž–แžธแž€แžถแžšแž’แŸ’แžœแžพแžแŸแžŸแŸ’แžแž•แŸ’แž‘แžปแž€แž€แŸ’แž“แžปแž„แžŸแŸ’แžšแžปแž€ แžœแžถแž แžถแž€แŸ‹แžŠแžผแž…แž‡แžถแžแžถแž‡แžถแž˜แžฝแž™แž“แžนแž„แž€แžถแžšแž แžผแžšแž…แžผแž›แž™แŸ‰แžถแž„แž’แŸ’แž„แž“แŸ‹แž’แŸ’แž„แžšแž“แŸƒแžขแŸ’แž“แž€แž”แŸ’แžšแžพแž”แŸ’แžšแžถแžŸแŸ‹แž˜แŸ‰แžถแžŸแŸŠแžธแž“แž“แŸแŸ‡แž“แžนแž„แž‚แŸ’แžšแž”แŸ‹แž‚แŸ’แžšแžถแž“แŸ‹แž แžพแž™แŸ”

แž”แŸ‰แžปแž“แŸ’แžแŸ‚แž—แŸ’แž›แžถแž˜แŸ—แž”แž“แŸ’แž‘แžถแž”แŸ‹แž–แžธแž€แžถแžšแžŠแžถแž€แŸ‹แžฑแŸ’แž™แž”แŸ’แžšแžพแž”แŸ’แžšแžถแžŸแŸ‹ แžแŸ’แž‰แžปแŸ†แž”แžถแž“แž”แž„แŸ’แž แŸ„แŸ‡แžแŸ†แžŽแž—แŸ’แž‡แžถแž”แŸ‹แž‘แŸ…แž€แžถแž“แŸ‹แž•แŸ’แž‘แžถแŸ†แž„แžšแžผแž”แž—แžถแž–แžŠแŸแž–แŸแž‰แž“แžทแž™แž˜แž”แŸ†แž•แžปแžแž˜แžฝแž™แž“แŸ…แž€แŸ’แž“แžปแž„ CIS (แž”แžถแž‘ แž“แŸ„แŸ‡แžŠแžผแž…แž‚แŸ’แž“แžถ) แž”แž“แŸ’แž‘แžถแž”แŸ‹แž–แžธแž“แŸ„แŸ‡แž˜แž“แžปแžŸแŸ’แžŸแž…แžถแž”แŸ‹แžขแžถแžšแž˜แŸ’แž˜แžŽแŸ แž แžพแž™แž€แŸ’แž“แžปแž„แžšแž™แŸˆแž–แŸแž›แž–แžธแžšแž”แžธแž˜แŸ‰แŸ„แž„ แžŸแŸแžœแžถแž€แž˜แŸ’แž˜แž”แžถแž“แžŠแŸ†แžŽแžพแžšแž€แžถแžšแžšแžผแž”แž—แžถแž–แžšแžถแž”แŸ‹แž˜แŸ‰แžบแž“แžšแžผแž”แž—แžถแž–แžŠแŸ„แž™แž‡แŸ„แž‚แž‡แŸแž™แŸ” แž€แŸ’แž“แžปแž„แž–แŸแž›แž‡แžถแž˜แžฝแž™แž‚แŸ’แž“แžถแž“แŸแŸ‡ แž“แŸ…แž‚แŸ’แžšแžถแž€แŸ†แž–แžผแž› แž’แž“แž’แžถแž“ CPU แž“แžทแž„ RAM แž˜แžทแž“แžแŸ’แžšแžผแžœแž”แžถแž“แž‚แŸแž”แŸ’แžšแžพแž”แŸ’แžšแžถแžŸแŸ‹แžŸแžผแž˜แŸ’แž”แžธแžแŸ‚แž–แžถแž€แŸ‹แž€แžŽแŸ’แžแžถแž›แŸ”

แž‘แžทแžŠแŸ’แž‹แž—แžถแž–แž‘แžผแž‘แŸ…แž“แŸƒแžŸแŸ’แžแžถแž”แžแŸ’แž™แž€แž˜แŸ’แž˜แžŸแŸแžœแžถแž€แž˜แŸ’แž˜แžŸแž˜แŸ’แžšแžถแž”แŸ‹แž€แžถแžšแžœแžถแž™แžแž˜แŸ’แž›แŸƒแžšแžผแž”แžšแžถแž„แžŠแŸ„แž™แž•แŸ’แžขแŸ‚แž€แž›แžพแž”แžŽแŸ’แžแžถแž‰แžŸแžšแžŸแŸƒแž”แŸ’แžšแžŸแžถแž‘
แž‘แžทแžŠแŸ’แž‹แž—แžถแž–แž‘แžผแž‘แŸ…แž“แŸƒแžŸแŸ’แžแžถแž”แžแŸ’แž™แž€แž˜แŸ’แž˜แžŸแŸแžœแžถแž€แž˜แŸ’แž˜แžŸแž˜แŸ’แžšแžถแž”แŸ‹แž€แžถแžšแžœแžถแž™แžแž˜แŸ’แž›แŸƒแžšแžผแž”แžšแžถแž„แžŠแŸ„แž™แž•แŸ’แžขแŸ‚แž€แž›แžพแž”แžŽแŸ’แžแžถแž‰แžŸแžšแžŸแŸƒแž”แŸ’แžšแžŸแžถแž‘

แž€แŸ’แžšแžถแž แŸ’แžœแžทแž€แž˜แžฝแž™แž…แŸ†แž“แžฝแž“แž‘แŸ€แžแŸ”

แž…แŸ†แž“แžฝแž“แžขแŸ’แž“แž€แž”แŸ’แžšแžพแž”แŸ’แžšแžถแžŸแŸ‹แž–แžทแžŸแŸแžŸ แž“แžทแž„แžŸแŸ†แžŽแžพแžœแžถแž™แžแž˜แŸ’แž›แŸƒแž…แžถแž”แŸ‹แžแžถแŸ†แž„แž–แžธแž€แžถแžšแžŠแžถแž€แŸ‹แžฑแŸ’แž™แž”แŸ’แžšแžพแž”แŸ’แžšแžถแžŸแŸ‹ แžขแžถแžŸแŸ’แžšแŸแž™แž›แžพแžแŸ’แž„แŸƒ

แž‘แžทแžŠแŸ’แž‹แž—แžถแž–แž‘แžผแž‘แŸ…แž“แŸƒแžŸแŸ’แžแžถแž”แžแŸ’แž™แž€แž˜แŸ’แž˜แžŸแŸแžœแžถแž€แž˜แŸ’แž˜แžŸแž˜แŸ’แžšแžถแž”แŸ‹แž€แžถแžšแžœแžถแž™แžแž˜แŸ’แž›แŸƒแžšแžผแž”แžšแžถแž„แžŠแŸ„แž™แž•แŸ’แžขแŸ‚แž€แž›แžพแž”แžŽแŸ’แžแžถแž‰แžŸแžšแžŸแŸƒแž”แŸ’แžšแžŸแžถแž‘

แž€แžถแžšแž…แŸ‚แž€แž…แžถแž™แž–แŸแž›แžœแŸแž›แžถแž€แžถแžšแžŸแž“แŸ’แž“แžทแžŠแŸ’แž‹แžถแž“แž“แŸƒแž”แŸ†แž–แž„แŸ‹แžœแžถแž™แžแž˜แŸ’แž›แŸƒ

แž‘แžทแžŠแŸ’แž‹แž—แžถแž–แž‘แžผแž‘แŸ…แž“แŸƒแžŸแŸ’แžแžถแž”แžแŸ’แž™แž€แž˜แŸ’แž˜แžŸแŸแžœแžถแž€แž˜แŸ’แž˜แžŸแž˜แŸ’แžšแžถแž”แŸ‹แž€แžถแžšแžœแžถแž™แžแž˜แŸ’แž›แŸƒแžšแžผแž”แžšแžถแž„แžŠแŸ„แž™แž•แŸ’แžขแŸ‚แž€แž›แžพแž”แžŽแŸ’แžแžถแž‰แžŸแžšแžŸแŸƒแž”แŸ’แžšแžŸแžถแž‘

แž€แžถแžšแžšแž€แžƒแžพแž‰

แžŠแžพแž˜แŸ’แž”แžธแžŸแž„แŸ’แžแŸแž” แžแŸ’แž‰แžปแŸ†แžขแžถแž…แž“แžทแž™แžถแž™แž”แžถแž“แžแžถ แžŸแŸ’แžแžถแž”แžแŸ’แž™แž€แž˜แŸ’แž˜ แž“แžทแž„แžœแžทแž’แžธแžŸแžถแžŸแŸ’แžšแŸ’แžแž“แŸƒแž€แžถแžšแžšแŸ€แž”แž…แŸ†แž€แžปแž„แžแžบแž“แŸแžšแž”แžถแž“แžšแžถแž”แŸ‹แž‡แžถแžŸแžปแž…แžšแžทแžแž‘แžถแŸ†แž„แžŸแŸ’แžšแžปแž„แž…แŸ†แž–แŸ„แŸ‡แžแŸ’แž›แžฝแž“แž–แžฝแž€แž‚แŸ - แžŸแžผแž˜แŸ’แž”แžธแžแŸ‚แž“แŸ…แžŠแŸ†แžŽแžถแž€แŸ‹แž€แžถแž›แž€แŸ†แž–แžผแž›แž€แŸแž˜แžทแž“แž˜แžถแž“แž€แžถแžšแž’แŸ’แž›แžถแž€แŸ‹แž…แžปแŸ‡ แžฌแžแž™แž…แžปแŸ‡แž“แŸ…แž€แŸ’แž“แžปแž„แž–แŸแž›แžœแŸแž›แžถแžŠแŸ†แžŽแžพแžšแž€แžถแžšแžŠแŸ‚แžšแŸ” 

แžแŸ’แž‰แžปแŸ†แž‚แžทแžแžแžถแž‚แž˜แŸ’แžšแŸ„แž„แžแŸ’แž“แžถแžแžแžผแž… แž“แžทแž„แž˜แž’แŸ’แž™แž˜แžŠแŸ‚แž›แž”แŸ’แžšแžพแž€แžถแžšแžŸแž“แŸ’แž“แžทแžŠแŸ’แž‹แžถแž“แžแžถแž˜แž–แŸแž›แžœแŸแž›แžถแž‡แžถแž€แŸ‹แžŸแŸ’แžแŸ‚แž„แž“แŸƒแž”แžŽแŸ’แžแžถแž‰แžŸแžšแžŸแŸƒแž”แŸ’แžšแžŸแžถแž‘แž“แŸ…แž›แžพ CPU แž€แŸ’แž“แžปแž„แžŠแŸ†แžŽแžพแžšแž€แžถแžšแžšแž”แžŸแŸ‹แž–แžฝแž€แž‚แŸแžขแžถแž…แž‘แž‘แžฝแž›แž™แž€แž€แžถแžšแžขแž“แžปแžœแžแŸ’แžแžŠแŸ‚แž›แž”แžถแž“แž–แžทแž–แžŽแŸŒแž“แžถแž“แŸ…แž€แŸ’แž“แžปแž„แžขแžแŸ’แžแž”แž‘แž“แŸแŸ‡แžŠแŸ„แž™แž‡แŸ„แž‚แž‡แŸแž™แŸ”

แžแŸ’แž‰แžปแŸ†แž“แžนแž„แž”แž“แŸ’แžแŸ‚แž˜แžแžถแžŠแŸ†แž”แžผแž„แžขแžแŸ’แžแž”แž‘แž‚แžบแžœแŸ‚แž„แž‡แžถแž„ แž”แŸ‰แžปแž“แŸ’แžแŸ‚แžŠแžพแž˜แŸ’แž”แžธแž˜แžทแž“แž”แž„แŸ’แž แŸ„แŸ‡แž€แžถแžšแžขแžถแž“แžœแŸ‚แž„แž†แŸ’แž„แžถแž™ แžแŸ’แž‰แžปแŸ†แž”แžถแž“แžŸแž˜แŸ’แžšแŸแž…แž…แžทแžแŸ’แžแž›แžปแž”แž…แŸ„แž›แž…แŸ†แžŽแžปแž…แž˜แžฝแž™แž…แŸ†แž“แžฝแž“แž“แŸ…แž€แŸ’แž“แžปแž„แžขแžแŸ’แžแž”แž‘แž“แŸแŸ‡ - แž™แžพแž„แž“แžนแž„แžแŸ’แžšแž›แž”แŸ‹แž‘แŸ…แž–แžฝแž€แž‚แŸแžœแžทแž‰แž“แŸ…แž€แŸ’แž“แžปแž„แž€แžถแžšแž”แŸ„แŸ‡แž–แžปแž˜แŸ’แž–แž“แžถแž–แŸแž›แžขแž“แžถแž‚แžแŸ”

แžขแŸ’แž“แž€แžขแžถแž…แž…แžถแž€แŸ‹ bot แž“แŸ…แž›แžพ Telegram - @AttraiBot แžœแžถแž“แžนแž„แžŠแŸ†แžŽแžพแžšแž€แžถแžšแž™แŸ‰แžถแž„แž แŸ„แž…แžŽแžถแžŸแŸ‹แžšแž แžผแžแžŠแž›แŸ‹แž…แžปแž„แžšแžŠแžผแžœแžŸแŸ’แž›แžนแž€แžˆแžพแž‡แŸ’แžšแžปแŸ‡แž†แŸ’แž“แžถแŸ† 2020แŸ” แžแŸ’แž‰แžปแŸ†แžŸแžผแž˜แžšแŸ†แž›แžนแž€แžขแŸ’แž“แž€แžแžถ แž‚แŸ’แž˜แžถแž“แž‘แžทแž“แŸ’แž“แž“แŸแž™แžขแŸ’แž“แž€แž”แŸ’แžšแžพแž”แŸ’แžšแžถแžŸแŸ‹แžแŸ’แžšแžผแžœแž”แžถแž“แžšแž€แŸ’แžŸแžถแž‘แžปแž€แž‘แŸ - แž‘แžถแŸ†แž„แžšแžผแž”แž—แžถแž–แžŠแžพแž˜ แžฌแž›แž‘แŸ’แž’แž•แž›แž“แŸƒแž”แŸ†แž–แž„แŸ‹แž”แž„แŸ’แž แžผแžšแž€แžถแžšแžœแžถแž™แžแž˜แŸ’แž›แŸƒ - แžขแŸ’แžœแžธแž‚แŸ’แžšแž”แŸ‹แž™แŸ‰แžถแž„แžแŸ’แžšแžผแžœแž”แžถแž“แž”แŸ†แž•แŸ’แž›แžถแž‰แž”แž“แŸ’แž‘แžถแž”แŸ‹แž–แžธแžŠแŸ†แžŽแžพแžšแž€แžถแžšแŸ”

แž”แŸ’แžšแž—แž–: www.habr.com

แž”แž“แŸ’แžแŸ‚แž˜แž˜แžแžทแž™แŸ„แž”แž›แŸ‹