1、背景
2、目的
3、价值体现
4、特性
5、要素
容器化:所有的服务都必须部署在容器中。
微服务:Web 服务架构是微服务架构
CI/CD:可持续交互和可持续部署
DevOps:开发和运维密不可分
6、相关技术
7、整体架构
8、实现路径
https://www.kubernetes.org.cn/9711.html
服务架构是一种灵活的架构,可以显著性地提高应用程序灵活性、可扩展性等。
基于微服务的架构通常有几个独立的单元,它们协同工作以接收和处理各种请求。这个复杂的某些部分可以是插件,这意味着在需要的情况下,你可以在不干扰应用程序的整体工作情况下, 新增一个新插件或删除一个插件。
关注点:实现一个微服务架构,你应该熟悉应用程序生命周期中的各种关注点,如持久化、日志记录、监控、负载均衡、缓存等,此外你还应该知道哪些哪些工具比较好或哪些堆栈更适合你的应用程序。
1、关注点
Docker:docker
容器编排:Kubernetes ,Docker Swarm
Docker容器管理:Portainer , DockStation, Kitematic,Rancher
CICD:Gitlab、Github、Gitee、jenkins、jenkinsx
API网关:Kong,Ocelot
负载均衡:Traefik , NGINX,Seesaw
服务发现:Consul,Zookeeper,Eureka,etcd和Keepalived
事件总线:同步通信(HTTP or GRPC)和异步通信(RabbitMQ,Kafka)
日志记录:Elastic Logstash
监控和警报:Prometheus , Kibana,Graphana
分布式追踪:OpenTelemetry , Jeager,Zipkin
数据持久化:PostgreSQL, MySQL, SQL SERVRE, Oracle, MongoDB, Cassandra,Elasticsearch
缓存:Redis (Remote Dictionary Server), Apache Ignite,Hazelcast IMDG
云供应商:Amazon Web Services (AWS), Microsoft Azure, Google Cloud,Alibaba Cloud
机房:世纪互联机房、瑞德机房;
系统:centos7.9
1、基础镜像(java、python、java+python、java + C++)
2、服务镜像 (Redis、Kafka、selenium+python、NodeJs、Tomcat)
3、应用镜像(爬虫、下载、文本分析、补信息、特征提取、特征比对)
1、多级构建
2、dockerfile优化(比如 yum install 的缓存要删除)
自建私有镜像仓库 Harbor,做好镜像仓库分类工作
1、制作应用镜像
2、编辑 ignore 文件,屏蔽不需要打包的文件
1、自建代码仓库 Gitlab
2、使用 gitlab-ci 作为 CI/CD 方案,备选(jenkinx-x)
3、两个机房分别部署 gitlab-runner
1、安装与配置 docker
2、搭建 kubernetes
在两个机房分别搭建 kubernetes,190和13114机器作为 master
自动完成服务的部署、更新、卸载和扩容、缩容
3、面板
使用 k8s 面板,可视化直观的管理监控应用与服务器的情况,可选的有:
Kubesphere、Rancher 、 kuboard 、 dashboard 、 Prometheus 、 lens 、k9s
https://www.kubernetes.org.cn/9678.html
1、使用基于角色的访问控制 (RBAC)
2、 Secret
3、 Kubernetes API 使用私有端点
1、Prometheus + Grafana
监控服务器、mysql、kafka、redis、接口、应用、数据情况
预警机制
1、按项目
2、按人
3、按环境(development、production)
1、分布式对象存储(ceph or Minio)
1、dockerfile
2、kubernetes
3、项目结构
1、ansible
2、git
1、编写dockerfile
2、编写 gitlab-ci.yml
3、编写 k8s的yml
4、有git环境,发布时使用 git push
project-name
ProjectName
dockerfile
.gitlab-ci.yml
k8s-dpl.yaml
app:{appid}:[应用名称]
env:{dev/demo}:[应用环境]
version:{rt218}:[应用版本]
业务与开发文档:语雀
脚本与临时业务记录:tmux + tmuxp
CICD方式记录:.gitlab-ci.yml
开发环境记录:dockerfile
部署方式记录:heml(charm.yml)、kubernetes.yaml、service.yaml、Ingress.yaml
API技术
前端技术
架构
docker
k8s
监控预警技术
存储技术(中间件、数据库、分布式对象存储)
linux技术