概述
以下为个人学习环境搭建和多年积累经验。
接触软件开发环境从大学到现在差不多10年这样,这个过程不管是在自己学习的环境还有电脑等等都积累了大量的学习材料和资料,包括软件安装等大量的库存,这些材料当前基本上目前的环境是无法满足学习和进一步提升的要求点,考虑左右,综合各个成本点,搭建一套可以满足自己未来4年左右的学习环境。
整体阐述从以下思路进行阐述:
为什么要搭建个人学习环境
学习环境需要搭建哪些东西
怎么结合自动化运维来管理环境
这套环境搭建的成本是怎么样的
为什么要搭建个人学习环境
这个是一个过程中多次遇到的痛苦,迁移,丢失,迁移,丢失 … 以前代码仓库是放在阿里svn库,但是它一停,就没了 …
1、学习环境的限制
收费项目太多:
代码仓库的会员收费,运维告警的会员收费,在线流程图的收费,Git存储会员升级的收费,网盘资料大小限制,下载收费等等多种收费项目太多,转移过多次,成本太高;
资料长期的沉淀:
平时学习的项目,脚本,代码很多,这些一记录久了就慢慢变成一套东西,每一个技术的学习就会有一个例子,深入学习这个例子又丰富,还有各种github仓库的学习,修改还有笔记,10年下来,这些资料已经有上百个git仓库,十几G的项目代码,mysql数据库就有上百个,有些脚本也找不到了;
文章图片
网络速度的限制:
自己验证安装过的软件库,也有近上百个,哪个可以使用,哪个不可以使用,另一个是下载的限制,每次下载大的软件都需要开通会员,速度极慢,影响学习环境和心情;
文章图片
开发环境的限制:
我需要运行学习的项目,需要收集他们在网络运行的数据,需要计算大数据,需要利用大数据进行一些分析学习,开始阿里云,aws,oracle cloud等等免费的,但是发现这些限制只要想多加一点东西,硬盘就说不行,费用就需要添加,开始也不断的加,开始1k、2k、3k … 整合下来,一年的成本就是基本上过万了,过了两三年,这些服务器就不可用,数据又需要重新迁移,每次迁移的周期成本极高;
文章图片
2、个人多年学习管理的丢失
过程笔记的丢失:
以前使用163博客,lofter博客等这些网络工具,后面印象笔记,再到有道笔记,最后发现这些笔记限制性大,另一个是博客的关闭,另一个是个性化的要求无法满足,最后使用了wordpress博客,一使用就是近乎8~9年,保存了我很多的历史笔记和记录,包括一些心得点,但是场景不能满足,比如在跟开源团队讨论会议的时候,做的笔记记录,又是放在gitee或者github上面,久了,不维护之后,原来的记录又很难找到。
文章图片
成长管理计划的丢失:
每年事情都会有一个计划,自己每学习一样东西或者跟别人沟通的时候,都会有计划和图形规划,存在着大量的草图和自我管理过程,开始使用的是笔记本画草图,另一个是使用visio,再到其它的画图工具,然后计划使用gitbook和markdown,再到docsify等工具,最后再到vuepress,管理工具也由禅道、jira都使用,这些自己过程和记录,笔记本有可能丢失或者换一本就没有了,原来考虑过iPad,但是效果也不理想。另一个是电脑格式化,或者每3~5年一换,资料都有损失,大量的xmind导图不再找到。
文章图片
个人时间的无形流失:
不管是资料还有环境,还有网络,还有各种切换过程中,学习材料 的流失,每次都需要重新再做一次,做的速度可能会更快了,但是无形之中,时间的流失,比如每切换一个电脑需要至少7天的环境适配,资料适配,每迁移一次数据环境,至少需要3天的导入导出,还有验证是否正常,每一次笔记的迁移,至少需要2~3天的迁移,包括图片,材料还有环境的准备等,而且这个过程,需要使用的服务,又需要重新的付费,这些周期整合下来,个人时间在无形当中消耗,同步还有初始过程的时间等。
个人学习需要搭建哪些东西
以前是ssh(ssm),再后来是devops,再到后来是微服务,中台,物联网,大数据AI .. 技术不断提高要求,传统的编程已经很难了
1、规划我的学习目标
在当前数字化、中台、物联网等,还有人工智能成熟的情况下,其它的AR,元宇宙等在不断的研发下,会不会下一个5年的突破,不知道,但是后面肯定又会有新的革新技术。搭建的环境为了数字化下的沉淀,包括主要以下几个点:
建立技术/研发/业务中台与业务
建立数据中心和大数据计算分析
建立物联网服务进行物联网互联
同步也会结合机器学习和人工智能场景,但是这个是在上面的环境进行,自己这里定义,机器学习属于大数据场景,人工智能属于业务中台场景。
文章图片
2、服务器资源环境规划
这里规划的资源相对比较多,同时由于个人原因,分几个角度考虑,采购云服务器至少3年以上服务器,长久的云服务器至少10年以上,域名大概是10年以上,硬件服务器至少可用5年以上,需要保存的长久的资料和短期的资料就比较明确,同步是备份服务器分多地和稳定云盘,确保数据的不丢失,采购的整体计算资源:
CPU40核 500多G内存 10TB的算力和资源阿里云服务器、塔式服务器、MacPro等
文章图片
规划了几个区域如下:
个人区:个人使用的
网络区(中转区):方便公网的访问使用
内网区(安全区):方便数据存储和重要资源
备份区(安全区):数据存储和恢复
个人区:
主要针对的是自己个人PC使用的,还有移动网络等便利的情况下使用
文章图片
网络区:
主要是针对于公网部分的应用和数据,方便自己随时访问,比如放博客,放一些公共的环境元素,追求访问的速度
阿里云服务器是刚好21年双11活动采购的,相对比较划算
文章图片
内网区:
内网区的建设主要针对于大数据存储使用,外网的磁盘和资源采购费用高,所以规划在内网区,追求稳定性
文章图片
备份区:
这部分主要利用公网第三方云平台,进行的数据备份和管理,或者分享等,比如github、网盘、海外区域等
文章图片
PaaS平台环境规划和搭建
主要是包括所有的管理过程,整合成一套体系,方便自己的工具管理整合起来,同时集成自动化部署操作,便于后期自动迁移
文章图片
研发过程管理
文章图片
容器云环境规划(公网)
文章图片
基础环境规划
文章图片
自动化环境规划
文章图片
大数据环境
文章图片
个人的基础研发框架搭建
这里整合了很多内容,主要是结合自己的gitee和github学习基线来整合起来的,同时整合成一套东西,在上面建设业务系统,快速搭建成一套东西。
基础研发架构:包含有微服务、通用功能服务,通用开发文档,常用的业务组件,开发组件等,基础这层做研发,快速整合自己想要的功能。
搭建起来的效果,后期项目基于研发框架学习和开发,整合数据分析:
文章图片
基础研发框架规划
文章图片
怎么结合自动化运维来管理环境
一个人的管理,主要是结合自动化,达到发现问题,处理问题两个角度。
1、自动化运维的管理和规划
整个自动化的管理和通知,需要结合很多东西,整体环境怎么自动化操作和管理,这里主要是结合监控-巡检-预警-通知几个序列,监控从服务器-应用-日志-安全几个维度监控,应用交互(chatops/通知)从移动端来进行管理,毕竟一个人管理这些环境,没有工具是很难去集成管理的,自动化操作主要是集成jenkins和自研应用来进行管理。
文章图片
2、自动化运维部署和搭建
运维管理平台
文章图片
【我在家搭建了一套混合云学习环境】3、ChatOps自动化管理规划
整体收集大量的应用监控预警通知,通过监控通知集成,与dingtalk集成交互,形成有问题可发现,可处理,自动化,移动化的一体系。
整体结合钉钉进行ChatOps的自动化运维监控,通过自定义开发的webhook工具,进行处理操作,比如jenkins自动重启,自动巡检等,类似于现在的智能客服概念:
文章图片
这套环境搭建的成本是多少
这个根据个人的情况来定,这里主要是结合自身的基础情况和评估来看,针对于这个成本来说,自己主要考虑的是时间成本,对自己而言时间是最大的成本点。
1、环境的采购费用
这里主要针对于个人和性价比考虑,这里不包括企业的,以下年限为一般生命周期多少年,这里只是做评估:
文章图片
2、投入和产出的比
这里主要按普通研发人员的角度考虑,假设一天中,因为开发,笔记本快慢,工具便利速度,资料查看效率等,每天节省1.5个小时换算,按4年周期时间,则可节省90天左右。
按天收益角度考虑,假设天收益在1500~2500左右,则可节省13万~22万左右,而其它的个人提升另为算,所以整体来说,投入和产出比相对是比较高的。
总结
以上是自己搭建个人学习环境的情况和思路
关注我的公众号进行更多架构交流
文章图片
PS:如扫码添加不成功,可以保存二维码图片到微信扫码打开
注意:如有其他需求,请在添加好友时备注说明