zoukankan      html  css  js  c++  java
  • 云原生:云计算时代命题之终极解决方案

    云原生:云计算时代命题之终极解决方案

     

    Cloud Native?云原生?很多人一看到这个词就懵了,到底什么是云原生?

      云原生这个词其实由来已久,IT行业永远也不缺乏新概念。2015 年,Pivotal公司的Matt Stine提出Cloud Native这一概念,并结合这个概念包装了自己的新产品Pivotal Web Service和Spring Cloud。在Matt Stine所著的Migrating to Cloud Native Application Architectures一书中,他对云原生的概念进行了详细的阐述。该书的中文版《迁移到云原生应用架构》已经在GitHub 上开源,感兴趣的读者可浏览或下载(https://github.com/rootsongjc/migrating-to-cloud-native-application-architectures)。

    什么是云原生

      云原生准确来说是一种文化,更是一种潮流,它是云计算的一个必然导向。意义在于让云成为云化战略成功的基石,而不是障碍。
      自从云的概念开始普及,许多公司都部署了实施云化的策略,纷纷搭建起云平台,希望完成传统应用到云端的迁移。但是这个过程中会遇到一些技术难题,上云以后,效率并没有变得奇高,故障也没有迅速定位。
      为了解决传统应用升级缓慢、架构臃肿、不能快速迭代、故障不能快速定位、问题无法快速解决等问题,云原生这一概念横空出世。云原生可以改进应用开发的效率,改变企业的组织结构,甚至会在文化层面上直接影响一个公司的决策。
      另外,云原生也很好地解释了云上运行的应用应该具备什么样的架构特性——敏捷性、可扩展性、故障可恢复性。
      综上所述,云原生应用应该具备以下几个关键词:

    • 敏捷
    • 可靠
    • 高弹性
    • 易扩展
    • 故障隔离保护
    • 不中断业务持续更新

    以上特性也是云原生区别于传统云应用的优势特点。
      从宏观概念上讲,云原生是不同思想的集合,集目前各种热门技术之大成,具体包括如下图所示的几个部分。

    微服务

    • 应用间通过RESTful API进行通信
    • 可以被独立的部署、更新、scale和重启

    并不是所有的应用都适合微服务化,也不是说将一个单体应用拆分的越细越好。谈到微服务就不得不提到”十二因素法则“,如下图所示。

    DevOps

    • 自动化发布管道、CI工具
    • 快速部署到生产环境
    • 开发、运维协同合作

    设计系统的组织,最终产生的设计等同于组织之内、之间的沟通结构。
                                                   ——康威定律
      开发和运维看似是两个貌似互相矛盾的角色。因为开发负责业务的持续迭代,会为系统引入大量的变更,如果系统正在稳定运行,那么每次上线和发布都给系统带来新的风险。而运维追求的是系统可用性、SLA、而变更就意味着可能带来的不稳定。

    持续交付

    • 频繁发布、快速交付、快速反馈、降低发布风险

    构建自己的CI/CD 持续构建管道与发布流程,如使用Jenkins。

    容器化

    • 微服务的最佳载体

    容器化最大的好处是保持运行环境的一致性,只要应用可以打包成容器镜像(我们通常使用Docker容器),就可以一次编译,然后到处运行。
      同时,容器也可以作为应用运行的最小组件来部署,且更适合作为无状态应用的运行。结合容器编排工具(如Kubernetes)将大大增强系统的扩展性和自愈能力,轻松应对大流量下的高并发场景,加快业务的迭代速度,Kubernetes作为CNCF成员的核心,本身就是与云原生应用的理念紧密结合的产物。
      云原生中包含的不同思想,与其所解释的云上应用架构应该具备的特性几乎是一一对应的。

    • DevOps、持续交付对应更快的上线速度,即敏捷性。
    • 微服务对应可扩展性及故障可恢复性。
    • 敏捷基础设施实现了扩展能力的资源层支持。
    • 康威定律在组织机构和流程上确保架构特性能够快速实施。

    后记

      云时代的云原生应用大势已来,将传统的单体架构应用迁移到云原生架构上,你准备好了吗?
      俗话说,意识决定行动。在迁移到云原生应用之前,我们需要先对 Cloud Native(云原生)的概念、组织形式、实现技术有一个大概的了解,这样才能真正进入到云原生架构实践中。
      公有云大行其道,私有云厂商也不断涌现,为了业务的快速迭代,为了快速形成自己的产业生态,各个业务需求方都在积极的评估和采纳公有云方案。
      真正的云原生应用架构不应该限制应用的开发语言和架构选择,虽然目前以Java应用的开发者居多,在云原生概念出来之前就已经积累了不少分布式应用管理经验,如Netflix OSS。
      实际上云原生应用架构应该适用于任何应用类型。云原生应用架构适用于异构语言的程序开发,不仅仅是针对Java语言。目前云原生应用生态系统已经初具规模,CNCF成员不断发展壮大,基于Cloud Native的创业公司不断涌现,Kubernetes引领容器编排潮流和 Service Mesh技术,Go语言的兴起等,这些都为将传统应用迁移到云原生架构提供了更多的选择。

    相关图书推荐

    图片描述
    《Cloud Native Go:构建基于Go和React的云原生Web应用与微服务》,点此链接可在博文视点官网查看此书。
    【美】Kevin Hoffman、Dan Nemeth 著
    TalkingData:宋净超 吴迎松 徐蓓 马超 译
    1. 云原生是云计算时代的发展趋势和必然结果
    本书通过一个云原生应用项目的构建,为大家介绍了云原生的道与术,引导读者了解云原生理念的产生、应用场景、优势。
    2. 集现今诸多热点技术之大成
    本书在构建云原生项目时,涉及Docker、持续集成、微服务、DevOps、事件溯源与CQRS等众多备受关注的技术热点,无疑会让读者受益匪浅。
    3. Go语言助理云开发完美实现
    Go语言以其简单优雅、快速安全、支持高并发等特性,成为云计算时代的最优语言。本书将带领读者正确认识Go语言,掌握用Go构建应用程序的方法。
    4. 流程完整,示例具体详细
    本书从搭建平台开始,逐步带领读者开发一个完整的云上项目。其中的每一环节都有详细讲解。示例具有代表性,代码详细,帮助读者轻松掌握云原生开发的关键。

  • 相关阅读:
    b_lc_第k个排列(暴搜 / 数学剪枝)
    sql语句大全(2)
    经典SQL语句大全
    存储过程格式
    经典SQL语句大全(实例)非常不错的和excel等文档实例结合的sql
    触发器MSSQL常用操作
    最好的C#学习网站
    C# 反射入门知识
    MSSQL经典语句
    一些很酷的.Net技巧
  • 原文地址:https://www.cnblogs.com/yibutian/p/9559463.html
Copyright © 2011-2022 走看看