从事服务器软件开发,必然对服务器有所了解。开发的代码,最终都得部署到服务器上。
项目大点,服务器管理有运维,服务器方案是由架构师和技术负责人拍板,普通程序员很难了解到全貌。当然,时间久了,工作涉及得越来越多,可能也就慢慢知道了。
本人接触的项目,并没有非常庞大的,单个项目,服务器最多也就一百多台,应该只能算中小规模的项目。分享也只能根据自己经历来,见识有限,但也希望自己的分享能对一些朋友有用。
一. 服务器环境
项目,一般都会搭建多个环境:开发环境、测试环境、预发布环境、生产环境。
根据字面意思,都挺好理解,行业不同,搭建的环境种类会不一样。开发环境、测试环境、生产环境,这三种环境基本都不会少。
显然,不同环境,都需要对应服务器的支持,除生产环境外,其他环境并不会投入太多服务器。
二. 实际服务器
中小企业,大部分都会选择使用云主机或虚拟主机,比如阿里云、华为云、百度云等,依托平台,不仅管理简单,扩展性也很好。
有的企业,非常信赖云服务,直接购买更精细的服务,比如云数据库,函数计算,网关,负载均衡等,直接买全套的都有。这就不做过多评论了,利弊都有。
出于成本考虑,很多企业也会选择机房托管,这比较考验运维。有的企业,会考虑用上一些服务器虚拟化技术,甚至是直接入股一些主机服务商。
三.集群、主备和灾备
系统大了,服务器,难免就得做集群,还得做主备和灾备。稳妥起见,还需要预留一些空闲服务器,应急。当然,计划赶不上变化,总有意外出现。基于一些应急方案,或能解决大部分问题。
四. 堡垒机、跳板机和VPN
生产环境的服务器,一般不直接暴露出去,只有对外提供服务,才会暴露IP和端口,否则只能通过后门去访问。大部分服务器,都会在一个或多个局域网、或广域网内。多线路对外访问的服务器,可能特别点,但都会考虑组网。
留后门,一般也就那么几种方法,常见的就是使用跳板机和VPN,有的会再搞个堡垒机。这些服务器,登入都需要很强的安全验证,比如,使用证书,接入网络限制等。
当然,留后门暴露出来的IP和端口,做好管理,也能起到很不错的效果。就比如22端口,换个端口号,其实用处还是挺大的。别以为黑客是万能的,IP和端口都拿不到,再好的黑客也得先绕一绕圈子。
五. 服务器监控管理
服务器,每一台都会做监控和预警,不仅对服务器资源进行监控,还得监控服务器的各种操作。
服务器多了,操作也麻烦,服务器操作容不得失误。有经验的运维,会使用一些脚本去操作服务器,不仅能稳妥点,还能实现一些定时和批量的操作。
有的项目,会开发很多运维工具,使用工具去操作服务器,而不是手动去操作。
六.服务器管理平台
项目大了,单靠运维,已经无法满足需求,频繁的更新,频繁的查BUG,运维苦不堪言,且经常背锅。介于这种情况,有的项目,会用上服务器管理平台。
一些常见的服务器操作,直接通过平台操作,而不需要登入服务器。服务器的管理,很多时候都是类似的操作,使用平台能更好的控制风险。
只能通过登入平台系统操作,就连后门(vpn/跳板)都可能被上锁。版本更新、日志提取和分析、数据库查询和执行等,这些都是服务器很常见的操作,使用管理平台操作,比直接登入服务器,能更可控。