提前看了大会的日程,发现了主题内容非常多,CNCF的生态确实很广阔,所以要安排好自己的日程,抓自己关注的点去听了。目前所做的工作集中在容器监控和AIOps相关内容上,而且与Prometheus接触也比较多,所以一方面关注容器相关技术,还有一个很大的关注点就在“Observability and Analysis”上了。
另外,明显感觉到自己对于云原生的认知还是远远不够的,所以此次参会是一个接触了解CNCF全景生态的好机会,众多厂商的参与也会给自己一个体验和交流的机会。
在云原生的技术生态中,监控和告警还是围绕Prometheus来做的,无论是数据采集、存储还是数据利用(告警、可视化等)上。关于prometheus的实践分享有2场,一场是阿里内部为了实现容器平台监控数据链路而做的“高可用可扩展的Prometheus和Thanos实践”;另一场是红帽工程师分享的利用“AIOps:Anomaly detection with Prometheus”。另外,还有一场大师关于容器故障发现与恢复的相关分享。
阿里小伙伴的分享主要在介绍搭建一个可供上层使用、分析、操作的高可用可扩展的数据链路的实践过程。分为2部分,一部分是Node Agent,另一部分是利用Prometheus和Thanos搭建的中心服务。因为自己对于Prometheus的有效部署比较感兴趣,所以关注也集中在第二部分。
在Prometheus可扩展方面,针对Kubernetes Nodes进行分片,然后采用多个Slave和一个Master的联邦部署机制;在高可用方面,多备份方式进行Prometheus部署。Thanos则可以提供全局查询和历史数据降准长期存储方案。
因为在工作中存在基于Prometheus来做告警的场景,会遇到一个很严重的问题,联邦部署之后的query速度太慢,在Thinking Future这一部分,分享人也确实给了一个方案,就是查询缓存了。
这个主题的分享主要在于RedHat工程师基于Prometheus做的一些AIOps工作。前面科普性的介绍了Prometheus、Thanos、influxdb、ceph、spark等用到的工具。对我感觉到收获的在于异常检测算法实现的流程上面,包括元数据的分析,样本库的积累,算法的验证流程方面。
由于这一部分工作自己也在做,类比下也有一些思考,就异常检测而言:源数据分析的时序异常类型已经归类;样本库积累方面做的不够好,没有沉淀出一些内容;算法效果验证这块,是将算法预测结果再被Prometheus抓取,然后和原时序数据展现在同一面板中进行效果观察。我们也一直在找一个好的方式,这个可以借鉴下。
但总体来讲,分享中介绍了一些小工具的开发,还有在AIOps方面的尝试,但成果并不是很大。分享后交流也发现,目前在实际线上告警方面,还是使用基于数据设置的一些规则策略,算法并没有达到想要的效果,这也是我们目前的阶段,所以还需要进一步实现落地的有效方式。
这次分享是大师在介绍阿里内部在容器故障恢复方面所做的一些工作。包括故障发生、发现、定位、恢复的1-5-10策略,以及在故障发现、诊断、修复方面的内容。
也涉及到NPD、Container-Debugge、Prophet的内容,在听的过程中,对这些参与的项目也有一点想法。NPD的核心还是在于各种检测器的丰富上,这也是大家关心的内容。Debugger的Case库应该实现一个用户动态自丰富的不断更新流程,这样才能实现Debugger的可用性,否则仅靠开发者自己设置的case匹配是无法达到一个想要的效果的。至于故障检测方面,Prometheus的检测机制确实有很大局限,算法的补充是非常有必要的,所以Prophet还是要不断完善,尽快的做出效果。
这部分的演讲是通过多个行业大牛的主题讨论来进行的。所以讨论基本上重在思想的学习。听了2场讨论,主题分别是“为Kubenetes开源贡献过程的成长” 和 “利用云原生技术进行企业转型”,也记录一下当时的感受与思考。
无论是Kubernetes还是其他开源贡献,都提倡边边角角开始做,改文档,修bug,做特性,设计特性一步步来。不要怕犯错,借助社区的力量来修正自己的想法。
在利用云原生技术进行企业转型方面。因为自己确实也没这方面的实践,所以就记录下他们分享的一些经验:1)使用开源项目时尽量不要改源码,而是做扩展,这样方便后续版本升级后的兼容;2)云化不是一蹴而就的,要一步一步走;3)service mesh方面,目前在运维管理方面远远不足,强行使用可能会增加运维负担;4)serverless要求对服务更加的抽象,不仅开源社区还有很多事情需要做,业务设计也需要改变。
讨论听下来,对个人工作也有一点启迪,在开源贡献方面还是要多在社区讨论,多去尝试。在云原生技术实践方面,感受是有些技术可能很新,但并不完善,业务可能有自己的需求所以并不适用。不仅要方向正确,而且适合场景方案才是合适的方案。同时,技术的更新也要有一个过渡,不能一蹴而就的。
腾讯云:
为了得到腾讯的小公仔,去把腾讯所有展台都体验了一下,包括TKE2.0,主打GPU应用部署;Sparking大数据分析,因为好久不用了,所以没太注意这个;Service Meth,效果很好,让部署在容器之上的应用服务调用链路可见于与流量可控;DevOps、Serverless 这种开发和部署方式确实极大提高效率,但也颠覆开发认知,对业务设计思维也需要一些转变;Serverless的小程序体验,小程序确实是一个Serverless的很好使用场景。
华为云:
从华为的分享和展台体验来直观感受,华为云在云原生的投入确实是非常大。包括听的分享发布的边缘计算KubeEdge1.0、批量计算平台Volcano以及预计8月正式开源的方舟编译器。在展区也体验了下华为云的产品,在我关心的容器领域没有得到相应的交流,展示主要集中在了边缘计算、DevOps和网络相关的内容上了。最大的感受还是华为云的“云+边+端+芯”全方位发力了。
国外的云计算大厂:
此次国外云计算大厂基本没有分享,AWS和Google的展台也仅仅用于商业展示。
Rancher:
全栈化企业级容器管理平台。基于kebernetes做了多方面的增强。基于UI交互做各种集群操作,包括DevOps、应用管理等服务、还包括监控告警和日志等功能。正好看到另一家青云的KubeSphere容器平台,很类似。相比较阿里云或腾讯华为等大厂的云原生全产品体系,这个平台是一个将一些核心功能汇聚到一起Kubernetes之上而做的一个PaaS平台,适合一些公司自己拿来部署使用。
Elastic:
做的工作都是围绕ES来做,关注到到kibana,针对Elasticsearch的数据进行可视化、监控和告警,感觉这个平台的效果还不错。
首先最大的感受肯定在于视野的扩展,接触到了各个层面云原生技术的发展与实践,听了看了各大厂商在云计算领域的技术解决方案与产品布局。
另外,此次参会有2点印象比较深刻:边缘计算,计算能力的向下迁移;Serverless,资源平台的向上抽象。
容器技术已经相对稳定或成为共识,在基础设施平台层面大家都在准备或已经进入下一阶段 Serverless。业务开发越来越抽象,Serverless抽象到只关注业务本身,快速构建业务与迭代,借助云厂商服务,甚至实现零运维,极大提高开发效率。计算能力向下迁移,大家都在构建从云到端的协同计算能力,也就是此次大会明显感觉到的边缘计算的火热,包括阿里云和华为云都在大力推广边缘计算产品和服务。
对于容器层面稳定性而言,容器越来越作为底层基础设施来提供服务,这就对稳定性提出了更大的要求,在这个方面的工作,包括数据收集、监控告警、故障恢复等工作都会变得非常的重要,这对我们的工作也是价值的证明。此次分享和交流也可以感受到,稳定性保障方面确实还存在很多不足,而且在我们所做监控告警和AIOps相关方面也没有一个全行业完善的方案,这是挑战也是机会,可以利用之前的积累和技术场景优势做出一些有价值的工作。