构建可扩展的过程
/**
* 构建可扩展的过程
* @过程是可扩展的关键
* @好的过程造成好的结果
* @创新是有限的必须进行充电——充电起作用am?
* @拥抱过程的变化
* 工程师需要大块的时间发挥个人和集体的创造力
* 不同经验,背景和关系组成的组织,如何在这个环境中并发?
*
* @少量的过程开始,慢慢的增加颗粒度,建立严格的标注定义,长大的过程
* 渐入过程,让团队完成目标的前提是提供何时的过程
*
*/
管理故障和问题
/**
* @管理故障和问题
* 孙子曰 久暴师则国用不足
* @识别和消除障碍活动
* @区别故障和问题并相应的跟踪
* @根据故障的生命周期,适当的分类,关闭,报告并跟踪。
* @问题跟踪系统的最大帮助是?发现问题的优势,到底如何管理问题呢?
* @问题复发是没有找到问题的根源
* 当这个根源影响我们之间的利益这里,我们应该如何处理
*/
@危机管理和升级
/**
* @危机管理和升级
* 有能力管理混乱环境的人都是性格特别的?
* 在混乱中建立秩序
* @能够很果断的解决关于造成混乱的这个问题
* 内在有难以置信的平静,外在有非凡的说服力
*
* 工程领导角色
* 技能管理技术团队又能回答高层管理团队提出的技术问题
* 能够澄清思路,排列不同假设的优先级
*/
@环境变更管理
/**
* @环境变更管理
* 孙子曰 不知己不知彼,没战必殆
*
* @持续交付CD
* 对于产品小的改动通过对版本控制进行构建,自动化测试后灰度发布到生产环境
*
* @过程的持续改进
*/
确定应用发展的预留空间
/**
* @确定应用发展的预留空间
* 孙子曰
* 故知战之地,知战之日,则可千里而会战
*
* 如果工程师能够对系统的变化有很好的理解的情况下,
* 并且能够做出合理的解释,可以调整百分比
*
*/
确立架构原则
/**
* @确立架构原则
* @水平扩展而不是向上扩展的思维方法,新的做事情的思路
*
* @团队经验的多样化非常重要。
* 能够相互激励,相互启发,相互包容。
*
* @头脑风暴的过程中的元素合成
* --核心的更新是独立思考贡献的价值能力
*
* 软件开发背景的人
* 总体架构的人
* 基础设施的人
* DevOps
* 质量保证
* 项目管理
* 产品负责人
* 局外人
* 营销,体验,用户运营
*
* @架构原则
* @N+1设计
* 确保系统发生故障之后仍然能有一个实例存活
*
* @回滚设计
* 允许构架的产品向后兼容,如果发生故障之后立刻回滚。
*
* @禁用设计
* 针对高风险的通信服务,设计开关,必要的情况下实施禁用。
*
* @监控设计
* 发现服务的死活,查看日志,进行自我检查,自我诊断
*
* @多活数据中心
* 保证经济利益的手段
* 假设很重要,我们怎么解决这个假设
*
* @使用成熟的技术
* @简单的技术能够解决的更好的就用简单的技术
* 看时机是否能够探索和使用这种新的技术
*
* @异步设计
* 同步设计的系统比异步的具有更高的故障率
* 异步系统对速度减缓更加宽容
*
* @无状态系统
* 状态系统中的关联都是通过前后进行的
*
* @水平扩展而非垂直升级
* 保证系统的稳定发展
*
* @设计至少要有两个步骤的前瞻性
* 领导者,管理者,架构师都要架构未来。未来的不确定性到来了之后我们应该如何能够形成。
* 设计不只是为了今天——当然,活在当下就是一种宝贵的设计思路
*
* @非核心则购买或者外包
* 做我们真正擅长做的事情
* 但是不擅长的也需要在这个圈子里面找专业的人做好
* 商人思维,利益最大化,长久利益的最大化
*
*
* @构建,试错,发布
* 小版本失败率低,总是小版本迭代,但是要有一个好的骨骼
*
* @故障隔离
* @工程师能够把事情做好,但是通常不知道到底是如何失败的这个系统
* 经常遇到这个事故
*
* @能自动化的自动化
* 高效且安全
*/