简体   繁体   English

微服务架构监控

[英]Microservice Architecture Monitoring

My company is in the process of migrating from a monolithic approach to a microservices architecture. 我的公司正在从单一方法迁移到微服务架构。 I am wondering what tools are available to manage start up, shutdown, load balancing, and overall health monitoring. 我想知道有哪些工具可用于管理启动,关闭,负载平衡和总体运行状况监视。

The solution has to be windows based, but have the option to run in a linux environment as well. 该解决方案必须基于Windows,但也可以选择在Linux环境中运行。

At this time deploying locally is fine, we are not considering cloud at this time. 目前,在本地部署是可以的,我们目前不考虑使用云。

Thank you. 谢谢。

So, your requirements boil down to the following: 因此,您的要求可以归结为以下几点:

1) Environment/Infrastructure agnostic architecture that can run anywhere (local, VPS or cloud). 1)可以在任何地方(本地,VPS或云)运行的环境/基础结构不可知的体系结构。

2) Service life-cycle management (start, stop, monitor,scale). 2)服务生命周期管理(启动,停止,监视,缩放)。

Agree with Heiko's answer that you should look for solutions built on Docker/Kubernetes. 同意Heiko的回答,即您应该寻找基于Docker / Kubernetes构建的解决方案。 Such solutions need to extend the available primitives to provide the kind of solution you are looking for. 此类解决方案需要扩展可用的原语,以提供所需的解决方案。

Hasura ( full-disclosure: I work here ) is one such PaaS that allows you to deploy your services on any infrastructure in an API Gateway pattern based architecture. Hasura( 全公开:我在这里工作 )就是这样一种PaaS,它允许您在基于API网关模式的体系结构中的任何基础架构上部署服务。 Monitoring, autoscaling, and back-up & restore like features are available as add-ons. 监视,自动缩放以及备份和还原之类的功能可作为附件使用。 The platform is free to use on your own infrastructure. 该平台可在您自己的基础架构上免费使用。 Check out a HackerNews discussion on Hasura . 查看有关HasuraHackerNews讨论

I think your question includes a few concerns that may or may not be separate 我认为您的问题包括一些可能会或可能不会分开的问题

  1. running the microservices with lifecylce operations 通过生命周期操作运行微服务
  2. health checks - is my service alive 健康检查-我的服务还活着吗
  3. telemetry 遥测

There are several solutions available where 2 and 3 build on 1 : 有几种解决方案,其中2和3建立在1之上:

  1. Orchestration systems like Kubernetes or the OpenShift distribution of it, take your µ-service, but it in an Docker image and then schedule it to run inside a cluster. 诸如Kubernetes或它的OpenShift分发之类的编排系统接受您的µ服务,但将其放在Docker映像中,然后安排它在集群中运行。 There are other solutions like Docker-swarm that do similar things 还有其他类似解决方案的Docker-swarm解决方案
  2. Kubernetes and OpenShift can regularly "ping" your service. Kubernetes和OpenShift可以定期“ ping”您的服务。 Be it via http or by invocation of a command. 通过http或命令调用。 If this shows the service is unhealthy, then it is killed and a new instance deployed by the system. 如果这表明服务不正常,则将其杀死并由系统部署新实例。 Similar to this liveness probe, there is also a readiness probe that can decide from what point in time on your service is ready to receive requests 与该活动性探针类似,也有一个就绪性探针,可以决定从服务的哪个时间点准备接收请求
  3. There is a ton of metrics system out there that can retrieve telemetry data from the systems and the services. 那里有大量的指标系统,可以从系统和服务中检索遥测数据。 OpenShift for example comes with Hawkular Metrics out of the box. 例如,OpenShift附带了Hawkular Metrics。 Data gathered can be graphed or alerted upon. 收集的数据可以用图形显示或发出警报。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM