0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

云原生技术将是企业落地微服务的优秀伴侣

如意 来源:今日头条 作者:AI课工场 2020-10-08 14:37 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

随着技术的发展,我们云托管时代逐步的向云原生演进了。所谓云原生,就是将微服务、DevOps的架构理念与云所提供的容器、Serverless无服务器更好的结合,提升资源的使用效率,提高研发运维效率。那么在云原生时代,微服务应该如何与云原生相辅相成呢?

我们来看看微服务的定义,即将一个单体应用拆分成多个微服务,由微服务来一起协同对外提供服务支持。在微服务的运行中就存在这三个问题:

1、如何管理微服务的生命周期;

2、如何治理不同技术栈微服务之间的通信;

3、如何处理不同技术栈的微服务请求?

对于如何管理微服务的生命周期,我们来一起看看。最初服务都是单体式的,上线时直接部署某些机器资源上就可以了,当出现异常时,直接下线该机器上的服务版本,服务与资源的关系是比较简单的,没有动态的依赖关系。当我们把服务拆分成微服务之后,不同的微服务部署在不同的机器上,最后组成整个应用呈现给到用户,此时服务与资源的关系变得复杂起来了。如果应用是由不同的技术栈开发实现,比如有的微服务用C++、有的用Java、有的用PHP、有的用Golang,那么部署每个服务时还需要在机器上安装对应的运行环境,整个应用的运维成本又增加了。

但是在云原生时代,有了容器如Docker、容器平台技术如Kubernetes把这一切都变得简单了。Docker容器技术通过标准的封装、标准的运行时将微服务的部署变得标准化,Kubernetes技术则是把已经标准化的微服务便捷的运行在机器上,运维人员不再需要将微服务分配到某个具体的机器上,并且在Kubernetes中的Pod模型对外提供了单个容器运行状态接口、DNS地址服务,通过简单的二次开发可以看到每个微服务在哪些地址上的运行状态,简化了整个微服务生命周期的管理。

对于如何治理不同技术栈微服务之间的通信,我们一起来看看,最初服务是单体式的,模块与模块之间的通信都是静态编译产生的,比较简单。当我们把服务拆分成微服务之后,模块与模块之间的通信就是动态关联的了,微服务如何找到另外一个微服务变得复杂起来。一些微服务框架,如Java的Spring简化了开发人员的负担,只要是Java系服务的开发就不用再写一遍微服务之间通信的逻辑。

但是当一个业务引入多个技术栈时,常见的如上层用Java编写,底层用Golang编写,不同微服务之间的通信框架都不一样,无疑又增加了开发人员的成本。但是在云原生时代,我们有了ServiceMesh服务网格,通过通信劫持,实现了比较好的服务间通信监测与管理。在servicemesh中,有一个sidecar边车容器的概念,它把微服务之间通信的能力从业务中抽象,单独成一个容器与微服务并行,再使用Istio所提供的管控能力,将微服务与边车容器搭成一个网状的数据平面,在这上面进行服务之间通信的配置、管理、监测。

对于如何处理不同技术栈的微服务请求,我们一起来看看,原来的外部请求通过浏览器或app进来之后,会经过应用层/网络层的负载均衡决定分发给到哪台机器去处理,单体式应用因为是一个大整体,直接分发即可,还是比较简单的,而微服务则需要经过复杂的逻辑判断给到哪个服务、哪台机器。在多技术栈开发的情况下,每个微服务框架都需要写一遍请求逻辑。但是在云原生时代,我们有了Serverless无服务器的概念,我们可以把请求类型、请求管理、请求处理的逻辑全抽出来标准化,在业务层只需要前端去调用该函数即可,后面的请求处理分发就再也不用管理了。

微服务的出现,确实推动技术向前演进了一大步,但是微服务并不是万能的,在使用它的同时,必然要承担它的复杂性所带来的成本。不过微服务确实是良药,有了云原生技术出现后,对于该良药所带来的副作用便能消解很多,云原生必定是企业落地微服务的优秀伴侣~
责编AJX

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 云计算
    +关注

    关注

    39

    文章

    8003

    浏览量

    143135
  • 容器
    +关注

    关注

    0

    文章

    521

    浏览量

    22822
  • 微服务
    +关注

    关注

    0

    文章

    147

    浏览量

    8050
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    香港服务器支持Docker和Kubernetes吗?

    云原生技术成为主流的今天,Docker和Kubernetes(K8s)已成为现代化应用开发和部署的事实标准。对于选择香港服务器的开发者与企业而言,一个核心问题是:香港
    的头像 发表于 10-21 15:47 386次阅读

    云原生环境里Nginx的故障排查思路

    本文聚焦于云原生环境下Nginx的故障排查思路。随着云原生技术的广泛应用,Nginx作为常用的高性能Web服务器和反向代理服务器,在容器化和
    的头像 发表于 06-17 13:53 650次阅读
    <b class='flag-5'>云原生</b>环境里Nginx的故障排查思路

    企业使用NVIDIA NeMo微服务构建AI智能体平台

    已发布的 NeMo 微服务可与合作伙伴平台集成,作为创建 AI 智能体的构建模块,使用商业智能与强大的逻辑推理模型 (包括 NVIDIA Llama Nemotron) 处理更多任务。
    的头像 发表于 04-27 15:05 1005次阅读

    从 Java 到 Go:面向对象的巨人与云原生的轻骑兵

    (Goroutine/Channel) 在 云原生基础设施领域 占据主导地位,它也是 Java 开发者探索云原生技术栈的关键补
    的头像 发表于 04-25 11:13 514次阅读

    Snap Store开发者工具图谱:从全栈到云原生,一张图解锁Linux开发新姿势!

    PyCharm+Postman构建微服务,还是云原生新人尝试Kubectl+Helm驯服K8s,SnapStore早已备好全套装备。本文作为《UbuntuSnap》系列的第三弹
    的头像 发表于 03-25 09:22 639次阅读
    Snap Store开发者工具图谱:从全栈到<b class='flag-5'>云原生</b>,一张图解锁Linux开发新姿势!

    云原生在汽车行业的优势

    近年来,“云原生”已成为科技领域的高频热词。从企业数字化转型到智能化产业布局,各行各业对云原生技术的需求呈现爆发式增长,向云计算转型已成为一大趋势。根据Gartner的预测,到2025
    的头像 发表于 02-21 09:20 1477次阅读

    云原生AI服务怎么样

    云原生AI服务,是指采用云原生的原则和技术来构建、部署和管理人工智能应用及工作负载的方法和模式。那么,云原生AI
    的头像 发表于 01-23 10:47 772次阅读

    NVIDIA 发布保障代理式 AI 应用安全的 NIM 微服务

    NVIDIA NeMo Guardrails 包含全新 NVIDIA NIM 微服务,能够为各行业构建 AI 的企业提高 AI 的准确性、安全性和可控性。   AI 智能体有望成为能够完成各种任务
    发表于 01-17 16:29 282次阅读

    云原生LLMOps平台作用

    云原生LLMOps平台是一种基于云计算基础设施和开发工具,专门用于构建、部署和管理大型语言模型(LLM)全生命周期的平台。以下,是对云原生LLMOps平台作用的梳理,由AI部落小编整理。
    的头像 发表于 01-06 10:21 714次阅读

    如何选择云原生机器学习平台

    当今,云原生机器学习平台因其弹性扩展、高效部署、低成本运营等优势,逐渐成为企业构建和部署机器学习应用的首选。然而,市场上的云原生机器学习平台种类繁多,功能各异,如何选择云原生机器学习平
    的头像 发表于 12-25 11:54 702次阅读

    宝藏级微服务架构工具合集

    宝藏级热门微服务架构工具包含Spring Boot、Eclipse Vert.X、Kubernetes、Tyk、RabbitMQ、Apache Kafka等。其中,Spring Boot简化了微服务
    的头像 发表于 12-21 16:33 913次阅读

    东方通联合openEuler社区即将开启云原生开源中间件 Meetup北京站

    深入探索云原生技术的最新前沿; 剖析基础软件最“潮”趋势; 与技术大佬零距离交流; 聆听行业专家的独家案例经验; 激发创新思维,寻找灵感火花; 更有机会获取宝贵的实习机会,以及丰富多彩的福利礼包
    的头像 发表于 12-17 14:58 1129次阅读

    艾体宝与Kubernetes原生数据平台AppsCode达成合作

    虹科姐妹公司艾体宝宣布与Kubernetes 原生数据平台 AppsCode达成正式合作,致力于将其核心产品KubeDB引入中国市场,为企业提供专业、高效的云原生数据库管理解决方案。
    的头像 发表于 12-16 15:07 898次阅读

    构建云原生机器学习平台流程

    构建云原生机器学习平台是一个复杂而系统的过程,涉及数据收集、处理、特征提取、模型训练、评估、部署和监控等多个环节。
    的头像 发表于 12-14 10:34 678次阅读

    什么是云原生MLOps平台

    云原生MLOps平台,是指利用云计算的基础设施和开发工具,来构建、部署和管理机器学习模型的全生命周期的平台。以下,是对云原生MLOps平台的介绍,由AI部落小编整理。
    的头像 发表于 12-12 13:13 848次阅读