私は私が何をやったかのサーバがある場合

18年末には、私は記事を書いたとき、私は私が何をやったかのサーバーを持っている場合

終わりです、私のサーバーのアーキテクチャは、いくつかを要約ので、いくつかの変更を受けています

概要

昨年、サーバーは2、1 2C4G、1C2Gを持っています

今年のように次の名前の3台のサーバーがあるhostname以下の設定は、

  • dev:1C2G、数百ドル未満。日常のコーディング、シンプルリバースプロキシとプロジェクトの展開のための
  • shanyue:2C4G、K8Sマスターノード
  • shuifeng:4C16G、K8S作業ノード

のでdev、次にのみ、この1C2Gサーバー上でここに提示し、同様のマシン最後の列挙の事は何をしました

単純に、このサーバーのアーキテクチャの観点描く(倉庫を構築するので、描画しにくくしshfshanyue /グラフ建築描画方法の多様性を学びます)

ブログやコーディング

基本的にはあなた自身の個人的なブログやコーディングは、このテストを完了するために、サーバー上にあるサーバーで開発したい理由として:

  1. 仲介サーバーを使用することは非常に簡単ですしながら、自分のノートパソコンとMacの同期ブログの会社では、あまりにも痛いです

私が買ったので、サーバ内のいくつかの個人的なコードだけでなく、ブログを書いているので、新しいMBPは、ディスプレイとなっています

開発環境

zsh+ tmux+ vim、以下のテーマ

ブログの必要性ショットを書き込む処理は、その後、ランダムなディレクトリにダウンロードし、そして場合は、このモードでの時間のほとんどは、その後、使用rsync目的のパスにコピー

$ rsync ~/Documents/tmux.png dev:/path/Documents/blog/op/assets/dev-env.png

vscode remote

デバッグコードに必要がある場合、または書面でtypescript使用して、vscode remote仕事を

vscodeプラグインのキーワード検索では、インストールには、3プラグインまでダウンロードしたいです

開発とデバッグ

如果调试前端页面需要在浏览器中打开地址,比如 IP:8000,一般采用两种方案

  1. nginx镜像 + volume挂载 + docker-compose + traefik服务发现。略微麻烦
  2. npm run dev + openvpn。在本地环境中的浏览器通过 openvpn 连接局域网

如果调试后端接口,需要打断点直接使用 vscode remote

对外服务

有几个在公网下可访问的服务,如

对内服务

主要以数据库为主,使用 local DNS + traefik + openvpn 暴露在本地环境,使用禁掉公网端口以及仅在内网访问的IP白名单保证安全

  • postgres,主要是一个关于诗词的数据库
  • redis
  • traefik dashboard,管理流量

另外,这些对内对外的服务均是通过 docker 以及 docker-compose 部署

博客去了哪里?

以下是我博客的历程

  1. 个人服务器,后来服务器部署了 k8s 就把博客挪出了
  2. netlify,但是网络不好
  3. alioss + github actions,速度挺好,但是对 http rewrite 支持的不是很好

以后将会考虑 serverless

你可以发现,我现在更多的转向了一些免费的云服务,如

  1. serverless 可以写后端服务,我将把我的公众号的服务迁移过来。国内可用阿里云以及腾讯云,国外 aws
  2. dynomodbtablestore 免费的数据存储
  3. oss 很便宜的对象存储服务
  4. netlify 免费的静态网站托管托管服务
  5. github actions 免费的CICD及构建服务器
  6. sentry 免费的错误日志收集系统
  7. github 免费的私有仓库服务
  8. prerender.io 免费的预渲染服务

嗯,有了这些都可以做一个自由开发者了 (自惭形秽中...)

openVPN

数据库放在公网访问有点危险,用docker建了vpn在本地开发访问。使用了以下镜像

docker-openvpn

traefik

前后端需要做一个反向代理,选择了 traefik,更方便的服务配置以及服务发现,只需要配置容器的 labels 就可以部署成功

另外 traefik 可以很方便的自动生成 ssl/tls 证书,为你提供 https 服务

DNS server

有了这么多的服务,但有的东西不好放在公网,如 redispostgres 一些私有服务以及开发待调试的服务,又记不住端口号,所以又搭了一个 dns server,方便在本地访问

自动化运维

初期折腾服务器的时候经常需要重装系统,并且我有三台服务器,自动化运维是必不可少的了。

必备工具如 dockergitvimtmuxjq 都是通过 ansible 进行的安装

可以参考我的配置

当你有了一台新服务器时,你可以遵循以下步骤

  1. 使用 ansible-role 预配置环境
  2. 如果没有 ansible-role,则自己写 role
  3. 对于一些服务使用 docker 进行安装
  4. 如果以上都无法解决,手动安装

监控

没有像去年那样使用 prometheus 一套,只简单了使用了两个命令以及阿里云自带的监控

  • ctop: 监控容器
  • htop: 监控进程

对比

如果说与去年有对比的话,体现在两方面

  1. 更彻底的容器化
  2. 更加拥抱云服务,如 github actions,serverless,netlify 等

另外,还有一方面是自建了 k8s 集群 (真是烧钱),将会在另一个仓库中介绍它的体系。但是如果你对 k8s 没有什么兴趣的话,这一台1C2G的服务器完全满足你的要求

おすすめ

転載: www.cnblogs.com/xianwang/p/12099871.html