所以,这是一个多大的数呢
-
假定沙子是一个一毫米的立方体,且地球的陆地表面被沙子覆盖,那么,地球表面的沙子的个数将是:的数量级。
“使用了 IPv6,连沙子都会有自己的IP地址。” -- 鲁迅
更多的,IPv6有如下优点
- 在这个物联网时代,IPv6可以让更多的设备联网,符合物联网的主题。
- IPv6速度更快。(尽管这个速度的变化肉眼不可见。)
- 在正常操作的前提下,IPv6拥有更好的安全性。(尽管同样肉眼不可见。)
那么,我们该如何开发IPv6呢
-
既然我们不能解决问题,那最好的办法就是逃避问题。
“檀公三十六策,走是上计。” -- 《南齐书·王敬则传》
伏笔够了,主角登场:Docker
Docker是什么
- Docker是一个使用Go开发的开源的应用容器引擎,是容器化技术的代表。
- Docker将应用和所有的依赖打包到一个可以指的容器中,这个容器可以直接运行在任何支持Docker的Linux服务器上。
- 一般地,我们使用Docker完成业务部署,它具有一次编写,随处使用的优点。
- 最后,某种意义上你可以理解成Docker类似于虚拟机。
Docker的架构
所以,这和IPv6有什么关系
- Docker对外是透明的,我们只要创建一个能在IPv4环境下正常工作的应用层服务,使用Docker把它映射在支持IPv6的Server上,将端口映射,那么服务就可以在IPv6上启动了。
- 从比赛的角度来说,赛尔网络的云主机是经过了IPv6配置的,我们无需进行其他修改,只要安装并启用Docker服务,即可将原有的IPv4服务通过IPv6启动。
那么,如何使用Docker部署服务
安装Docker-ce
- 赛尔网络提供的系统是CentOS,CentOS是一个相当保守的Linux发行版,安装Docker需要7.0+的版本。
编写Dockerfile
FROM python
LABEL author="Li Yingping"
RUN apt-get update
ENV PYTHONIOENCODING=utf-8
# Build folder
RUN mkdir -p /deploy/app
WORKDIR /deploy/app
COPY /requirements.txt /deploy/app/requirements.txt
RUN pip install -r requirements.txt
CMD ["/bin/bash"]
使用Docker-compose编排服务
version: "3.3"
services:
webapp:
build: .
volumes:
- ./app:/deploy/app
ports:
- "80:5000"
command: python server.py
更好的使用体验
- 日志记录:Sentry
- CI/CD:Jenkins、Travis、TeamCity
- 集群部署:K8s(Kubernetes)
- ……