匹兹堡和克利夫兰的 Docker 咨询与支持
KawaConnect 帮助宾夕法尼亚州匹兹堡以及俄亥俄州东北部克利夫兰地区的企业,使用 Docker 和 Docker Compose 打包、部署并维护应用程序。我们搭建部署、代理、备份和更新流程,并提供后续支持。
聊聊您的应用程序 Linux 与 Kubernetes
本服务涉及的平台
我们用 Docker 做什么
我们先打包应用程序,然后围绕它搭建生产部署所需的一切。
应用程序容器化
我们把您的应用程序及其依赖项打包成镜像,每次构建的结果都完全一致。
Docker Compose 部署
Compose 文件描述服务、网络和卷,使整个应用程序可以作为一个整体启动和重启。
反向代理与 TLS
为多个应用程序提供统一入口,并自动签发和续期 HTTPS 证书。
镜像仓库与 CI 构建
私有镜像仓库,以及在每次变更时构建、打标签并发布镜像的 GitLab CI 流水线。
卷备份
持久化数据备份到异地,并进行测试恢复。
安全更新
按计划重建基础镜像并为主机打补丁,同时保留回退路径。
容器化应用程序
在容器化应用程序之前,我们会弄清楚它读取什么、写入什么、使用哪些端口,以及启动时需要什么。代码和运行时是可以丢弃的。数据库和上传的文件必须持久保存,因此它们存放在命名卷或绑定挂载中,绝不放在容器内部。
数据库密码等机密信息不会放进镜像,也不会进入版本控制,而是在容器启动时提供给它。
用于业务应用程序的 Docker Compose
对于单台主机,Docker Compose 往往是合适的工具。一个文件就能定义应用程序、数据库和缓存,一条命令即可启动全部内容。
- 反向代理与 TLS:由代理终止 HTTPS、按主机名路由并续期证书,使应用程序不会直接暴露。
- 重启行为:通过重启策略和健康检查,在崩溃或重启后让服务恢复运行。
- 监控:运行时间检查和日志汇入与您其他系统相同的仪表板。
镜像仓库与 CI 构建
在笔记本电脑上构建镜像再复制到服务器,这种做法一旦超过一个人就无法扩展。我们会搭建私有镜像仓库和 GitLab CI 流水线,在代码变更时自动构建镜像、打上版本标签并发布。部署时拉取已知的、带标签的镜像,回滚则只需指向上一个标签。
备份与安全更新
容器可以随时丢弃,但它们的卷不行。我们按计划备份卷和数据库,把副本发送到异地,并进行测试恢复。对于数据库容器,我们使用数据库自带的导出或备份方式,而不是从运行中的服务复制文件。请查看我们的备份与灾难恢复服务。
安全更新分为两层。主机操作系统需要打补丁,而当基础镜像或某个库被修复时,镜像需要重新构建。我们为这两项安排计划,测试结果,并保留上一个版本以备使用。Docker 主机通常作为虚拟机运行在 Proxmox 上。
何时迁移到 Kubernetes
Docker Compose 运行在单台主机上。当丢失这台主机已无法接受,或者您需要把服务分布在多台机器上、无停机更新,并在机器故障时在其他位置重启时,就可以考虑 Kubernetes。集群的运维工作量更大,所以只有在您确实需要这些能力时,我们才会建议使用。到那时,我们会把工作负载迁移到 Linux 与 Kubernetes 咨询中介绍的集群上。
合作流程
- 沟通了解。我们了解应用程序的功能以及运行位置。
- 书面方案。涵盖容器、代理、备份和更新的计划。
- 搭建与交付。我们负责部署,测试一次恢复,并写明运维方法。
- 长期支持。可选,由指定工程师负责。
我们会在一个工作日内回复。我们的办公室位于宾夕法尼亚州的 Coraopolis 和 Beaver Falls,克利夫兰地区的现场工作根据项目安排。
关于 Docker 支持的常见问题
Docker Compose 足以用于生产环境吗?
对于许多部署在单台主机上的业务应用程序,是可以的,前提是有备份、监控和补丁管理流程。它不提供跨主机的故障切换。
你们能把不是我们自己编写的软件容器化吗?
通常可以。许多应用程序都发布了容器镜像,我们负责配置并备份它们。对于定制软件,我们会自行打包,或与您的开发人员合作。
你们能接手别人搭建的 Docker 服务器吗?
可以。我们会清点容器、卷和证书,检查备份,并在做出任何更改之前,把发现的情况记录成文档。
适合哪些客户
- 在一台难以重建或更新的服务器上运行应用程序的企业
- 希望获得可重复的部署以及可追踪、有版本的配置的团队
- 用自托管的开源工具替代按用户计费软件的公司
- 需要镜像构建和镜像仓库的开发团队
相关指南
来自我们知识库的通俗讲解。