首页 程序笔记 容器化囧途~没上容器时好好的?

容器化囧途~没上容器时好好的?

如果寿司店老板说,有一种人叫寿司人,寿司人的一切都是为了吃寿司,寿司人比别的人都厉害,你肯定会嗤之以鼻;云厂商提出了云原生概念,倒是拥趸甚多——这是因为云比寿司好吃多了,它提供的好处,足以让人铤而走险,削减脑袋挤上云计算的车,这也就是业务上云了。

从参与《Kubernetes 权威指南》第二版到现在已经好几年了,在几年的容器化、云原生的推动过程中,因为一直从事企业服务的勾当,这个小视野里的绝大多数应用,都是证明可以成功容器化的。有一句很著名的程序员语录:“在我机器上是好的”,在推动应用上云的过程中,我听到的最多的噪音就是:没上容器时候是好的。”在我机器上是好的“的原因应该说是很清楚的——环境失控、或者应用没有适应能力。Kubernetes 和各种公有云都很成熟,就先不展开环境问题了,说说应用自身需要回答的几个很直白的问题。

你的应用敢重启吗

容器本身是易失的,而在微服务设计中也强调了一点——面向故障的设计,不敢重启的应用,一定意义上就意味着该应用并无应对故障的准备。容器的重启和漂移,对这种应用来说,会有灾难性后果。

你的应用依赖清晰么

从面向对象到微服务,都不断地在强调,高内聚、低耦合、面向契约等等等等,这些名词都在倡导一种有清晰边界,有明确接触方式的应用实现方法。没有明确依赖关系的应用,连正常的割接、移机、扩展都会有巨大风险,更不要说从主机环境迁移到容器云上了。

你了解应用的资源使用情况么

很多计算资源宽裕的企业,对应用运行过程中的资源使用毫不在意,这种情况在上容器时会造成巨大的困扰——毕竟一般不会提供一个 64G 内存的容器。CPU、内存、IO、网络等需求,在容器化的过程中,都需要有个清楚的摸查。

你的应用可观测么

完善的应用框架都会提供一系列的观测支持、包括调用跟踪、资源报表、日志输出、健康检查、服务监控等。不过也有不少应用并没有重视这方面的东西、或者错误使用。比如常见的把进程存活或者端口监听当做健康检查的标准、或者模糊不清的日志输出,这些观测性的缺憾,最终都会成为容器化的缺憾。

你的应用的可用性需求明确么

很多用户受到误导,以为上了云,会自动漂移的应用就能够 N 个 9 了,事实上容器平台或者公有云对应用高可用的支持也是有限度的,应用自身对高可用的需求、运行平台在高可用方面的支持应该有一个全面的了解,并据此相互配合达成可用性目标。

也算结论

容器不是拦路虎,它是照妖镜。从 Dockerfile 到 YAML,再到 DevOps 和不可变环境,都对应用提出了更高的要求——容器并非从天而降,也不具备化腐朽为神奇的能力,应用强,则容器强。

转载自:https://mp.weixin.qq.com/s/YBxa3QjmWTxKAXhBLSn3tw

3

站心网

如果寿司店老板说,有一种人叫寿司人,寿司人的一切都是为了吃寿司,寿司人比别的人都厉害,你肯定会嗤之以..

为您推荐

Blazor使用内存中状态容器服务保存和验证登陆状态

想用Blazor做一个简单的登录验证。模式是render-mode="ServerPrerendered"。在登录页面登录成功后需要保存类似.NET MVC网站的服务端session的状态。网上一些简单的做法是登录成功后把用户信息存在LocalStorage或者Se..

docker部署.net core网站

要在Docker中部署.NET网站,你可以按照以下步骤进行操作:创建 Dockerfile:在你的项目根目录下创建一个名为 Dockerfile 的文件,并将以下内容复制到文件中:# 使用官方的 .NET Core 运行时作为基础镜像FROM mcr.mic..

简单了解Docker的概念和作用

什么是Docker?Docker是一个基于轻量级虚拟化技术的容器,整个项目基于Go语言开发,并采用了Apache 2.0协议。Docker可以将我们的应用程序打包封装到一个容器中,该容器包含了应用程序的代码、运行环境、依赖库、配置..

.NET容器化支持和云原生支持

.NET 容器化支持允许开发人员将应用程序打包为 Docker 容器,然后将这些容器部署到云平台或本地环境中。容器化可以带来以下优势:可移植性:容器化应用程序可以在任何支持 Docker 的平台上运行。可重用性:容器可以..

如何在 Docker 容器中运行 Emby 媒体服务器

Emby 是一款出色的媒体/剧院应用程序,使您能够将所有电影、视频、音乐、有声读物、游戏和照片收集到一个地方。借助 Emby,您可以非常简单地在家里配置个人媒体服务器,能够自动转换和流式传输您的媒体,并可以在任..

如何在 Docker 容器中运行 Nginx 代理管理器

我们都知道 Nginx 代理主机、重定向和 SSL 的手动管理可能很乏味。 Nginx 代理管理器项目最初是 Jamie Curnow 的个人项目,旨在提供一种更简单的方法来创建反向代理主机并使用 Nginx 终止 SSL。该项目具有用于高级代..

使用 Docker 运行 Windows 容器

在我们的开发过程中,我们可能需要为应用程序在不同的 Windows 系统环境中进行测试,又或者我们可能需要在 Linux 系统上运行一些 Windows 应用。这时,我们常常需要通过虚拟机来实现这个需求,但是这种方法往往设置..

用于管理 Docker 容器的最佳 UI 应用程序

容器化是这十年来被广泛采用的技术之一。这迫使世界各地的公司对其云应用程序进行现代化改造。容器化可以定义为将应用程序打包在轻量级可执行文件中。容器提供运行应用程序所需的所有库和依赖项。这带来了更多优势,..

如何在 Bitnami Docker 容器中运行 OpenLDAP

管理用户、组及其各种权限是任何组织中系统管理员的重要任务之一。为了方便起见,许多人选择使用目录服务。这提供了一个集中式数据库,其中保存有关计算机网络中资源和实体的所有信息。它使访问和管理有关网络上各种..

如何在 Docker 容器中使用 UI 运行 Headscale

在本文中,我们演示如何使用 Docker 容器运行 Headscale 和 Headscale UI。我们最近的文章专门介绍了使用 .deb 包在 Ubuntu Linux 系统上安装 Headscale。该帖子的链接在下面的链接中共享。在 Ubuntu 上安装和配置 H..

Canonical推出Chiselled Ubuntu精简容器映像

Canonical 日前推出了一款名为 Chiselled Ubuntu 的容器,这是一种精简版的 OCI 映像,仅保留应用程序和必要的运行依赖项,有意绕过系统级包、实用程序或库。号称可以显著提高设备运行效率并提升安全性。Canonical官..

发表回复

返回顶部