为什么说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 的更多信息。 其它,Java 应用还包罗 Servlet 引擎、数据库池、依靠注入、事宜、动静等特征。虽然,框架也许会提供这些特征,,可是应用处事器必必要具备在任何情形下构建、运行、陈设和打点企业级应用所需的各类成果,不管它是不是在容器中运行。现实上,应用处事器可以在任那里所执行,譬喻,在裸机上、在像 Red Hat Virtualization 这样的假造化平台上、在像 Red Hat OpenStack 平台 这样的私有云情形中以及在像 Microsoft Azure 或 Amazon Web Services 这样的公有云情形中。 好的应用处事器要确保它所提供的 API 和详细实现之间的同等性。开拓职员可以确信假如他的营业逻辑必要特定的成果,他所陈设的逻辑是正常运行的,由于应用处事器开拓职员(以及预先界说的尺度)可以或许担保它们之间可以或许协同事变和协同演化。其它,好的应用处事器还要认真最大化吞吐量和可扩展性,由于它要处理赏罚来自用户的全部哀求;镌汰耽误并晋升负载手段,它有助于晋升应用的可处理性;轻量级的资源占用,最小化硬件资源和本钱;最后,还要足够安详,可以或许防御全部的安详裂痕。对付 Java 开拓职员来说,Red Hat 提供了 Red Hat JBoss 企业级应用平台,满意了当代、模块化应用处事器的全部需求。 结论 容器镜像已经成为分发云原生应用的尺度打包名目。尽量容器自己并没有为应用提供任何真正的营业上风,可是 Kubernetes 及其相干的项目,如 OpenShift 和 Istio,提供了非成果性的需求,而这些需求已往曾是应用处事器的成果的一部门。 开拓职员已往所行使的大大都非成果性需求,来历于应用处事器可能像 Netflix OSS 这样的库,这些需求是与特定说话绑定的,好比 Java。可是,假如开拓职员选择行使 Kubernetes + OpenShift + Istio 来满意这些需求的话,它们是与任何特定说话都没有关联的,这样的话就能勉励开拓职员针对每个行使场景选择最佳的技能 / 说话。 最后,在软件开拓规模,应用处事器依然有它的位置。可是,它们变得更像是特定说话的框架,在开拓应用的时辰,这是很轻盈的,由于它们包括了大量已经编写停当且颠末测试的成果。 转移到容器、Kubernetes 和微处事架构时,最棒的工作之一就是不必为应用选择单一的应用处事器、框架、架构气魄威风凛凛乃至编程说话。你可以很轻易地陈设一个含有 JBoss EAP 的容器,让 JBoss EAP 运行已有的 Java EE 应用,其他的容器则也许会包括行使 Wildfly Swarm 编写的微处事可能行使 Eclipse Vert.x 编写的回响式措施。这些容器都可以通过 Kubernetes 举办打点。假如想相识这些观念怎样现实运行,参考 Red Hat OpenShift 应用运行时。 你可以说 Kubernetes/OpenShift 是新的 Linux,乃至可以说“Kubernetes 是新的应用处事器”。但现实上,应用处事器 / 运行时 +OpenShift/Kubernetes + Istio 已经成为了云原平生台的究竟尺度。 关于作者 (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |