本文为学习笔记,参考博客:
关于云原生,这是最详细的技术知识
本文涉及的内容
- 微服务
- 容器
-
无服务器
以上三种技术的优缺点
微服务
微服务是什么?
- 定义:将程序的功能进行分离为多个独立的小型软件服务或“微服务”,为了 微服务协同工作以形可伸缩应用程序,他们之间进行通信和交互。
-
优点:克服了
复杂性
和
不灵活性
。
易于持续交付
。 -
挑战:
① 硬件的高负荷:单体应用程序适用于中小负载,单个服务器中运行,连接到单个数据库。
② 仅限于一两种编程语言的不灵活性。此应用程序将能够在多个服务器之间进行扩展,这种做法称为水平扩展。
微服务的问题
-
严重依赖我服务的一个显著缺点是,随着数量和范围的扩大,他们可能会变的
太复杂而无法长期管理
。
解决方法:
Docker避免污染主机环境并避免过度服务设计、Prometheus进行检测
云原生
云原生应用程序
云原生就是将应用程序设计为预期将部署在
分布式、可扩展的基础框架上
云原生应该使用
消息队列和容器、无服务器
等技术(容器和无服务器是现代软件架构的重要主题)。
容器
容器只是将一些软件
封装在隔离的用户空间或“容器”中
的想法。
使用容器,你可以将具有所需的所有配置、依赖关系和环境变量的微服务移动到新的服务器节点,而
无需重新配置环境
,实现强大的
可移植性
。
Kubernetes
是一个允许自动化容器部署、管理和扩展的工具。它是由谷歌建立的,以便管理容器(每周数十亿个)。Kubernetes提供了一些强大的功能,例如
容器之间的负载均衡、故障容器的重新启动以及容器使用的存储编排
。该项目和Prometheus都是云原生基础的一部分。
容器的复杂性:由于容器的数量庞大,要控制每个容器或微服务的部署位置以及运行情况比较复杂
无服务应用程序
理念:Faas的理念是用户可以请求远程运行的功能以执行_非常特定的任务。功能结束后,这些结果将返回给用户。不维护任何服务或有状态数据,并且用户将功能代码提供给运行该功能的服务。
版权声明:本文为NDSoumig原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。