现代web技术全景图
在互联网发展的早期(上世纪80年代末90年代初),后端直接生成页面内容,没有前端展示,甚至都没有浏览器。如今,web技术发生了翻天覆地的变化,各种开发框架,编程语言,开发模式。但是,web技术所有的演进都是围绕前端、后端、前后端交互展开的。
上图是现代web技术的全景图。client端有浏览器,移动APP、微信小程序,web server上有基于vue/react的前端代码,如html、js、css等,也有基于后端的开发框架apache/tomcat的处理程序,还包括数据库。同时,web server还会去调用远端服务。
上图显示了现在web应用的一个基本框架,相比web1.0时代,客户端软件平台多样化;服务器端代码微服务化,微服务复用及框架多样化;服务器主机虚拟化及服务器主机部署的分布式集群化等。
这里讲到的微服务是一种云原生架构方法,其中单个应用程序由许多松散耦合且可独立部署的较小组件或服务组成。是SOA(service-oriented architecture--面向服务)架构样式的一种变体,将单一应用程序划分为一组小的服务。每个服务运行在其独立的进程中,服务与服务间采用轻量级的通信机制互相沟通(通常是基于HTTP的RESTful API)。每个服务都围绕着具体业务进行构建,并且能够独立地部署到生产环境、类生产环境等。另外,应尽量避免统一的、集中式的服务管理机制,对具体的一个服务而言,应根据上下文,选择合适的语言、工具对其进行构建。