什么是真正的架构设计?

一. 什么是架构和架构本质

在软件行业,对于什么是架构,都有很多的争论,每个人都有自己的理解。此君说的架构和彼君理解的架构未必是一回事。因此我们在讨论架构之前,我们先讨论架构的概念定义,概念是人认识这个世界的基础,并用来沟通的手段,如果对架构概念理解不一样,那沟通起来自然不顺畅。


混沌工程的8个陷阱

前言

本文来自Nora Jones于2019年3月28日在第4届混沌工程大会上的分享,原文地址参考资料2。

Nora Jones 是《Chaos Enginering》一书的作者之一,曾在Netflix、Jet.com、Slack等公司实施和落地混沌工程,同时她也在Lund University攻读人因工程及系统安全专业的硕士学位,这也恰好给了她关于混沌工程结合人因相关的观点。

我花了几天时间去分析和理解这篇文章。原文是一篇ppt的讲稿,很多内容都是口语化的的表述,我在翻译的时候尽量将其转换成文章的形式来进行陈述。


混沌工程初识篇

Chaos Engineering is the discipline of experimenting on a distributed system in order to build confidence in the system’s capability to withstand turbulent conditions in production.
——Principles of Chaos

混沌工程是在分布式系统上进行实验的学科,目的是建立对系统抵御生产环境中失控条件的能力以及信心。


字节跳动必问面试题——通用型业务解决方案设计

前言

受邀参加过字节跳动面试的小伙伴一般都会收到一封面试邀请的邮件,邮件上面会注明考查的内容,只有两项,其中第一项就是“我们主要考察通用型的业务问题和过往的项目经历”,项目经历很好理解,那么“通用性业务问题”又是什么呢?今天的文章,皮皮就通过一道通用性业务问题(真实面试题)来带大家感受一下。


阿里巴巴混沌测试工具ChaosBlade万字解读

一、前言

ChaosBlade 是一款遵循混沌工程实验原理,建立在阿里巴巴近十年故障测试和演练实践基础上,并结合了集团各业务的最佳创意和实践,提供丰富故障场景实现,帮助分布式系统提升容错性和可恢复性的混沌工程工具。


这次我们看看阿里人是如何蹂躏CPU的

在前面的系列文章中皮皮就介绍过如何使得CPU、I/O满载,如何实现网络延迟、丢包和中断,如何模拟线程、进程以及机器假死。如果对此不清楚的同学可以在文末的【相关系列】中查看相应的文章。

本文介绍是阿里巴巴混沌工程工具ChaosBlade中的CPU满载的故障模拟的实现方式。之前看的是Netflix的Simain Army中的实现,看上去一目了然,通过java的形式调用一下模拟脚本,脚本的内容如下:


混沌系列 | 其实制造“假死”很容易

这篇也是将混沌工程相关的,之前写了《看我如何作死| 将CPU、IO打爆》《看我如何作死| 网络延迟、网络丢包、网络中断一个都没落下》这两篇,不过这次不用作死,只是假死^-^。

假死,有机器假死、进程假死和线程假死这几种。让机器、进程之类的假死本身没有多大意义,探索当机器、进程之类的假死之后,其上游调用所接收到的状态(或者说得到的反馈)才有意义。上游通过评估下游假死之后其本身所触发的动作反应以及导致的结果来分析其服务本身的质量,如果未达预期,那么就需要做进一步的整改优化。


看我如何作死 | 网络延迟、网络丢包、网络中断一个都没落下过

昨天,笔者讲述了如何将CPU和IO撑满,这个其实很好理解,写个CPU密集型的程序让CPU忙个不停就可以撑满CPU;弄个程序一直写就可以让IO也撑满。有兴趣的同学可以看下昨天的这篇文章《将CPU、IO撑满》,不过里面的做法分别是使用openssl speed和linux dd工具来实现这两个功能。

面对CPU和IO时,相信大家都能很快的反应出如何实现,那么面对网络问题时,大家的反应又是如何呢?不会是扒网线吧。。。


看我如何作死 | 将CPU、IO打爆

故障模拟

本文是来讲解一下如何模拟将CPU、IO打满的。将CPU打满,原理很简单,跑一个CPU密集型的程序即可;将IO打满,原理也很简单,狂写不止即可。


大型分布式网站术语分析

1. I/O优化

  1. 增加缓存,减少磁盘的访问次数。
  2. 优化磁盘的管理系统,设计最优的磁盘方式策略,以及磁盘的寻址策略,这是在底层操作系统层面考虑的。
  3. 设计合理的磁盘存储数据块,以及访问这些数据库的策略,这是在应用层面考虑的。例如,我们可以给存放的数据设计索引,通过寻址索引来加快和减少磁盘的访问量,还可以采用异步和非阻塞的方式加快磁盘的访问速度。
  4. 应用合理的RAID策略提升磁盘I/O。
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×