容器能够实现新应用程序的快速部署,代表着目前IT开发社区的最热门趋势之一。然而,想要实现容器部署生产环境,IT人员还需要使用SDN技术,在分布式微应用程序之间实现可扩展、可管理且安全的通信。 什么是容器? 容器能加快应用程序迁移速度,允许通过提升硬件使用率而部署微服务。每一个容器都只分配一个特定应用程序所需要的资源。与虚拟机不同,容器并不需要安装嵌入式操作系统。相反,它们封装了具体的应用逻辑组件,支持高效、轻松迁移的应用程序。 容器部署的优点 容器的设计目的是将应用程序划分为微服务组件。然后,这些组件可以分散到各种不同的计算资源中,其中包括数据中心或公共云的资源。开发人员可以在服务器之间或虚拟机(VM)之间迁移容器,修改应用程序而不需要担心软件和计算依赖问题。因此,容器能够让开发运维人员快速部署新的应用程序,如大数据分析。 容器部署的网络需求 现代应用程序在设计上通常包含许多的子应用程序,它们需要在微服务之间实现低延迟通信。这些子应用程序可能会快速迁移到独立的逻辑或物理宿主上,而网络则需要持续且自动地交付连接服务。容器之间的流量安全性则是另一个重要问题。 关于内置容器网络,目前最准确描述是它仍处于雏形阶段(而不像早期的OpenStack网络连接功能)。为了将容器部署扩展到可投放于生产环境的系统,还需要额外的网络功能才能实现自动部署和管理大量微服务之间的虚拟连接。例如,数据中心和/或公共云之间用于支持容器通信的广域网、IP地址路由和网络地址转换都可能成为问题。 SDN给容器提供灵活的网络连接 目前这些网络连接问题都给大型容器部署带来挑战。Docker等软件所包含的基本功能仍然无法很好地支持大量快速迁移微应用程序的网络连接。然而,SDN则可以提供虚拟连接和集中智能处理,能够在容器位置或需求发生变化时进行自动部署和管理。 开发者希望将应用程序从网络基础架构中抽象出来,但是需要有支持性能或安全等问题修复的可视性。SDN能够提供这样的可视性,允许IT人员监控容器的流量,提供服务保障和解决问题的工具。 SDN与容器供应商 有许多的供应商能够处理单纯容器环境和虚拟机与容器混合环境中的网络问题。两大主流SDN供应商(思科ACI和VMware NSX)都支持在其SDN产品中部署容器。其他支持容器网络的供应商还有:微软、谷歌、惠普、瞻博、诺基亚(Nuage)、Pluribus、Big Switch、PLUMgrid和Midokura。 从容器软件角度看,Docker、Canonical、红帽、CoreOS等公司正在致力改进容器的网络功能。 给IT领导者的建议 容器化正在快速成为敏捷IT策略的一个重要组成部分,它能够加快开发运维敏捷应用开发的转变。与所有新技术类似,容器开发的工作仍在进行中,需要一定的时间才能变成熟,与OpenStack很相似。大多数IT组织仍然需要管理运行在各种不同操作系统、虚拟机和容器之上的应用程序,无论是运行在私有数据中心还是公共云的混合环境中。 现成容器通常只支持轻量级网络功能。网络抽象则可以加快应用开发。但是,在管理和保证大量分布式容器微服务之间的通信时,仍然需要一些复杂的网络功能。SDN能够提供虚拟化连接、自动化分配/管理和大规模容器部署的可视性。此外,SDN仍然是实现容器间安全通信的重要组成部分。

TechTarget中国原创内容,原文链接: http://www.searchnetworking.com.cn/showcontent_92820.htm
© TechTarget中国:http://www.techtarget.com.cn

容器技术的落地还要依靠SDN的更多相关文章

  1. Prometheus 到底 NB 在哪里?- 每天5分钟玩转 Docker 容器技术(84)

    本节讨论 Prometheus 的核心,多维数据模型.我们先来看一个例子. 比如要监控容器 webapp1 的内存使用情况,最传统和典型的方法是定义一个指标 container_memory_usag ...

  2. PouchContainer 容器技术演进助力阿里云原生升级

    点击下载<不一样的 双11 技术:阿里巴巴经济体云原生实践> 作者 | 杨育兵(沈陵) 阿里巴巴高级技术专家 我们从 2016 年开始在集团推广全面的镜像化容器化,今年是集团全面镜像化容器 ...

  3. 微服务架构:基于微服务和Docker容器技术的PaaS云平台架构设计(微服务架构实施原理)

    版权声明:本文为博主原创文章,转载请注明出处,欢迎交流学习! 基于微服务架构和Docker容器技术的PaaS云平台建设目标是给我们的开发人员提供一套服务快速开发.部署.运维管理.持续开发持续集成的流程 ...

  4. Docker 容器技术

    前言: 之前感觉Docker是一种小虚拟机,docker和KVM虚拟机之间有什么区别.联系.可以应用在什么样的生产环境? 一.Docker是什么以及和KVM的区别 1.docker概念? Docker ...

  5. container injection——容器技术

    (一)容器技术为什么出现 在很久很久以前,想要在线上服务器部署一个应用,首先需要购买一个物理服务器,在服务器安装一个操作系统,然后安装好应用所需要的各种依赖环境,最后才可以进行应用的部署,而且一台服务 ...

  6. Docker学习笔记之浅谈虚拟化和容器技术

    0x00 概述 相信所有对 Docker 有所耳闻的朋友都知道,它是一款以容器虚拟化技术为基础的软件,因此在了解有关 Docker 的概念知识和使用方法之前,虚拟化和容器技术是我们不可或缺的基础知识. ...

  7. 浅谈微服务架构、容器技术与K8S

    关注嘉为科技,获取运维新知 企业应用系统:从单体应用走向微服务架构:从裸金属走向容器. 如果在诸多热门云计算技术诸如容器.微服务.DevOps.OpenStack等之中,找出一个最火的方向,那么可能非 ...

  8. Docker容器技术的PaaS云平台架构设计***

    基于微服务架构和Docker容器技术的PaaS云平台建设目标是给我们的开发人员提供一套服务快速开发.部署.运维管理.持续开发持续集成的流程.平台提供基础设施.中间件.数据服务.云服务器等资源,开发人员 ...

  9. 容器技术----------->Docker

    1. 虚拟化 1)什么是虚拟化 在计算机中,虚拟化(英语:Virtualization)是一种资源管理技术,是将计算机的各种 实体资源,如服务器.网络.内存及存储等,予以抽象.转换后呈现出来,打破实体 ...

随机推荐

  1. [转]Android时间获取与使用

    编写Android网络程序时难免会遇到手机时间不准确的问题,本文总结了一些常用的时间获取与校正方法: 转载请注明:http://blog.csdn.net/xzy2046 1.获取本机当前时间: Ti ...

  2. CentOS6下DHCP服务(二)简单配置案例及故障排查

    1.预分配网络参数如下:linux服务器:eth0 IP为192.168.8.250  做为局域网DHCP服务器局域网网段设置为192.168.8.0/24:内部计算机的router为192.168. ...

  3. Jmeter入门5 关联 响应数据传递-正则表达式提取器

    在测试过程中,遇到一个问题:用户登录成功后服务器会返回一个登录凭证,之后所有的操作都需要带上此凭证.我们怎么获取登录凭证并传递给后续的操作? Jmeter提供了正则表达式提取器,用变量提取参数,后续通 ...

  4. windows如何关闭指定端口

    关闭windows中被占用的端口,比如我们常见的8080端口被占用了 1.查找端口的PID netstat -aon|findstr "8080" 如图 PID为3888 2.关闭 ...

  5. 问题 B: 矩形类中运算符重载【C++】

    题目描述 定义一个矩形类,数据成员包括左下角和右上角坐标,定义的成员函数包括必要的构造函数.输入坐标的函数,实现矩形加法,以及计算并输出矩形面积的函数.要求使用提示中给出的测试函数并不得改动. 两个矩 ...

  6. CentOS上安装mongodb

    安装mongodb pymongo修改yum源vi /etc/yum.repos.d/10gen.repo[10gen]name=10gen Repositorybaseurl=http://down ...

  7. (jdbc和cmd)sqlite数据迁入mysql(导入导出)

    从sqlite进行导出数据 进行cmd命令 第一步:sqlite3->.open [文件路径](打开连接)->.tables(这个是查看表是否有没有)->.cd [切换的盘符](这里 ...

  8. Windows核心编程-作业

    原文链接:http://zhujiangtao.com/?p=983 作业 作业 一个简单例程 CreateJobObject 创建作业 作业限制和 SetInformationJobObject A ...

  9. C#获取包括一二级汉字的拼音 首字母

    C#获取包括一二级汉字的拼音 首字母 声母 汉字拼音转换 using System; using System.Collections.Generic; using System.Linq; usin ...

  10. ES6初识-模块化

    export let A=123; export function test(){ console.log('test'); } export class Hello(){ test(){ conso ...