为什么说Kubernetes是新的应用服务器?
EFK 技术栈的组成如下所示:
5. 监控 尽管日志和监控看上去解决的是相同的问题,但是它们之间是不同的。监控是观察、检查、通常还有告警以及记录,而日志则只有记录。 Prometheus 是一个开源的监控系统,它包含了时序数据库。它可以用来存储和查询指标、告警,并使用可视化的方式查看系统内部的运行状况。Prometheus 可能是监控 Kubernetes 集群方面最流行的可选方案。 6. 构建和部署管道 对于你的应用来说,CI/CD(持续集成 / 持续交付)并不是“必备”的要求。但是,CI/CD 通常被认为是成功软件开发和 DevOps 实践的支柱。如果没有经过 CI/CD 管道的话,软件不应该发布到生产环境中。Jez Humble 和 David Farley 合著的《持续交付:发布可靠软件的系统方法》中是这样描述 CD 的:“持续交付能够将各种类型的变更发布到生产环境中,包括新特性、配置变化、缺陷修正以及体验性的功能,或者说以可持续的方式将这些变更安全且快速地交到用户的手里”。 7. 适应性 Kubernetes 为集群本身提供了适应性(resilience)方案,它还提供了 PersistentVolumes 来支持卷(volume)的副本,从而帮助应用实现适应性。Kubernetes 的 ReplicationControllers/ 部署能够确保指定数量的 pod 副本在整个集群中始终正常运行,它会自动处理任何可能出现的节点故障。 结合适应性,容错能够作为一种有效的方式来处理用户对于可靠性和可用性的关切。运行在 Kubernetes 上的应用还可以通过 Istio 的重试规则、断路器和池弹射(pool ejection,即移除掉出现故障的容器——译注)来实现容错。 8. 认证 在 Kubernetes 中,认证可以通过 Istio 的 mutual TLS 认证来实现,它致力于增强微服务及其通信的安全性,而无需服务代码的变更。它会负责: 为每个服务提供一个代表其角色的强标识(identity),从而允许它能够跨集群和云进行互操作; 保护服务与服务之间的通信,以及终端用户与服务之间的通信; 提供 key 管理系统,自动化 key 和证书生成、分发、轮换和撤销。 另外,值得一提的是,我们还可以在 Kubernetes/OpenShift 集群中运行 Keycloak 以提供认证和授权。Keycloak 是 Red Hat Single Sign-on 的上游产品。 9. 跟踪 基于 Istio 的应用可以配置为使用 Zipkin 或 Jaeger 收集跟踪的 span。不管使用什么语言、框架或平台来构建应用,Istio 都能支持分布式跟踪。 应用服务器会消亡吗? 通过这些功能,你就能意识到 Kubernetes + OpenShift + Istio 确实能够增强你的应用,并且提供了一些特性,这些特性以前都是由应用服务器或者像 Netflix OSS 这样的框架来负责的。这是否意味着应用服务器将会消亡呢? 在这个新的容器世界中,应用服务器正在变得越来越像框架。软件开发的演化很自然会导致应用服务器的演化。这种演化的一个例子就是 Eclipse MicroProfile 规范以及 WildFly Swarm 应用服务器,它为开发人员提供了各种特性,比如容错、配置、跟踪、REST(客户端和服务端)等等。WildFly Swarm 和 MicroProfile 规范的设计是非常轻量级的,WildFly Swarm 并不包含完整 Java 企业级应用服务器的各种各样的组件。相反,它关注微服务,只保留了将应用按照简单可执行的“.jar”文件进行构建和运行的功能。在该博客中,你可以阅读到关于 MicroProfile 的更多信息。 (编辑:成都站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |