logo

地址:深圳南山区大冲国际中心21楼

联系我们 : contact@wise2c.com

产品支持 : service@wise2c.com

售前咨询 : sales@wise2c.com

电话: +86 (755) 33268246

粤ICP备16049363号

睿云新闻

深圳睿云智合科技有限公司 > 睿云新闻 (Page 3)

我们应该如何基于容器来进行软件的持续交付

在过去的一段时间里容器已经大量的使用到了IT软件生产的各个环节当中:从软件开发,持续集成,持续部署,测试环境到生产环境。   除了Docker官方的DockerSwarm,DockerMachine以及DockerCompose以外,开源软件社区还涌现了一系列的与容器相关的工具,涵盖了从容器编排,调度,监控,日志等等各个方面的需求。   本文将从软件研发流程出发讨论如何基于容器解决软件的持续交付问题,以及团队协作问题。并为大家展示睿云智合(Wise2C)的持续交付平台是如何基于目前最先进的软件开发流程思想设计出来的。   在持续集成中使用容器   构建环境统一管理   在传统模式下使用持续集成工具诸如Jenkins,在部署企业持续持续集成平台的第一个问题就是多样化的构建构建环境需求,而通常的做法是将构建Agent(服务器或者虚拟机)分配给团队由团队自己管理构建服务器的环境配置信息,安装相应的构建依赖等。   在持续集成中使用docker dockerrun--rm-v`pwd`:/workspace-v/tmp/.m2/repository:/root/.m2/repository--workdir/workspace maven:3-jdk-8/bin/sh-c'mvncleanpackage'   如上所示,我们可以非常方便的通过容器来完成软件包的构建,其中有几个点需要注意的是: •--rm命令可以确保当命令执行完成后能够自动清理构建时产生的容器,我想你应该不太希望需要不定期清理构建服务器磁盘的问题吧。   • -v除了将当前源码挂载到容器当中以外,我们还可以通过挂载磁盘来缓存一些构建所需的依赖,比如maven下载的jar包,从而提高编译效率。   • --workerdir用以指定构建命令执行的工作路径,当然需要和workspace保持一致。   如上,基于容器我们可以快速搭建适应多种构建需求的CI构建环境,所有需要的一起就是你的构建服务器上需要的只有Docker。   在持续集成中使用docker-compose   在某些情况下,在构建或者集成测试阶段我们可能需要使用到一些真正的第三方依赖,比如数据库或者缓存服务器。在传统的持续集成实践中,通常要么你直接使用已经部署的数据库(记得清理测试数据,并发如何保证),直接使用内存数据库来代替真实数据库,要不使用mock或者stub来进行测试。   当然在理想情况下我们还是希望能够使用与真实环境一直的真正的数据库或者其他中间件服务。基于docker-compose我们可以非常方便的实现对于复杂构建环境的需求。   build: command:sh-c'mvn--help' image:maven:3-jdk8 links:[mysql] volumes: -'.:/code' -'/tmp/.m2/repository:/root/.m2/repository' working_dir:/codemysql: environment:{MYSQL_DATABASE:test,MYSQL_PASSWORD:test,MYSQL_ROOT_PASSWORD:test,MYSQL_USER:test} image:mysql:5.5   同样我们以maven为例,假设我们需要在构建中使用到mysql以支持集成测试的需求   docker-composerun--rmbuildsh-c'mvncleanpackage'&&docker-composestop&&docker-composerm-f ▪--rm确保在构建命令执行完成后自动清理build所产生的容器。 ▪-docker-composestop&&docker-composerm-f确保依赖的其它服务如mysql能够正常的退出并且清理所产生的容器。   建立持续交付解决方案 建立基于共同目标的具有跨职能协同的研发团队,是DevOps运动的根本。而自动化则是提高效率的基石。基于以上我们是如何基于容器建立我们的持续交付解决方案?   基础设施自动化   使用Rancher理由很简单,Rancher是目前市面上唯一一个能满足开箱即用的容器管理平台,同时能够支持多种编排引擎,如Rancher自己的Cattle,Google的K8S,以及Docker官方的Swarm作为容器编排引擎。同时Rancher提供的Catalog应用商店能够帮助研发团队自主创建所需要的服务实例。   创建持续交付流水线   建立持续交付流水线的核心问题是如何定义企业的软件交付价值流动。   如下图所示,我们总结了从开发,持续集成,持续交付各个阶段所使用的一些典型工具的使用,以及在各个阶段中的相关团队的相关活动,典型的DevOps相关的活动。   在持续交付流水线下的团队协作   正如上文所说,创建持续交付流水线的本质就是定义软件的交付的价值流动,反应正式的软件交付流程。价值的流动则涉及到团队中各个职能的成员的高度协同。   开发流水线   开发人员:频繁提交持续集成,通过持续的编译,打包,测试,镜像构建,自动化验收测试等环节产生可测试的候选镜像列表(如:0.1-dev)。   •以源码仓库为起点,开发人员频繁提交,每一次代码变更都要立即在流水线中传递;睿云智合WiseBuild持续交付平台支持定时周期触发,代码变更检查以及Webhook等多种触发方式。   •提交测试阶段从技术角度断言整个系统是可运行的,该阶段会进行编译,运行一套单元测试,并进行代码质量分析,WiseBuild持续交付平台设计遵循“BuildInDocker,BuildWithDocker,RunWithDocker"基于容器技术全面减少对于异构构建环境的支持,并且默认提供了当前主流的编程语言的编译,以及测试支持。同时用户可以根据需要在持续交付流水线中集成Sonarqube进行代码的质量跟踪和管理。   •自动化测试阶段,从功能交付断言整个系统是能够满足客户规范和要求的,WiseBuild持续交付平台支持基于Rancher或者RancherCompose在流水线中自动部署镜像到Rancher平台,同时内置了Selenium,Robotframework,Cucumber等主流自动化测试工具和框架。   •手动测试阶段,当新的代码提交部署到rancher环境后,开发人员同时可以快速的进行手动测试,确保新提交的代码在测试环境中是可用的,并且满足相关的功能需求。   •镜像构建,当代码提交通过了整个流水线的持续验证后将会产生响应版本的镜像文件。   基于流水线中的过程质量和代码质量数据,团队可以快速处理典型的代码质量问题,避免技术债务的产生。 总而言之,开发流水线可以帮助团队频繁的进行代码集成并且通过单元测试,代码静态分析,自动化验收测试等技术实际帮助开发人员快速的发现和解决问题,并且产生可待测试的镜像列表。   测试流水线   测试人员:从候选测试镜像列表中,选择需要测试的目标镜像,标记为测试版本(将0.1-dev标记为0.1-test),并且将待测试镜像自动部署到验收测试环境,完成手动探索性测试,对于已测试完成的镜像标记为预发布版本(0.1-test标记为0.1-beta)。   在待测试镜像列表中选择镜像,发布到开发用DockerRegistry仓库。 对于测试人员而言,流水线的起点则变为待测试的镜像列表,基于WiseBuild创建Docker类型流水线,可以支持测试人员快速创建测试环境并且运行相关的自动化测试脚本,同时满足手动探索性测试的需求。   支持使用自动化触发方式,如‘1.0.*-beta’的形式,当监听dockerregistry有符合规则的镜像产生后自动触发流水线。   支持手动触发,测试猿人可以手动选择服务该规则的镜像进行手动触发,一键准备测试环境,运行自动化验收测试等。   自动化部署流水线   运维人员:从预发布镜像列表中选择镜像部署到预发布环境,并且在验证通过后标记为release版本(如将0.1-beta标记为0.1-release),并且发布到生产环境。   与自动化测试流水线相同,运维人员可以建立独立的部署流水线,从待发布的镜像列表中选择镜像发布到生产环境Registry中,并且设置流水线的自动或者手动触发,实现对于预生产环境的一键部署。   小结 睿云智合的WiseBuild持续交付平台支持对接基于DokcerRegistry标准的镜像仓库服务,包括DockerHub,DockerRegistry,Habor,阿里云等等。 在基于容器的持续交付实现方案当中,我们以镜像为价值传递的单元,通过镜像的持续测试以及验证,完成镜像从开发,测试到可发布的状态转变,完成软件的交付流程。   •开发人员频繁提交,持续集成,持续反馈。 •测试人员自服务部署一键准备测试环境。 •运维人员执行一键式部署预生产环境。...

Read More

容器技术帮助传统金融企业显著提升IT能力的最佳实践

2015年曾冲刺入全行业保费发展规模前三的富德生命人寿,作为一家在业界连年刷新保费增速记录的创新性金融机构,近几年进入集团化经营发展战略阶段后,在更多的业务内容创新、业务渠道创新、业务结构优化改造方面始终走在行业尖端。   而这一切的业务发展成绩离不开强大的IT技术支持与引领,尤其是在应对互联网金融业务市场的激烈竞争时,IT能力的对决往往决定着业务发展的优劣。2015年下半年,富德生命人寿与中国平安科技——这两家传统金融机构科技创新力量的优秀代表,几乎同时开始启动了对容器技术的调研与引进,并在历时大半年的选型与方案验证测试后,各自完成了自己的容器技术应用项目。   作为领先并专注于金融行业容器技术与产品服务的合作伙伴,睿云智合(Wise2C)非常荣幸地参与了这两个率先迈出行业探索和实践步伐的项目实施过程,并且在其后为更多金融企业用户提供了我们的专业产品与技术服务,积累了目前遥遥领先市场同业的成功案例。   下面就让我们来看看富德生命人寿容器技术应用案例的具体解析。   项目目标场景 富德生命人寿的容器技术应用场景可以说在传统金融企业中是最为全面、最为丰富的案例之一,非常具有代表性。其项目需求具体包括:   •在引进容器技术之前,富德生命人寿已经将核心业务系统解耦为六十多个业务模块,正在尝试系统架构的微服务化治理,而容器技术刚好可以在有限的基础设施及人力资源条件下帮助实现高效部署和运维这些微服务模块。 •作为大部分业务模块自研为主的IT团队,业务软件的生产过程大幅提升自动化管理水平也迫在眉睫,CI/CD平台建设很早就已在富德生命人寿进行实施,容器技术的助力使得这一平台的使用将变得更加高效、流畅。 •作为大力开展互联网创新业务的金融企业,混合云架构支持下的诸多互联网应用需要在安全可靠的前提下解决高并发计算资源的弹性伸缩和业务灵活迁移,容器管理平台正是解决这一刚需的最佳利器。 •支撑富德生命人寿核心系统运行的计算资源每天差不多有一半时间没有任何业务流量,然而大数据团队的计算资源却非常紧张,富德生命人寿希望将大数据平台部署在容器化环境中,可以有效提高计算资源在不同运行时段的合理利用,真正实现云计算资源的科学管理。   技术实现方案 整体技术方案: 富德生命人寿基于容器技术设计了两个中心:软件持续交付中心和系统持续运行中心,第一期方案将主要支撑寿险业务的核心系统从软件开发测试,部署上线到持续运行全流程管理。   生命人寿IT平台架构部经过近一年的广泛调研,分析和验证性测试,最终采用了如下整体技术方案: •容器管理平台采用Rancher, 为上层应用提供容器化的基础设施和容器化应用的运行环境,以及基础性容器服务。 •持续交付中心,在睿云智合的WiseBuild基础上,实现了针对目前研发,测试,运维流程的集成和定制开发。 •在容器管理平台之上,与睿云智合的产品WiseRun设计思路一致,双方合作研发了持续运行中心,高效管理复杂业务系统的建模,部署过程,以及全面的系统应用监控,配置中心和日志中心。   应用容器化和持续运营中心 ▪将应用容器化,实现业务系统在多环境的一键部署; ▪引入容器管理和编排平台(Rancher),实现开发,测试,生产环境的自动化和底层基础设施的适配,以提供应用的运行环境,屏蔽底层基础设施差异; ▪实现应用的自动化部署及后续生命周期管理; ▪结合持续交付中心,实现业务系统的持续部署。   构建基于容器的交付中心 •将开发环境,测试环境和应用环境容器化,实现环境“一键部署”,及大规模构建环境的自动创建和复制,实现开发,测试和预生产环境的一致性和标准化交付; •实现持续构建服务,代码管理服务,并支持并行、弹性地自动构建服务。 混合云管理 项目中睿云智合(Wise2C)技术团队为富德生命团队完成了市场几乎所有主流的公有云主机以及私有环境混合场景的基础设施架构搭建测试及验证,为富德生命人寿未来的IT资产投入规划提供了有力的数据支持。   大数据平台容器化及自动化部署 项目中睿云智合(Wise2C)技术团队帮助完成了包括Hadoop以及HDFS、YARN、HBase、Hive、Kafka、Zookeeper等大数据组件的容器化集群部署,并全面实现了高可用特性以及平台的弹性伸缩能力。   建立了在非忙时段使用业务计算资源快速启动大数据集群进行自动化数据处理的科学机制。 项目中关键技术点 日志收集方案 项目中我们根据富德生命人寿的实际情况设计了一个低资源资源消耗,无应用侵入,可以清楚识别日志来源的统一日志收集方案。请参阅往期微信分享容器内应用日志收集方案   监控告警方案 富德生命人寿在监控方面的需求主要包含以下四个功能点,日志采集,告警,存储以及展示。目前业界流行的方案中只有prometheus是作为一个整体的方案可以同时满足这四个功能,但是prometheus的默认的存储方式是本地存储,对opentsdb这种分布式的时间序列数据库支持不够,在扩展性上不够好。所以我们为富德生命人寿设计了一种组合式的方案采用cAdvisor+scollector+Bosun+OpenTSDB+Grafana实现监控告警需求功能。各个组件之间都有官方支持,所以兼容性有足够的保证。...

Read More

将DevOps用到生产环境的民生保险容器应用云平台

作为传统金融机构重要代表的保险行业,许多企业的关键业务运营几乎毫无例外地依赖着一个笨重而陈旧的单体架构核心业务系统,其牵一发而动全身的复杂特性,使得诸多所属企业IT团队在面对企业“以客户为中心”、“互联网+”等发展战略所带来的排山倒海般的业务需求时,往往疲于奔命,甚至举步维艰。   除了系统架构本身的问题,大部分中小型金融机构,在业务软件的交付与运营管理方面,长期依赖核心业务系统供应商所提供的定制研发服务,缺乏对软件生产过程的高效管理,也使得大家在面对新一代业务系统架构改造过程中要求的持续交付/持续运营这一艰巨挑战时深感力不从心。   作为民营寿险企业的杰出代表,民生人寿成立十余年来始终坚持贯彻“以用户为中心”的经营理念,将不断提升用户体验,丰富服务模式,尝试通过多种渠道为客户提供个性化、定制化的保险产品作为公司追求的经营目标。而这一业务经营方针对IT支持的要求也在日益提高,在经过反复的“打补丁”方式勉力维持原有核心系统运行多年之后,民生人寿IT团队决心破旧立新,向业内标杆企业看齐,着手进行新一代核心系统的规划与建设。   重构一套全新的微服务架构核心业务系统,并且采用容器技术来优化微服务架构系统的治理模式,这样的战略规划不可不谓大胆而创新,因为在业界至今仍未有完整的成功先例。民生人寿IT团队上下都对这一项目寄予了极高的期望,大家一致认为,新架构下的核心业务系统重建项目意义极为重大,它很可能带领民生人寿在未来几年保险市场风起云涌的激烈竞争格局中突破重围,一举超越同类型机构!   睿云智合(Wise2C)承接了其中一项光荣而艰巨的任务:从2016年中开始,分阶段为民生人寿建设基于容器的企业级PaaS平台,包括开发者中心和运维中心,以帮助民生人寿在新架构核心系统搭建过程中实现高效的持续集成和持续部署自动化管理,并在未来进一步实现自动化运维管理。   项目目标场景 第一阶段建设开发者中心,为民生人寿新一代核心系统的项目开发提供完整的基于容器的持续集成解决方案,实现从代码提交到容器化部署的完善的DevOps工具链和工作流,促进微服务模块开发和上线的标准化、自动化,提高新一代核心系统的开发迭代效率。   第二阶段建设运维中心,为日后新一代民生人寿核心系统提供微服务运行框架以及自动化运维能力,实现持续部署服务、自动化弹性伸缩、自动故障恢复、灵活迁移、高级的服务编排以及高级的日志监控管理等能力,同时满足业务以及平台的高可用性要求。   技术实现方案 网络方案 本项目中睿云智合(Wise2C)为民生人寿两个数据中心四个业务网络区搭建了生产灾备两套平台环境。各业务网络区域均有独立的冗余接入交换机及网络防火墙设备,通过连接核心交换机及可选的负载设备实现数据流的策略控制及业务分隔。各区域间业务流量不允许互相访问。睿云智合根据民生现有网络架构进行了容器平台网络的规划设计,实现了业务、管理以及存储的三网分离。 存储方案 使用convoy组件连接NAS提供容器存储。 平台高可用(HA)方案 平台的的高可用(HA)部署采用3台主机节点,并且连接一个共用的外部的数据库。同时采用Haproxy代理以实现对三台HA节点的服务检查及访问切换策略。   MySql集群方案 容器管理平台需要使用外部数据库,以支持平台高可用架构。我们设计采用PerconaMySQL数据库集群方案,PerconaServer为MySQL数据库服务器进行了改进,在功能和性能上较MySQL有着很显著的提升。   高可用镜像仓库方案 高可用私有镜像库我们采用Harbor实现,使用Harbor提供的基于策略的Docker镜像复制功能实现镜像在两个环境的同步共享.该方案的优点是利用本地存储,成本低并且可以实现较快的故障转换。 日志方案 使用睿云智合自研日志收集工具WiseLog对接ELK,实现每个应用容器挂载一个专属的日志卷容器,不会存在应用写日志路径冲突的问题。同时,WiseLog容器内有logstash进程收集指定的日志文件,通过进程定时查询获取宿主机上新增的日志卷容器,并根据模板重新生成logstash的配置文件,将新增的日志文件加入收集列表。   WiseLog可以获取新增日志卷容器在rancher平台上所属的Stack,Service和Index,即使一个应用容器被调度到另外的主机,仍然可以通过Stack_Service_Index作为标识,在逻辑上将日志拼接起来,对于复杂的日志收集逻辑,也可以可以通过logtype的标签区分不同的应用,设置不同的日志收集路径。   监控方案 采用Prometheus+Grafana监控方案部署。实现对容器宿主机以及容器本身的日志采集,告警,存储以及展示。   持续交付平台方案 睿云智合在民生人寿生产环境容器管理平台上部署了持续交付平台WiseBuild,用来支持核心系统架构改造项目中每一个微服务模块的开发工作。 多个微服务模块开发小组可以同时在统一的WiseBuild平台上进行微服务模块开发过程的全生命周期管理与协作,以流水线为中心,实现从代码构建,测试到部署的端到端自动化能力。 同时,WiseBuild的流水线任务动态分配并容器化执行,构建环境可以动态,弹性扩张,可以支持民生人寿大规模的持续集成和部署活动。 通过WiseBuild提供的代码质量分析,自动化测试和发布决策等质量控制体系,民生人寿将为开发外包人员设立质量门,减少外包开发人员技术能力差异以及人员流动所带来的技术债积累风险。同时WiseBuild集成的各类自动化测试框架可以满足民生人寿的提高自动化测试覆盖率的需要。 通过WiseBuild,民生人寿将持续优化软件开发过程的管理流程,逐步实现开发过程的自动化程度以及IT交付效率的提升。通过在项目中持续的流程优化与团队交付能力的提升,逐步加速新一代核心系统架构改造项目的开发进程。   结语 众所周知,重构核心业务系统,并且是用最新的架构与技术重构一套没有多少先例可循的核心业务系统,这样的挑战并非是以传统而保守著称的金融机构敢于轻易尝试的项目。相信民生人寿IT团队的专业性、先进性都将在这一项目的实施过程中得到充分体现和锻炼,这一项目也必将随着实施成果的逐步显现成为行业中的优秀典范。作为与民生人寿IT同仁们一起并肩战斗的合作伙伴,睿云智合(Wise2C)将全力以赴,持之以恒地协助民生人寿共同迎接并赢得这场艰难的挑战!...

Read More

中国第一家推出容器云服务的金融行业云:平安金融云

作为国内综合金融卓越典范的中国平安集团,IT引领业务发展是其多年践行的企业科技发展战略,凭借多年积累的技术与团队经验,平安科技强大的IT能力始终为行业所瞩目。而平安的云计算战略,不仅仅着眼于平安集团自身,更期望立足于整个金融行业(和国内其他一些金融巨头的定位一样!),在科技服务自身发展的前提下,逐步谋求将先进而丰富的IT能力与基础设施资源对外进行输出,以科技的力量推动行业整体发展。而对于行业中的中小机构同业来说,在符合信息安全要求的前提下,标杆企业的专业技术与强有力的IT基础设施平台,是他们非常乐于学习和借力的先进资源,可以更快、更便利地获得专业的技术平台解决方案,这有利于他们将有限的人力物力更专注地投向业务应用层面的需求响应。   平安科技正是在这一战略前提下开始致力于打造金融行业领先的“平安金融云”,恰逢标志着Cloud2.0时代到来的容器技术传入中国,其诸多革命性的技术优势很快引起了平安技术先行者们的积极关注。及至2015年下半年,平安科技决定在新的平安云平台建设项目中,正式启动对容器技术的选型与引进。 项目目标场景 框架选型 在提供容器服务之前,平安云平台已经在为用户提供云主机、云存储等一系列企业公有服务,为了实现快速对接平安云已有IaaS平台并提供全面的容器云运营管理能力,平安科技在容器管理平台框架选型方面提出了以下选型要求: 架构简单,能够快速部署,易维护。 开源,贴近主流社区和原生平台。 支持多租户,能够严格的隔离和必要的互通。 支持VPC网络降低对网络的依赖。 符合容器服务规范的Stack、Service、Container领域模型。 完备、丰富的RestfulAPI。 跨平台支持好,能够适应混合云部署模式。 经过一系列的验证与测试平安科技最终在K8S,Mesos+Marathon以及Rancher之间选择了我们的Rancher平台作为容器服务平台基础框架。 自助服务 过去,开发测试人员做应用的开发测试工作时往往需要通过繁杂的内部资源申请流程获取开发测试环境。过程中常常需要与运维团队中负责各个基础设置资源管理以及数据库、中间件管理的成员进行多次沟通。无形中增加了时间成本沟通成本,同时所申请的环境在使用之后没有有效的资源回收机制造成了大量的资源浪费。 为了解决上述问题,平安科技通过容器服务平台为租户提供自助开发测试容器环境创建服务。租户可以自助在平台上快速部署所需服务与环境,并且在平台所分配的资源池中使用或释放开发测试容器环境作用资源。同时自助的在平台上完成镜像管理、应用编排、服务集群管理、容器管理等一系列工作。 持续交付 提供API对接平安已有的开发管理平台Wizard,为CICD流水线提供容器运行环境,实现全流程部署自动化。 技术实现方案 服务架构 平安云统一管理区 容器服务门户 门户系统,提供容器服务操作。 基于lvs+keepalived部署架构,外接mysql集群。 统一管理节点 采用Ansible,用于部署多租户容器环境,添加主机,初始化Registry等节点管理。 平安云公共服务区 Rancher服务 核心服务组件,主要用于容器调度与部署。 基于lvs+keepalived部署架构,外接mysql集群。 Docker节点 用于镜像制作、上传、下载,文件传输,执行Docker命令。 PublicRegistry 平安官方公共镜像仓库,同时是官方公共租户的镜像库。 采取多节点挂载共享盘部署。 租户VPC 租户环境 每个租户拥有完整容器部署和运行环境,包括RancherServer、Docker节点、PrivateRegistry。 隔离与其他租户之间的影响,减少跨租户的网络访问。 容器网络 对外:ContainerBridge,采用端口映射。 对内:容器之间直接使用容器管理平台框架Rancher自带的IPsec隧道实现。 如果某个容器需要对外服务,则采用端口映射方式,连通所在vm,就可以暴露服务。 如果容器不需要对外提供服务,只需要在同个应用内提供服务,那么采用ipsec方式,这样避免浪费过多端口。 容器与容器之间建立私有网络,只有容器与容器之间可以访问。每个容器都拥有一个私有网络地址:10.42.网段。 容器存储 根据Docker官方提供的所有存储驱动的成熟度。可以看到目前Production-Ready的是AUFS和DeviceMapper。 目前平安科技容器服务统一运行在CentOS,还没使用其他操作系统。因此选择DeviceMapper作为容器存储驱动。DeviceMapper底层直接使用云磁盘作为pool,采用LVM管理。 除了容器和镜像存储外,应用数据存储,包括配置文件采用了volume接口或者直接volume映射来解决应用容器漂移的数据问题。 日志 容器服务平台日志:本地+云平台ELK日志服务。 容器自身运行日志:本地云磁盘+云平台ELK日志服务。 容器内应用(业务方)日志:业务自行规划,已经提供目录挂载。 容器监控 主要依赖Rancher平台自带的主机与容器的监控功能,同时,通过脚本,定时获取容器本身的性能监控(cpu/mem/network/storage)数据,能够在portal上查看。 1、主机监控 2、容器监控 3、特定的中间件监控 平安研发了基于zabbix/open-falcon的监控平台用来提供常见中间件的性能监控(WebLogic/Tomcat/Nginx等),为中间件镜像制作脚本,中间件监控程序整合到Docker镜像中,容器一启动,就能即时上报性能数据到监控平台,无需任何外部干预。 镜像管理 针对镜像管理,平安科技进行了从单节点->双节点->跨区域分布式架构的演进。 通过自行开发的服务组件实现对不同区域数据中心的跨区域分布式镜像管理,每个区域都部署一套,对接本区域的私有镜像库。一方面监听当前区域的镜像仓库事件,然后主动发起同步操作。另一方面:执行Dockcer命令,管理该区域的所有运行容器的机器。 项目成果 经过大半年的设计、验证、实施,平安科技以全球领先的容器云开源技术框架(Rancher)为核心,自主研发为主,圆满完成了平安云CaaS容器服务平台的建设,实现了为平安集团旗下各个金融类别和拥有不同开发模式的子公司用户,提供物理机、虚拟机、容器等满足不同种类计算需求的计算资源服务的总体目标。并于2016年尝试面对公众市场发布推广,成为金融行业走向容器云平台公共服务的第一家机构! 结语 睿云智合(Wise2C)作为Rancher在金融保险行业的独家总代理,有幸成为这一历史性重大项目的合作伙伴,新的一年我们将一如既往地为平安金融云的不断发展提供更多专业、高效的服务。 同时,我们也非常高兴受邀参与到了更多不同运营方向的其他大型金融机构的容器云平台建设项目,为此我们正不断完善自身的系列容器技术平台产品,希望将我们的项目经验和技术能力,完整而快捷地交付给更多的企业用户!...

Read More

热烈祝贺睿云智合获得高新技术企业认定

经过严格的技术考察与业务评估,日前,深圳市高新技术产业协会致函深圳睿云智合科技有限公司,对睿云智合(Wise2C)的高新技术企业资质申请予以认定。   作为一家在云计算技术领域起步不足两年的企业,获得国家和深圳市相关产业协会的权威认定,充分证明了睿云智合技术团队在产品研发和技术服务方面的专业性达到了行业先进水平。...

Read More

睿云智合(Wise2C)持续为容器技术开源社区贡献力量

Docker公司在Austin举办的DockerCon2017上宣布,Docker Hub的全球镜像下载次数截至目前为止已超过120亿次。而2016年的DockerCon上,这个数字是41亿次。Docker 奇迹般的发展背后离不开全球开发者与技术公司对docker社区的贡献。截止目前,Docker项目的社区贡献者已经达到了3300多人。     睿云智合(Wise2C)容器技术团队自组建以来已经与十余家金融保险企业签订了容器技术平台相关项目合同。在企业落地实践过程中睿云智合(Wise2C)积累了大量的容器技术落地实践经验并解决了诸多落地实施时面临的技术障碍。如今睿云智合(Wise2C)除了继续通过持续迭代的产品以及专业技术服务帮助企业实现容器技术落地之外,也参与到积极为docker社区贡献力量的活动中去,致力于帮助推进docker技术的进一步成熟与完善。在STACKALYTICS最新的数据显示,睿云智合(Wise2C)的社区commit贡献数排名已经跻身全球企业贡献者Top50。 未来睿云智合(Wise2C)将在容器技术社区中持续投入资源,为容器技术的发展贡献力量。   随着Docker的日趋成熟,容器技术在全球范围内的应用越来越广泛,国内的企业IT对于容器技术也从过去的试用调研转向现在的真正落地。睿云智合(Wise2C)将密切追踪这一领域的技术发展趋势,凭借业界领先的产品以及丰富的落地经验为国内企业提供专业的技术服务。...

Read More

软件著作权

睿云智合(Wise2C)研发团队通过不断的技术创新,目前已经自主研发出多款软件产品,所有软件产品均已获得软件著作权。目前睿云智合云计算系列软件产品已被应用在各个企业级客户项目中。   软件产品包括:   WiseBuild软件软件持续集成平台   WiseRun新⼀代容器器PaaS平台   WiseCloud应用云平台   WiseCMP云管平台Vmware虚拟机管理工具软件   Hadoop⼤大数据集群部署平台   WebSphere应⽤用⾃自动部署和发布工具   睿云智合容器器镜像管理理系统   睿云智合应⽤用堆栈管理理系统   WiseCloud通用云平台快存储服务SAN驱动软件...

Read More

ISO9001认证

随着我公司业务的不断扩大,为了适应发展的需要,尽快与国际接轨为客户提供更优质的服务,引入ISO9001国际质量体系标准已成为迫切需要。   2017年3月23日,经授权公司认证专家的严格审核,国家质量体系委员会认可,我司管理体系符合ISO质量管理体系要求,获得GB/T19001-2016/ISO9001:2015认证证书。本次通过认证的范围如下:云计算的开发与销售、云计算服务;网络设备及软硬件的开发、销售与维护;计算机系统集成、网络技术开发与销售;经营电子商务;信息化平台销售及提供相关方案与技术服务;计算机邻域内的技术开发、技术咨询、技术服务、技术转让。   睿云智合(Wise2C)的质量管理本着“适应国际化大趋势的环境,借助实施ISO9001质量管理体系提高企业的管理水平,更进一步满足客户要求以及不断提高服务与产品的质量和技术含量”的质量方针,努力提升在企业客户中的服务能力以及服务质量。目前睿云智合(Wise2C)已为多家金融保险行业企业提供了容器云平台产品以及专业技术服务,在金融行业树立了多个容器技术落地的标杆案例。   睿云智合(Wise2C)全体员工将再接再厉,按照质量管理体系的要求执行,使我公司的质量管理体系持续改进,不断提高,更好的为客户提供优质服务及产品。 ...

Read More

关于持续交付你准备好了吗?

分享人:郑云龙 时间:2016-8-25 睿云智合持续交付产品负责人,在敏捷和DevOps领域有丰富经验的实践,过去作为敏捷和DevOps技术教练向多家大型企业提供咨询和培训服务。   持续交付理论要解决的最重要的问题就是,如何以最快的方式将我们的软件交付到客户手上;如何实现可靠,迅速并且低风险的软件发布。   在传统的软件开发方法中我们更多的关注软件研发环节,而DevOps运动则将软件研发活动的视角从传统的需求,开发,测试等活动延伸到了部署,发布以及运维过程中。 软件的核心价值是为软件的使用者带来收益,在过去我们经常听到开发人员说这个功能已经开发完成了。 但是在持续交付中我们认为之后将特性真正的发布到用户手上才以为则完成。 持续支付     而要想达到持续交付的目标即实现可靠,迅速并且低风险的软件交付需要所有相关人员(需求,开发,测试,运维)的协同工作才能保证这一目标的实现。 在持续交付过程中我们希望一个团队是能够充分自治的,能够完成从软件的需求,设计,开发,部署以及运维的端到端所有工作。 全功能团队         本文将以持续交付的8个原则来阐述在持续交付过程中的那些方法和实践:   原则一:为软件的发布创建一个可重复且可靠的过程 在传统的软件研发模式中瀑布式的工作方式深入到软件研发的各个环境。 在软件的发布过程中充满了各种等待: 构建和运维人员在等待说明文档或者缺陷修复 测试人员等待“好的”版本构建出来 研发团队可能在新功能发布几周后才收到缺陷报告 最终的结果就是软件产品迟迟不能发布甚至延期,同时由于开发与测试,开发和运维之间的过长的反馈周期直接导致软件产品的质量低下,同时可能并不能真正的为使用者带来价值 同时如果管理者想要对整个软件交付过程进行改善将会很容易陷入到局部优化的恶性循环当中,很难真正了解交付的问题瓶颈 而持续部署流水线则是解决这一问题的最佳方式,建立持续部署流水线即建立了一套端到端的软件交付流程,同时在持续部署流水线的流程当中参与到软件交付的各个角色都能各司其职,形成一套高效的“拉动系统” 开发人员持续的查看代码度量数据以及测试失败等问题,测试人员自助部署测试环境,同时运维人员也可以通过一键方式将软件部署到预生产环境以及生产环境。同时对于管理人员也可以通过度量持续部署流水线的各个环境来分析交付问题,通过合理的方式优化软件交付流程当中存在的问题。 而将持续部署流水线中的各个环节可以划分为如下几个不同的阶段 提交阶段 该阶段主要从技术层面证明软件系统是可以工作的,该阶段会进行软件的编译,以及以单元测试为主的自动化测试,以及代码分析 自动化验收测试阶段 该阶段主要从功能和非功能需求角度正面软件是能够满足用户的需求以及相关的需求验收条件 手动测试阶段 该阶段主要试图发现那些自动化验收测试不能覆盖的缺陷,同时证明系统是否能够真正的为用户提供价值,所以在该阶段中通常需要由测试人员完成相关的探索性测试,集成测试以及用户验收测试 发布阶段 发布阶段则旨在将软件产品发布到用户手中包括软件包发布或者是直接将软件部署到生产环境   原则二:将几乎所有事情自动化   为了搞笑的支持持续部署流水线,我们需要将除了探索性测试以外几乎所有的事情都自动化。 在软件交付过程中对于自动化我们可以分为两个方面,一方面是指在产生软件包过程中的如:编译,打包,单元测试,集成测试,自动化验收测试等活动。 自动化构建 在这个过程中我们使用例如maven,gradle这样的构建工具可以帮助自动化的完成软件的构建以及解决软件依赖问题 自动化测试 同时借助诸如robotframework,以及cucumber这样的自动化测试工具,以及采用BDD或者ATDD的开发实践能够帮助我们产生高质量的自动化验收测试集 基础设施及代码 在虚拟化技术和容器化技术盛行的今天,通过诸如AWS的CloudFormation以及Docker的Dockerfile等我们可以将我们的基础设施也变成自动化的 另一方面则涉及到与软件运行相关的自动化如包括基础设施的自动化管理,运行环境的自动化配置,软件本身的安装与配置等等 自动化配置管理 自动化配置管理工具如ansible,puppet,chef等相比传统的脚本。通过dsl环境描述的过程将服务器环境的准备过程变成自动化的,可重复的,并且能够支持大规模的集群管理   原则三:把所有东西纳入版本控制   在过去通常而言我们的svn或者git当中只存在我们源代码本身,而在持续交付过程当中我们认为任何会对软件的行为,质量产生影响的部分都应该要做版本化的,并且这些任何部分的每一次变更都应该通过持续部署流水线的形式来进行自动化的验证。确保任何的变更,如代码变更,测试用例变更,环境配置变更都能得到快速的验证,以及反馈 这些相关的“变更集”包括:基础设施描述文件,源代码,测试脚本,自动化测试用例,环境配置脚本,部署脚本,以及数据库的创建,升级,以及回滚脚本等。 从上面的“变更集”也可以看出,持续交付是一个团队所有人员和角色都应该参与的事情,并且每一个人都对软件交付富有责任   原则四:提前并频繁的做让你感到痛苦的事情   “如果集成是让你感到痛苦的,那么每一次代码提交都应该进行集成,而且应该从项目一开始就开始这么做;如果发布软件过程前测试是一件痛苦的事情,那么就应该从项目一开始就不断的进行测试;如果软件发布是一件痛苦的事情,那么每一次代码提交在完成自动化验收测试之后都应该进行发布,或者至少发布到类生产环境”   原则五:内建质量   在持续交付过程中持续交付流水线定义了一套标准的,可重复的软件交付流程;同时借助大量的工具我们可以将这个流程中的机会所有事情都进行自动化。但是另外一个点就是软件质量。 根据原则四,其实我们也可以推断出如果对代码进行测试是一件痛苦的事情,那么在编写实现代码之前我们就应该写测试,TDD,ATDD,BDD等软件研发实践正是体现了这一基本原则。 内建质量是戴明提出的名言之一。越早的发现缺陷,修复它们的成本越低。 根据内建质量的原则我们可以知道在软件交付过程中,测试并不是一个阶段,所以并不应该在开发介绍之后才开始。同时测试也不应该主要是测试人员的职责,参与交付的所有人都应该对软件的质量负责 其中测试四象限很好的阐述了为了确保软件质量而应该做的各种类型的测试建模   原则六:“Done”意味着“已发布” 在持续交付过程中认为一个特性的交付在理想状态下应该是已经发布到用户手中,或者至少已经向用户进行了演示。 相应的在敏捷开发中,我们每一个迭代结束后都应该想"用户代表"进行演示,并且在“用户代表”试用认为是完成了之后才意味则“Done” 其中“用户代表”可以是正在的用户,也可以是相关的业务人员   原则七:交付过程是每个成员的责任   在现实情况下,测试部门总是抱怨研发交付的软件质量差,运维总是抱怨软件不够稳定,开发总是抱怨缺陷反馈周期太长,解决问题的成本过高。 而在持续交付当中我们知道,对于交付团队而言最终目标是确保软件能够交付到用户手中,并且产生相应的价值。 而通过持续部署流水线,我们将所有参与到软件交付中的角色都联合成了一个整体,并且各个部分之间是能够快速的产生反馈,促成各个成员和角色之间的交流,并且快速的解决问题   原则八:持续改进   在任何一个充满生机的组织当中持续改进是这个组织保持活力的基本要素之一。 参与软件交付的成员需要定期对过去一段时间内的交付工作进行回顾,去发现在这个流程当中的做的好的方面,以及做的不好的方面,并且提出解决方案。     为了持续交付组织应该做好哪些准备?     交付团队而非部门   根据康威定律“设计系统的组织,其产生的设计和架构等价于组织间的沟通结构” 由于存在部门墙的存在,导致开发,测试,运维之间的大量沟通成本,严重影响效率。甚至严重时部门和部门之间甚至会非常容易起冲突。 开发人员只管完成既定的功能缺乏系统整体性思考;测试人员根据需求文档完成测试用例,但是却不思考需求本身的合理性;运维人员则缺少对软件架构本身的理解。各个部门看似各司其职进井有条,但是却很难对软件交付的效率和质量做出太多实质性的贡献。正如开篇所述, 而通过“交付团队”从项目一开始让所有项目成员能够参与到软件的交付过程中,确保各个角色的人员能够频繁的进行交流,并且为了一致的目标而共同努力,这也是DevOps运动核心价值 而相同角色之间的沟通交流通过社团COP的形式来进行领域知识的交流和提升是一个不错的方式     充分授权团队   确保持续交付实践的成功,赋能团队,授权团队也是整个组织应该思考的问题。在持续交付中我们知道一个团队是一个应该是以做产品而非做项目为目标,需要充分授权团队,使得团队能够完成从需求,开发,测试,上线的端到端过程。   当然在实际情况中,组织会有更多的因素需要考虑,比如最典型的场景比如由于落后的基础设施管理方式导致运维团队往往是被动的响应研发团队的需求,并且存在大量手动的操作环节导致时间和资源的浪费     平台化,服务化   公有云,私有云,容器云 通过组织级别引入虚拟化或者容器化技术以及相应的管理平台如OpenStack,Rancher,Ks8等工具可以大大减少Ops团队的运维团队,在过去需要大量手工操作的过程都可以通过虚拟化平台或者容器化平台完成,研发团队或者资源的周期从之前的几天缩短到几分钟。 基础设施自服务 同时对于Ops团队则专注于提供底层的基础设施资源,包括网络,安全等相关管理。并将相关的资源以服务的形式暴露给团队,各个产品团队管理自己的基础设施环境,维护持续部署流水线,以及软件运行环境的变更 平台化服务 同时对于企业和组织而言通过引入统一的平台化服务,可以完成对所有产品团队的统一管理,和监控。这些关键的平台化服务可能包括:统一的日志管理平台,持续交付平台,以及监控和运营平台等。 ...

Read More

Build MicroService With Spring Cloud And Rancher

分享人:郑云龙 时间:2016-7-20   睿云智合持续交付产品负责人,在敏捷和DevOps领域有丰富经验的实践,过去作为敏捷和DevOps技术教练向多家大型企业提供咨询和培训服务。     1, Aganda   今天给大家分享的内容是:《Build MicroService With Spring Cloud And Rancher》主要内容:我们将演示如何通过Spring Cloud和Rancher构建一个具有弹性的微服务应用。并且在这个过程中当中我们主要遇到的问题,以及最后如何解决。 对于一个最简单的微服务应用而言,一个最基本的结构如上所示: 我们需要一个服务发现和注册服务帮助我们管理和发现新的服务; 当我们从一个单体应用到几个,几十个微服务时,服务的配置也成了一个非常棘手的问题,统一的配置管理必不可少; 为了简化我们的客户端调用我们可能需要一个轻量级API Gateway来统一代理我们的所有请求,同时可以做统一的安全控制; 同时在微服务下我们应该遵循Build For Failure的原则,当服务发生失败时我们能够隔离这些失败的服务,从而需要引入Circuit Breaker熔断器; 除此之外,同一个服务可能有一个到多个实例,当我们访问服务时,我们还需要一个负载均衡器,帮助我们合理的分发我们的API请求。   2, Build MicroService With Spring Cloud   而Spring Cloud项目正是帮助我们解决以上问题的利器,让我们可以更加专注于我们服务本身业务逻辑的开发,而将服务治理所需的工作都统统交给框架来完成。 Eureka提供了统一的服务发现和注册能力; Ribbon和Hystrix则在服务和服务之间引入了负载均衡以及熔断的能力; Zuul则作为一个轻量级的路由和代码服务让我们可以快速建立一个API Gateway的能力。 3, Service Discovery With Spring Cloud Netflix: Eureka   以Eureka提供的服务注册和发现能力为例,作为一个微服务实例,在启动时我们将会主动向Eureka Server进行注册。Eureka Server服务维护当前服务的实例列表以及状态健康检查。        而作为服务的使用者,我们首先需要向eureka server请求当前的服务实例,之后再将请求发送给API的真正提供者。   4, Client Side...

Read More