CI/CD 方法论
CI/CD 的重要性Martin Fowler说过,“持续集成并不能消除Bug,而是让它们非常容易发现和改正。” 持续集成和持续交付作为敏捷开发的一种最佳实践,通过包括构建、部署、测试、发布流程的自动化,实现质量内建,让质量问题可以快速发现和消除,从而提升软件交付的质量和效率。 基本策略分支模型是CICD落地的源头,研发过程各角色间的协作方式以及研发过程内代码版本的流转方式都取决于分支模型。 首先划分环境。 划分环境后设计分支,注重开发和发布两个场景。 根据分支设计流水线,验证应该发生在全流水线里。 一般的分支模型 参考文献:《在阿里,我们如何管理代码分支?》《What is Trunk-Based Development?》《提升团队的微服务落地能力》
如何做全链路压测
性能测试压测问题.xmind 性能测试的必要性 营销活动周期首先引入一个营销活动周期的概念,它是一个闭环流程: PS:1和2之间再加一个步骤。环境改造和基础数据准备。强调必须在生产环境。 压测环境准备:需要复用真实的线上环境,压测结果和问题暴露才都是最真实情况。可通过压测流量全局识别、透传(数据进入影子区域)。 基础数据准备:以电商场景为例,构造满足大促场景的核心基础相关数据(如买家、卖家、商品信息),以线上数据为数据源,进行采样、过滤、脱敏,并保持同等量级。 阿里实际上是 2013 年才开始做全链路压测的,现在的压测周期更加智能化。可以在白天由几个人值守进行,包含以下活动: 压测环境改造整个阿里经济体的压测环境,包括双十一压测,全部选择的是线上环境,此时需要评估: 如果要进行全链路压测,是否直接可以使用现有环境。 同一个API多次压测是否会被拦截-容易被忽略。 是否会有脏数据影响、如果有影响应该如何改造避免-必须进行的改造项目:1 识别+ 透传流量标,2...
Redis 笔记之十一-集群 Cluster
背景在 Redis Cluster 方案诞生以前,在 Redis 集群遇到单机资源和流量瓶颈时,有两种常见分布式解决方案: 客户端方案:需要自己处理分区逻辑、路由、故障转移(有时候 Routing、LB 和 Failover是同一个问题,都需要通过 routing 技术来切换流量的 endpoint)。 代理方案:减轻了客户端的职责和压力,架构上的负担过重。 Redis Cluster 的出现,极大地降低了架构师的负担,解放了生产力。 数据分布数据分布理论 分区方式 特点 代表产品 取舍逻辑 哈希分区 离散度好 数据分布业务无关 无法顺序访问 KV型 Redis Cluster Cassandra Dynamo Elastic Search 如果需要平衡地存储大量数据而只有随机访问其中的若干条,则可以使用简单的哈希分区 顺序分区 离散度易倾斜 数据分布业务相关 可顺序访问 表型 Bigtable HBase...
保险专业基本功
保险行业市场参与者 直保公司(也就是常见的保险公司),如泰康人寿、平安财险。 保险中介(帮直保公司卖保险的机构),如携程保代、慧择经纪、XX银行分行兼业代理。 再保险公司(直保公司将无法独自分摊的风险进行再分摊),如瑞士再保险,中国再保险。 保险公估(帮助保险公司理赔的专业公司),如泛华公估、民太安公估。 保险资管公司(帮助保险公司进行资产管理的公司),如中国人保资产管理。 类目的区别财产险:经营跟财产损失有关的业务,主要是车险。 寿险:经营与人身损失有关的业务,主要是重疾险、健康险及寿险等。 财产险公司及寿险公司均可经营一年期及更短保障期限的健康险及意外险业务,这就是为什么百万医疗虽然是人身相关的保险,但是最早研发推出的是众安在线(一家财产险公司),而支付宝的好医保·长期医疗6年期百万医疗只能由人保健康这类人寿险公司推出。 互联网保险的模式什么是场景保险模式依靠场景销售保险产品,可以是传统的保险产品定制也可以是全新设计的保险产品。 a) 传统的保险产品定制:以携程为代表,机票搭售航意险,以变现为导向。 b)...
Redis 笔记之十-哨兵 Sentinel
Redis 有若干套高可用实现方案。2.8 开始提供哨兵功能(不要使用更低版本的哨兵,可能有 bug)。 基本概念 主从复制模式的问题Redis 天然就带有主从复制的功能,但主从复制有若干缺点: 需要手工干预,缺乏自动 FO 机制-分布式高可用问题。 单机的写能力有限-分布式容量问题。 单机的存储能力有限-分布式容量问题。 一个经典的高可用场景当一个主从集群的 主节点 失效的时候,经典的恢复步骤如下: 主节点失效。 选出新的从节点,slaveof no one。 先更新应用方的连接。 再让其他从节点换主。 再把恢复好的主节点作为新的从节点复制新的主节点。 3 和 4 的步骤可以互换。这种需要手工介入的运行机制不能被当作高可用的。而 sentinel 的作用是把这些经典步骤从手工实现为自动。 Sentinel 的高可用性Sentinel 方案是在原生的 Master-Slave 集群之外加上一个 Sentinel 集群。 每个 Sentinel 节点会监控其他 Sentinel 节点和所有 Redis...
复式记账法
...
世界上最简单的会计书
世界上最简单的会计书.xmind
常见数学术语中英文对照
集合与简易逻辑 集合(集) set非负整数集 the set of all non-negative integers自然数集 the set of all natural numbers正整数集 the set of all positive integers整数集 the set of all integers有理数集 the set of all rational numbers实数集 the set of all real numbers元素 element属于 belong to不属于 not belong to有限集 finite...
Docker 命令与场景
常用命令12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091docker --helpdocker-compose --help# 后台启动当前应用docker-compose -f docker-compose.yml up -d# 暂停当前应用docker-compose -f docker-compose.yml stop# Stop and remove the deployment(network, containers, and volumes)docker-compose down -v# 关闭容器且删除容器、网络、镜像和卷docker-compose -f docker-compose.yml kill && docker-compose -f...
进程和操作系统的诊断工具
ps123456789ps -auxps -elf# 查看进程的启动时间ps -p 3729 -o etimeps -o etime= -p "3729" sudo ps -p 3729 -o start,etimes,etimeps -o stime,time 3729ps -o pid,comm,cmd,start,etime -p 3729 pstree12pstree -lappstree --help df1234567891011# 查看磁盘占用比例,按大小排序du -d 1 -h ./ | sort | grep G# 最完美的查询方法du -sh *# 查看磁盘使用比例/home/scandump/production> df -h# 查找最大的10个文件或者文件夹du -a | sort -n -r | head -n 10 du12# 查看磁盘用量du -ah /home/tecmint TOP 输出12# 查看进程的子线程top -Hp 23344 系统态 cpu 时间片占比高,可能意味着系统中存在 race...