带你读《2022技术人的百宝黑皮书》——跨桌面端Web容器演进(4)

简介: 带你读《2022技术人的百宝黑皮书》——跨桌面端Web容器演进(4)

带你读《2022技术人的百宝黑皮书》——跨桌面端Web容器演进(3)https://developer.aliyun.com/article/1340343?groupCode=taobaotech

容器的功能增强和稳定性保障

Render分组优化

 

image.png在Browser进程隔离完成后,我们对Render进程也做了分组优化。在之前的Chromiun的多进程图中,我们知道Chromium会根据页面的不同,创建多个Render进程。Chromium的Render进程分组策略是由站点的Origin决定的,Origin是url的scheme和host的组合,不同的Origin对应Siteinstance不同,进而对应的Render进程就会不同。但这种策略在千牛中却显的不是很合适。因为多个Render进程势必会照成一些不必要的开销和内存的浪费。为此我们设计了一种新的策略,为Render分组,在创建WebView的时候即指定RenderID,       在此Webview上的的页面和子iframe都会在RenderID对应的Render进程中运行。基于这个特性,我们将千牛聊天记录页面放到一个 专属的Render进程中,千牛的二方页面放在一个独立的Render进程,还有三方页面,插件页面,小程序页面等都 进行了分组。这样做既节省内存开销,同时保证了核心页面的稳定性,还大大额方便了问题定位和调试。

Render分组

 

 

网络收口,打造安全容器

 

近年来,黑灰产日益猖獗,对我们的容器安全性带来了一定的挑战。因为H5过于开放的模式,导致我们的数据被泄露。为此我们决定管控我们端侧的容器的所有网络请求,包括WebSocketXMLhttpReqest。而原生的Chromi-    um内核并未开放拦截的卡口,所以CEF也并未支持WebSocket的拦截,仅支持网络资源的请求的拦截。为此我们   打算通过定制内核,提供统一的网络收口,并联合白名单机制,打造一个安全的web跨端容器。并且为了支持二次开放等多样化的拦截需求,我们还支持ifame级别的拦截,使用方可以根据iframe的id来做区分。

image.png

 

 

 

DNS解析拦截,支持AMDC


网络拦截的内部流程

 

 

image.pngDNS在互联网中的一个很重要的服务,dns解析出现异常,任务服务再强大也无法访问。历史上也出现了很多因为DNS异常导致的故障。为了重点保障我们的核心页面,我们希望能够在DNS异常的情况下,仍然能够证确的访问  目标。为此我们拦截的内核的DNS解析流程,通过AMDC的动态配置,保障我们的核心域名稳定。通过引入AMDC HTTPDNS方案 整体千牛mtop网关成功率从99.6%提升到99.8%

DNS解析拦截流程

 

 

HTML Node节点打印功能

 

千牛打单可谓是千牛商家非常常用的功能了,因为发货单或者快递单的特殊性,客户往往不需要打印整个页面。开发者需要打印当前页面的一个html  node节点,比如某个iframe,或者某个div。但原生的chromium支持整页打印的。我们需要为小程序提供node节点打印,为此我们深入定制了内核打印接口。

image.png

 

 

CefClient内的打印流程

 

 

带你读《2022技术人的百宝黑皮书》——跨桌面端Web容器演进(5)https://developer.aliyun.com/article/1340341?groupCode=taobaotech

相关文章
|
3天前
|
前端开发 安全 数据库
Web架构&前后端分离站&Docker容器站&集成软件站&建站分配
Web架构&前后端分离站&Docker容器站&集成软件站&建站分配
|
9天前
|
资源调度 JavaScript 前端开发
IM跨平台技术学习(十一):环信基于Electron打包Web IM桌面端的技术实践
这次借着论证 Web IM端 SDK 是否可以在 Electron 生成的桌面端正常稳定使用,我决定把官方新推出的 webim-vue3-demo,打包到桌面端,并记录了这次验证的过程以及所遇到的问题和解决方法。
19 2
|
10天前
|
SQL 安全 数据库
如何构建一个安全的Web应用:技术与策略的全面指南
【6月更文挑战第12天】构建安全Web应用的全面指南:了解SQL注入、XSS等威胁,采用输入验证、安全编程语言,配置安全服务器和数据库,使用HTTPS,实施会话管理、访问控制,正确处理错误和日志,定期进行安全审计和漏洞扫描。确保用户数据和应用安全。
|
1天前
|
存储 运维 监控
容器化技术在现代运维中的应用与挑战
【6月更文挑战第20天】随着技术的迭代和云计算的普及,容器化技术已经成为现代运维不可或缺的一部分。本文将深入探讨容器化技术的核心优势、面临的主要挑战以及在企业运维中的实际应用案例,旨在为运维人员提供容器化部署和维护的实用指南。
|
2天前
|
存储 安全 Java
在Spring Boot Web应用中,会话技术和会话跟踪
在Spring Boot Web应用中,会话技术和会话跟踪
14 2
|
13天前
|
缓存 前端开发 数据库
构建高性能Web应用的关键技术
本文将介绍构建高性能Web应用所需的关键技术。我们将探讨前端、后端、数据库等多个方面的技术,并提供实用的建议,帮助开发者优化应用性能并提升用户体验。
|
10天前
|
运维 Ubuntu Docker
深入理解容器化技术:Docker的应用与实践
在这个数字化转型迅速推进的时代,容器化技术为软件开发和部署提供了新的路径。本文将深入探讨Docker技术的基本原理、应用场景以及实际操作,旨在帮助读者全面理解并掌握这一关键技术。
68 2
|
11天前
|
监控 虚拟化 Docker
【面试宝藏】容器技术详解其二
了解Docker和容器化技术的关键概念:Docker Image是运行容器的基础,由多个只读Layer组成;虚拟化技术在物理硬件上创建虚拟资源;Docker Swarm是集群管理和编排工具;容器比虚拟机轻量级,启动快;Dockerfile中的ONBUILD用于子镜像构建时执行命令;在非Linux系统上,Docker依赖虚拟化技术运行;容器化利用命名空间和Cgroups提供隔离;容器化启动快、扩展性好,但隔离性较弱;虚拟化安全、隔离性强,但资源开销大。通过多阶段构建、环境变量和卷适应不同环境。Docker Compose快速启动服务,依赖服务通过健康检查自我调整。
25 2
|
11天前
|
运维 Devops 持续交付
【面试宝藏】容器技术详解
DevOps是开发(Development)与运维(Operations)的结合,旨在通过自动化流程和持续交付(CI/CD),实现快速、高效的应用程序开发、测试和发布。DevOps的主要需求和好处包括:
23 2
|
11天前
|
运维 Kubernetes 持续交付
Docker与Kubernetes:容器化技术的黄金搭档
【6月更文挑战第10天】Docker和Kubernetes是容器化技术的黄金组合,Docker提供轻量级、可移植的容器引擎,简化应用部署,而Kubernetes作为容器编排系统,实现自动化部署、扩展和管理,确保高可用性和可扩展性。两者的协作使得容器化应用更高效、可靠,共同推动软件开发和运维的创新。