1、中国软件技术大会CHINA SOFTWARE TECHNOLOGY CONFERENCE新一代Serverless平台 Knative的应用实践内容内容提要提要 无服务架构的特点 Knative 的无服务架构解决方案 Knative在当当业务中的实践 案例总结背景云原生平台面临的挑战K8S+Istio已经成为微服务的主流解决方案,开发人员使用云原生平台的技术门槛提高开发者需要一种简单有效的服务编排标准来解决开发与运维管理复杂度问题需要进一步提高计算资源的利用率什么是Serverless无服务器架构:开发者实现的业务逻辑运行在无状态的计算容器中,它由事件触发,完全被第三方管理,其业务层面的状态存
2、储在数据库和其他存储资源中。无需管理基础设施按用付费事件驱动自动化构建部署无服务器架构FaaSServerless使用场景适合使用无服务器架构的场景:1.异步,并发,易于并行化成独立工作单元的工作负载2.低频或有零星请求,但具有较大不可预测的扩容变化需求的工作负载3.无状态,短期运行,对冷启动延迟不敏感的工作负载4.业务需求变化迅速,要求快速开发实现的场景Serverless的特点Serverless架构的优点低运营成本低开发成本弹性扩展简单的管理绿色的计算当前Serverless架构的缺点标准不统一,存在厂商锁定问题冷启动延迟问题FunctionsAppsContainersVirtual
3、MachinesBare MetalServerlessInfrastructure现有Serverless平台及实现开源serverless实现KnativeApache OpenWhiskSpring Cloud FunctionsRiffOpenFaaSFissionkubeless公有云Serverless托管服务AWS Lambda(2014)Google Cloud FunctionsMicrosoft Azure FunctionsIBM Cloud FunctionsAliyun Function ComputeTencent Cloud SCFHuawei Cloud Fun
4、ctionGraphKnative是什么 Knative 是谷歌发起的基于K8S平台的Serverless 开源项目,致力将Serverless标准化 项目地址:https:/ 当前版本:v0.10.0 当前发展情况:55+企业贡献者 450个人贡献者 9个工作组 6K Pull Requests/monthKnative在K8S生态中的定位Severless服务治理容器编排Container RuntimeKubernetes负载均衡、服务发现、扩缩容、运维、部署ContainersIstio动态路由、熔断限流、调用链跟踪 Knative无状态服务编排、事件驱动、构建部署FunctionsA
5、ppsWhy KnativeKubernetes是当前最流行的容器管理平台Resource:Container,Pod,ReplicSet,Deployment,StatefulSets,DaemonSet,Job/Cronjob,Service,Ingress,ConfigMap,Secret,PV/PVCTools&Other:Helm,Istio,CI/CD,EFK,Promethuse&GrafanaKubernetes的目标用户事实上并不是业务开发者对于业务开发者来说,K8S平台并不是一个好的抽象对于Devops来说,K8S是构建PaaS最好的平台Knative是为开发者准备的Ser
6、verless平台抽象复杂的细节让开发者关注在业务本身(Service-based,Event-driven)解决无聊却困难的构建,部署,服务治理步骤开放和可移植(Open&portable)云原生平台三个最佳实践 服务的构建和部署实现高度自动化 服务的编排要实现计算资源弹性化 事件驱动基础设施标准化Knative的总体设计设计原则:标准化,可替代,松散组合,不绑定Knative Serving1.功能定义:Kubernetes based,scale to zero,request driven compute2.支持的工作负载FunctionMicroserviceTraditional