应用容器化迁移与云原生的探索|商派运维团队

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 云原生化使得应用增益良多,实践和探索云原生是未来很长一段时间需要走的路线,云原生究其本质,凡是能够提高云上资源利用率和应用交付效率的行为或方式都是云原生。

文:商派运维团队 朱士杰

前言:

回顾过往,商派ShopeX的基础架构体系,从最早的IDC(大量采买硬件来搭建我们的服务),再到云计算(虚拟化上云),在这两次变革中,我们的服务效率、费用成本和质量都上了一个新的台阶。但在业务场景大爆发的潮流中,我们也遇到了许多需要解决的问题,如:
● 交付新环境的时间比较长
● 应用日常发布更新比较繁琐
● 大促紧急扩容的能力不足
● 底层的云资源无法有效利用

经过大量的实践与经验积累,商派ShopeX正式步入了云原生的架构体系,通过容器+K8S+devops的管理方法,不断提升商派的基础架构的稳定性、扩展性、高效性、安全性。

                             
                            #   什么是云原生

云原生的由来

云原生(Cloud Native)由来已久,其本质就是说应用程序从设计之初即考虑到云的环境,原生为云而设计,在云 上以最佳姿态运行,充分利用和发挥云平台的弹性+分布式优势。
我们现在说的云原生最核心的技术就是Kubernetes,以至于后面云原生可以真正落地。Google从2000年就开始使用了容器(linux容器)系统,其内部一直使用容器化编排引擎(Borg),Kubernetes也由此而来。
2014年Google开源了Kubernetes。

2015年Google主导成立的云原生计算基金会(CNCF),并把Kubernetes作为初创项目贡献给了CNCF。

云原生的探索

● 解决应用环境标准化的问题

 容器化是指将软件代码和所需的所有组件(例如库、框架和其他依赖项)打包在一起,让它们隔离在自己的“容器”中。
 这样,容器内的软件或应用就可以在任何环境和任何基础架构上一致地移动和运行,不受该环境或基础架构的操作系统影响。容器就像是一个气泡(或者是应用周围的计算环境),把应用和周围环境隔离开来。它相当于是一个功能全面、便于移植的计算环境。
 将应用打包装入可在平台和基础架构之间移动的容器后,只用把该容器移动到某个位置,应用就能在那里成功运行使用,因为容器中包含了成功运行应用所需的一切。

1639998875847-b1ad1b50-f7f3-4b4d-9ebe-c9511a632b7a.png

● Kubernetes自动化的特性

  Kubernetes 是用于自动部署,扩展和管理容器化应用程序的开源系统。官方初始定义就是企业级应用,而他天生就高可用架构,我们可以通过同一份配置立即启动一个一模一样的环境,从而提高应用开发和部署的效率,而其本身就具有自动化上线,自动化扩容,自我修复的特性。
  

1640142643985-a2bc031e-a62b-49b8-afec-9e35e55010eb.png

应用容器化迁移过程

迁移思维导图

1639986816254-bb7b2f85-c00a-4ae9-bcf3-fcf90522dc64.png

k8s容器化迁移

1639986893184-971bb3ae-0780-4c54-9f59-717394e5105c.png

解决的问题

● 容器化之后新环境无需重复部署
容器化打包之后,应用本身部署的环境已经被容器本身取代,所以新开应用是无需重复部署环境的,和之前部署环境1-2天(加测试问题排查等)相比容器标准化之后,大大降低了部署时间。

● 大促扩容效率提速

WechatIMG612.png

2021双11 商派业务中台 其中一个服务 从20个实例扩容到100个实例全部启动仅用了8分钟

● 应用日常发布快
单应用一周发布频率超过30次,只需负责项目研发负责上线工作,大大降低了上线成本。

● 底层的云资源利用率提高
一般没有容器化之前,非容器化应用的服务器cpu水位利用率大概不到百分之10,容器化之后在相同的资源cpu水位提升百分之100,资源没有饱和的情况下可以部署更多的应用。

总结

云原生化使得应用增益良多,实践和探索云原生是未来很长一段时间需要走的路线,云原生究其本质,凡是能够提高云上资源利用率和应用交付效率的行为或方式都是云原生。

相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
云原生实践公开课
课程大纲 开篇:如何学习并实践云原生技术 基础篇: 5 步上手 Kubernetes 进阶篇:生产环境下的 K8s 实践 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
1天前
|
存储 运维 Kubernetes
容器化技术在现代运维中的应用与挑战
【6月更文挑战第23天】随着云计算技术的不断进步,容器化技术已经成为现代运维的重要组成部分。它以其独特的轻量级、可移植性和易于管理的特性,为运维工作带来了革命性的变化。本文将深入探讨容器化技术的核心概念、优势以及在实际应用中遇到的挑战,同时提供应对这些挑战的策略和建议,帮助运维团队更有效地利用容器化技术提升运维效率。
|
2天前
|
运维 Kubernetes 监控
自动化运维的新篇章:容器化与微服务架构的融合
【6月更文挑战第22天】在数字化时代的浪潮中,企业IT架构正经历着一场深刻的变革。本文将探讨自动化运维如何通过容器化技术与微服务架构的结合,提升系统的可维护性、扩展性和敏捷性。我们将深入分析这一结合背后的技术细节,以及它如何影响日常运维工作,同时提供一系列实用的操作建议和最佳实践。
|
3天前
|
人工智能 运维 监控
智能化运维:AI在IT运维中的应用与挑战
【6月更文挑战第21天】本文将深入探讨AI技术如何革新传统的IT运维领域,通过案例分析展示AI在故障预测、自动化处理和安全监控等方面的应用。同时,文章也将讨论AI运维带来的挑战,包括数据隐私、系统复杂性和成本问题,并提出相应的解决策略。
173 6
|
1天前
|
运维 Cloud Native 持续交付
云原生技术的崛起与应用前景
在当今快速发展的科技领域中,云原生技术作为一种革命性的开发和部署方式,正以其灵活性和效率优势改变着软件开发和运维的面貌。本文将探讨云原生技术的定义、关键特性以及在现代软件开发中的应用前景,旨在帮助读者深入理解这一新兴技术的重要性和实际价值。
11 3
|
3天前
|
机器学习/深度学习 人工智能 运维
智能化运维的崛起:AI在IT管理中的应用与挑战
【6月更文挑战第21天】随着人工智能(AI)技术的飞速发展,其在信息技术(IT)运维领域的应用已成为推动效率和创新的关键动力。本文将深入探讨AI如何重塑IT运维的面貌,包括自动化故障检测、预测性维护、以及智能决策支持等方面。同时,我们也将分析在实施智能化运维时所面临的技术挑战和道德考量,并提出相应的解决策略。
255 4
|
4天前
|
存储 运维 监控
容器化技术在现代运维中的应用与挑战
【6月更文挑战第20天】随着技术的迭代和云计算的普及,容器化技术已经成为现代运维不可或缺的一部分。本文将深入探讨容器化技术的核心优势、面临的主要挑战以及在企业运维中的实际应用案例,旨在为运维人员提供容器化部署和维护的实用指南。
|
20小时前
|
Cloud Native 安全 Devops
云原生技术在现代企业中的应用与挑战
随着数字化转型的深入,云原生技术成为推动企业IT革新的关键力量。本文将探讨云原生的核心概念、主要优势以及在实际部署中遇到的挑战,为企业提供云原生转型的实用指南。
7 0
|
20小时前
|
Cloud Native 安全 持续交付
云原生技术在现代企业中的应用与挑战
本文深入探讨了云原生技术如何在现代企业中被采纳,并分析了其带来的优势及面临的挑战。文章首先定义了云原生的概念,随后详细讨论了容器化、微服务架构、持续集成/持续部署(CI/CD)和DevOps文化等核心元素。接着,通过案例研究展示了云原生技术如何促进企业的敏捷性、可扩展性和资源效率。最后,文章指出了企业在采用云原生技术时可能遇到的安全风险、技术复杂性、人才缺乏和文化适应性问题,并提出了相应的解决策略。
5 0
|
3天前
|
运维 Cloud Native 持续交付
云原生技术在现代企业中的应用与挑战
随着数字化转型的不断加速,云原生技术已成为推动企业创新和竞争力的关键因素。本文深入探讨了云原生技术的核心概念、优势以及在现代企业中的实际应用案例。同时,文章也指出了企业在采用云原生技术过程中可能遇到的挑战,并提供了相应的解决策略。通过分析云原生技术的发展趋势,本文旨在为企业提供一条清晰的云原生技术应用路线图。
|
27天前
|
存储 弹性计算 监控
【阿里云云原生专栏】成本优化策略:在阿里云云原生平台上实现资源高效利用
【5月更文挑战第29天】本文探讨了在阿里云云原生平台上实现资源高效利用和成本优化的策略。通过资源监控与评估,利用CloudMonitor和Prometheus等工具分析CPU、内存等使用情况,识别浪费。实施弹性伸缩策略,利用自动伸缩规则根据业务负载动态调整资源。借助容器化管理和Kubernetes编排提高资源利用率,优化存储选择如OSS、NAS,以及网络配置如VPC和CDN。示例展示了如何使用Kubernetes的HorizontalPodAutoscaler进行弹性伸缩,降低成本。
125 4