基于神经网络的外观评估服务体系结构的概述



介绍



你好!



在本文中,我将分享我使用神经网络为项目构建微服务架构的经验。



让我们讨论架构需求,查看各种结构图,分析完成架构的每个组件,并评估解决方案的技术指标。



享受阅读!



关于问题及其解决方案的几句话



– .



, , . , , .



, . 



, :





MTCNN. PyTorch, backbone ResNet34 – « / CPU»









ML , , .





ML



– -, . :



  1. – ,
  2. — Bottleneck
  3. - —
  4. () ,
  5. , ,




, .



, , Telegram API.



, , .







, Single Responsibility .



«attrai-telegram-bot»



Telegram API. 2 – . .



:



  1. , :

    • ,
  2. docker volume
  3. “to_estimate” , , , , volume
  4. – , . – , .


, , celery worker, «after_estimate», , .



“after_estimate”:



  1. – , –
  2. ,


«attrai-estimator»



celery worker , . – .



“to_estimate”:



  1. :

    1. (MTCNN)
    2. ( ResNet34)


      1. bounding boxes
  2. ()
  3. “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.



Celery durable .



Redis



Redis — NoSQL , « — »



python- , - .



, Redis hashmap «telegram_user_id => », , , DoS-.





  1. Telegram
  2. «attrai-telegram-bot» Telegram API
  3. «to_estimate»
  4. «attrai-estimator» «to_estimate», «after_estimate»
  5. «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年秋季。让我提醒您-没有存储任何用户数据-原始图像或评估管道的结果-处理后所有东西都将被拆除。




All Articles