DevOps实践

1. 适合的才是最佳的

2. 唯一不变的是不停改变

3. 永无止境


微服务:

将单体服务根据业务边界进行分离,单个微服务能够以独立的、对外透明的方式提供服务。能够独立的持续集成和交付。
  • 通过REST API/SDK方式暴露服务,会兼容2-3个版本。REST优势是简单、交付快。SDK优势是可以在调用端做出优化和限制。
  • 服务发现与注册。eureka、consul
  • 服务隔离与降级。hystrix
  • 数据一致性。分布式事务、业务补偿机制。秒杀场景……
  • 持续集成与部署。Jenkins
  • 多环境模拟与测试。测试环境和预发布环境。测试环境测试功能模块,预发布环境模拟PD场景。
  • 代码分支。特性分支、开发分支、预发布分支、发布分支。正常代码交付、hotfix交付。版本管理。
  • 代码重构。随着业务变化,之前完美的代码也不能适应新的业务。
  • 技术文档和接口文档。踩坑指南、技术方案、配置指南。swagger--接口即文档
  • 单元测试、集成测试、自动化测试。easymock、Junit、SpringbootTest
  • 上线。AWS、shell。蓝绿、灰度。回退。
  • 无状态。token贯穿
  • 安全。基础设施层安全和应用层安全。

微服务之路:

  • 从刚开始的单体服务,逐步拆分成微服务,quote服务拆分、Library、search、pricing、order(ing)
  • 从单库向独立数据库迁移
  • 从AngularJs到Vue
  • 从jar、war混合到单纯jar包
  • 从单人上线到人人上线

目前的DevOps之路:

  • 开发人员全栈
  • SPA 保证接口纯粹 Vue Angularjs
  • 部署脚本一致,团队成员都能做上线,新启服务可以使用先用脚本稍作修改即可加入自动部署体系
  • On Call。
  • 代码review。代码质量、团队成长
点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

java将前端的json数组字符串转换为列表

记录下在前端通过ajax提交了一个json数组的字符串,在后端如何转换为列表。前端数据转化与请求varcontracts{id:'1',name:'yanggb合同1'},{id:'2',name:'yanggb合同2'},{id:'3',name:'yang

Nginx + lua +[memcached,redis]

精品案例1、Nginxluamemcached,redis实现网站灰度发布2、分库分表/基于Leaf组件实现的全球唯一ID(非UUID)3、Redis独立数据监控,实现订单超时操作/MQ死信操作SelectPollEpollReactor模型4、分布式任务调试Quartz应用

KVM调整cpu和内存

一.修改kvm虚拟机的配置1、virsheditcentos7找到“memory”和“vcpu”标签,将<namecentos7</name<uuid2220a6d1a36a4fbb8523e078b3dfe795</uuid

DevOps实践 - HelloWorld