探索云原生的奥秘

发表时间: 2021-07-03 16:59

什么是云原生?

简单的说,就是为了让应用程序(项目,服务软件) 都运行在云上的解决方案,这样的方案叫云原生。云原生 = 微服务 + DevOps + CI/CD + 容器化

云原生,从字面意思上可以分为“云”和“原生”。

是和本地相对的,传统的应用必须跑在本地服务器上,现在的应用都跑在云上。云包含IAAS(基础设施即服务)、PASS(平台即服务)、SAAS(软件即服务)、CAAS(容器即服务)、FAAS(函数即服务)。总之,就是将各种软、硬件资源抽象为一种服务能力,直接提供给开发者使用。让他们不在关心基础设施、资源需求、中件间等,从而更好的专注于业务上。

原生就是土生土长的意思,我们在开始设计应用的时候就考虑到应用将来是运行云环境里面的,要充分利用云资源的优点,比如️云服务的弹性分布式优势。

云原生的特点?

1、云原生的特点

  • 容器化 --- 所有的服务都必须部署在容器上
  • 微服务
  • CI/CD
  • DevOps

1.1 容器化

容器化分为容器运行时技术和容器编排技术,它的好处在于运维的时候不需要再关心每个服务所使用的技术栈,每个服务都被无差别地封装在容器里,可以被无差别地管理和维护,现在比较流行的工具是docker和Kubernetes

1.2 微服务

微服务是一种用于构建应用的架构方案。微服务架构有别于更为传统的单体式方案,可将应用拆分成多个核心功能。每个功能都被称为一项服务,可以单独构建和部署,这意味着各项服务在工作(和出现故障)时不会相互影响。

1.3 CI/CD持续交付

CI/CD的核心概念是持续集成、持续交付和持续部署。是一种通过在应用开发阶段引入自动化来频繁向客户交付应用的方法。

1.4 DevOps

DevOps这个词,其实就是Development和Operations两个词的组合。它的英文发音是 /de'vɒps/,类似于“迪沃普斯”。DevOps是一组过程、方法与系统的统称,用于促进开发、技术运营和质量保障(QA)部门之间的沟通、协作与整合。

从目标来看,DevOps就是让开发人员和运维人员更好地沟通合作,通过自动化流程来使得软件整体过程更加快捷和可靠。

未来

云原生不只是说要迁移到云,而是要充分利用云基础设施和服务的独特性来快速交付业务价值。

行业已经在形成一个架构方案,即所有的基础设施都会被重写,一切都要以云作为基础设施。

以前的基础设施是静态的

  • CPU、网卡、磁盘、内存、GPU...
  • 机柜、服务器、交换机...

现在的则是动态的:

  • 动态启动的计算单元(VM,容器)
  • 服务编排平台(K8s)
  • Serverless(Lambda/Cloud Function)Serverless拆开看server 服务, less 无 。合在一起称为无服务 ,即不需要服务器。站在用户的角度考虑问题,用户只需要使用云服务器即可,在云服务器所有的基础环境,软件环境都不需要用户自己考虑。未来:服务开发都是Serverless,企业都构建了自己的私有云环境,或者是使用公有云环境。
  • 云存储(EBS、S3)

云厂商会自己控制硬件(设计、生产),并对业务层透明