分布式系统的架构问题

原文作者:Munish Gupta

原文地址:https://dzone.com/articles/architecture-concerns-for-distributed-systems

应用架构不断发展,正在从一大块巨石的时代演变为更加分布式的基于设计的模型。这一变化的关键发起者是云计算的出现以及它在处理日益增长的规模方面所具有的能力。当一个企业主要通过构建和管理单一应用程序的模型来吸收(人员和流程)时,在构建新的分布式系统的过程中就需要重新学习一些旧的设计技术并采用一些新的模式。作为其中的一部分,我将详细介绍一些在迁移到分布式应用模型时变得突出的架构问题。

  • 调度/编排管理:从管理数百个实例到管理上千个实例,需要能以无缝的方式跨主机调度或编排服务实例和服务容器。为了处理日益增加的规模,工作量调度/编排是分布式系统的关键组成部分。像DockerSwarm、Kubernetes、Mesos、Marathon等产品都是这个领域的领先产品
  • 服务发现/注册:由于基于容器的服务的上下波动,需要有一个登记/注销服务的机制和一个在运行时发现服务端点的机制。像Consul, Zookeeper, etcd, Confd和Eureka都是这个领域的领先产品。这些产品中的大多数支持跨服务实例的传入流量的负载平衡
  • 系统状态管理/集群管理:随着集群的增长,需要管理集群的系统状态。每个服务的SRV是什么,有多少实例,在什么主机上,什么是负载,等等?为了管理这一点,需要集群管理来跟踪系统状态。像Docker Swarm Agents, Kubernetes Nodes/Masters, Mesos Slaves, Containership等产品都是这个领域的领先产品
  • 数据存储:容器存储是暂时的,这意味着需要在容器生命周期之外保留的任何数据都需要在外部保存。像Docker Volume Plugin, Flocker, Kubernetes Persistent volumes等项目是一些关键产品
  • 网络:对于每个运行不同进程的容器, 都需要进行管理,有时还要隔离哪个容器服务可以访问别的服务。多个容器可在同一个主机上运行,因此共享网络的资源可能需要为容器隔离创建安全组。同样,容器可能需要发现跨主机托管的服务,并且需要一个简单的模型来访问这些服务。像Flannel, Weaveworks, and Calico都是这一领域的产品
  • 监控/审计/日志记录:随着数千个容器的运行,监视/审计/记录每一个容器成为了一个棘手的问题。需要从每个容器中提取数据/日志,以便进行分析。像Loggly,Fluentd,log entries,datadog和ELK stack等产品都是这个领域的关键产品。

除此之外,构建分布式应用时需要考虑的其他因素还有Container OS和Container Runtime。其他因素,如应用程序运行时间,部署管理,DNS,安全性,SSO / OAuth,API网关,断路器,性能/可扩展性模式等仍然需要处理。

在您的经验中,还有其他什么是分布式应用程序的关键架构问题吗?如果有,请分享。

本文的版权归 bill_bisheng 所有,如需转载请联系作者。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏PaddlePaddle

高阶干货|如何用gperftools分析深度学习框架的内存泄漏问题

本系列为高阶干货,面向深度学习从业者,栏目会定期分享PaddlePaddle研发工程师和产品经理的行业经验。本篇和内存泄漏分析相关,适合中高阶深度学习工程师仔细...

1401

分布式系统的架构问题

原文地址:https://dzone.com/articles/architecture-concerns-for-distributed-systems

20610
来自专栏IT米粉

MQ(消息队列)常见的应用场景解析

提高系统性能首先考虑的是数据库的优化,之前一篇文章《数据库的使用你可能忽略了这些》中有提到过开发中,针对数据库需要注意的事项。但是数据库因为历史原因,横向扩展是...

1482
来自专栏云计算D1net

容器与虚拟机究竟有何本质上的差异?

作为一种部署应用程序的全新方式,容器技术在短时间内获得了广泛关注,但是这种技术同样存在某些限制,并且和虚拟机存在本质上的不同。 ? 虚拟化技术已经改变了现代计算...

4048
来自专栏企鹅号快讯

微信升级,小程序曝光能力大大提升,未来将血染小程序蓝海

“为了帮助用户更便捷地使用小程序,微信在主界面新增了小程序任务栏的功能。小程序菜单进行了升级,并提供小程序间快速切换的功能。同时,我们开放了小游戏开发文档和开发...

19310
来自专栏CSDN技术头条

无网不通,有网则顺:OpenStack Neutron解析

Neutron是OpenStac环境的核心组件之一,了解Neutron的功能和部署方式,是企业OpenStack系统的规划、部署和运维需要修炼的内功。在本文中,...

3268
来自专栏ThoughtWorks

大型分布式团队的代码版本管理|洞见

介绍这个话题,有两个原因: 从开始工作到现在,我经历过没有代码版本管理、代码集中式管理、以及现在的分布式管理,我深刻体会到它在软件开发过程中的重要性; 我在工作...

3846
来自专栏腾讯云技术沙龙

彭磊:TencentHub的架构实现

TencentHub是一个集Docker镜像、二进制文件、helmcharts于一体的仓库存储服务。那么这一架构技术是如何基于Kubernetes 快速实现wo...

70941
来自专栏渠道合作伙伴技术圈

云服务器多IP场景实践

弹性公网IP(Elastic IP,EIP)简称弹性IP地址或弹性IP,是可以独⽴申请的公⽹IP地址。EIP可以实时绑定/解绑到私有⽹网络的CVM、NAT网关、...

7053
来自专栏大数据文摘

Google披露:大规模集群管理工具Borg的细节

2033

扫码关注云+社区