idea非开源安装指南
微服务-将应用程序分解为可组合的较小的,可组合的部分-受到市内最热门的新餐厅的关注。 (如果您还不熟悉,请在继续之前继续学习什么是微服务 。)
但是,如果您已经从“ Hello,World”开始并运行了少量的微服务,并且正在构建数百个微服务并运行成千上万个实例,那么您将知道没有“微”。 您希望您的实例在用户增加时增加,而在用户减少时减少。 您想在实例之间有效地分配请求。 您想智能地构建和运行服务。 您需要清楚了解正在运行或正在关闭的服务实例。 您如何管理所有这些复杂性?
这是一种有益健康的开放源代码美食,肯定会在美食上“ 微服务”开胃。 我确定我已经忽略了该领域的一些开源应用程序; 请在评论中让我知道他们。
[在此处下载该备忘单的PDF版本]
货柜
部署应用程序的正确方法是在容器中 。 简而言之,容器是一个微型虚拟服务器,其中装有运行应用程序所需的软件。 容器包小巧,智能,易于部署和维护。 在容器中部署应用程序很聪明。 您可以根据需要部署任意数量的实例,并根据需要扩大或缩小规模以满足当前的负载。
开源容器
软件 | 码 | 执照 |
---|---|---|
rkt | 的GitHub | Apache许可2.0 |
Docker | 的GitHub | Apache许可2.0 |
FreeBSD Jail | 的GitHub | FreeBSD许可 |
LXC | 的GitHub | GNU LGPL v.2.1 |
OpenVZ | 的GitHub | GNU通用公共许可证v2.0 |
容器协调器
如果您在容器上部署了数百或数千个服务实例,则需要一种管理它们的好方法。 容器编排是用于部署和管理所有这些容器的正确解决方案。 协调器可以移动; 放大,缩小或缩小; 管理更高或更低的负载; 监管增加,删除和失效的容器; 以及更多。
开源容器协调器
软件 | 码 | 执照 |
---|---|---|
Kubernetes | 的GitHub | Apache许可2.0 |
OpenShift | 的GitHub | Apache许可2.0 |
Nomad | 的GitHub | Mozilla公共许可证2.0 |
LXD | 的GitHub | Apache许可2.0 |
API网关
API网关是监视程序,用于控制和监视对应用程序的API调用。 API网关具有三个关键角色:
- API数据和管理: API列表,API订阅,API文档,社区支持
- API观点和计费:分析,指标,计费
- API控制和安全性:订阅调用者管理,速率控制,阻止,数据转换,生产和沙箱支持,密钥管理
API网关通常是用于在同一网关上部署多个应用程序的多租户解决方案。
开源API网关
以下并非所有的API网关都支持上述每个功能,因此请根据您的需要进行选择。
软件 | 码 | 执照 |
---|---|---|
3scale | 的GitHub | Apache许可2.0 |
API Umbrella | 的GitHub | 麻省理工学院执照 |
Apigee | 的GitHub | Apache许可2.0 |
Apiman | 的GitHub | Apache许可2.0 |
DreamFactory | 的GitHub | Apache许可2.0 |
Fusio | 的GitHub | GNU Affero通用公共许可证v3.0 |
Gravitee | 的GitHub | Apache许可2.0 |
Kong | 的GitHub | Apache许可2.0 |
KrakenD | 的GitHub | Apache许可2.0 |
Tyk | 的GitHub | Mozilla公共许可证2.0 |
CI / CD
持续集成(CI)和连续部署(CD;它也可以表示连续交付)是构建和运行流程的流程总和。 CI / CD是确保您的微服务能够正确构建和运行以满足用户期望的哲学。 自动化是至关重要的CI / CD因素,它使构建和运行过程变得容易且结构化。 CI的主要流程是构建和测试,而CD则是部署和监视。
下面列出的所有CI / CD工具和平台都是开源的。 我不包括免费托管开源的SaaS平台。 GitHub也不在列表中,因为它不是开源的并且没有内置的CI / CD。 它改用第三方CI / CD产品集成。 GitLab是开源的,具有内置的CI / CD服务,因此在此列表中。
开源CI / CD工具
软件 | 码 | 执照 |
---|---|---|
Jenkins | 的GitHub | 麻省理工学院执照 |
GitLab | 亚搏体育app | 麻省理工学院执照 |
Buildbot | 的GitHub | GNU通用公共许可证v2.0 |
Concourse | 的GitHub | Apache许可2.0 |
GoCD | 的GitHub | Apache许可2.0 |
Hudson | 的GitHub | 麻省理工学院执照 |
Spinnaker | 的GitHub | Apache许可2.0 |
负载均衡器
当请求数量增加时,您必须部署应用程序的多个实例并在这些实例之间共享请求。 管理实例之间的请求的应用程序称为负载平衡器。 可以将负载均衡器配置为基于轮询调度,IP路由或其他算法来分发请求。 当添加新实例(以支持更高的负载)或取消使用新实例(负载缩减时)时,负载均衡器将自动管理请求分配。 会话持久性是另一个负载平衡功能,可在需要时将新请求重定向到前一个实例(例如,维护会话)。 有基于硬件和软件的负载均衡器。
开源负载均衡器
软件 | 码 | 执照 |
---|---|---|
HAProxy | 的GitHub | HAPROXY的许可证/ GPL v2.0 |
Apache modules (mod_athena, mod_proxy_balancer) | SourceForge或 Code.Google或 的GitHub | Apache许可2.0 |
Balance | SourceForge | GNU通用公共许可证v2.0 |
Distributor | SourceForge | GNU通用公共许可证v2.0 |
GitHub Load Balancer (GLB) Director | 的GitHub | BSD 3条款许可 |
Neutrino | 的GitHub | Apache许可2.0 |
OpenLoBa | SourceForge | 未知 |
Pen | 的GitHub | GNU通用公共许可证,v2.0 |
Seesaw | 的GitHub | Apache许可2.0 |
Synapse | 的GitHub | Apache许可2.0 |
Traefik | 的GitHub | 麻省理工学院执照 |
服务注册表和服务发现
当部署了数百或数千个服务实例并相互通信时,考虑到部署点随服务的扩展和扩展而动态变化,请求者服务如何知道如何连接正确的响应者服务? 服务注册表和服务发现服务解决了此问题。 这些系统实质上是键值存储,用于维护配置信息和命名并提供分布式同步。
开源服务注册和发现服务
软件 | 码 | 执照 |
---|---|---|
Baker Street | 的GitHub | Apache许可2.0 |
Consul | 的GitHub | Mozilla公共许可证2.0 |
etcd | 的GitHub | Apache许可2.0 |
Registrator | 的GitHub | 麻省理工学院执照 |
Serf | 的GitHub | Mozilla公共许可证2.0 |
ZooKeeper | 的GitHub | Apache许可2.0 |
监控方式
当微服务及其实例满足用户需求时,您需要对它们的性能保持良好的了解。 监控工具进行抢救!
开源监视工具和软件具有多种风格,其中有些几乎不比top好 。 其他选项包括特定于操作系统的选项; 企业级; 提供完整集成的工具集合; 一站式工具,仅监视,报告或可视化并与第三方工具集成; 以及监视特定或多个组件(例如网络,日志文件,Web请求和数据库)的工具。 监视工具可以是基于Web的工具,也可以是独立的工具,通知选项的范围从被动报告到主动警报。
选择这些工具中的一个或多个,以享受微服务网络带来的便利。
开源监控软件
Software | 码 | 执照 |
OpenNMS | 的GitHub | GNU Affero通用公共许可证 |
Grafana | 的GitHub | Apache许可2.0 |
Graphite | 的GitHub | Apache许可2.0 |
Icinga | 的GitHub | GNU通用公共许可证v2.0 |
InfluxDB | 的GitHub | 麻省理工学院执照 |
LibreNMS | 的GitHub | GNU通用公共许可证v3.0 |
Naemon | 的GitHub | GNU通用公共许可证v2.0 |
Nagios | 的GitHub | GNU通用公共许可证v2.0 |
ntop | 的GitHub | GNU通用公共许可证v3.0 |
ELK | 的GitHub | Apache许可2.0 |
Prometheus | 的GitHub | Apache许可2.0 |
Sensu | 的GitHub | 麻省理工学院执照 |
Zabbix | 自托管回购 | GNU通用公共许可证v2.0 |
Zenoss | SourceForge | GNU通用公共许可证v2.0 |
正确的成分
纯开源解决方案可以为大规模部署和运行微服务提供正确的要素。 我希望您能发现它们令人愉悦,满足,满足,而且最重要的是微服务 !
下载微服务备忘单 。
翻译自: https://opensource.com/article/19/11/microservices-cheat-sheet
idea非开源安装指南