第1章 介绍
本章主要内容包括:
• Knative是什么,为什么要使用Knative?
• Knative的优/缺点是什么?
• 服务模块和事件模块的基本概念。
• 如何使用Knative。
笔者信奉的座右铭之一是Onsi Haiku测试:
“这是我的代码,请在云上帮我运行起来,不管用什么方法。”
实际上,这是一个关于如何更好地开发、部署、升级、观察、管理和改进软件的基本概念。这是经过无数次试错,反复实践之后得出的经验。Onsi Haiku测试意味着:
• 最快、最可靠的面向生产实践是所有开发人员的共同目标。
• 平台开发人员和平台使用人员需要构建清晰的使用界限。
• 对于大多数开发人员而言,构建处理其他软件的平台软件并不是他们所做的最紧急、最有价值的工作。
Kubernetes本身并没有通过Onsi Haiku测试,因为开发与操作之间的界限尚不清楚。应用开发人员无法使用原始的Kubernetes集群,无法获得原始的源代码,也无法获得路由、日志记录、服务注入等所有基本功能。Kubernetes提供了丰富的工具箱,应用开发人员可以用自己的特殊方式来解决测试问题。注意,这些工具箱是软件工具,不是“开箱即用”的机器。
本书不是关于Kubernetes的,而是关于Knative的。Knative建立在Kubernetes提供的工具箱基础之上,旨在实现一定程度的一致性、简单性和易用性,使Kubernetes更加接近于满足测试的高标准。Knative是一台“开箱即用”的机器。
尽管Knative可以应用于许多不同的专业领域,但Knative主要专注于开发人员的需求和痛点,对开发人员屏蔽相关的底层细节。Kubernetes令人惊叹,但它从未强烈地界定由谁来更改或管理具体的内容。这是一个优点:你可以做任何事!也是一个弱点:为了生产可用,你需要做很多事!Knative从设计之初就提供了清晰的抽象,这些抽象屏蔽了节点、容器和虚拟机(VM)的烦琐的物理业务。在本书中,笔者将重点关注开发人员的需求,仅在为帮助理解Knative时才引用或解释Kubernetes相关知识点。