独角兽项目读书文摘读书笔记
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《独角兽项目》
一本关于数字化转型和DevOps的商业小说,作者是IT领域的知名专家金·金恩。
本书以《凤凰项目》的同一时期为背景,讲述了一位资深开发主管玛克辛·钱伯斯在一个传统制造业公司的转型之旅,她如何从一个被误解和排挤的“背锅侠”,成为了推动公司创新和增长的关键人物。
本书不仅展示了玛克辛在技术、团队、文化等方面所面临的挑战和解决方案,还揭示了数字化转型的核心原则和实践方法,包括敏捷、精益、微服务、持续交付等。
本书的主要内容可以分为以下四个部分:
●第一部分:玛克辛被调到凤凰项目团队,发现这是一个混乱、低效、压力巨大的开发环境,她不得不面对各种技术债务、沟通障碍、组织阻力和文化冲突。
她开始寻找改变的方法,遇到了一位神秘的导师埃里克-里德,他向她介绍了三大原则:流动性、反馈和持续学习。
●第二部分:玛克辛开始实践三大原则,通过引入敏捷开发、持续集成、持续交付等DevOps实践,逐步提升了凤凰项目的质量、速度和稳定性。
她也开始建立起一个跨职能的团队,与其他部门进行有效的协作和沟通。
她还利用数据驱动决策,优化了产品功能和用户体验。
●第三部分:玛克辛面临着更大的挑战,她发现公司内部有人在暗中破坏凤凰项目,并试图陷害她。
她不得不与法律部门、安全部门、审计部门等打交道,保护自己和团队。
同时,她也要应对市场上出现的新竞争对手——独角兽公司Parts Unlimited Next Generation (PUNG),它们拥有更先进的技术和更灵活的商业模式。
●第四部分:玛克辛建立起一个强大的联盟,包括CEO史蒂夫-马格南斯、CTO
萨拉-莫顿等高层领导,以及来自各个层级和职能的同事们。
他们共同制定了一个数字化转型战略,并将其落地执行。
他们成功地将凤凰项目推向市场,并取得了惊人的成绩。
他们还利用自己积累的经验和知识,在公司内部推广DevOps文化和实践。
《The Unicorn Project》是一本适合所有对数字化转型感兴趣或参与其中的人士阅读的书籍,无论他们是开发者、管理者还是领导者。
本书不仅讲述了一个引人入胜且富有教育意义的故事,也提供了许多实用且可操作的建议和案例,帮助读者在数据时代中取得成功。
数字化转型5原则
本书不仅是一部引人入胜的小说,也是一本富有启发性的指南,为读者提供了五项基本原则来指导数字化转型:
●第一项原则:减少局部优化,提升全局优化。
这意味着要打破组织内部的壁垒和沟通障碍,实现跨部门、跨功能、跨层级的协作和协同。
●第二项原则:建立市场反馈机制。
这意味着要快速地获取用户需求和反馈,并将其转化为产品特性和价值。
●第三项原则:实现流动性。
这意味着要消除影响软件交付流程中各个环节之间流动性的障碍,如等待、批准、依赖等。
●第四项原则:赋能心智模式。
这意味着要培养开发者具备自主性、创造性、探索性和学习性的心态,并给予他们必要的工具、资源和支持。
●第五项原则:实现持续改进。
这意味着要不断地检测、度量、分析和改进软件交付过程中存在的问题和机会,并采用科学方法进行试验和验证。
书中提到的相关技术介绍
1《独角兽项目》是一本数字化转型小说,有一些IT经验的同学很容易带进角色,是一本很轻松的书。
但书中又生动的写出了不同部门,不同任务,不同理念下的真实冲突
2另外书中还有些和上一本《凤凰项目》相关的内容,感兴趣的同学可以找来一起阅读
3以下为一些书中提到的技术的解释说明,便于大家阅读
●Git:一个分布式版本控制系统,可以让开发者协作开发代码,并且跟踪代码的变更历史。
●Jenkins:一个持续集成和持续交付的工具,可以自动化编译、测试、部署等流程,并且提供可视化的监控和反馈。
Jenkins的主要特点是:
○易于安装和配置:Jenkins是一个基于Java的程序,可以直接运行,无需额外的安装或配置。
Jenkins提供了一个基于Web的界面,可以进行实时的错误检查和内置帮助。
○可扩展性:Jenkins可以通过其插件架构进行扩展,提供了近乎无限的可能性来实现Jenkins可以做什么。
Jenkins有数百个插件可供选择,可以与几乎所有的持续集成和持续交付工具链中的工具进行集成。
○分布式性:Jenkins可以轻松地将工作分配到多台机器上,从而帮助更快地完成构建、测试和部署等任务,并支持多种平台。
○流水线和蓝海:流水线(Pipeline)是一种基于代码的方式来定义、执行和可视化软件交付过程。
蓝海(Blue Ocean)是一种基于流水线的用户界面,提供了一种简单、直观和美观的方式来创建和监控流水线。
●Kubernetes:一个容器编排平台,可以管理部署在多个节点上的容器应用,并且提供服务发现、负载均衡、弹性伸缩等功能。
Kubernetes的优势在于:
○它是一个成熟的容器编排平台,拥有庞大的社区和生态系统,提供了丰富的工具和资源。
○它是一个可移植的平台,可以运行在公有云、私有云或混合云上,也可以运行在物理机或虚拟机上。
○它是一个声明式的平台,用户只需要定义应用的期望状态,而不需要关心具体的实现细节。
○它是一个模块化的平台,用户可以根据需要选择不同的组件和插件,也可以自定义或开发新的功能。
●Prometheus:一个开源的监控和告警系统,可以收集和存储各种指标数据,并且支持灵活的查询语言和可视化界面。
●Grafana:一个开源的数据可视化和分析平台,可以与 Prometheus 等数据源集成,并且提供丰富的图表类型和仪表盘模板。
●ELK Stack:一个日志管理解决方案,由 Elasticsearch、Logstash 和 Kibana 组成。
Elasticsearch 是一个分布式搜索引擎,可以存储和检索大量结构化或非结构化数据。
Logstash 是一个数据处理管道,可以收集、转换和发送各种类型的日志数据。
Kibana 是一个数据可视化工具,可以与 Elasticsearch 配合使用,并且提供多种图表类型和仪表盘模板。
○Elasticsearch 是一个分布式的全文搜索和分析引擎,基于 Lucene 构建,支持 RESTful API 和 JSON 格式的数据。
Elasticsearch 可以快速地对海量的结构化或非结构化数据进行索引、查询和聚合,提供高可用性、水平扩展性和实时
性。
○Logstash 是一个日志聚合器,可以从多个来源(如文件、网络、消息队列等)同时收集和处理数据,然后将其转换为统一的格式,并发送到不同的目的地(如Elasticsearch、文件、数据库等)。
Logstash 支持多种输入、过滤和输出插件,可以灵活地定制数据流水线。
○Kibana 是一个数据可视化工具,可以与 Elasticsearch 集成,让用户通过图表和仪表盘来探索和呈现数据。
Kibana 提供了多种可视化类型(如柱状图、饼图、地图等),以及预配置的仪表盘模板,方便用户快速开始。
Kibana 还支持使用 SQL 或 Lucene 语法进行搜索查询,以及使用 Vega 或 Canvas 进行高级定制。
○ELK Stack 的应用场景非常广泛,例如:
■日志管理:使用 ELK Stack 可以实现集中式的日志管理系统,方便用户收集、存储、搜索和分析来自不同服务器或应用程序的日志信息,以便于监控系统状态、排查故障或优化性能。
■安全分析:使用 ELK Stack 可以实现安全信息与事件管理(SIEM)系统,帮助用户从各种安全相关的数据源(如防火墙、入侵检测系统等)中提取有价值的信息,并通过可视化仪表盘来展示安全事件或警报。
■指标监控:使用 ELK Stack 可以实现指标监控系统,帮助用户从各种指标相关的数据源(如服务器资源利用率、网络流量等)中收集并展示关键指标,并通过机器学习功能来检测异常或预测未来趋势。
■业务分析:使用 ELK Stack 可以实现业务分析系统,帮助用户从各种业务相关的数据源(如网站访问日志、电商交易记录等)中提取有价值的洞察,并通过可视化仪表盘来展示业务指标或趋势。
●Chaos Engineering:混沌工程是一种在分布式系统中发现和解决脆弱性的策略。
它通过在生产环境中故意注入故障和错误,来模拟现实世界中可能发生的各种情况,观察系统在压力下的反应和恢复能力。
混沌工程可以帮助提高系统的可靠性、弹性和可恢复性,防止故障造成严重的后果。
混沌工程的基本原理是:○定义并测量系统的稳定状态,即表明系统按照预期运行的指标,如响应时间、吞吐量、错误率等。
○建立假设,即当我们对系统进行某种干扰时,系统的稳定状态不会发生变化。
○在生产环境中进行实验,即模拟各种可能导致系统不稳定或性能下降的场景,如硬件故障、网络延迟、资源耗尽、依赖服务异常等。
○证明或反驳假设,即将实验前后的稳定状态指标进行比较,分析实验结果和影响范围。
如果发现指标存在显著差异,说明系统存在潜在的问题或风险,需要进行优化或修复。
如果没有发现差异,说明系统具有良好的容错能力。
●常用的浑沌工程商业工具
○Chaos Monkey:Netflix开源的混沌工程工具之一,可以随机终止云平台上运行的虚拟机或容器实例。
○ChaosBlade:阿里巴巴开源的混沌工程工具集合,提供丰富的故障场景实现,并支持多种平台和组件。
○Gremlin:一款商业化的混沌工程平台,提供了一个易于使用且安全可控制地创建、管理并监控混沌实验过程
●Serverless:Serverless 是一种新兴的云计算模式,它让开发者可以专注于编写业务逻辑,而无需管理服务器、操作系统、运行环境等底层资源。
Serverless
的核心思想是将提供服务资源的基础设施抽象成各种服务,以 API 接口的方式供用户按需调用,真正做到按需伸缩、按使用收费。
Serverless 的主要组成部分有两种:函数即服务(FaaS)和后端即服务(BaaS)。
FaaS 是指将应用程序的一部分服务端逻辑拆分成一个个独立的函数,上传到云端,由事件触发执行,并根据实际运行时间和资源消耗进行计费。
BaaS 是指利用第三方提供的云端应用或服务来管理服务器端的状态和逻辑,例如数据库、身份验证、消息队列等。
Serverless 的优势有以下几点:
○低成本:Serverless 可以根据业务请求自动进行弹性伸缩,无需为闲置资源付费,也无需为流量峰值提前预留资源。
○高效率:Serverless 让开发者可以使用自己熟悉的编程语言和框架来开发应用程序,无需关心底层资源的配置、部署、更新和维护。
○高可靠:Serverless 由云厂商提供统一的运维和监控能力,保证了应用程序的性能、安全性和稳定性。
○高灵活:Serverless 支持多种场景下的应用开发,例如静态网站托管、RESTful API、全栈 Web 应用、数据处理等。