巧思云服务容器化架构实践

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 在云栖TechDay : Docker深度实践专场,巧思科技CTO张杰分享了题为《巧思云服务容器化架构实践》的演讲。他主要介绍了巧思在应用容器服务过程中遇到的一些问题,包括想要解决什么问题,遇到的问题,以及阿里云怎么解决这些问题。

巧思科技简介

巧思科技公司的定位是以问卷的形式做精准数据,出发点是SASS服务,把问卷分为问卷的咨询、问卷的设计、问卷的分发,包括问卷的答题和问卷的数据结果。巧思云服务的部署方案包括: 按照SaaS云计算服务性质可以分为公有云、混合云、私有云等等;巧思系统是基于SaaS模式在线数据收集服务,是属于公有云范畴;巧思系统提供的SaaS服务基于组件化、模块化的,因此系统部署可以提供个性化、定制化、弹性化的SaaS服务,并且可以为客户提供通用型、专业型、私有型三种的服务部署方案。

遇到问题

  • 发布更新流程长、速度慢。
  • 并发能力、响应速度问题。
  • 问卷之间计算资源相互干扰。
  • 私有化部署问题。

容器服务选型

第一步是自己做,想想还可以,但是直接到正式环境上去用的时候,会发现自建这个几乎是不太可能的。第二步,找服务商帮忙解决。国内的技术超越DaoCloud很难,因为它集聚了国内在容器方面比较优秀的人,它的核心代码很多在国内还比较有名的,所以第二步选了DaoCloud。容器服务涉及到整个系统、网络、硬件、软件、进程调度,容易遇到铺天盖地的问题,有一个环节漏掉就没办法去做。比如,我们有的是计算型的,有的是IO密集型的,我们需要根据不同的应用把容器管理进行扩展,在这些层面DaoCloud会有一些弱势。第三步,尝试了一下阿里云。选择阿里云的一个优势是,由于我们原来的系统是在阿里里面的,再把它放到UCloud和DaoCloud里面,这样会把整个系统的线拉的特别长,一个远程的调用远程的API,会使系统非常庞大和复杂。如果将其换到阿里云上,很多调用都成了内部网调用,即局域网调用,就不用去考虑这些问题。

3e9d51495c0b946d489fb907193ea563ecf2a8af

首先要支持网络4层和7层协议、TCP/Websocket、支持https、支持.net、mono。

自定义路由。比如,我们的一个场景很重要的,不同的问卷到不同的容器,历史问卷到历史的容器里面去,活动的到活动的容器,还有不同厂商的要指定到不同的容器里面去,发红包的要到发红包的容器里面去,这样就完全隔离,解决了云计算资源抢占的问题。将其分布到不同的容器里面,不同的容器会做不同的事情。

两层弹性伸缩,一个是容器本身的,根据CPU或者是根据类层去弹性伸缩,还有一个是弹性节点,节点进行弹性。

监控,现在阿里这边的监控远远不够用,巧思科技还有自己的监控,需要对达到业务层面的一定应用、业务层面返回的结果做一些监控。

海外镜像一定要支持。

权限控制。由于我们的整个系统里面有很多容器,有些管前台,有些管后台,有些管正式环境,有的管测试环境。比如,我们现在是有三个集群,一个是测试环境的测试集群,一个是预生长环境的预生环境集群,还有一个正式发布的正式集群,三个集群里面,有这样一个流程,先测试,测试完了送到预生产,数据库都连着相同的,最后正式环境下发布。这样就需要一个权限去控制每个集群由不同的人去管,职责到人,这样就保证到了预生产环境,正式的环境基本上就没问题了。

容器化的原则

选择容器化的原则是伸缩、快速、安全。伸缩是指两层伸缩,按照CPU和内存进行弹性。快速是指能做到快速响应。安全,包括压力测试、稳定性。

系统结构

d25a7f2cfb0ccaa44135000abb0a7cac5ea3b2ad

右边是主系统,设计问卷发布好以后,会生成一个二维码、一个链接、一个node值,这是我们现在实际应用场景所要求的。上图中左边是API、右边是APP的每一个方框都是一个容器,既是APP的容器,也是API的容器。容器之后的进程,把Redis读到数据库里面,最终数据汇总到主系统里面。最终根据这样子的改造,APP是前台,API是后台的一个接口,前面和后面做了分离,API实现了微服务化,一个个细小的微服务去向前台提供服务。整个从这样的系统结构,可以看到,我们满足了我们对一个弹性伸缩,包括对于私有化部署,包括路由的方向的要求。

优势及优化

关于硬件资源,不想一边是UCloud,另一边是DaoCloud,这样会使技术站的侧重点不明确,其实侧重点应该是业务。所以,应用了阿里最成熟的几个产品,包括ECS服务、RDS、Redis、SLB等。其中,RDS在大数据存储上非常强大。在综合能力方面,巧思云服务单个点上功能不突出,但是综合、集成性、整体性最好。

后续会利用队列服务和容器服务提升并发处理能力;利用API网关服务和容器服务进行服务治理优化;利用Spark等大数据存储、分析服务和容器服务进行大数据分析;利用前置域名的路由自定义、私有化部署和容器服务进行私有化部署。
相关实践学习
Docker镜像管理快速入门
本教程将介绍如何使用Docker构建镜像,并通过阿里云镜像服务分发到ECS服务器,运行该镜像。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
24天前
|
负载均衡 测试技术 持续交付
高效后端开发实践:构建可扩展的微服务架构
在当今快速发展的互联网时代,后端开发扮演着至关重要的角色。本文将重点探讨如何构建可扩展的微服务架构,以及在后端开发中提高效率的一些实践方法。通过合理的架构设计和技术选型,我们可以更好地应对日益复杂的业务需求,实现高效可靠的后端系统。
|
25天前
|
运维 安全 Devops
构建高效稳定的云基础设施:DevOps与容器化技术融合实践
在数字化转型的浪潮中,企业对于IT基础设施的要求越来越高,不仅需要快速响应市场变化,还要确保系统的稳定与安全。本文深入探讨了如何通过融合DevOps文化和容器化技术来构建一个高效、稳定且易于管理的云基础设施。通过实际案例分析,阐述了持续集成/持续部署(CI/CD)流程的优化、自动化测试、监控以及日志管理等关键环节的实施策略,旨在为运维专业人员提供一套切实可行的解决方案。
23 3
|
28天前
|
运维 Kubernetes Devops
构建高效可靠的云基础设施:DevOps与容器化技术融合实践
【2月更文挑战第30天】 在当今快速迭代和竞争激烈的软件开发领域,传统的IT运维模式已难以满足业务发展的需要。本文将探讨如何通过整合DevOps文化和容器化技术,构建一个既高效又可靠的云基础设施。文章首先回顾了DevOps的核心理念及其对运维工作流的影响,接着深入讨论了容器化技术的优势和挑战,并提出了一套结合两者的实施方案。最后,通过案例分析展示了该方案在实际环境中的应用效果和潜在益处。
|
9天前
|
Kubernetes 安全 Java
构建高效微服务架构:从理论到实践
【4月更文挑战第9天】 在当今快速迭代与竞争激烈的软件市场中,微服务架构以其灵活性、可扩展性及容错性,成为众多企业转型的首选。本文将深入探讨如何从零开始构建一个高效的微服务系统,覆盖从概念理解、设计原则、技术选型到部署维护的各个阶段。通过实际案例分析与最佳实践分享,旨在为后端工程师提供一套全面的微服务构建指南,帮助读者在面对复杂系统设计时能够做出明智的决策,并提升系统的可靠性与维护效率。
|
25天前
|
消息中间件 敏捷开发 运维
构建高效可靠的微服务架构:策略与实践
随着现代软件开发的复杂性增加,微服务架构逐渐成为企业解决大型应用系统分解、敏捷开发和持续部署问题的有效手段。本文深入探讨了构建一个高效且可靠的微服务架构的关键策略,包括服务的合理划分、通信机制的选择、数据一致性保障以及容错处理。通过分析这些策略在具体案例中的应用,我们旨在为开发者提供一套可行的微服务设计及实施指南。
128 6
|
28天前
|
Cloud Native 安全 持续交付
构建未来:云原生架构的演进与实践
【2月更文挑战第30天】 随着数字化转型的深入,企业对于信息技术的需求日益复杂化和动态化。传统的IT架构已难以满足快速迭代、灵活扩展及成本效率的双重要求。云原生技术作为解决这一矛盾的关键途径,通过容器化、微服务、持续集成/持续部署(CI/CD)等手段,实现了应用的快速开发、部署及运维。本文将探讨云原生架构的最新发展,分析其如何助力企业构建更加灵活、高效的业务系统,并结合实际案例,展示云原生转型过程中的最佳实践和面临的挑战。
|
1天前
|
消息中间件 运维 监控
现代化软件开发中的微服务架构设计与实践
本文将深入探讨现代化软件开发中微服务架构的设计原则和实践经验。通过分析微服务架构的优势、挑战以及常见的设计模式,结合实际案例,帮助开发者更好地理解如何构建可靠、可扩展、高效的微服务系统。
|
1天前
|
负载均衡 Java 开发者
细解微服务架构实践:如何使用Spring Cloud进行Java微服务治理
【4月更文挑战第17天】Spring Cloud是Java微服务治理的首选框架,整合了Eureka(服务发现)、Ribbon(客户端负载均衡)、Hystrix(熔断器)、Zuul(API网关)和Config Server(配置中心)。通过Eureka实现服务注册与发现,Ribbon提供负载均衡,Hystrix实现熔断保护,Zuul作为API网关,Config Server集中管理配置。理解并运用Spring Cloud进行微服务治理是现代Java开发者的关键技能。
|
3天前
|
运维 Kubernetes Devops
构建高效自动化运维体系:DevOps与容器技术融合实践
【4月更文挑战第15天】 在当今快速发展的信息技术时代,传统的IT运维模式已难以满足业务敏捷性的需求。本文旨在探讨如何通过整合DevOps理念和容器技术来构建一个高效的自动化运维体系。文章将详细阐述DevOps的核心原则、容器技术的基础知识,以及两者结合的优势。此外,文中还将分享一系列实践经验,包括持续集成/持续部署(CI/CD)流程的搭建、微服务架构的应用,以及监控和日志管理策略的优化,以期帮助企业实现快速、可靠且安全的软件交付过程。
|
5天前
|
运维 Devops 持续交付
构建高效稳定的云基础设施:DevOps与容器化技术融合实践
【4月更文挑战第13天】 在当今快速迭代和持续部署的软件开发环境中,传统的IT运维模式已难以满足业务发展的需求。本文聚焦于如何通过融合DevOps理念与容器化技术,构建一个高效、稳定且易于管理的云基础设施。文章将探讨持续集成/持续交付(CI/CD)流程的优化、容器化技术的最佳实践、以及微服务架构下的应用管理,以期为企业提供一种改进运维效率、加速产品上市时间,同时保障系统稳定性的解决方案。