疾风式全栈(15)-发布和运维(草稿)

软件开发完成之后, 就要上线发布. 也就是要把我们的软件放在服务器上启动, 让用户开始使用.
对于web系统来说, 客户端就是浏览器, 只要给出网址, 就可以访问. 对于其他形式的客户端, 可能还需要下载和安装的过程.
而服务器这边, 需要根据服务器的操作系统, 安装对应的软件和运行平台. 跟我们在自己电脑上安装的环境类似. 只不过服务器很多是Linux系统的, 特别是纯命令行界面的, 需要熟悉一下这样的环境和操作.

其实命令行的历史比我们所用的图形界面要久, 过去人们都是这样用电脑的, 只不过后来有了方便的图形界面, 多数普通用户就慢慢淡忘了命令行. 其实命令行还是有一些好处的, 所以在很多场合还是要用到.

一般我们通过SSH远程连接到Linux服务器, 输入用户名和密码, 登录之后, 显示一句提示, 就可以输入命令进行操作了. 这样的环境就叫shell.

比如我们输入 ls
就显示出当前路径下的文件名.

这里有一些名词, 在图形界面我们叫文件和文件夹, 在命令行中经常称文件夹为目录, 一级一级的目录用/连起来就称为路径(windows用). 我们输入的命令都是在当前目录执行的. 要查看当前路径输入命令 pwd.

另外一个概念就是path, 我们所输入的这些命令都是一些可执行程序, 他们的路径都要登记在path下, 我们才能直接执行. 如果没有登记, 我们就只有输入完整路径或者进入所在目录才能执行. 之前我们安装jdk和node时, 也设置了path. 在Linux下的概念类似, 具体操作方式可以通过网络搜索.

常用命令
cd 跳转目录
cat 列出文件内容, 可以查看小的文本
vi 命令行文本编辑器, 不用鼠标, 全键盘操作, 据说用熟了之后效率会很高
tail 查看文件末尾, 可以用于日志的查看
ps 显示进程信息
top 显示系统性能状况

命令后面可以加一些参数, 和我们调用函数的参数类似, 用空格分隔. 比如, tail -f 可以查看文件末尾的变化, 可以用来监控日志的更新.

大家可以尝试在windonws的powershell中练习这些命令, 概念是相似的. 现在的windonws也越来越重视shell, windonws 10 可以支持运行一个Linux的shell环境, 不过这功能现在也是测试, 而powershell已经兼容了许多shell命令.

传统的windonws命令行叫cmd. 不过功能较弱, windonws现在的发展重心是更为强大的powershell. 他们很多地方是兼容或类似的, 特别是我们多数时候只是进行日常的普通操作.

这些shell环境都是可以编写脚本程序的, 很多软件的安装和运行就是依靠shell脚本. 简单的shell脚本其实也还好理解, 复杂的可能我们也不想在这些专有的shell语法上花太多时间, 而是想更多通过我们熟悉的语言, 比如js, kotlin shell, 后者groovy(类似java)来实现. js里有gulp这样的处理工具, 而idea里从数据库表生成实体类的脚本是用groovy写的. 据说运维人员习惯使用python, 不过我也没有深入了解过. 脚本多数也是处理一些简单任务, 方便快捷是第一位的需求.

以上说的这些基础命令对于各个Linux版本基本都是通用的. 目前服务器主要使用的Linux版本是Cent和Ubuntu. 可能还有一些用Suse. 如果我们要安装软件, 就会用到不同的命令. 一般来说都会有一些包管理工具, 自动下载安装和配置依赖. 就像node中的npm, java里的maven一样.

要安装的环境也和我们在自己电脑上差不多, 用到java的要装jdk, 用到node的要装node. 如果使用git作代码管理, 也要装上git.

我们重点说一下nginx. 作为性能和功能都十分强大的web服务器, 我们想用他来管理我们的web服务. 在前后端分离的项目中, 一般会把网页等静态资源文件都统一让nginx管理. 而后端的接口, 也通过nginx转发. 这样从前端的角度看, 都是来自同一个地址, 不会发生跨域的问题. 并且nginx可以根据条件动态转发, 相当于做了一个简单的集群. 加上对https的支持十分方便, 后端代码不用修改, 就可以对外提供统一的https服务. nginx确实是强大好用. 现在据说也支持了http2, 建议大家多关注, 多尝试, 紧跟技术新潮流.

java项目的发布, 一般是采用war包的形式. 以前需要有一个tomcat提供运行环境, 现在用了spring boot, 运行环境是内置的了, 所以也不一定用tomcat, 可以选用性能更好的undertow. 项目整体打包成一个大的jar或war包. 在命令行使用java命令即可运行. 关于日志的配置和运行时的监控调整, 可以参考spring boot的文档.

node项目在生产环境中多数会用pm2来管理进程, 避免进程退出导致服务中断. 一般在package. json中都包含了生产环境运行的命令, 可以参考使用.

如果用到PHP代码, 也可以安装PHP环境, 并且通过nginx转发使用PHP服务. 具体方式可以通过网络搜索.

为什么会提到PHP呢, 因为计算机技术发展了几十年, 各种语言, 环境和技术实在是太多了. 每种可能都有一些应用领域, 特别是现成的代码, 对于已经实现的功能, 仅仅因为语言不同就重写一遍, 有些不太划算. 所以现在流行微服务的架构, 不管使用什么语言和技术编写的软件, 只要同样发布为HTTP接口的服务, 就可以相互调用. 我们也可以充分利用这种结构, 用最方便的技术去实现功能, 再通过统一的HTTP协议相互访问.

当然对于这么多用不同技术开发的HTTP服务, 管理就成了大问题. 所以google发布了Kubernetes, 基于docker容器技术, 实现了对各种异构服务的统一管理. 容器是一种轻型的虚拟机, 容器里可以运行各种技术编写的软件. 而Kubernetes提供统一管理的容器集群. 并且可以实现自动负载均衡, 自动监控和重启, 理论上说, 只要把服务发布上去, 就不用担心服务失效的问题. Kubernetes通过强大的自动运维功能, 为我们实现了最方便的软件运行环境.

当然, Kubernetes是个新技术, 学习和普及需要时间. 不过基于集群的自动运维管理一定是将来的发展方向. 我们只需要关注软件逻辑不出问题, 技术就会帮我们解决环境的问题.

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,509评论 6 504
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,806评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,875评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,441评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,488评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,365评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,190评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,062评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,500评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,706评论 3 335
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,834评论 1 347
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,559评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,167评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,779评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,912评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,958评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,779评论 2 354

推荐阅读更多精彩内容