复杂业务环境中的前端架构设计

简介: 在云栖社区举办的云栖计算之旅第3期——前端专场沙龙中,阿里云前端开发工程师城池带来了《复杂业务环境中的前端架构设计》的分享。分享中,他主要介绍前端技术发展历程和阿里云在设计业务支撑架构方面的实践经验。

在2016年12月23日由云栖社区举办的云栖计算之旅第3期——前端专场沙龙中,阿里云前端开发工程师城池带来了《复杂业务环境中的前端架构设计》的分享。分享中,他主要介绍前端技术发展历程和阿里云在设计业务支撑架构方面的实践经验。


以下内容根据现场分享和幻灯片整理而成。


前端发展历程

前端发展历程可以概括为石器时代、铁器时代和工业革命三个阶段。

石器时代

12b81b5a83456a7953c36bf3e4f6012e33e2ac47 

在石器时代,前端开发者主要工作是写一些简单的HTML代码、JS代码以及切图;那时,很多公司认为前端岗位并不是很重要。

铁器时代


6bbd1c2037d444c736e1e5c2bbac82d9b2dc25da 

在铁器时代,各种前端框架层出不穷,如jQuery、PhoneGap、prototype等。在该时代,开发不同项目时,开发环境比较糟糕,并且不存在通用的解决办法。

工业时代

262e499a4ee5df3028476f8867294138dfac5b1f 

工业时代是前端百花齐放的时代,涌现了像React、React Native、Node等解决方案。在工程环境上相比前一个时代有了巨大的飞跃。

 

我们是如何做业务支撑的技术架构——业务范畴

 

ef5327c3b0906de0c2850035a25163e995f19722 

在前端方面,阿里云针对不同的业务有着不同的解决方案。目前,前端所涉及的业务范畴包括:阿里云官网、市场、万网、云栖、移动等;支撑这些业务所使用的技术体系如涵盖Rect/NG、Webpack、Weex/RN、Node。

39b27dd4d3aea496549982dec41631210b323712 

上图是业务支撑技术架构的DBL实践,上层是TMS发布系统、Cabinet、Hypercube和万花筒。整个技术架构中的重点部分是DBL-cli部分,它是一系列可视化命令操作的组合:Project、Light、Cabinet、Hypercube,其中Project用于处理与后端关联较为紧密的业务;Light主要用于静态页面模块化的发布;Cabinet用于活动页面、个性化页面的开发;Hypercube提供了可视化的方式用于管理状态的转移。下面来具体看一下每个模块的组成。

d76fd0cac73f8d4c264735af363dc74fda12468c 

Project包括Init、Dev和Publish。在初始化时,会根据用户的选项进行相关项目(移动项目、React项目)的进行初始化;并且在本地调试时会起相应的端口,如3001、8001端口等。

274274dfe6c60fc8f58ce013437f4e4ae841b17a 

Light部分提供了GUI界面,并且提供了Schema语法去描述该模块所需的数据;Schema发布之后,会有相关的系统将其翻译成相关数据,便于运营人员直观地填写数据。

Hypercube提供了可视化的方式用于管理状态的转移,十分简便。通过Hypercube这种方式将不同的状态作为模块,不同的状态之间可以共享相关代码,进而节省了极大的人力。其实现过程是将不同的状态注册成插件,并且初始化,当需要调用时启用即可。


未来展望

未来,前端的发展应该朝向以下几个方面:

第一,云端构建。目前,不同的业务有着不同的配置,整个行业中不存在统一的解决方案;希望能够通过云端配置的方式建立一个统一的解决方案,一劳永逸。
第二, AR/VR。希望未来前端设计能够同AR/VR结合起来,展现方式更加多元化。
第三, 基于Docker的持续集成。未来希望不同开发者能够将各自的架构方案以Docker这类服务化方式输出,并且以ISV这类方式输出到阿里云市场中,建立完整的前端生态。
第四, 监控。未来当线上应用运行出现错误时,希望能够通过日志、短信、邮件等方式通知到责任人,避免重要损失。
相关文章
|
6月前
|
关系型数据库 MySQL Linux
Linux环境下LNMP架构实战案例
Linux环境下LNMP架构实战案例
|
8月前
|
关系型数据库 MySQL 应用服务中间件
Linux巩固篇020-Linux LNMP 架构部署动态网站环境
纸上得来终觉浅,绝知此事要躬行
133 0
|
12月前
|
传感器 存储 安全
IFIT2022-智能城市环境中的医疗物联网:基于量子同态加密的医疗成像架构
随着医疗互联网的不断壮大,越来越多的数据在医疗互联网中生成,保护医疗数据的隐私性与安全性越来越重要。量子计算作为能够高效破解基于质因数分解的经典密码技术备受瞩目,因此未来一定是以量子技术为安全基础的高性能计算时代。现正处于经典计算到量子计算的过渡阶段,该阶段下如何将经典算法与量子算法进行有机结合进而提高效率与安全性一直是一个开放型的课题。本文基于上述背景,提出了一个基于量子同态加密的安全云框架,该框架将量子计算与同态加密结合从而构建了一个安全且高效的云环境。该系统基于量子特性与同态密码的理论进行设计,它们的具体实现存在困难,希望能为以后研究者们的持续研究做出引导思路的贡献。
149 0
|
缓存 负载均衡 安全
利用DockerHub在Centos7.7环境下部署Nginx反向代理Gunicorn+Flask独立架构
本次使用Nginx反向代理Flask服务,为什么要加一层Nginx呢?因为Nginx可以直接处理静态文件请求而不用经过应用服务器,避免占用宝贵的运算资源,并且可以缓存静态资源,使访问静态资源的速度有效提高。同时它可以吸收一些瞬时的高并发请求,让Nginx先保持住连接(缓存http请求),然后后端慢慢消化掉这些并发。当然了,最重要的一点就是Nginx可以提供负载均衡策略,这样我们的应用服务就可以横向扩展,分担压力了。
利用DockerHub在Centos7.7环境下部署Nginx反向代理Gunicorn+Flask独立架构
|
关系型数据库 MySQL Linux
Mycat分布式数据库架构解决方案--搭建MySQL读写分离环境--一主多从
Mycat分布式数据库架构解决方案--搭建MySQL读写分离环境--一主多从
218 0
Mycat分布式数据库架构解决方案--搭建MySQL读写分离环境--一主多从
|
人工智能 弹性计算 运维
云原生环境下基于 Serverless 架构的创新应用|学习笔记
快速学习云原生环境下基于 Serverless 架构的创新应用
203 0
云原生环境下基于 Serverless 架构的创新应用|学习笔记
|
存储 数据采集 SQL
环境篇之项目架构|学习笔记
快速学习环境篇之项目架构
59 0
环境篇之项目架构|学习笔记
|
Oracle Java 关系型数据库
ARM架构下的Docker环境,OpenJDK官方没有8版本镜像,如何完美解决?
ARM处理器环境下,想把Java应用运行在Docker环境,首先要找好基础镜像,如果您的Java应用是基于JDK8版本,就会面临找不到8版本JDK镜像的问题,本文就来解决此问题
791 0
ARM架构下的Docker环境,OpenJDK官方没有8版本镜像,如何完美解决?
|
机器学习/深度学习 人工智能 并行计算
GPU架构及异构计算环境安装配置
GPU架构及异构计算环境安装配置
150 0
GPU架构及异构计算环境安装配置
|
SQL 消息中间件 存储
湖仓一体电商项目背景与架构介绍及基础环境准备
湖仓一体实时电商项目是基于某宝商城电商项目的电商数据分析平台,本项目在技术方面涉及大数据技术组件搭建,湖仓一体分层数仓设计、实时到离线数据指标分析及数据大屏可视化,项目所用到的技术组件都从基础搭建开始,目的在于湖仓一体架构中数据仓库与数据湖融合打通,实现企业级项目离线与实时数据指标分析。在业务方面目前暂时涉及到会员主题与商品主题,分析指标有用户实时登录信息分析、实时浏览 pv/uv 分析、实时商品浏览信息分析、用户积分指标分析,后续还会继续增加业务指标和完善架构设计。
452 2