容器和云原生平台使企业能够实现自动化应用部署,从而带来巨大的业务收益。但是,这些新部署的云环境与传统环境一样,容易受到黑客和内部人员的攻击和利用。勒索软件、加密货币挖矿、数据窃取和服务中断的攻击持续发生在针对基于容器的云原生环境之中。由于云平台安全缺陷导致频繁发生的重大网络安全事故,使得云平台下的安全测试显得尤为重要。
WebAssembly(也称为 Wasm)以其可嵌入和隔离的执行环境而成为一种流行的便携式二进制指令格式,用于客户端和服务器应用程序。将 WebAssembly 视为一种小型、快速、高效且非常安全的基于堆栈的虚拟机,专门用于执行可移植的字节码,不在乎它运行在哪个 CPU 或操作系统上。WebAssembly 最初是为 Web 浏览器设计的,用于成为函数的轻量级、快速、安全和多语言容器,但它不再仅限于 Web。 在 Web 上,WebAssembly 使用浏览器提供的现有 API。WebAssembly 系统接口(WASI)的创建填补了 WebAssembly 和运行在浏览器外部的系统之间的空白。这使非浏览器系统能够利用 WebAssembly 的可移植性,使 WASI 成为在分发时具有可移植性和在运行负载时具有隔离性的良好选择。
一线技术人每天都面临写需求、改缺陷、查工单,有时候不妨跳出来以一个旁观者的身份看一看自己。我们面临的业务是变化的,但做事的方法是有共性的,如何沉淀这些共性的做事方法才是做业务需求带来的最大成长。
随着微服务技术的快速发展,其在各个领域都形成了一系列事实标准,在 Kubernetes 和容器技术加持下,云原生微服务已经成为了主流解决方案。而 Go 语言作为云原生领域最受欢迎的开发语言,正被越来越多的企业作为微服务开发的首选语言,其中比较流行的包括 Go-micro、Go-zero、Dubbo-go 等。作为 Dubbo 微服务体系中多语言实现的一员,在 2022 年 Dubbo-go 以微服务领跑者的角色积极拥抱云原生标准,探索了 Proxyless Mesh 形态,配合适配 Pixiu 云原生网关,形成了完善的 Dubbo-go 微服务生态矩阵。 以 Dubbo-go 为中心的微服务体系在多个知名企业中成功落地和实践,框架的稳定性在实际场景下经受住了考验。截止今年已有 60+ 家企业在我们的用户列表中登记,其中较为典型案例请参考文章《小米电商 Apache Dubbo-go 微服务实践》。小米电商选用了 Dubbo-go + Nacos + sidecar + etcd + mirpc 为核心的微服务体系
众所周知,堆 crash dump 是最难分析的 dump 类型之一。此类 crash 最大的问题在于,造成错误的代码无法在发生堆破坏时被发现。线上采集到的 minidump,仅能提供十分有限的信息。当调试工具报告了堆破坏、堆内存访问违例后,即便是有经验的开发人员也会觉得头疼。剪映专业版及其依赖的音视频编辑 SDK、特效模块均采用 MD 的方式链接标准库,这意味着任何一个模块出现了堆损坏都会互相影响。从 crash 的位置回溯堆破坏的源头,是一个非常有挑战性的工作。剪映业务模块较常见的是Use-after-free,而音视频编辑 SDK和特效模块这类底层算法特效模块更多的是Buffer-overflow,不同团队模块间的堆错误互相影响,导致问题难以定位。