菜单 学习猿地 - LMONKEY

VIP

开通学习猿地VIP

尊享10项VIP特权 持续新增

知识通关挑战

打卡带练!告别无效练习

接私单赚外块

VIP优先接,累计金额超百万

学习猿地私房课免费学

大厂实战课仅对VIP开放

你的一对一导师

每月可免费咨询大牛30次

领取更多软件工程师实用特权

入驻
25
0

个人服务器架构简介

原创
05/13 14:22
阅读数 1174

首先需要说一下服务器配置,只要你的服务器配置高于1核2G,均可使用该基础设施来管理你的个人服务器,你可以在服务中部署几个应用,并且把该服务器作为你的测试服务器来使用。但是你的应用过多,或者QPS稍大,可以相应地加强服务器配置。

现在来简述下一个低配置的个人服务器的基础设施架构图

docker compose architecture

<!--more-->

Traefik

架构图的最核心位置是 traefik,一个 Edge Router,它也是该基础设施的重点。

服务器内的所有应用服务,如 postgresredis 以及自己所写的应用服务,都与 traefik 置于一个网络下,它们共同组成了一个集群

以下是我使用它的理由

  • 热更新配置,无需重启
  • 自动服务发现与负载均衡
  • TLS/SSL 证书的自动生成
  • docker 的完美集成,基于 container label 的配置
  • 漂亮的 dashboard 界面

关于 traefik 可以参考文章 Traefik 简易配置及入门

请求路由

从图左侧可以看出,请求路由分为两大类。当然他们的路由规则都是通过 traefik 来控制

  • shanyue.tech 通过公有的域名提供公有的、可供互联网访问的服务。如博客,微信公众号开发,个人网站及后端服务等等
  • shanyue.local 通过私有的域名提供私有的、只供内部进群访问的服务,保证安全性。如数据库,redis等等

应用与服务

在图右侧,都是个人服务器里的应用,它们均是通过 docker-compose 部署。你可以在 shfshanyue/op-note:compose 中找到所有的配置文件

只需要 docker-compose up -d 即可启动

  • whoami: 一个用以测试的服务,测试负载均衡及路由匹配等
  • dns: 集群内 DNS 服务,给自己的私有域名 shanyue.local 做解析
  • openvpn:与个人笔记本搭建局域网,方便访问个人服务器上服务以及调试页面
  • postgres
  • redis

本章将会讲述如何部署它们以及它们的配置文件。不过在此之前,你需要对 docker 以及 docker-compose 了解一些,参考以前文章

  1. docker 简易入门
  2. docker compose 简易入门

私有服务

shanyue.local 路由所提供的服务都是私有服务,通过 dnsmasqopenvpn 在个人笔记本上进行访问。

监控

个人服务器自然也需要监控,如负载,CPU,内存,网络,磁盘等。如果你服务器配置较高,且中有重要应用在跑时可以使用 prometheusgrafana 搭建一套监控系统,但是作为一个轻量的个人服务器,这样就显得小题大做,而且消耗极其资源。

关于该云服务器的 metric 可以直接在阿里云的监控面板上进行查看。但对于轻量的个人服务器,可以使用 htopctop 两个简单的命令行工具来搞定

  • htop 监控进程指标
  • ctop 监控容器指标

htop
ctop

我是山月,可以加我微信 shanyue94 与我交流,备注交流。另外可以关注我的公众号【全栈成长之路】

如果你对全栈面试,前端工程化,graphql,devops,个人服务器运维以及微服务感兴趣的话,可以关注我

发表评论

0/200
25 点赞
0 评论
收藏
为你推荐 换一批