分类 Paas 下的文章

基于KVM技术,使用Go语言开发,简单易学的虚拟机管理软件,从Web管理门户、主机监控、镜像克隆到故障切换,功能完备,开箱即用,数分钟之内即可将您的服务器集群升级为云主机平台。




快速安装指引


Nano平台提供了Installer安装程序用于自动化部署,最新版本Installer可以通过 官网下载 或者 Github发布页面 获取。


Installer会自行选择最合适的配置进行建议, 对于初次安装Nano的新用户,安装过程中尽量不要调整任何参数 ,如需调整参数、修改配置或者直接升级二进制文件,请在熟悉产品后进行操作。


Nano云平台可以将所有模块部署在同一个服务器或者虚拟机,实现All In One的最小验证集群


请使用前务必阅读快速入门手册,熟悉相关概念和流程再进行操作


服务器要求


支持虚拟化的X86服务器或者打开嵌套虚拟化(Intel VT-x/AMD-v)的虚拟机

2核4G内存50GB磁盘和一个网络设备

CentOS 7 Minimal

操作系统安装完成并且网络就绪

Firewalld和Selinux服务正常运行

如有Raid/LVM请先完成配置,再进行Nano安装

默认情况下"/var/lib/libvirt/images"路径存储云主机磁盘文件,"/opt/nano/core/data"存储系统镜像文件,请为其保留足够空间

全新安装


第一步. 下载并安装所有模块


$wget https://nanos.cloud/files/nano_installer_1.3.0.tar.gz $tar zxfv nano_installer_1.3.0.tar.gz $cd nano_installer $./installer


输入"0,1,2"或者"3"在当前服务器安装所有模块. 当您第一次安装Nano时,建议您使用安装程序建议的默认配置,无需修改。 如果你有多个网卡设备,请在安装程序的提示中选择连接内网的网卡设备进行安装。


配置详情可参考 快速入门手册







第二步. 启动所有服务


模块安装完成后,需要启动模块以提供服务,模块默认安装在/opt/nano目录下。使用命令手动启动所有模块(假定所有模块安装在同一台服务器), 请注意,必须首先启动Core模块 。


$cd /opt/nano/core $./core start $cd ../cell $./cell start $ cd ../frontend $./frontend start



我写成一键启动脚本


 cat start.sh


#!/bin/bash


#


ps -ef  | grep core  | grep -v grep  |awk '{print $2}' |xargs  kill -9    &> /dev/null


ps -ef  | grep cell  | grep -v grep  |awk '{print $2}' |xargs  kill -9    &> /dev/null


ps -ef  | grep frontend  | grep -v grep  |awk '{print $2}' |xargs  kill -9    &> /dev/null


cd /opt/nano/core


./core start


cd /opt/nano/cell


./cell start


cd /opt/nano/frontend


./frontend  start



当front-end模块成功启动后,会提示一个形如"x.x.x.x:5870"的监听地址,使用Chrome或者Firefox打开这个地址就可以进行平台管理了。


第三步. 使用Web门户管理平台


在浏览器中首次打开Nano管理页面,会提示创建一个初始管理员,成功后就可以登录平台。


登录系统之后,参考配置手册在计算资源池里添加资源节点之后,就可以开始创建云主机实例了。你也可以上传或者构建新的光盘镜像或者磁盘镜像,用于快速批量部署实例。




配置服务


选择-计算资源池-使用本地存储-资源节点




将本机加入到资源节点中来




默认的资源节点为/var/lib/libvirt/images


"/opt/nano/core/data"存储系统镜像文件


可以修改为自己定义的位置


选择光盘镜像上传一个下载的iso镜像文件




选择云主机-创建云主机-定义云主机的信息-来源镜像选择空白镜像(因为我这里是加载的iso镜像-需要安装系统)




选择加载刚才的光盘镜像




选择远程监控-可以看到正在安装系统




还能对已经运行的云主机进行资源的监控




这里简单的实现了云主机实列的创建应用。还有一些其他强大的功能还未探索 重点是使用极为方便,部署工作三分钟搞定。


升级安装


Nano所有模块使用go编译为二进制可执行文件,无需外部库依赖,配置和数据文件格式通常保持后向兼容,无需用户干预。


Nano能够通过两种方式进行升级,启动Installer并且选择”4”可以进行自动升级,自动升级会根据用户输入的安装路径,检查已经安装模块进行替换,并且自动停止并重启运行中的模块,是推荐的升级方式。


当自动升级方式出现问题时,可以选择手动升级,只需要使用”./模块名 stop”停止运行中的模块文件,替换可执行文件后使用”./模块名 start”重新启动服务即可。


唯一例外是FrontEnd模块还包含前端页面文件,所以升级时,除了要替换可执行文件,还需要手工将页面和js脚本文件从发布包中复制resource目录下进行覆盖。

————————————————

版权声明:本文为CSDN博主「姚敦林博客」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/yaodunlin/article/details/111645027


企业目前上云,有多种选择,那么对于中小企业,从成本和规模考虑,如何搭建自己的私有云环境,笔者这里根据自己的一个实践环境,尝试搭建一套小型私有云环境,功能并不完善,但基本能满足中小企业的需求。

硬件环境准备
环境的搭建,硬件成本是必须的,没有物理设备,那么巧妇难为无米之炊~~

服务器设备:

建议采购3台以上X86两路服务器,CPU配置根据需求,建议5218金牌。内存配置256G以上。配置SSD卡(32G以上、2块RAID-1)、SSD硬盘(512G以上、2块以上)、大容量4T的SATA硬盘(根据预算,配置8块以上,同时也考虑实际使用情况扩容)。配置万兆网卡2口2块(实现冗余)、配置千兆网卡4口2块(实现冗余)。

这样的硬件设备,配置较好的CPU、SSD硬盘、大容量SATA硬盘,可以实现计算和存储节点在一块,也有一些超融合的概念。

配套网络设备

万兆网络交换机

千兆网络交换机

软件准备
相信很多企业都在使用VMware的Exsi,VMware的价格还是比较高的,那么再新建一套虚拟化环境,从成本考虑采用开源的免费软件,这里选择了Proxmox,目前版本是6.0.(下载地址:https://pve.proxmox.com/wiki/Downloads)

Proxmox集成了Ceph功能,配合上述说的计算存储统一部署,那么选择Proxmox节省了很多部署上的问题,使得整个部署更简单。

有了虚拟化软件,那么还需要一套云管平台,统一来纳管资源,包括VMware和新的虚拟化资源池。

支持Vmware的云管平台很多,但是同时支持VMware和Proxmox的云管平台比较少,有些云管平台支持早期的Proxmox版本,但是最新的都需要自定义开发,这里选择了某厂商的一个云管平台,对Proxmox6.0支持并不完全。

迁移,如果需要迁移一部分VMware虚拟机到Proxmox,这里可以参考VMware导出OVA模板,在导出模板后加一个Ios后缀,上传至Proxmox,解压-导入。具体可参考:https://blog.csdn.net/zebra2011/article/details/83046841

安装配置
系统安装

Proxmox目前网络上有很多安装文档,大致雷同,这里就不在重复累赘,截取需要注意的几部分:

使用U盘或者刻盘安装都可以,基本都是下一步点击,这里注意:

选择系统安装硬盘,因为服务器中有多个盘,这里记得选择下。

网卡配置,记得这里有多块网卡,要区分做管理网段的网卡、业务网段网卡、Ceph集群网卡。

接下来按部就班完成安装即可。

假设目前环境中已经有ntp服务器,那么上诉服务器能链接外网,强烈建议

apt-get install ntp
如果设备你在内网那么ntp安装稍微麻烦一点,首先Proxmox基于Debian,那么要去Debian官网去下载相关软件包进行安装。https://www.debian.org/distrib/packages 搜索安装包离线安装,同时会有一些依赖,依次下载安装。

地址配置

每台设备安装完成后,根据需求,一般正式环境有管理网段、生产网段、Ceph网段。使用nano命令打开文件进行配置。

nano /etc/network/interface
配置网卡eth0的IP地址
auto eth0 表示网卡随系统自动请
iface eth0 inet static 表示网卡为静态ip地址
address 192.168.2.147 表示设置ip地址
netmask 255.255.255.0 表示子网掩码
gateway 192.168.2.1 表示网关。
配置多块网卡,记得根据接入的交换机,网关地址不设置。
理论上多块网卡配置业务网卡bond绑定,Ceph网络bond绑定,管理网卡可考虑单口
考虑Ceph模块的在线下载,那么编辑 /etc/resolv.conf 配置DNS

完成后重启网络服务即可。systemctl restart networking

注意:这里没有ifconfig命令,查看IP请用ip addr

集群配置

在每天设备的/etc/hosts配置好相应的IP和主机名,通过浏览器登录:https://IP:8006 登录名为:root密码为安装时候设置的密码。

选择其中一台主机来创建集群,这些都可以在页面上操作完成,然后把其余的几台设备添加进来,这时候建议ssh登录服务器,执行:

pvecm add IP
yes
查看输出,成功即可
输入:

pvecm status 查看集群状态
登录之前的浏览器页面

这时候Proxmox集群就完成了。

Ceph模块安装

Ceph模块安装还是建议先把设备连接至外网,点击之前浏览器页面中每台主机的ceph选项,在外网通讯正常情况下会自动安装。

之前先进行网络配置或者检查网络配置

配置Ceph网卡,Proxmox其实是一个定制化的Debian。

nano /etc/network/interface
中选择万兆网卡,其实写入配置文件。
配置网卡eth0的IP地址
auto eth0 表示网卡随系统自动请
iface eth0 inet static 表示网卡为静态ip地址
address IP地址 表示设置ip地址
netmask 255.255.255.0 表示子网掩码
gateway 网关地址不需要,因为之前业务网卡已经配置过网关,这里选择另外网段的地址来作为ceph的网络
如果设备链接在外网,那么Proxmox6版本中,点击左侧ceph,自动会进行安装,4台机器都安装ceph。

另外一种方式,通过登录服务器命令行去安装:

pveceph install --version 需要的版本 --每个节点安装ceph软件包
pveceph init --network 192.168.10.0/24 初始化ceph的网络
pveceph createmon --创建mon


配置ntp服务,对于Ceph来说,ntp服务是必须的,如果有内网ntp可以通过设置ntpdate来进行时间同步,不然会一直报错。

之后登录网页管理控制台,在其余三个节点都创建mon。

之后再创建OSD,把目前系统上识别出来的硬盘,逐步添加:



注意:Ceph配置完成后记得创建pool,这也只需要页面点击即可,命名,size=3表示是三副本(正常),min_size表示最小数据副本,这里需要注意pg_num,一般要保证每一个硬盘上不少于30个,不然整个ceph集群中会有警告,那么根据自身的硬盘数量来设置,后期也可以改,那么就需要去重平衡,这个时间会比较久~

创建RBD存储池,点击左侧存储,添加即可,选择之前的节点即可。


云管平台纳管
选择一款云管平台,接入纳管VMware和Proxmox,编辑工单实现资源的分配、扩容、销毁等功能。


新建用户:

设计相关流程和工单:

虚拟机新建
熟悉VMware的,其实用Proxmox很容易上手,点击主机,右键选择新建即可:

选择Ceph存储,其他选项下一步根据实际情况来选择。

整个集群状态

虚拟机状态


常用命令

整个搭建过程并不复杂,登录服务器,常用命令如下:

qm是最重要的命令:

USAGE: qm [ARGS] [OPTIONS]
    qm cloudinit dump
    qm guest cmd
    qm guest exec-status
    qm guest passwd [OPTIONS]
    qm guest exec [] [OPTIONS]
    qm clone [OPTIONS]
    qm config [OPTIONS]
    qm create [OPTIONS]
    qm delsnapshot [OPTIONS]
    qm destroy [OPTIONS]
    qm list [OPTIONS]
    qm listsnapshot
    qm migrate [OPTIONS]
    qm move_disk [OPTIONS]
    qm pending
    qm reset [OPTIONS]
    qm resize [OPTIONS]
    qm resume [OPTIONS]
    qm rollback
    qm sendkey [OPTIONS]
    qm set [OPTIONS]
    qm shutdown [OPTIONS]
    qm snapshot [OPTIONS]
    qm start [OPTIONS]
    qm stop [OPTIONS]
    qm suspend [OPTIONS]
    qm template [OPTIONS]
    qm unlink --idlist [OPTIONS]
    qm cleanup
    qm importdisk [OPTIONS]
    qm importovf [OPTIONS]
    qm monitor
    qm mtunnel
    qm nbdstop
    qm rescan [OPTIONS]
    qm showcmd [OPTIONS]
    qm status [OPTIONS]
    qm terminal [OPTIONS]
    qm unlock
    qm vncproxy
    qm wait [OPTIONS]

查看当前主机的虚拟机
    root@pve1:~# qm list
    VMID NAME STATUS MEM(MB) BOOTDISK(GB) PID
    103 redhat6o11g stopped 16384 150.00 0

ceph命令,熟悉ceph的同学,ceph的命令在这边都是适用的。

如查看集群状态:
    root@pve1:~# ceph -s
    cluster:
    id: 580f4d51-b80e-4842-b394-484cbd3ad0b6
    health: HEALTH_OK
    services:
    mon: 4 daemons, quorum pve1,pve2,pve3,pve4 (age 4d)
    mgr: pve1(active, since 3d)
    osd: 40 osds: 40 up (since 3d), 40 in (since 4d)
    data:
    pools: 2 pools, 640 pgs
    objects: 105.74k objects, 410 GiB
    usage: 237 GiB used, 130 TiB / 130 TiB avail
    pgs: 640 active+clean

注意事项:

1.Proxmox中新建的虚拟机需要添加到HA集群。

2.云管平台纳管,需要有相应的自定义开发,Proxmox接入自动化实现目前还有问题。

3.Ceph集群偶尔会报节点不可用,这个时候只能重启故障节点,出现概率不高。

4.Proxmox迁移虚拟机的速度比VMware要慢不少。
————————————————
版权声明:本文为CSDN博主「投河自尽的鱼」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/sxjinmingjie/article/details/101694507


Yearning SQL审核平台 v1.3.0版本正式发布

主要更新内容如下:

1.修改了报错提示

2.新增细粒化权限组,废除之前的个人权限划分

3.连接名webook合并至配置页面webhook

4.删除查询时限,新增管理员结束用户查询权限

4.查询页面支持自动补全库名及表名

5.新增版本号接口 (登陆后/#/version)

6.修复权限审核页面,数据库管理页面低版本chrome或其他浏览器401报错的问题

7.修复查询审核时查询工单提交没有消息推送的问题

关于Yearing:

Yearning SQL 审核平台 基于Vue.js与Django的整套mysql-sql审核平台解决方案。

提供基于Inception的SQL检测及执行

项目截图:


对于一个代码项目,传统的部署方式,是在服务器安装环境,然后上传代码,进行编译和配置,最终进行启动,完成上线。然而,这种朴素的代码发布方式早已不适用了,对于多用户、多语言、多项目、多环境的项目部署场景,手动部署显然是不现实的,自然而然就诞生了许多的自动化部署平台,如 Jenkins、Travis CI 等。Walle,同样是一个自动化的代码发布平台,它更加轻量、更加人性化、配置更加自由、更符合国人需求,是代码部署的一个不错选择。

f333be92a50a9bea6310324823d3ebd6.png

Walle部署平台

简介

Walle,是 meolu 在 Github 上开源的代码项目自动化部署平台,项目位于 https://github.com/meolu/walle-web,同时维护有 Gitee 镜像 https://gitee.com/wushuiyong/walle-web,目前版本为 v2.0.1。

869154d196cf8483aafef2e8f1cfd399.png

Walle平台

Walle 支持各种 web 代码发布,包括 PHP、Java、Python 和 Go 等,可以通过 Web 后台一键完成回滚。Walle 可自由配置,更人性化、高颜值、支持 Git、多用户、多语言、多项目、多环境同时部署的开源上线部署系统。

Walle 提供了类 Gitlab 的 RESTful API、类 Gitlab 的权限模型;提供了空间管理,可以实现独立的空间资源,包括环境管理、用户组、项目和服务器等;支持灰度发布;在项目管理中,支持部署、发布的前置和后置钩子,支持自定义的全局变量;命令行界面使用 Websocket 实现,提供实时的命令行展示;提供了完善的通知机制,包括邮件和钉钉等。

225725272a01550baeb9ed5f8e17e6c4.png

Walle特性

安装

Walle 需要 Linux 系统,Python 3.5+ 和 Python 2.7+,和 MySQL 5.6.5 以上,并且需要把所有的目标主机加入到宿主机的 SSH 免密登录。安装首先下载项目代码:

git clone https://github.com/meolu/walle-web.git

然后修改服务器的 Nginx 配置:

server {    server_name  admin.walle-web.io; # 域名设置        location / {        try_files $uri $uri/ /index.html;        add_header access-control-allow-origin *;        root /walle-web/fe; # 前端代码已集成到walle-web,即walle-web/fe的绝对路径    }      location ^~ /api/ {        ...    }    location ^~ /socket.io/ {        ...    }}

并在 hosts 添加域名:

127.0.0.1  admin.walle-web.io # 与nginx配置一致

进入 Walle 代码中,对 Walle 配置进行所需的修改:

vi walle/config/settings_prod.py

对于数据库,需要新建数据库,并进行数据迁移:

mysql  -hxx -uxx -p -e'CREATE SCHEMA walle'sh admin.sh migration

完成了以上工作后,就可以进行启动:

sh admin.sh start

此时,Walle 就已经完成配置了,可以访问 http://admin.walle-web.io,初始登录账号如下:

超管:super@walle-web.io  Walle123所有者:owner@walle-web.io  Walle123负责人:master@walle-web.io  Walle123开发者:developer@walle-web.io  Walle123访客:reporter@walle-web.io  Walle123

Walle 也提供了 Docker 的安装方式,可以更为方便地进行部署。

669a446d712fb695b4831ef57f75ab0f.png

Walle项目仓库

示例

Walle 平台包括:宿主机、目标机群和操作用户,其中宿主机是 Walle 所在的机器,是代码托管与远程目标集群的纽带。

d2a3988788a7f8404cdf1332923820c1.png

Walle架构

Walle 的组件和功能包括:服务器管理、用户中心、Dashboard、部署中心、项目中心、OpenAPI、CI/CD 和 CAS 等:

305d7452d80fad303b0692129fd4cbbc.png

Walle功能

Walle 的权限角色分为:SUPER 超管、OWNER 所有者、MASTER 负责人、DEVELOPER 开发者,和 REPORTER 访客,可操作的资源包括空间、项目、上线单、环境和用户等。

a721a9a9a286a948a9095816edab7612.png

Walle权限资源

对于代码项目上线,主要流程在宿主机进行完成:

2733bbc50b46680f7ce1ba1f0b36f46b.png

上线流程

Walle 提供了项目管理的界面:

e64a225d89e98739bae1a60b61af2ffb.png

项目管理

对于单个项目,可以进行配置,设置包括名称、环境、Git 仓库、分支,和目标集群等:

2f7272d6657885bf8a21ac23f6571992.png

项目配置

还可以进行目标集群上的路径、仓库、版本保留数,以及部署排除文件、全局变量等。Walle 提供了4个任务,作为上线部署的核心配置:

  • Deploy前置任务:在宿主机未检出代码前的前置任务,常为安装依赖、配置环境变量等;

  • Deploy后置任务:在宿主机检出代码后的后置任务,常为编译、清除文件

  • Release前置任务:在目标服务器同步代码到版本库后,服务切换的前置任务,常为停服、摘机器等

  • Release后置任务:在目标服务器新版本服务切换后的后置任务,常为启动服务、启动节点

通过这4个任务的命令行命令,完成项目上线流程的实际工作。此外,还可以配置上线通知的方式,支持使用钉钉 hook 完成通知:

96897b5d507891683a9f150f4e23260d.png

项目管理 任务配置

Walle 提供了部署管理,可以进行环境的选择,可以在预设的测试、预发布和生产环境中,选择不同的配置模板完成快速上线:

a5bc90735c036a06ee12633966aea89e.png

部署管理

选择环境后,就可以创建上线单,选取分支、版本和服务器进行上线单的提交:

91675a6cb7f1230b42d78e87c3d88082.png

上线单创建

创建完成,并通过审核后,点击[开始],就可以开始进行目标集群的自动上线,按顺序执行:Deploy前置任务、Deploy、Deploy后置任务、Release前置任务、Release和 Release后置任务,并显示当前阶段和命令行输出:

63fa8d46c04b4d004e83acabda39f0bb.png

部署上线

可以管理现有的上线单:

088f39050cec55024aa8a082cc47aa15.png

上线单列表

总结

Walle 作为一个自动化代码发布平台,相对于其他项目更为轻量,且提供了更为直接和方便的管理后台,可以通过简单的图形化配置,完成代码项目在服务器上的部署上线、环境管理、版本回滚等,比较适合较为简单场景下的部署的自动化,适合运维不足的开发团队的使用。Walle 使用 Python 开发,比较容易进行二次开发,可以进行功能的裁剪和添加,以适应自身的使用。


安全架构css

大型网站系统架构图

 

核心架构要素前端

大型网站系统架构图

 

高性能架构web

大型网站系统架构图

 

高可用架构浏览器

大型网站系统架构图

 

伸缩性架构缓存

大型网站系统架构图

 

可拓展性架构安全

大型网站系统架构图

 

* 前言服务器

前端架构网络

应用层架构session

安全架构 服务层架构 数据采集与监控架构

存储层架构

后台架构

数据中心机房架构

* 前端架构

用户请求到达网站应用服务器以前经历的环节,一般不包含网站业务逻辑,不处理动态内容。

1 浏览器优化技术: 页面缓存、合并HTTP减小请求数、使用页面压缩。

2 CDN: 内容分发网络, 部署在网络运营商网络。 静态页面分发到用户最近的CDN服务器。

3 动静分离: 静态资源(js、css)独立部署在专门的服务器集群, 和web动态服务分离, 使用专门

的域名(二级)。

4 图片服务: 独立部署图片服务器集群。

5 反向代理: 应用服务器、静态资源服务器、图片服务器以前, 提供页面缓存服务。

6 DNS: 域名服务, 能够用DNS负载均衡。

* 应用层架构

处理网站主要业务逻辑的地方。

1 开发框架。 分离美工和开发工程师,易于写做,内置安全策略。

2 页面渲染。 将动态内容和静态业务模板集成, 造成最终效果。

3 负载均衡。

4 session管理。 应用服务器集群,一般设计成无状态的,不保存上下文信息,须要专门的机制

管理session, 集群或者跨集群共享session。

5 动态页面静态化。 访问量特别大,且更新不频繁的动态页面静态化。

6 业务拆分。

7 虚拟化服务器。 一台物理机虚拟化多台虚拟服务器。

* 服务层架构

1 分布式消息。 低耦合。 更快的响应, 削峰填谷。

2 分布式服务。 SOA架构。

3 分布式缓存。

4 分布式配置。 配置修改实时推送。

大型网站系统架构图

 

想了解能够私信我!

1 SpringBoot+ 高并发消息处理 EDM?项目 实战

2 SpringBoot ELK?分布式 数据分析

3 Netty?高 并发 UTS?项目实战

4 SpringCloud?微服务+NoSQL+ 负载均衡平台设计