构建可运维的Node.js应用-薛青孝

介绍了什么是可运维?通过监控对故障进行排除以及重新部署
展开查看详情

1.构建可运维的 Node.js 应⽤用 2018-11-23

2. 薛⻘青孝 • 2017 - 前端技术专家 @vipJr

3.什什么是可运维?

4. 可运维 ? • 监控 • 性能和扩展 • 故障排除 • 可管理理 • 可恢复 • 部署 • …

5. 监控 通⽤用指标 应⽤用指标

6. 监控 - 通⽤用指标 • 硬盘I/O • CPU • ⽹网络带宽 • 内存 •…

7. 监控 - Node.js App 的指标 • V8 - Heap • HTTP Latency / Throughput - Inbound & Outbound • Event Loop Latency • Websocket • DB • …

8. 故障排除 ⽇日志收集 链路路追踪 错误上报

9. 可恢复 热备 重启

10.过去的情况是什什么?

11. 部署 files STAGING commit hooks PRODUCTON files

12.部署存在的问题 回滚 ⽔水平扩展

13. 监控 CPU Usage Memory Usage Network I/O Disk I/O VM influxDB Grafana

14. 监控存在的问题 容器器监控 Node.js 监控 链路路监控

15.业界有哪些⽅方案?

16. 容器器监控 cAdvisor Telegraf

17. Node.js 监控 PM2 Pandora.js ElasticAPM

18.为什什么不不选择现有⽅方案?

19. 功能重复 pm2 pm2 Docker telegraf pandora.js pandora.js Process Management Duplicate Metrics

20.无法与现有系统集成!

21. 链路路监控 Zipkin Jaeger Telegraf

22. 时序数据库 Prometheus Graphite InfluxDB

23. Dashboard Grafana Chronograf

24.我们应该怎么办?

25.DevOps Overview PLAN MONITOR CODE OPERATE TEST DEPLOY BUILD RELEASE

26. 部署 deploy STAGING commit pull hooks push pull deploy PRODUCTON

27. ⽇日志 Log4js Logstash Elastic Search Kibana Filebeats

28. 错误上报及定位 Upload Sentry CLI dashboard js soucemap CI Sentry view Server App Caught E-mail / IM Exception Developer Report Sentry Client

29. 监控 Metrics Agent Time series database Dashboard Host influxDB chronograf Telegraf Container collecting Prometheus Tracing reporting Node.js? Graphite 200+ plugins grafana