转载

【TOP100summit】工欲善其事,必先利其器---JFrog的Kubernetes实践

【51CTO.com原创稿件】Kubernetes已成为大规模部署容器化应用程序的一种标准方式,帮助管理庞杂的容器部署环境。但是,将应用、微服务部署到Kubernetes环境里可不是那么轻松、简单的事!如何成功地在Kubernetes环境中部署应用?近日,51CTO记者在第七届全球软件案例研究峰会(简称TOP100summit)现场采访了JFrog(杰蛙科技)架构师高欣,对此问题进行了梳理。

【TOP100summit】工欲善其事,必先利其器---JFrog的Kubernetes实践

高欣,JFrog架构师,专注DevOps解决方案,以及企业DevOps 转型,曾在IBM服务近十年,带领团队致力于Dev Ops领域产品,及公有云服务的研发、运维、服务及推广等,在软件产品和云服务的开发与运维、持续集成及交付、DevOps 等领域具备丰富的技术积累和实践经验。

部署应用的实战

高欣首先表示,要想成功地在Kubernetes环境中部署应用,首先不要急于把应用部署上去,而是要从小处入手,充分了解Kubernetes的特点,同时也要充分考察和改造应用自身,使其适合部署到Kubernetes环境中。

以JFrog为例,JFrog从很小的应用开始进行 Kubernetes 的部署。例如 Nginx,先定义小的目标去将应用部署到 Kubernetes,确保对整个容器化的进程技术上可控。

高可用是 JFrog 产品的默认功能,所以会有大量的高可用测试的需求。需要能够快速扩容支持大并发的请求,支持滚动升级(0宕机升级)的测试,破坏性测试,包括计划和非计划的 Node 宕机测试,集群缩容测试。

其次,要充分设计部署的方式和配置。高欣提到,Helm项目提供了一个统一软件打包方式,支持版本控制,可以大大简化Kubernetes应用分发与部署中的复杂性。Helm也催生了社区的发展壮大,越来越多的软件提供商,都开始提供高质量的Charts。因此,可以利用Helm实现更为轻松的部署编排和执行。

然后,当部署完成后,还需要根据Kubernetes的特点实施针对应用运行态的监视。这就需要用一些额外的工具,能够在应用、开发之外,提供一个良好的,监视运行状态的机制和系统。

最后,需要一套整体的流程,能够用一些自动化的方式,流水线的方式,让整个部署过程自动运转起来,使其能够很快的去复用,并且能够快速的得到响应。高欣强调,希望开发者们能够善用一些社区的力量,多吸取别人的经验,这样能够达到事半功倍的效果。

实战过程中的经验

在JFrog,目前可以做到每周自动化部署100+的不同产品线、任意版本组合的测试环境,而每个环境都要部署50+的微服务。在达到这样的部署规模的过程中,JFrog遇到了很多难题问题,同时也积累了很多的经验和教训。

首先,JFrog明确了内部落地Kubernetes应用的目标,即能够快速搭建全功能的测试环境,给开发,测试,技术支持,产品团队,解决方案团队等所有团队使用。同时为每个分支都提供CI/CD流水线的支撑,让研发有独立的沙箱环境进行自测,这也是 Kubernetes 带来的最大价值之一。

同时,JFrog正逐步将云端的服务迁移到Kubernetes环境,并直接向客户提供JFrog所有产品的Helm Charts,方便客户在Kubernetes环境中的部署。

“在这个过程中,每一步都很艰难”,高欣表示。由于是全新的环境,全新的方式,所以存在很多未知因素,高欣建议开发者可以多去社区看一看,与社区的高手交流,会得到很多经验和方法,来解决遇到的困难。

Jfrog的客户没有行业限制,既有腾讯、中兴、华为之类的互联网企业,也有金融、证券这样的传统行业,只要有DevOps转型的需求,JFrog都会为之提供帮助。JFrog希望把DevOps的理念宣传、推广给更多的用户。

记者视点

在Kubernetes中,应用管理是需求最多、挑战最大的领域。Kubernetes社区编排方案中,Helm基于Charts包的实现方案占主导地位。目前Helm已经成为Kubernetes下应用编排的唯一子项目。JFrog在实践中积累了大量经验,并且积极拥抱开源,必将帮助更多的企业客户实现DevOps落地。

【51CTO原创稿件,合作站点转载请注明原文作者和出处为51CTO.com】

【责任编辑:赵立京 TEL:(010)68476606】

原文  http://cloud.51cto.com/art/201812/588547.htm
正文到此结束
Loading...