介绍
你好!
在本文中,我将分享我使用神经网络为项目构建微服务架构的经验。
让我们讨论架构需求,查看各种结构图,分析完成架构的每个组件,并评估解决方案的技术指标。
享受阅读!
关于问题及其解决方案的几句话
– .
, , . , , .
, .
, :
MTCNN. PyTorch, backbone ResNet34 – « / CPU»
ML , , .
ML
– -, . :
- – ,
- — Bottleneck
- - —
- () ,
- , ,
, .
, , Telegram API.
, , .
, Single Responsibility .
«attrai-telegram-bot»
Telegram API. 2 – . .
:
- , :
- ,
- docker volume
- “to_estimate” , , , , volume
- – , . – , .
, , celery worker, «after_estimate», , .
“after_estimate”:
- – , –
- ,
«attrai-estimator»
celery worker , . – .
“to_estimate”:
- :
- (MTCNN)
- ( ResNet34)
-
- bounding boxes
- ()
- “after_estimate”, “attrai-telegram-bot”
Graylog (+ mongoDB + Elasticsearch)
Graylog — . , .
, ELK , Python. , Graylog, GELFTCPHandler graypy root logger handlers python-.
, , ELK , , Graylog. , – Kibana - Graylog.
RabbitMQ
RabbitMQ — AMQP.
Redis
Redis — NoSQL , « — »
python- , - .
, Redis hashmap «telegram_user_id => », , , DoS-.
- Telegram
- «attrai-telegram-bot» Telegram API
- «to_estimate»
- «attrai-estimator» «to_estimate», «after_estimate»
- «attrai-telegram-bot», «after_estimate»,
DevOps
, , — DevOps
Docker Swarm
Docker Swarm - , Docker Engine .
«», 2 – worker manager. (), , . .
leader manager worker
– 1 , leader manager worker. , .
, , production-, , , , ( , - - , ).
Docker Stack
«» ( docker services) docker stack
docker-compose , deploy .
, ( N N , - , PyTorch`, )
attrai_estimator:
image: 'erqups/attrai_estimator:1.2'
deploy:
replicas: 4
resources:
limits:
cpus: '4'
restart_policy:
condition: on-failure
…
, Redis, RabbitMQ Graylog — stateful , «attrai-estimator»,
— Kubernetes?
, Kubernetes – , Docker Swarm, user friendly , .
VDS :
- CPU: 4 Intel® Xeon® Gold 5120 CPU @ 2.20GHz
- RAM: 8 GB
- SSD: 160 GB
, , , .
, , (, ), . CPU RAM .
, ,
, , — .
, , CPU, , .
我会补充说,最初文章较大,但是为了不发表冗长的文章,我决定忽略本文中的某些要点-我们将在以后的出版物中再次讨论。
您可以在Telegram中戳机器人-@AttraiBot,它至少可以运行到2020年秋季。让我提醒您-没有存储任何用户数据-原始图像或评估管道的结果-处理后所有东西都将被拆除。