第六届字节跳动青训营第十四课 | 青训营

63 阅读4分钟

企业级后端架构面临的挑战

问题

基础设施层面:

物力资源是有限的,一方面是机器的数量有限,一个容易忽略的点带宽也是有限的。还有一个问题是资源利用率受制于部署服务。假设宿主机里面有很多pod—虚拟化出来的一个概念,可以认为是容器虚拟化的容器。

用户层面:

原先单机的服务都在一个进程里面,或者都在一个机器里面,所以网络通信地开销较大。随着网络通信越来越多,网络抖动导致运维成本提高。在底层的基础设施层面,会有很多机器实际处理能力是不一样的,比如有些机器是消容的比较旧代的cpu型号,有些是比较新代的CPU型号,在部署相同服务,承载相同请求的时候,cpu使用量也是不一样的,在异构环境下,不同实例资源水位不均。

离在线资源并池

核心收益:如何降低物力资源成本,如何使用更少的机器来提供更好的弹性资源,增加收入。能否把离线的和在线的资源池合并。我们需要一些方案使得它们合并后资源能够得到更好的分配。

在线业务的特点

大部分都是io密集型,在线的服务有明显的潮汐性和实时性,就是对实时获取的资源敏感。那么离线业务的特点有什么,计算密集型占大多数,需要消耗很多计算机资源,任务也需要花很长时间才能完成,所以不具备实时性。结合在线和离线两种不同形态的特点,是否就能做这种架构的优化呢?根据我们业务的潮汐性来对资源进行调配。再晚高峰的时候就更加明显,在线资源达到了最高峰,离线资源要做进一步压缩,慢慢地可以将离线资源池扩大。

自动扩缩容

核心收益就是降低业务成本。解决思路就是自动扩缩容,利用在线业务潮汐性自动扩缩容。它可以直接紧跟着资源并池的大方案下把对应的服务使用资源来做进一步的优化,使得不管是架构层面还是业务层面都更加充分。高峰期资源使用量上升但稳定性也没有得到损失。在闲时的时候资源池只有四个,随着混合资源池给在线资源充上更多的资源,在线资源池通过自动扩缩容帮助服务来承载业务的请求。根据不同的场景来做扩缩容得指标的设计。对于微服务来说cpu的使用量是一个比较黄金的指标,内存使用量并不会特别的高,我们会使用cpu的某一个统计的分位数,比如cpu的50%作为一个指标来衡量这个服务的使用情况。

微服务亲合性部署

核心收益是降低业务成本,提高服务可用性。解决思路:将满足亲合性条件的容器调度到一台宿主机,微服务中间件与服务网络通过共享内存通信,服务网络控制面实施灵活、动态得流量调度。在微服务架构中,应用程序被拆分成多个小型的、相对独立的服务模块,每个模块都有自己的职责和功能。这些微服务之间存在着复杂的依赖关系和通信机制。为了实现高效的运行和协作,需要将相关的微服务部署在相近的计算资源上,以减少网络延迟、提高数据传输速度。 通过这门课我学会了企业级后端架构需要具备良好的弹性和可伸缩性,能够根据负载情况自动调整计算资源,以满足业务需求。这要求在架构设计中考虑到负载均衡、自动扩缩容等机制,并采用合适的技术和工具来支持这些功能。