企业大规模迁移到云端的时间已经到了,对于正在使用的应用程序,应该如何打包呢?

如今,越来越多的企业选择将应用程序或Web服务迁移到云端,各大厂商提供的云基础架构不仅功能强大、稳定且更具扩展性。通过迁移到云,企业可以显著降低运营压力和成本。目前比较流行的选择是迁移到基于容器的云环境,Kubernetes是最常用的方法。从长远来看,Kubernetes最具扩展性,本文介绍了主要的三种迁移至Kubernetes的方法。

为何选择Kubernetes?

在了解可迁移到Kubernetes的最佳实践和方法之前,值得花时间了解为什么Kubernetes是企业的最佳选择。对于初学者来说,Kubernetes在设置云环境时提供了最大灵活性。

Kubernetes有两个主要部分:主集群和充当服务容器的节点,这两个元素可以提供更好的可用性和可靠性。当节点处理应用程序的特定任务和部分时,主集群会处理诸如网络管理和其他资源之类的事情。

两部分设置意味着可以对节点进行更改,而不会影响整体集群。例如,当需要更新特定服务时,可以创建新节点并进行更新,然后告诉主集群使用新节点而不是旧节点即可。从迁移到Kubernetes的那一刻起,该方法可以最大限度减少停机时间。

此外,Kubernetes非常灵活,对于如何相对于彼此建立节点没有严格规则。只要主集群配置为正确使用节点,应用程序或Web服务将顺利运行。

迁移策略:三个计划

重新托管(Rehosting)

目前,主要通过三种方式将应用迁移到Kubernetes。第一种方式是重新托管(Rehosting),这也是所有方法中最简单的一种,基本是将整个Web服务或应用程序转移到Kubernetes集群。这意味着,只需将Docker包装在应用程序周围,然后配置Kube YAML文件进行部署即可。这个过程不涉及对应用程序进行更改,这也是转移到Kubernetes最快的方法。

但是,重新托管可能不是利用Kubernetes提供的云环境最有效(或高效)方式,此方式无法立即受益于Kubernetes的所有灵活性,但是很好的第一步。一旦初始迁移完成,就可以继续将服务和部分应用分解到其他节点。

重新平台化(Replatforming)

重新平台化是迁移到Kubernetes的第二种方法,可以准备应用程序并对其运行方式进行基本更改,而不是将整个应用程序移动到当前状态,这通常涉及将服务分解为单个容器和节点,并将不同功能分解成单独容器。

重新平台化比重新托管需要更多时间,这是因为将应用程序调整到基于容器的云环境并不是一个简单的过程。在本地Kubernetes集群和Minikube的帮助下,该过程可以变得更简单。

当处理分区版本以进行迁移时,应用程序可以继续运行。完成更新并布置服务集群后,迁移到GKE或Azure等云集群会变得更加容易,甚至可以在Minikube内部进行彻底测试,以确保更顺畅的过渡。

重构

重构是迁移到Kubernetes的主要方法之一。与前两种方法不同,整个应用程序和支持服务都经过修改,以更好地适应新分区环境。

在大多数情况下,重构涉及重新架构整个应用程序以充分利用云环境。例如,开发者可以使用与Kubernetes一起的云原生框架(例如Knative)来重构服务,这可以在云中运行无服务器工作负载。

作为权衡,迁移过程需要更长时间并消耗更多资源。但是,在流程结束时,企业将拥有一个完全可扩展的应用程序,可充分利用Kubernetes提供的所有优势。如果需要了解代码库以支持主要版本升级,倾向于推荐此过程。

至于哪种方法最合适,答案取决于迁移目标,要迁移到云的应用程序以及当前配置应用程序的方式。

参考链接:
https://dzone.com/articles/cloud-migration-best-practices-how-to-move-your-pr

迁移至Kubernetes的三种主要方式对比相关推荐

  1. Kryo,Hessain,Protostuff三种序列化方式对比

    前言 前段时间在写RPC框架的时候用到了Kryo.Hessian.Protostuff三种序列化方式.但是当时因为急于实现功能,就只是简单的的看了一下如何使用这三种序列化方式,并没有去深入研究各自的特 ...

  2. (考研湖科大教书匠计算机网络)第一章概述-第二节:三种交换方式(电路交换、报文交换和分组交换)

    获取pdf:密码7281 专栏目录首页:[专栏必读]王道考研408计算机网络+湖科大教书匠计算机网络+网络编程万字笔记.题目题型总结.注意事项.目录导航和思维导图 王道考研408计算机组成原理万字笔记 ...

  3. 计算机网络01:因特网概述、三种交换方式、计算机网络定义和分类、计算机网络的性能指标、计算机网络体系结构

    学习链接: 湖科大教书匠 因特网概述 网络:由若干节点和连接这些节点的链路组成 互连(联)网:多个网络通过路由器互连起来,构成一个覆盖范围更大的网络,即互连(联)网:因此互联网是"网络的网络 ...

  4. Kubernetes的三种集群外部访问方式及使用场景说明:NodePort、LoadBalancer和Ingress

    Kubernetes的三种外部访问方式:NodePort.LoadBalancer和Ingress 最近有些同学问我 NodePort,LoadBalancer 和 Ingress 之间的区别.它们都 ...

  5. Kubernetes的三种外部访问方式:NodePort、LoadBalancer和Ingress

    Kubernetes的三种外部访问方式:NodePort.LoadBalancer和Ingress(转发) 原文 http://cloud.51cto.com/art/201804/570386.ht ...

  6. Web框架之Django_07 进阶操作(MTV与MVC、多对多表三种创建方式、前后端传输数据编码格式contentType、ajax、自定义分页器)

    阅读目录 一.MVC与MTV 二.多对多表的创建 三.ajax,前后端传输编码格式contentType 四.批量插入数据与自定义分页器 摘要 MTV与MVC 多对多表三种创建方式 ajax ,前后端 ...

  7. k8s 查看ip地址属于哪个pod_一个简单的例子理解Kubernetes的三种IP地址类型

    很多Kubernetes的初学者对Kubernetes里面三种不同的IP地址和工作机制理解得不是很清楚. 本文我们通过一个最简单的例子来学习. 用如下命令行创建一个基于nginx的deployment ...

  8. 详谈RDMA技术原理和三种实现方式

    ​导读:远程直接内存访问(即RDMA)是一种直接内存访问技术,它将数据直接从一台计算机的内存传输到另一台计算机,无需双方操作系统的介入.RDMA最早在Infiniband传输网络上实现,后来业界厂家把 ...

  9. ipvs负载均衡(三)ipvs三种工作方式

    IPVS负载均衡(三)IPVS三种工作方式之NAT模式 IPVS是LVS(Linux Virtual Server)项目重要组成部分,目前包含于官方Linux Kernel,IPVS依赖于netfil ...

最新文章

  1. 简单数据结构(队列 栈 树 堆 )
  2. 你现在的CSS水平处于什么等级?
  3. 为新手准备的 Codea 着色器(Shader)教程
  4. python做mysql数据迁移_Python中MySQL数据迁移到MongoDB脚本的方法
  5. KVM虚拟机的优化历程---按需优化
  6. 线程池原理及创建(C++实现)
  7. linux 目录命令_Linux目录命令能力问题和解答
  8. C++类的继承与派生
  9. 12,mac phpstorm xdebug
  10. 主干网络系列(2) -ResNet V2:深度残差网络中的恒等映射
  11. python闭包的延迟绑定_Python延迟绑定问题原理及解决方案
  12. davinci项目服务器无法,【工程管理】为达芬奇建一个项目管理服务器 多人协同调色...
  13. 亚马逊利润_大流行给亚马逊带来了创纪录的利润
  14. 东芝硬盘数据丢失怎么恢复
  15. Python面向对象版:学员管理系统(入门级练手)
  16. php deflate 解压,PHP编码gzdeflate与Golang解码DEFLATE
  17. 【GDOI2018模拟7.14】小奇的糖果
  18. 软考高级 真题 2012年上半年 信息系统项目管理师 论文
  19. java 堆内存结构_基于JDK1.8的JVM 内存结构【JVM篇三】
  20. Android PCM 播放全是噪音滋滋滋

热门文章

  1. Android自定义GridView显示一行,并且可以左右滑动
  2. windows下忘记mysql 密码的解决方法
  3. 看看junit在一个具体的项目中
  4. chrome浏览器下audio自动播放的hack
  5. java多线程编程核心技术 2
  6. 如何在 Linux 中复制文件到多个目录中
  7. 一个过滤器不仅解决了会话标识未更新同时还顺带解决了已解密的登录请求
  8. mysql CASE WHEN的基础和多种用法
  9. windows 问题排查
  10. matlab和本机MySQL链接