容器和微服务化
了解了微服务化,也了解了容器,那么,微服务化和容器之间的关系是什么呢?
应该说微服务的思想与容器没有直接关系,没有容器其实也可以有微服务。可为什么人们将微服务和容器化放在一起谈呢?
首先因为容器作为基础设施为微服务提供了很大便利,容器是一种新的软件交付方式,它把应用和其运行环境以一个标准镜像格式打包, 能保证应用及其运行环境的统一,能在任意装有Docker环境上运行容器应用。
K8S出现之后,它帮微服务架构解决了自己开发配置中心和注册中心等多种问题。容器和微服务都迎来了自己的高光时刻,越来越多人将新的微服务应用部署在容器平台上。
微服务是应用软件架构设计模式,推崇单一职责、服务自治、轻量通信和接口明确等原则, 基于此,容器可以比较好的配合使微服务易于开发和维护、按需伸缩等。换句话说,应用开发追求从单体架构向微服务化转变,如今,跟更多的技术开发人员都在使用容器开发,使用K8S平台部署和管理。
可以把微服务化理解为目标,把容器理解为手段和方法。这样的说法未必严谨,更多是一种现实的表现。
容器和K8S
K8S是什么?
K8S 是一个跨主机集群的、开源的容器调度平台,它可以自动化应用容器的部署、扩展和操作,提供以容器为中心的基础架构。
简而言之,K8S具有强大的容器编排能力,如果没有K8S,Docker面对大规模容器时完全无能为力。
K8S是谷歌在2014年开源的,2017 年,K8S 战胜 Docker Swarm 和 Apache Mesos,成为容器管理与调度编排领域的首选平台和事实标准,K8S被称为云计算时代的Linux操作系统,是全球顶级开源项目。
K8S无论是技术还是生态都获得了各方支持,几乎所有的公有云服务商提供了K8S方案,在云上快速构建K8s集群,进行各种配置和管理。所有的私有云以及混合云提供商也都在以各种方式对于容器应用提供支撑,容器化的趋势是真正的大势所趋。
开源软件
TensorFlow、Jenkins、ElasticSearch、WordPress、Spark、MySQL等这些经常见诸报端的词汇,也是互联企业经常使用的技术,它们也让云原生世界更加富于技术的色彩,让世界变得精彩。
对于行业企业来说,什么时候会使用到这些技术呢?
对此,最好的办法就是了解这些的概念和内涵,根据需要加以选择和使用。
在我们看来,容器和K8S之所以在短时间内获得如此之高的关注度,并被众多厂商以及技术人员追捧,很大程度上就是由开源力量来推动的,开源为所有人打开了一个可以参与贡献和协作的大门。
可以说,所有的科技公司都会或多或少的使用一些开源的方案,云厂商是其中的典型代表,开源在现代IT世界占据非常重要的地位,无论是Linux这样的操作系统,还是云原生相关的各种技术,但凡是所有重要关键的领域都有开源技术的身影。
在此,也简单看几个最为常见的开源工具:
TensorFlow:是一个采用数据流图(data flow graphs),用于数值计算的开源软件库,简单点说,就是一个机器学习框架,可以用它来训练模型并推理模型。类似的,国内有百度paddlepaddle。
Jenkins:是一款开源 CI&CD 软件,用于自动化各种任务,包括构建、测试和部署软件。Jenkins是用的最为普遍的软件之一。
ElasticSearch:是一种流行的企业级搜索引擎,基于Lucene,它提供了一个分布式多用户能力的全文搜索引擎,具有搜索、分析和探索的能力,可以用于搜索各种文档。
WordPress:是一个开源的内容管理系统(CMS),可以用来搭建个人博客或者新闻网站,安装简单易用,WordPress有丰富的插件和模板,有强大的生态支持和用户群体。
Spark:Apache Spark 是为大规模数据处理而设计的快速通用的计算引擎。Spark是拥有Hadoop MapReduce的优点,但有所不同,与Hadoop相比,在某些工作负载方面表现得更加优越,算是是对 Hadoop 的补充。
MySQL:MySQL是非常著名的开源关系型数据库管理系统,是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的关系数据库管理系统应用软件之一。
后记:
为了帮助传统行业企业加速完成云原生化改造,百易传媒(DOIT)联合Intel、VMware、阿里云、腾讯云、百度云、华为云、浪潮、金山云、红帽、灵雀云、青云、焱融云、xSky、杉岩、青藤云、蚂蚁金服、Portworx、UCloud、DaoCloud、数人云、京东云、网易云、亚信科技、云徙科技、时速云、七牛云、Caicloud才云、CSphere希云(排名不分先后)等国内外领先的云原生应用厂商的专家,共同组织编纂了《行业云原生应用报告指南》白皮书,希望能够为传统行业企业提供帮助。
本文摘自《行业云原生应用告指南》,该白皮书也将于近期发布,欢迎关注!
【未完待续;下期预告:从技术与方案看云原生改造的方法和步骤】