前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >容器技术,还处在起点阶段

容器技术,还处在起点阶段

作者头像
StoneDemo
发布2018-01-09 09:40:02
7510
发布2018-01-09 09:40:02

容器,Docker,Kubernetes,这些技术已经被使用了四年左右。有些人甚至开始认为这项技术已经成熟了!但我强烈认为,容器基础设施的实现还处于一个成长的阶段。

这篇博文将会重点介绍容器基础设施的其他部分。除了容器以外的其他一切,他们仅仅处在一个起点。

容器技术回顾

Docker 是什么?

Docker 通过简化现有的微服务概念,在 2013 年彻底地改变了软件技术。将其描述为一个可以将任何应用程序及其依赖关系封装到虚拟容器中的工具,这应是最好的描述方式。

您可以阅读 Web 开发人员和容器技术顾问之间的对话,以更好地了解容器的实现

Kubernetes 是什么?

Kubernetes 是 Google 开发的一个开源工具,它用于在集群环境中管理容器化的应用程序。本质上,它是为了管理 Docker,并解决现代集群基础架构的设计方式之间脱节的问题而开发出来的。

那么你应该使用哪一个工具呢?

在我看来,你可以同时将它们使用在你的生产环境中。Kubernetes 对于 Docker 的支持很好,搭配使用效果更佳。

Kubernetes 是当前市场中的领头羊,它的背后还有一个庞大的社区在支持着它。这是一个比较“固执”的工具,开发者需要达成共识,并遵循相同的指南,这非常棒,但这给了他们更低的灵活性。Kubernetes 有很大潜力能成为容器技术行业的一个标准。

另一方面,Docker Swarm(又名 Docker Compose ++)的设计纯粹是为了开发。因此,它们更易于调试于开发环境,而在生产环境中就表现得没那么好。

值得一提的是,上述所有技术都是开源的。理解开源的真正价值也非常重要。通过阅读开源容器技术可获取更多信息。

容器之外的基础结构

从'hello world'开始运行你的容器化应用程序,这将是一个漫长的学习曲线。只要你掌握了容器,并学会了各种解决难题与陷阱的方法,你就可以进入下一个阶段,即在生产环境中部署和维护你的应用程序。

因此,开发人员必须在运行他们的容器化基础设施前认真考虑,决定使用容器策略,将会对客户产生积极,还是消极的影响。

数据库

您可以将数据库托管在容器中,并且无需担心开发环境中的 I/O 性能。但在生产环境中还有许多需要考虑的事情。

比如说,您需要考虑数据库的存储组件,备份和复制。为了运行现代 web 应用程序或移动 API,数据库可以根据需求,采用具有高可用性和可靠性的备份或恢复策略来处理增加的 I/O。

云提供商

为您自己选择一个合适的云提供商,无论提供的是裸机,公共云还是混合云。请调查您的云提供商是否可以在一个区域内提供高可用性。

最后,您需要寻找具有灵活性的解决方案,因为不同的云提供商的容器部署流程不尽相同。我想您不会希望被一个单独的提供商牢牢套住。

部署工作流程管理

流程管理的目的是在没有任何宕机的情况下实现部署(蓝绿部署,Blue-Green Deployment)。这可以通过启用运行新版本的副本群集来设计,同时所有的旧副本则仍服务于所有实时请求。

在这一环节中,选择到正确的工具集是非常重要的,因为在开发环境和生产环境中部署的管理工具会有很大的不同,正如上面提到的 Docker Compose 的案例。转向多主机环境会导致复杂性增加,所以请确保您提前考虑好了从简单的单容器应用程序,到一组复杂的容器镜像的各种细节,其中,每个具有多实例的映像都会连接到负载均衡器,以待分配工作量。

负载平衡器和服务发现

通过一个或多个主机,使单个容器服务移动到多个容器,这需要负载平衡器来分配所有传入的请求。

为了提供无缝的终端用户体验,容器应用程序需要相互进行通信,并能够部署在任意服务器或容器群集上。

诸如 Nginx 或 HAProxy 此类工具,是微服务负载平衡器的主流选择。选择的诀窍,是保持其配置是最新的,同时要考虑到需要同时运行的不同版本。开发人员面临着服务发现带来的网络挑战,这导致了容器适配的过程很慢。

安全性

不能将容器当作小型虚拟机,因为它们是“彼此独立运行的,共享内核的代码片段”。想快速适配容器,就需要一个新的安全策略。在生产中,所有容器进程都运行在单独的一台主机上,使其与网络入侵和各种攻击媒介风险隔离开来。

为防止拒绝服务和暴力攻击,请确保您给您的容器堆栈应用了防火墙规则。此外,像Habitus.io 这样的 Docker 构建流程工具可以帮助您删除和管理包含构建过程中的隐含层。

监控与日志

为确保用户能够使用应用程序执行必要的功能,您需查明完整的堆栈容器监视策略的可用选项。检查当前和未来的负载是否会导致性能下降或运行中断,然后在最后要记得进行故障排除和错误处理。

此外,还要设置日志管理器以收集并聚合一个或多个日志服务器的日志条目,并考虑恰当的查看、搜索日志的方式以做到故障排除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 容器技术回顾
    • Docker 是什么?
      • Kubernetes 是什么?
      • 容器之外的基础结构
        • 数据库
          • 云提供商
            • 部署工作流程管理
              • 负载平衡器和服务发现
                • 安全性
                  • 监控与日志
                  相关产品与服务
                  容器镜像服务
                  容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档