记录这两年是如何一步一步转型到.net core+k8s
2017年12月份,我离开北京,回到了武汉,开始在现在这家公司担任架构师工作。经过2年的时间,逐步完成以.net core+k8s为核心的技术架构。文末有彩蛋。
以下整理这两年的主要时间节点:
2018年1月到2018年3月
基于.net core的底层框架的封装,封装了数据访问,缓存,消息队列,加解密,日志,文档工具等一系列组成一个项目的必要组件。因为之前有沉淀,这一块的封装并没有花费太大的时间,主要是定标准和规范。
2018年4月到2018年6月
开发一系列公共服务,用户中心,认证授权服务,菜单角色权限。通过这一系列公共服务拆分,实现了单体服务转向微服务化,定义了各个项目的接入标准,为后面的所有业务项目转向新的技术体系打下了基础。
2018年7月到2018年9月
微服务架构选型,放弃了最初设定的以Ocelot+Consul的这套方案,最终决定使用kubernets来做为我们的微服务方案。同时完成CICD的搭建工作,并把每次构建控制在2分钟内,高峰时期每秒达到30多个构建任务,每日最多达到600多次构建。这期间公共服务全部迁入k8s。
2018年10月到1018年12月
业务项目全部开始重构。服务拆分后,大概有200多个独立服务组成新的业务平台,完成由.net framework+windows向.net core+k8s的转型。虽然前期做了大量基础建设工作,这一步还是非常艰难。我们通过大量的培训,大量的加班来协助项目组进行技术转型。
2019年1月到2019年3月
协助项目组进行上线冲刺,其中经历了功能测试,压力测试,在这中间我们学习积累了大量的k8s和.net core相关的经验。
2019年4月到2019年6月
业务组项目全部迁移完成并上线,所有业务迁移到新平台。这段时间主要是监控线上业务的运行情况。期间也经历过几次事故,不过都在可控范围内。通过新的技术方案我们开始从容应对各种线上活动的高并发场景,比如某宝会员日(峰值qps:50W/秒),极大提升了活动的稳定性,也减少了成本的投入。
2019年7月到2019年12月
下半年相对平淡,线上服务正常运行,业务正常的迭代升级,新的业务也在快速的接入,线上环境的集群规模也在一步一步扩大。我们开始把精力放在监控和自动化上面,快速响应线上问题,提高开发效率。
武汉.net召集令
大家看了我上面的流水账一定很好奇,这两年的时间到底做了些什么?是否有你需要借鉴的东西呢?目前各地.net俱乐部活动做了一期又一期,我们大武汉竟然一场活动都没做过,笔者非常着急,非常想为社区贡献一份力量,所以想筹备2020年武汉.net俱乐部活动,目前已经准备了一些分享资料,预计2020年3月或者4月举办第一期线下活动。如果您有场地支持,有好的经验分享或者一些好的想法,请一定要留言告诉我,期待我们武汉的第一次活动能顺利举行。
QQ群:286874323
加我微信备注武汉俱乐部邀请入群:
记录这两年是如何一步一步转型到.net core+k8s的更多相关文章
- 【转】oracle 中随机取一条记录的两种方法
oracle 中随机取一条记录的两种方法 V_COUNT INT:=0; V_NUM INT :=0; 1:TBL_MYTABLE 表中要有一个值连续且唯一的列FID BEGIN SELECT COU ...
- 一步一步开发Game服务器(四)地图线程
时隔这么久 才再一次的回归正题继续讲解游戏服务器开发. 开始讲解前有一个问题需要修正.之前讲的线程和定时器线程的时候是分开的. 但是真正地图线程与之前的线程模型是有区别的. 为什么会有区别呢?一个地图 ...
- 【新手出发】从搭虚拟机开始,一步一步在CentOS上跑起来.Net Core程序
文章背景 微软6月26号发布core 1.0版本后,园子里关于这方面的文章就更加火爆了,不管是从文章数量还是大家互动的热情来看,绝对是最热门的技术NO.1.我从去年底开始接触.net core到现在也 ...
- 一步一步教你使用Git
一步一步教你使用Git 互联网给我们带来方便的同时,也时常让我们感到困惑.随便搜搜就出一大堆结果,然而总是有大量的重复和错误.小妖发出的内容,都是自己实测过的,有问题请留言. 现在,你已经安装了Git ...
- 一步一步学EF系列2【最简单的一个实例】
整个文章我都会用最简单,最容易让人理解的方式给大家分享和共同学习.(由于live Writer不靠谱 又得补发一篇) 一.安装 Install-Package EntityFramework 二.简单 ...
- 一步一步教你将开源项目上传到jcenter
最近闲着看了一下jcenter的使用,也想将自己使用频率比较高的东西抽成类库,然后通过compile来使用,提高开发效率,本来以为挺简单的,但是网上介绍的比较模糊,很多博客也比较老了,不适用,花了我一 ...
- 【DG】[三思笔记]一步一步学DataGuard
[DG][三思笔记]一步一步学DataGuard 它有无数个名字,有人叫它dg,有人叫它数据卫士,有人叫它data guard,在oracle的各项特性中它有着举足轻理的地位,它就是(掌声)..... ...
- 【前端】一步一步使用webpack+react+scss脚手架重构项目
前言 前几天做了一个项目:[node]记录项目的开始与完成——pipeline_kafka流式数据库管理项目:因为开发时间紧迫,浅略的使用了一下react,感觉这个ui库非常的符合我的口味,现在趁着有 ...
- 一步一步创建ASP.NET MVC5程序[Repository+Autofac+Automapper+SqlSugar](二)
前言: 在本系列第一篇<一步一步创建ASP.NET MVC5程序[Repository+Autofac+Automapper+SqlSugar](一)>中,我为大家介绍了搭建空白解决方案以 ...
随机推荐
- 洛谷P1488 肥猫的游戏 题解 博弈论入门
题目链接:https://www.luogu.org/problem/P1488 其实这道题目我只需要 \(n\) 以及黑色三角形的三个端点编号就可以了. 我们假设在一个 \(n\) 边形中,黑色三角 ...
- H3C 配置CHAP验证
- springmvc url处理映射的三种方式:
一.SpringMVC简介 SpringMVC是一种基于Spring实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,使用了MVC架构模式的思想,将web层进行职责解耦,并管理应用所需对象 ...
- JS中数组声明
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- CF1B.Spreadsheets(电子表格) 题解 模拟
作者:zifeiy 标签:模拟 题目出处:Spreadsheets 题目描述 在流行的电子表格系统中(例如,在Excel中),使用如下计算方式来对列号进行计算. 第1列对应A,第2列对应B,--,第2 ...
- vue在渲染之前拿到数据操作.......vue数据获取
异步请求数据,但是生命周期函数也是异步的,怎么才能保证渲染之前就能拿到数据呢? 官方给了两种方案, 我们可以在异步获取数据的时候加上一个loading表示现在在获取数据..... 由于ajax是异步操 ...
- 【codeforces 764C】Timofey and a tree
time limit per test2 seconds memory limit per test256 megabytes inputstandard input outputstandard o ...
- python模块之包
包:将解决一类问题的模块放在同一目录下就形成了一个包 为了更好的了解包,我们就模拟创建一个包 import os os.makedirs('glance/api') os.makedirs('glan ...
- Java开发之快捷键
1.显示桌面快捷键:win+D或者右击状态栏,选择显示桌面. 2.UE编辑器:如果想把多行记录合并为一行,使用替换(Ctrl+R),查找里输入^p(代表回车换行符),替换为里什么都不填,替换位置选择所 ...
- 1024程序员节!(JAVA Code)
点我:传送门 程序员节快乐~ 水水题 A import java.util.*; import java.io.*; public class Main { public static void m ...