本文根据8月22日腾讯云研发工程师颜卫在DockOne社群线上直播分享整理。颜卫来自腾讯云容器服务团队,现在主要从事腾讯云容器服务应用编排和微服务相关开发工作。
1
今天交流的话题主要会分为三部分
1、为什么需要应用编排
2、kubernetes社区应用编排发展现状
3、腾讯云容器服务应用编排的实践这几个方面做介绍。
在腾讯云容器服务应用编排的实践部分,主要会涉及1、配置管理,2、应用模板管理,3、基于应用的服务组管理等内容。
为什么需要应用编排:
“微服务”架构大家都知道,他具有开发效率高,扩展性好,稳定性好,维护简单等优点。越来越多的软件,开始采用微服务的方式进行开发和部署。
2
但任何事情都是有利有弊的,微服务架构有诸多好处。但微服务软件的部署和运维对传统的自动化运维体系提出了新的挑战。
3
微服务部署带来的挑战:
服务数量急剧增多。比较常见的情况是,一个系统可能会被拆分成多达数十个微服务。如何管理一个系统中这么多的微服务,对于运维部署系统是一种挑战。
服务自身的配置问题。配置问题一直是服务管理中的难点。随着服务数量的增多,对服务配置的管理也提出了更高的要求。如何去管理诸多服务,不同环境中存在差异部分以及在系统运维阶段需要灵活变更的部分,这些都是服务配置管理中需要解决的问题。
服务依赖关系的管理。随着服务数量增加,服务依赖关系也变得更加复杂。
4、环境信息的管理,如何在多个环境中快速复制,如何在新的环境快速的部署一个复杂的系统。
由于服务数量的增多,同时需要多环境部署。采用原有对单个的服务进行部署和管理的方式,会出现一定的部署运维上的瓶颈。
而应用编排,通过应用模板,配置管理和服务组管理的方式。能够很好的简化微服务部署管理的复杂度,实现复杂系统在多个环境中的快速部署和高效管理。
4
开发,测试,预发布,正式环境多环境的管理,进一步加剧了微服务管理的复杂度。
但这些都可以通过应用编排得到简化,实现对系统的高效管理和快速部署(复制)。
kubernetes社区应用编排发展现状:
Kubernetes原生的方案中,基于服务粒度对系统组件进行管理,支持服务注册发现和路由管理。对于一个服务提供多种不同的资源描述类型,比较常用的有Deployment,Job, CronJob, Stateful, Daemonset。
每种类型都表示一种特定的部署方式。Kubernetes支持通过Yaml对服务的资源进行描述,也支持通过Label(标签)的方式对服务之间的关联关系进行管理。
&nbs