目前我们团队小程序是使用 Taro 跨端方案 React 框架进行开发,基于现有样式方案,在编译打包后会产生大量的样式代码冗余,在项目编译后的产物中占有较大比例。
目前字节 Android 的一些超大型项目均从原来的多仓二进制的研发模式切换到了 Monorepo 全源码,并在研发效能方面取得了较大的收益。关于 Monorepo 全源码模式下的一些技术挑战及解决方案后续会有文章单独阐述。在全源码改造的过程中,作为 build 方向的基建团队,我们也不断克服了很多 Gradle 生态的问题与挑战,对构建系统方面有了更进一步的理解。 提到超大型仓库的 Monorepo,就不得不提到 Bazel 构建系统。Google 内部使用 Bazel 作为超大仓(TB 级别)的构建系统,足以证明 Bazel 构建系统优异的性能表现。目前字节内服务端、iOS 端均采用 Bazel 作为构建系统来演进 Monorepo,业界关于 Bazel 的原理文章也很多,但大部分都围绕在工程改造方面或者在单一阐述 Bazel 的设计。
本文主要讲述企业微信大规模组织架构(后文简称为大架构)的性能优化过程。分成两部分讲述,第一部分是短线迭代的优化,主要是并发性能的优化。第二部分是长线迭代的优化,主要是从业务模式上做了根本性优化。
随着云计算需求愈发多样且复杂,定制化程度日益加深。在这种大背景下,硬件供应商已经在客户端计算市场,引入了平衡功耗与性能的异构计算架构,在 CPU 体系结构中,为人津津乐道的是 ARM 指令集设计下的大小核架构。下面我们跟着腾讯云工程师的分享,详细了解 Hybrid 架构是怎么诞生的吧。欢迎围观~
微服务是一个广泛使用的应用架构,而如何使得微服务应用云原生化却是近些年一直在演进的课题。国内外云厂商对云原生概念的诠释大同小异,基本都会遵循 CNCF 基金会的定义: 云原生技术有利于各组织在公有云、私有云和混合云等新型动态环境中,构建和运行可弹性扩展的应用。云原生的代表技术包括容器、服务网格、微服务、不可变基础设施和声明式 API。 这些技术能够构建容错性好、易于管理和便于观察的松耦合系统。结合可靠的自动化手段,云原生技术使工程师能够轻松地对系统作出频繁和可预测的重大变更。 弹性可扩展,是企业选择上云的一个重要原因。它可以为企业节省大量成本,同时保障服务稳定性。我们有个电商客户,平时只有 200 多个服务节点,但在大促时轻松扩容到上千个节点。这个扩容动作通过平台一键完成,只需要秒级的时间。操作之简单、时间之短是在上云之前是不可想象的,那些复杂漫长的硬件采购、环境搭建和服务部署流程被自动化完成。
最近一则IT行业的新闻引起了广泛传播,标题非常引人注目:“从微服务转为单体架构,成本降低 90%”。 新闻报道了亚马逊Prime Video团队的案例,他们通过将一个监控系统从基于AWS Lambda的无服务器架构迁移到传统的单体架构,大幅度降低了基础设施成本。