凤凰架构

一、服务架构演进史

架构不是被发明出来的,而是持续演进的结果。

1、原始分布式时代,1970~1980年。

2、单体系统时代。随着软件架构演进,构建可靠系统的观念从“追求尽量不要出错”到正视“出错是必然”的转变,才是微服务架构得以挑战并逐步取代单体架构的底气所在。

3、SOA时代,1994年提出,2007年发展。

4、微服务时代,2005年提出,2014年发展。现代微服务的概念:微服务是一个通过多个小型服务组合来构建单个应用的架构风格,这些服务围绕业务能力而非特定的技术标准来构建。各个服务可以采用不同的编程语言、不同的数据存储技术,运行在不同的进程之中。服务采用轻量级的通信机制和自动化的部署机制实现通信与运维。

5、后微服务架构。2017年是容器生态发展具有里程碑的一年。从软件层面独立应对分布式架构所带来的各种问题,发展到应用代码于基础设施软、硬一体,合力应对架构问题,这个新的时代现在常被媒体冠以云原生Kubernates成为容器战争胜利者标志着后微服务时代的开启。服务网格Service Mesh在2018年才火起来。

6、无服务时代,2012年提出Serverless,2014年Amazon发布Lambda商业化无服务计算平台。如果说微服务架构是分布式系统当前所能做到的极致,那无服务架构也许是不分布式的云端系统这条路的起点。

十一、虚拟化容器

设计容器最初的目的不是部署软件,而是隔离计算机中的各类资源。

容器的起点可以追溯到1979年UNIX 7系统中提供的chroot命令。UNIX的设计哲学,一切资源都可以视为文件,一切处理都可以视为对文件的操作,理论上,只要隔离了文件系统,一切资源都应该被自动隔离才对。以chroot为代表的文件隔离,是容器崛起之路的起点。

2002年,Linux Kenrel 2.4.19引入了一种全新的隔离机制:Linux名称空间(Linux Namespace)。最初依然只是为了隔离文件系统,而非为了容器化实现。从2006年起,Linux内核陆续增加了UTS、IPC等名称空间的隔离,直到目前最新版本Linux Kenrel 5.6为止,Linux名称空间支持了八种资源的隔离。

Linux控制群组(Control Groups,简写cgroups),用于隔离或者分配并限制某个进程组能够使用的资源。cgroups最早由Google在2006年发起,当时取名进程容器,2007年更名为cgroups。在2008年合并到2.6.24版内核对外正式发布。

为了降低使用namespaces、cgroups的门槛,2008年发布了Linux容器(LinuxX Container,LXC)的系统级虚拟化功能。

2013年Docker宣布开源,成为容器发展历史上里程碑式的发明,它的容器化能力直接来源于LXC。

2015年7月,Kubernetes发布第一个正式版本1.0,同时Google与Linux共同构建CNCF,并将Kubernetes托管到CNCF。

This chapter requires login to view full content. You are viewing a preview.

Login to View Full Content

Course Curriculum

3

框架与 I/O:Spring、Netty 与 Web 容器

理解 Spring Boot 自动装配、AOP 与事务原理,掌握 Netty Reactor 模型及 Tomcat 连接处理机制,构建高内聚、易扩展的应用服务层。
4

高性能中间件:消息、缓存与存储

熟练运用 MySQL 索引/事务、Redis 缓存策略、Kafka/RocketMQ 消息可靠性,以及 ZooKeeper 分布式协调,搭建稳定、解耦的分布式数据底座。
6

云原生:容器化、可观测性与工程效能

通过 Docker/K8s 实现弹性部署,集成 Metrics/Logs/Traces 构建可观测体系,推动 DevOps 与自动化,让架构在云上持续交付与进化。