基本的文件操作,网络操作等命令和普通Linux类似。同时openwrt也可以通过软件仓库安装应用软件,具体参见 openwrt软件包管理 。
例如,安装 nginx 应用程序:
opkg install nginx
只听到从架构师办公室传来架构君的声音:
断烟离绪。有谁来对上联或下联?
上面对openwrt的基本知识进行了简单介绍,后面开始一些综合应用了。
Openwrt Table of Hardware <>openwrt软件包管理 <>
5 软件开发过程的应用
在本文中主要介绍两种综合应用:
网络环境迁移变换
可以在不修改构建的代码的前提下,灵活的进行 开发/测试/灰度/全网 不同阶段的网络环境的迁移变换 可以批量对N台机器进行统一的网络环境配置(DHCP)
网络数据监控
对于一些没有好的抓包工具的平台,例如:移动设备,进行数据包分析。
6 网络环境迁移变换
6.1 使用场景
典型的互联网系统里面最基本的组成就是各种应用服务器及网络设备。通过有效的网络硬件架构和应用软件架构进行部署,来对外提供正常的服务。一个典型的高性能web应用系统的架构精简后如下图:
主要结构为:
负载均衡 对下属集群机器分配权重进行负载均衡和灾难热备
Nginx 服务器
多台 对机器的增加或者减少来实现计算能力弹性伸缩
Web Server 服务器
高速共享内存数据库 在服务器集群机器之间形成快速的内存数据共享
Redis Server
持久化数据库服务器 数据库应用系统的隔离存储
DB Server
为了简化描述,网络的拓扑结构可以简化为,所有的这些机器连接在一台路由器上,机器之间通过网络进行互访。
6.2 基本需求
上一小节内容里面提到的网络应用架构可以代表一种最终态的生产力架构。但是在软件开发周期里面显然一般不能直接在最终生产力服务器平台上进行操作的。一般情况下,从原型开发,到内部测试,到邀请公测(灰度),到全面开放发布,此架构的各部分会经过一些平滑的迁移。
开发阶段的代码一般是千疮百孔的,所以必然会有一些错误的业务,产生垃圾数据,如果直接面向生产平台进行测试,无法必然的会污染现有的生产系统,这是应该尽量避免的。
所以一般情况下,上述的网络架构体系需要进行三份拷贝:
开发组系统
测试组系统
生产组系统
对各种机器进行编号成:1~12号,如下图:
那么在开发和测试的时候可以通过对网络的修改形成比较平滑的迁移测试:
完全开发阶段。1-2-3-4
开发测试阶段。1-2-7-8 或者其它组合
完全测试阶段。5-6-7-8
灰度发布阶段。5-6-11-12 或者其它组合
完全发布阶段。9-10-11-12
6.3 实现方法
所有的这些网络迁移有个前置条件:在代码中不要使用具体的IP,而是统一使用域名来定义机器名称。
这样的好处有:
可以方便的做负载均衡
可以通过修改DNS来做域名和机器的映射