Java云原生  -  新一代分布式中间件架构

可出售版权

纸质书

意向价格

暂无估价

作品状态

未完结

作品概述

分类:科技    标签:互联网

      在如火如荼的云时代,互联网的架构也在大刀阔斧的进行着演进。本书以Java的角度阐述从分布式中间件到基于云原生的分布式中间件架构的技术栈以及最佳实践。

      云原生(Cloud Native)最初是由 Pivotal公司 的Matt Stine于2013年提出。Pivotal公司先后开源了云原生的Java开发框架Spring Boot和Spring Cloud。随后Google在2015年成立了CNCF(Cloud Native Computing Foundation),使得云原生受到越来越广泛的关注。云原生的本质是一种模式,它要求云原生应用满足可用性和伸缩性,具备自动化部署和管理的能力,可随处运行,并且能够通过持续集成、持续交付工具提升研发、测试与发布的效率。

试读内容

      分布式应用架构;而企业级架构由于功能复杂,而且并未出现明显的系统瓶颈,因而并未跟进。后端开发由单一技术栈渐渐区分开来,越来越明显的划分为企业级开发和互联网开发。企业级开发和互联网开发的差别不仅在于技术栈,也在于工作模式,对质量的追求与对效率的提升成为了两个阵营的分水岭。

       随着智能手机出现以及4G信号的普及,互联网应用由PC端迅速转向更加自由的移动端,由于携带方便且便于定位,在出行、网购、付款等方面彻底了改变的现代人的生活方式。在技术方面,为了应对更加巨大的规模,单纯的分布式系统已经难于驾驭。技术圈也因此契机开启了一个概念爆发的时代,SOA、DevOps、容器、CI\CD、微服务、Service Mesh等概念层出不穷,而Docker、Kubernetes、Mesos、Spring Cloud、gRPC等一系列产品的出现,标志着云时代真正的到来。

      去理解什么是云原生,我们首先需要理解什么是云。有人认为云的同义词是可公开所有信息的互联网,这是不正确的。云一般指的是一个资源提供的平台,云计算的本质是按需分配资源和弹性计算。顾名思义,云原生应用,即是指专门为在云平台部署和运行而设计的应用。云原生应用并非完全颠覆传统的应用设计模式,而是将传统应用模式提升和修改,让其更加适合在云平台上运行。在云计算越来越流行的今天,云原生成为了一个必然的结果导向。云原生存在的意义是解放开发和运维,而不是让他们的工作变得更加复杂和繁重。
其实,大部分传统应用即便不做任何改动,也可以在基于Linux操作系统内核的云平台部署和运行,但是仅以能够部署和运行为主要目的,将云主机当做物理机一样使用,是无法充分的利用云平台所带来的能力的。让应用能够利用云平台实现资源的按需使用和弹性伸缩,是云原生应用重点关注的地方。云原生还关注规模,分布式系统应该具备有扩展到成千上万台节点的能力,并且这些节点具有多租户和自愈能力。

      云原生使得应用本身具有“柔性”,即面对强大的压力的缓解能力和在压力过后的恢复能力。正所谓刚而易折,柔则长存。一个单机处理能力很强的“刚性”系统,一旦崩溃,则很难恢复;而通过云原生实现的关注与分布式可横向扩展的“柔性”系统,是不太容易全线覆灭的。

      云原生的本质是一种模式,它要求云原生应用满足可用性和伸缩性,具备自动化部署和管理的能力,可随处运行,并且能够通过持续集成、持续交付工具提升研发、测试与发布的效率。

      在云原生体系中,有下面两组近义词用于形容应用,无状态(stateless)、牲畜(cattle)、无名(nameless)、可丢弃(disposable),都用于表示应用并未采用本地内存和磁盘的方式存储状态和日志,因此可以将应用随意部署到另一个全新的环境中,在本书中我们统一称之为无状态应用;有状态(stateful)、宠物(pet)、有名(having name)、不可丢弃(non-disposable),都用于表示应用将状态依赖于本地运行环境,因此无法将应用随意部署至其他环境,该应用是不能够随意扩展的,在本书中我们统一称之为有状态应用。

2018-02-01 11:43:47

所有评论(1 条)

  • xxuhan 2018-05-19 12:55:55

    很有意义的题目!建议提供目录、页码、插图和作者简介和出书背景介绍等信息,以便可以据之产生对本书价值的较全面认知。这个,是我作为一个老编辑的建言。

架构张亮

作者自述: 张亮,某知名电商公司架构部负责人