18

ASP.NET Core基于K8S的微服务电商案例实践--学习笔记

 4 years ago
source link: http://mp.weixin.qq.com/s?__biz=MzAwNTMxMzg1MA%3D%3D&%3Bmid=2654077165&%3Bidx=2&%3Bsn=c125904dd58dff3b8c4a93374ac24a8e
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

mey2miy.jpg!web

摘要

一个完整的电商项目微服务的实践过程,从选型、业务设计、架构设计到开发过程管理、以及上线运维的完整过程总结与剖析。

讲师介绍

VBn6Jn7.jpg!web

产品需求介绍

  • 纯线上商城

  • 线上线下一体化

  • 跨行业

  • 跨商业模式

从0开始,我们应该采用微服务吗?

不适合采用微服务架构:

  • 应用程序规模小

  • 领域不明确

  • 组织不能做出改变

  • 缺乏理解

  • 团队不成熟

微服务的成本(从单体转入微服务)

  • 协作问题

  • 引发分布式事务问题

  • 增加大量的重复代码

  • 服务监控

  • 日志的搜集与展示

针对微服务所带来的成本可用通过 K8S 解决

K8S 的成本

  • 统一的配置问题

  • 增加大量的部署时间

  • 服务注册与发现

  • 负载均衡

  • 服务器成本增加

K8S 的优势

  • 无状态服务高可用

  • 有状态数据高可用

  • 快速扩容

  • 按量付费

  • 基于 GitLab 和 helm 的 CI/CD

  • 统一配置

  • 服务注册与发现

  • 日志搜集

领域划分

JNrqQfY.jpg!web

微服务架构

3y2YNru.jpg!web

微服务实践

  • 共享核心库:核心库部署到私有 nuget server,并通过 CI 自动化

  • 共享代码:基于 GitLab CI 发布业务组件到 nuget server

  • 服务模板:grpc server

  • 同步通信:本地调用与 RPC 调用单体部署与分布式部署

  • 异步通信:基于 masstransit 库的 saga

  • 统一认证授权:Ocelot

  • 协作:API 管理,Postman

  • 持续集成:基于 GitLab CI 和 helm CICD 部署到 K8S

  • 未来:分布式事务,Service Mesh 服务网格

微服务的价值

  • 微服务架构解放小团队生产力,提高市场响应力

  • 微服务是颗子弹,需要 PaaS 作枪,瞄准的是快速变化的目标

视频链接


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK