ucc

错误码如何设计才合理?

喜欢而已 提交于 2020-08-17 07:38:01
一 前言 在工作中,接触过不少外部接口,其中包括:支付宝,微信支付,微博开发平台,阿里云等等。每家公司错误码风格都不尽相同,有使用纯数字的,有使用纯英文的,也有使用字母和数字组合的。也接触过很多内部系统,错误码设计也不尽相同。 错误码的输出路径 面向日志输出 服务内传递,最终是输出到日志。 域内服务间,比如同时大麦电商之间的系统,最终目的是输出到日志。 面向外部传递 域内向域外 服务端传递到前端 OpenAPI 错误码 内部不同域之间 错误码使用场景 通过错误码配置监控大盘。 通过日志进行问题排查,快速定位问题。 后端服务之间错误码传递。 前端展示的错误提示/OpenAPI。 本文希望从错误码使用的不同场景讨论得到一个合理的错误码规约,得到一个面向日志错误码标准和一个面向外部传递的错误码标准。 PS:本文引用全部引自阿里巴巴《Java 开发手册》,下称《手册》。 二 什么是错误码 错误码要回答的最根本的问题是,谁的错?错在哪? 那么一个错误能表示出谁的错和错在哪里就是一个好的错误码吗?答案显然是否定的,这个标准太基础了。 好的错误码必须能够快速知晓错误来源。 好的错误码必须易于记忆和对比。 好的错误码必须能够脱离文档和系统平台达到线下轻量沟通的目的(这个要求比较高)。 引自《手册》- 异常日志-错误码 错误码的制定原则:快速溯源、简单易记、沟通标准化。 说明

Webpack 打包太慢?来试试 Bundleless

孤人 提交于 2020-08-17 05:21:05
一 引言 Webpack 最初是为了解决前端模块化以及使用 Node.Js 生态的问题而出现,在过去的 8 年时间里,Webpack 的能力越来越强大。 但因为多了打包构建这一层,随着项目的增长,打包构建速度越来越慢,每次启动都要等待几十秒甚至几分钟,然后启动一轮构建优化,随着项目的进一步增大,构建速度又会降低,陷入不断优化的循环。 在项目达到一定的规模时,基于 Bundle 的构建优化的收益变得越来越有限,无法实现质的提升。我们从另一个角度思考,webpack 之所以慢,主要的原因还是在于他将各个资源打包整合在一起形成 bundle,如果我们不需要 bundle 打包的过程,直接让浏览器去加载对应的资源,我们将有可能可以跳出这个循环,实现质的提升。 在 Bundleless 的架构下,我们不再需要构建一个完整的 bundle,同时在修改文件时,浏览器也只需要重新加载单个文件即可。由于没有了构建这一层我们将能够实现以下的目标: 极快的本地启动速度,只需要启动本地服务。 极快的代码编译速度,每次只需要处理单个文件。 项目开发构建的时间复杂度始终为 O(1),使得项目能够持续保持高效的构建。 更加简单的调试体验,不再强依赖 sourcemaps 即可实现稳定的单文件的 debug。 基于以上的可能性 Bundleless 将重新定义前端的本地开发,让我们重新找回前端在 10

Dubbo 迈出云原生重要一步

心不动则不痛 提交于 2020-08-17 04:25:42
作者 | 刘军(陆龟) Apache Dubbo PMC 概述 社区版本 Dubbo 从 2.7.5 版本开始,新引入了一种基于实例(应用)粒度的服务发现机制,这是我们为 Dubbo 适配云原生基础设施的一步重要探索。版本发布到现在已有近半年时间,经过这段时间的探索与总结,我们对这套机制的可行性与稳定性有了更全面、深入的认识;同时在 Dubbo 3.0 的规划也在全面进行中,如何让应用级服务发现成为未来下一代服务框架 Dubbo 3.0 的基础服务模型,解决云原生、规模化微服务集群扩容与可伸缩性问题,也已经成为我们当前工作的重点。 既然这套新机制如此重要,那它到底是怎么工作的呢?今天我们就来详细解读一下。在最开始的社区版本,我们给这个机制取了一个神秘的名字 - 服务自省,下文将进一步解释这个名字的由来,并引用服务自省代指这套应用级服务发现机制。 熟悉 Dubbo 开发者应该都知道,一直以来都是面向 RPC 方法去定义服务的,并且这也是 Dubbo 开发友好性、治理功能强的基础。既然如此,那我们为什么还要定义个应用粒度的服务发现机制呢?这个机制到底是怎么工作的?它与当前机制的区别是什么?它能给我们带来哪些好处那?对适配云原生、性能提升又有哪些帮助? 带着所有的这些问题,我们开始本文的讲解。 服务自省是什么? 首先,我们先来解释文章开篇提到的问题:

SpringCloud 应用在 Kubernetes 上的最佳实践 — 诊断(线上联调)

半世苍凉 提交于 2020-08-16 19:37:45
作者 | 纳海 阿里巴巴高级开发工程师 **导读:**上篇我们介绍了应用成功上云后,面对应用的管理,如何做可灰度的线上发布,那么当云上的应用行为不符合预期的时候,您会怎么处理呢?修改代码,打包,部署,然后查看日志?或者开远程调试端口远程调试? 相关文章推荐: 《SpringCloud 应用在 Kubernetes 上的最佳实践 —— 开发篇》 《SpringCloud 应用在 Kubernetes 上的最佳实践 — 部署篇(开发部署)》 《SpringCloud 应用在 Kubernetes 上的最佳实践 — 部署篇(工具部署)》 《SpringCloud 应用在 Kubernetes 上的最佳实践 — 线上发布(可灰度)》 前言 当云上的应用行为不符合预期的时候,您会怎么处理呢?修改代码,打包,部署,然后查看日志?或者开远程调试端口远程调试? 这些步骤都比较繁琐。现在 EDAS 提供了端云联调的工具,让您在本地就可以启动应用并且能跟云端服务联调。只需三个步骤,您就可以在本地获得跟云端服务联调的能力,下面我们一起来体验吧! 打开调试开关 默认情况下,EDAS 端云联调功能是关闭的,只有打开命名空间中的调试开关后,本地服务才能跟云端联调。您可以只对开发环境的命名空间开启端云联调,而对其他环境保持关闭,这样既方便本地开发,也保证其他环境服务稳定。 EDAS

SpringCloud 应用在 Kubernetes 上的最佳实践 — 部署篇(工具部署)

人走茶凉 提交于 2020-08-16 12:24:18
作者 | 孤弋 阿里云高级技术专家,负责 EDAS 的开发和用户体验优化工作。 导读 :上一篇文章 《SpringCloud 应用在 Kubernetes 上的最佳实践 — 部署篇(开发部署)》 我们介绍了从 IDE 插件内介绍了如何进行应用部署的方式,除此之外,目前 EDAS 还支持了额外的工具对其他场景进行覆盖,这一篇内容主要就是介绍 EDAS 上围绕部署的工具体系。 相关文章推荐: 《SpringCloud 应用在 Kubernetes 上的最佳实践 —— 开发篇》 《SpringCloud 应用在 Kubernetes 上的最佳实践 — 部署篇(开发部署)》 IDE 插件中进行部署 因为 IDE 是离开发人员的代码最近的工具,所以 IDE 插件中的部署能力也是专门为开发人员提供的部署工具,他的特点就是速度快、使用简单,同时也覆盖了 ECS 集群与 Kubernetes 集群中的 War/Jar 、以及自定义镜像的部署方式。具体使用方式,我们都已经整理成了官方文档,请在 EDAS 的官方帮助文档中,查看《使用 Cloud Toolkit 快速部署应用至 EDAS》章节。 不过对于线上的应用而言,如果随便一个开发人员都能进行随意的变更,这是一件很不安全的事情。EDAS 在命名空间设计的时候,也考虑到了这个问题,解决的办法就是 EDAS 上的命名空间

阿里云峰会 | 深化城市计算场景能力,为企业数智化建设提供助推力

那年仲夏 提交于 2020-08-16 07:13:44
在2020阿里云峰会上,阿里云边缘计算技术负责人杨敬宇表示:边缘计算将成为企业数智化进程中重要助推力,而构建城市计算是阿里云边缘计算的核心方向。在会上,杨敬宇还首次公开了智慧高速、云游戏、驾驶辅助等基于城市场景,阿里云边缘计算的最新实践。 受疫情影响,用户生活、工作习惯的改变、企业对于数字化的感知升华,所有的转变几乎在于一夜之间。用户在线化、业务数字化、数据智能化的转型三步部曲节奏全面提速,在此背景下,通信网络、新技术、算力成为了不可或缺的新基建。 杨敬宇表示:“过去的20年,大量数据是中心化生产、分散消费的,所以通常采用云、端二体协同架构。放眼未来20年,随着数智化的不断深入,企业对于算力、带宽的需求加大,对于延迟、成本要求变高,云、边、端三体协同的架构将为城市场景提供算力基础,边缘不再只承担管道和数据转发的功能,大量数据一定会在边缘生产、计算、加工、消费,以此获得更低的时延、更经济的成本和更智能的应用。” 阿里云的云、边、端三体协同架构 在过去两年,阿里云将计算基础设施从中心云逐渐延伸至边缘与端,在边缘侧打造了边缘云操作系统,在端上构建万物智联IoT能力,形成了AliOS Thing操作系统,结合飞天操作系统,云、边、端协同体系完成构建,为海量、丰富、场景化的上层应用提供算力基础。 作为三体协同中重要组成部份,边缘云操作系统ENS一开始就遵循融合、开放、标准、安全的标准建设和发

如何利用全站加速,提升网站加速性能和用户体验?

假装没事ソ 提交于 2020-08-16 05:13:41
随着网络技术的发展,越来越多的应用基于互联网发布,再好的应用,如果打开速度慢,10个用户会有9个用户选择离开,相关统计数据显示,每增加0.1秒的加载延迟,将会导致客户活跃度下降1%。在目前获客成本较高,用户面临众多可选项的情况下,如何提高用户访问的体验,给用户留下良好的第一印象,提高ROI,是所有开发互联网应用的企业都关注的核心问题。 影响应用资源加载的因素很多,服务器性能、网络传输质量、网站出口带宽状况、DNS解析时间、网页内容大小、终端用户网络质量等,在云计算技术高度发达的今天,并非每一个环节的优化都需要企业自己造轮子,更为便捷可行的选择是:借助云服务商提供的相应加速服务来优化企业的应用,可以实现更低的成本、更敏捷快速的建设、更强壮和高性能的服务,用来取代传统的用昂贵的成本购买大量服务器、带宽做自建的模式。 标准CDN服务所擅长加速的内容是静态内容,如文件、图片、视频等,通过CDN的缓存策略来缓存并实现加速。但互联网上的应用复杂,源站往往也会有很多经常变化的内容---动态内容,如 用户登录、内容搜索、视频弹幕、直播评论、购物交易、股票行情、体育实况 等,很多时候这些应用没有做动静分离设计和动静内容分别处理,这也造成很多应用即使采用了标准CDN服务,却没有达到很好的加速效果,因为动态部分内容的加速性能并没有得到很好的优化。 对应上叙的情况,我们推荐使用 阿里云全站加速 产品

技术人如何自我成长?

谁说胖子不能爱 提交于 2020-08-15 05:37:45
作者 | 箫逸 阿里文娱高级技术专家 **导读:**转眼 2020 已经过去了一半,是时候来做一次年中总结了。本文中,阿里文娱高级技术专家箫逸总结了自己在阿里 6 年来的成长和收获,分享他在工作中的一些思维方法,以及对生活的一些感悟,希望对同学们有所启发。 观察自己的成长,才能收获更大的成长 很长时间以来我基本都是基于天性或本能在做事情,不是说没有思考,是从来没有思考过自己为什么那么思考。过去一年最大的觉悟是逐渐向内看,自己怎么做的,怎么思考的,怎么成长的,自己为什么是那么想的,为什么是那样做的,抓住思维过程,让更多的天性或本能暴露,向内审视自己做事情的逻辑,从而建立起自己的体系去思考,去想问题。在这个过程中逐渐地形成了自己在成长过程中所遵循的一系列“章法”,我想这是我这一年来最大的成长。 1. 从孩子身上重新学习 闺女 1 岁半,逐渐可以认识挂在墙上的各种水果卡片,虽然她不会说,但是当我问起诸如苹果在哪儿,豌豆射手在哪儿之类的问题时,她总能快速指到正确的位置。我欣喜于这种快速的成长,不禁想她到底是怎么学会的?有意识的观察结果发现,她始终坚持了一个最简单的法则:模仿 -> 重复 -> 学会 -> 学会下一个,她的成长过程始终坚持着这样一个小循环,这种循环在不断地扩大她的认知圈。 上边这几张图按顺序可以代表我观察孩子成长过程获得的深刻启发。最左边是一个微小的循环,其中的关键在于

如何为云原生应用带来稳定高效的部署能力?

风流意气都作罢 提交于 2020-08-15 04:50:06
作者 | 酒祝 阿里云技术专家、墨封 阿里云开发工程师 直播完整视频回顾: https://www.bilibili.com/video/BV1mK4y1t7WS/ 关注“阿里巴巴云原生”公众号,后台回复 “528” 即可下载 PPT 5 月 28 日,我们发起了第 3 期 SIG Cloud-Provider-Alibaba 网研会直播。本次直播主要介绍了阿里经济体大规模应用上云过程中遇到的核心部署问题、采取的对应解决方案,以及这些方案沉淀为通用化能力输出开源后,如何帮助阿里云上的用户提升应用部署发布的效率与稳定性。 本文汇集了此次直播完整视频回顾及资料下载,并整理了直播过程中收集的问题和解答,希望能够对大家有所帮助~ 前言 随着近年来 Kubernetes 逐渐成为事实标准和大量应用的云原生化,我们往往发现 Kubernetes 的原生 workload 对大规模化应用的支持并不十分“友好”。如何在 Kubernetes 上为应用提供更加完善、高效、灵活的部署发布能力,成为了我们探索的目标。 本文将会介绍在阿里经济体全面接入云原生的过程中,我们在应用部署方面所做的改进优化、实现功能更加完备的增强版 workload、并将其开源到社区,使得现在每一位 Kubernetes 开发者和阿里云上的用户都能很便捷地使用上阿里巴巴内部云原生应用所统一使用的部署发布能力。 第一期网研会回顾

引领开源新风潮,阿里巴巴编程之夏第二期重磅来袭!

岁酱吖の 提交于 2020-08-15 04:48:04
“唯有热爱,可抵岁月漫长”。 2020 年 5 月 25 日,阿里巴巴编程之夏(Alibaba Summer of Code,以下简称 ASoC )第二期正式上线,项目规模再度升级,来自开源社区的 Apache Dubbo、Apache RocketMQ、Dragonfly、Nacos 等明星开源项目多达 20 个;导师阵容配置豪华,来自阿里巴巴集团的技术专家、开源社区核心成员、Apache 孵化器导师等多达 32 位;领域涉及微服务、容器、AI 等多个热点方向,旨在联合开源社区打造诚意满满、公平公正的开源实习平台,以阿里巴巴开源技术力量为“推手”,让中国开源社区和开发者精英受到世界范围内的认可。 阿里巴巴于 2019 年举办了首届 ASoC,开启了中国企业在国际开源实习的新风潮,拉动了高校学生投身开源社区共建的极大热情。与受美国国家法案限制的 GSoC 不同的是,ASoC 申请人不限国籍,面向对象为全球年满 18 周岁的高校学生群体,本科生、硕士和博士研究生均可申请。只要是通过最终评估的学员,均可获得与阿里巴巴实习生同等的奖学金,并有可能获得阿里巴巴技术大神面授的机会。 (编程之夏开源项目一览) 1. 谁适合报名 脑洞巨大、想法多多、动手能力强、编程一级棒,既能仰望星空又能脚踏实地的热血青年。 2. 你将有机会获得 一笔丰厚的奖学金; 一条进入阿里云的绿色招聘通道;