摘要:华为云DTSE团队出品云原生改造指南,助力轻松实践OCP上云。

本文分享自华为云社区《【云享专刊】开源遇上华为云,OCP架构变身“云原生框架”》,作者:华为云社区精选 。

OpenStack、Docker、K8S、Hadoop……这些都是开发者耳熟能详的开源技术。

开源技术的应用,正不断推动新兴技术和产业的发展。

作为国内知名开源托管平台Gitee上面的优秀开源项目,open-capacity-platform微服务能力开放平台(简称OCP)有着8K+的开发者关注并fork,人气颇高。

OCP是基于layui + springcloud的企业级微服务框架,包括用户权限管理,配置中心管理,应用管理等功能。开发者通过OCP可以在本地搭建自己的开发环境,进行学习和二次开发。

当前,我们正处在云原生时代,云原生技术凭借降本增效、提高持续交付能力、易于开发等优势,正在不断激活应用构建范式,也将开发过程带入云端。开源与云原生如影随形、协同发展。云原生为开源带来了更优的商业化模型,用户能够得到最新、最可靠的服务,开源项目正加速上云。

如果将open-capacity-platform进行云原生改造,将用到的传统软件架构替换为高可用、高效的云上组件,不仅可以降低风险、减少维护负担、提高安全性,更能在不扩大团队规模的情况下增加开发效益。

正是考虑到OCP进行上云改造后可以带来的好处,为此华为云DTSE团队进行了技术探索,将这个好的实践分享给广大的开发者。

浅析OCP架构基于华为云的改造方案

基于华为云云原生改造,改造完的OCP可实现一站式容器化交付,打通云上全生命周期管理。并且,OCP基于代码源可以自动完成代码编译、镜像构建、灰度发布、容器化部署、运维流程。对接已有CI/CD,利用云原生的优势服务,完成传统应用的容器化改造和上云部署。能够让开发者聚焦业务开发,提升整体开发效率。

无需关注运维服务,华为云加持下的OCP为开发者带来三大能力提升

华为云全容器化的架构设计,能够为开发者带来更灵活的任务调度,更高的执行效率。OCP上云后,运维能力转到了华为云侧,不需要开发者再去维护运维服务,只需要使用运维服务即可。不仅如此,针对应用部署方面为开发者带来了编译构建能力、部署运行能力和运维能力的提升。

1、编译构建能力:

使用编译构服务CodeArts Build可以帮助企业利用云端构建海量构建资源,采用多样化的云端构建加速手段,实现本地构建无法企及的构建速度。CodeArts Build是按照实际占用的资源及时长支付相应费用,杜绝企业硬件资源及维护资金投入,且服务器是由CodeArts统一维护,大幅度降低成本。

2、部署运行能力:

部署选择云容器引擎CCE,CCE基于在计算、网络、存储、异构等方面多年的行业技术积累,提供业界领先的高性能云容器引擎,支撑企业业务的高并发、大规模场景。并且,CCE可以一键创建和升级Kubernetes容器集群,无需自行搭建Docker和Kubernetes集群。部署在CCE的应用可以使用流水线CodeArts Pipeline实现自动化部署,实现缩短交付周期和提升交付质量的效果。

3、运维能力:

使用应用性能管理APM、应用运维管理AOM和云日志服务LTS替换OCP原有的自建运维微服务,开发者不需要再去对运维微服务进行运维,只需要关注使用华为云的运维能力。同样可以使用华为云运维提供的高级运维能力,如APM的智能告警、调用链追踪;AOM的自动化运维和告警降噪;LTS的日志查询与实时分析、日志转储能力。

OCP上云改造思路

看了前文讲了这么多OCP上云的好处,接下来为大家简单介绍上云改造思路:

  • 将open-capacity-platform项目迁移至 CCE+CSE,需要进行将OCP用的注册中心从Eureka替换成CSE;
  • 使用RDS+DCS实现数据库上云;改用 OBS实现原应用中文件上传;
  • 使用CodeHub+CloudBuild进行编译构建+制作docker镜像;
  • 使用k8s+容器基础设施承载应用;
  • 使用APM+AOM+LTS替换调原有的运维+日志。

OCP基于华为云云原生改造架构图

OCP中文件中心(file-center)模块涉及对文件上传、查询、删除等操作。以集成华为云OBS为例,OBS的几个优势可以帮助开发者通过简单的操作创建稳定可靠的云上存储服务:

  • 数据稳定,业务可靠。可保障数据持久性高达99.9999999999%,业务连续性高达99.995%,远高于传统架构;
  • 多重防护,授权管理。通过可信云认证,让数据安全放心;
  • 能够为各场景下用户的千亿对象提供千万级并发、超高带宽、稳定低时延的数据访问体验;
  • 支持多种工具,让业务快速上云。华为云OBS支持在线升级、在线扩容,客户无感知。提供POSIX语言系统,应用接入更简便;
  • 提供按量计费和包年包月两种支付方式,支持数据分层独立计量计费,降低存储成本。

以上方案,打通了开发–测试–部署–运维全生命周期管理,方便开发工程师和运维工程师快速体验上云。从而实现:

  • 与其它产品预集成,开箱即用,简化应用上云、云上开发、云上部署、发布;
  • 运维能力转到华为云侧,不需要开发者再去维护运维服务,只需要使用运维服务即可,云原生运维提供了自动化运维和告警降噪等能力;
  • 全容器化的架构设计,任务调度更灵活,执行效率更高。基于云计算的灵活性、数据安全性、可扩展性,也可以帮助企业节省成本。

华为云DTSE出品云原生改造指南助力轻松实践

基于开源项目open-capacity-platform的云原生改造案例,华为云DTSE团队经过调研,体系化的梳理技术架构,沉淀出一套完整的开发指南。从开发构建到部署再到运维,覆盖了应用上云的大部分流程,可供需要上云的应用或想要开发云上应用做流程参考,帮助应用快速上云。

上手前你需要掌握的云服务知识

在进行OCP上元改造之前,小伙伴们首先需要了解华为云相关产品:CSE、CodeHub、CloudBuild、SWR、CCE、RDS、DCS、OBS、ELB、DNS、APM、AOM、LTS等云服务的功能模块文档。我们还准备了相关的云服务学习课程和实验内容,如实验操作数据库服务实践 、云容器快速搭建网站 ,学习两小时玩转华为云日志服务LTS 、CSE等课程 ,详情可见文末 。

9步带你了解上云操作流程

  1. OCP开源项目本地部署运行
  2. OCP接入CSE
  3. 代码上传CodeHub,进行代码托管
  4. RDS+DCS替换原项目中的Mysql和Redis
  5. CloudBuild进行编译构建,构建docker镜像并推送到SWR
  6. CCE中部署应用
  7. CCE接入LTS云日志
  8. DNS实现通过域名访问应用
  9. OCP业务成功访问使用

提供优化方案Tips,助力更高效开发

为了完成更好的开发体验,华为云还提供了相关的优化方案,以及在迁移的过程中会遇到的问题,华为云专家为大家整理了贴心的Tips,如项目启动数据库链接、workflow-center启动、编译构建、打包镜像、验证码生成等,会遇到的各种问题以及解决方案。

多方位资源支持,广邀开发者构建开源for Huawei Cloud

如今,越来越多的开发者选择加入开源for HuaweiCloud,华为云也将面向开源软件工具链与环境、开源应用构建和开源生态组件构建这三大重点场景,提供技术支持、奖金支持、活动支持,邀请更多的开发者,携手构建开源for HuaweiCloud。

共建开源生态,打开产业新增长空间

开发者将开源软件工具、开源应用和开源组件与华为云对象存储OBS、数仓DWS、云容器CCE等云服务对接,同时基于Terraform模板,上架到华为云云商店,支持其他开发者一键部署使用开源组件 ,我们称为“开源xxx for HuaweiCloud”。 下图为华为云开源项目仓库的示例,涵盖Dromara社区、Java、Go、Python、C&C++及其他开源类项目,数量超过100。感兴趣的开发者可以点击:​华为云开源项目仓库,了解更多。

不仅如此,参与贡献的开发者将有计划会获得​华为云沃土云创计划激励,领取云服务资源代金券,可用于开发部署。如果您有意愿参与,请在​issues留下您的邮箱或者主动发送到邮件到​hwcdtse@huawei.com,我们会尽快联系您。

100+华为云开源技术项目示例

华为云开源项目仓库:https://gitee.com/HuaweiCloudDeveloper/huaweicloud-cloud-native-plugins-kits

点击关注,第一时间了解华为云新鲜技术~

【云享专刊】开源遇上华为云,OCP架构变身“云原生框架”的更多相关文章

  1. 云享专家倪升武:微服务架构盛行的时代,你需要了解点 Spring Boot

    [摘要] 微服务架构的本质在于分布式.去中心化. 随着互联网的高速发展,庞大的用户群体和快速的需求变化已经成为了传统架构的痛点. 在这种情况下,如何从系统架构的角度出发,构建出灵活.易扩展的系统来快速 ...

  2. 微信小程序(七)-项目实例(原生框架 MINA转云开发)==02-云开发-配置

    云开发:1.就是用云函数的型式来使用云存储和云数据库完成各种操作!     2.只关注调什么函数,完成什么功能即可,无需关心HTTP请求哪一套!     3.此模式不代表没有服务器,只是部署在云环境中 ...

  3. 古有七步成诗,今有六步完成DevOps上华为云DevCloud实践

    引言: 在“DevOps能力之屋(Capabilities House of DevOps)”中,华为云DevCloud提出(工程方法+最佳实践+生态)×工具平台=DevOps能力.华为云DevClo ...

  4. 一文带你读懂!华为云在ACMUG技术沙龙上都透露了些啥?

    摘要:近日,华为云数据库业务总裁苏光牛在ACMUG中国MySQL用户组主办的 "华为云专场" 技术沙龙中分享了华为云数据库重磅新品GaussDB的核心能力与竞争优势.那么, Gau ...

  5. 硬核评测:企业上云的极速存储挑战,华为云全新极速IO云硬盘性能评测

    来源:至顶网 作者:董培欣 借助华为云全新一代极速IO云硬盘开启邀测的时机,至顶网评测实验室展开了一次华为云极速IO云硬盘与超高IO云硬盘的性能对比测试活动,并且尝试通过相关测试成绩,对云硬盘的应用能 ...

  6. 当Kubernets遇上阿里云 -之七层负载均衡(一).

    我们知道Kubernetes的service只能实现基于4层的负载均衡,无法提供7层之上的许多特性,诸如基于URL的负载均衡,SSL支持,三方授权等等:Ingress可以实现七层负载均衡的许多功能,唯 ...

  7. 华为鲁勇:5G+云+AI三大核心引擎将驱动广州数字经济发展

    [摘要] 华为云将携手广州政企,全面释放 5G+云+AI新动能,推动广州步入高质量发展新阶段. [中国,广州] 广州是一座多样化的城市,在历史上被誉为千年的商都,现在,广州也在持续的开放.融合.与时俱 ...

  8. 华为云亮相QCon2020深圳站,带你体会大厂的云原生玩法与秘诀

    摘要:在QCon全球软件开发大会上,华为云开发者生态总监张全文作为"云原生应用开发实践"专题出品人,携手华为云四位资深技术专家带来精彩分享. 作为当下技术领域最火热的技术趋势之一, ...

  9. 利用可道云kodexplorer在树莓派raspbian上搭建私有云网盘

    可道云kodexplorer是一款开源私有云系统,类似于owncloud,Dropbox.SkyDrive,seafile等.将可道云kodexplorer搭建在树莓派上,从而在树莓派上存储.管理家庭 ...

  10. 袋鼠云研发手记 | 开源·数栈-扩展FlinkSQL实现流与维表的join

    作为一家创新驱动的科技公司,袋鼠云每年研发投入达数千万,公司80%员工都是技术人员,袋鼠云产品家族包括企业级一站式数据中台PaaS数栈.交互式数据可视化大屏开发平台Easy[V]等产品也在迅速迭代.在 ...

随机推荐

  1. 针对“RuntimeError: each element in list of batch should be of equal size” 问题解决

    第一次运行代码出现了这个问题: 这个问题的出现主要来源于DataLoader类中的collate.py文件造成的问题,由于每个batch里的长度不一致,因此导致出现了该问题. 通过百度方法和查看源码去 ...

  2. 关于ADB命令工具

    android提供了不少命令行工具,方便我们调试和查看信息.下面是frameworks/base/cmds(android 6.0.1)中的命令. $ tree cmds -L 1 cmds am├─ ...

  3. SQL语句底层执行顺序

    1. SELECT 语句的完整结构 SQL92语法: SELECT ...,....,(存在聚合函数) FROM ...,...,... WHERE 多表的连接条件 AND 不包含聚合函数的过滤条件 ...

  4. JS数组创建

    1.使用Array构造函数 var arr1 = new Array(); //创建一个空数组 var arr2 = new Array(10); // 创建一个包含10项的数组 var arr3 = ...

  5. SQL Server 启用“锁定内存页”

    这次在虚拟机中做了一个模拟器做压力测试,简单模拟了一条20个工位的生产线上生产1000个工件,并向 MES 服务端发起功能请求,保存质量数据和扫码数据到数据库.在测试时发现服务端进程的 CPU 占用有 ...

  6. webpack逆向之报错Cannot read properties of undefined (reading 'call')

    经典报错 记录一下: 1: 缺少模块    补上 2.主模块无法调用子模块   有可能网站用的数组形式的模块包,你用的是对象,调用方法就要改变. 改写过程中 用的是对象方式: 那么3号包调用的4号包 ...

  7. AbstractRoutingDataSource - 动态数据源

    AbstractRoutingDataSource 类说明: (1)它的抽象方法 determineCurrentLookupKey() 决定使用哪个数据源. (2)项目启动时,先调用 setTarg ...

  8. mongodb展开数组数据

    核心是$unwind操作 db.getCollection("orders").aggregate([{$unwind:"$OrderTrackingDetails&qu ...

  9. sap shift语法

    shift  xxx LEFT DELETING LEADING / RIGHT DELETING TRAILING mask 语法. xxx中的第一或最后一个字符出现在mask中,则xxx左移或者右 ...

  10. 抽风的Maven、maven插件及配置

    Idea 配合 Maven使用中有时遇到莫名奇妙的问题,又莫名奇妙的恢复正常.整理如下: 1.删除系统环境变量Maven_Home,只需在IDEA中指定Maven及settings.xml即可. 有时 ...