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

本文涉及的产品
容器镜像服务 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搭建和管理企业级网站应用
相关文章
|
19小时前
|
弹性计算 负载均衡 监控
现代化后端开发中的微服务架构设计与实践
【2月更文挑战第6天】 在当今互联网时代,后端开发已经成为各种应用和系统的核心。本文将深入探讨现代化后端开发中的微服务架构设计与实践,包括微服务架构的优势、设计原则、技术选型以及实际应用中的挑战和解决方案。通过本文的阐述,读者将更好地理解微服务架构在后端开发中的重要性,并能够在实际项目中进行合理的应用。
|
1天前
|
存储 监控 安全
360 企业安全浏览器基于阿里云数据库 SelectDB 版内核 Apache Doris 的数据架构升级实践
为了提供更好的日志数据服务,360 企业安全浏览器设计了统一运维管理平台,并引入 [Apache Doris](https://doris.apache.org/) 替代了 Elasticsearch,实现日志检索与报表分析架构的统一,同时依赖 Doris 优异性能,聚合分析效率呈数量级提升、存储成本下降 60%....为日志数据的可视化和价值发挥提供了坚实的基础。
360 企业安全浏览器基于阿里云数据库 SelectDB 版内核 Apache Doris 的数据架构升级实践
|
4天前
|
Prometheus 监控 Kubernetes
青团社:亿级灵活用工平台的云原生架构实践
青团社:亿级灵活用工平台的云原生架构实践
135425 2
|
8天前
|
编译器 调度 数据库
DP读书:鲲鹏处理器 架构与编程(十)鲲鹏软件生态与云服务
DP读书:鲲鹏处理器 架构与编程(十)鲲鹏软件生态与云服务
17 0
|
19天前
|
开发者 Docker 微服务
深入浅出:使用Docker容器化部署微服务架构
在当今快速迭代的软件开发环境中,微服务架构因其高度解耦和独立性而成为企业首选。然而,微服务的管理和部署可能会变得复杂和繁琐。本文将探讨如何利用Docker,一个轻量级的容器化技术,来简化和加速微服务的部署。我们将从Docker的基础概念入手,详细介绍如何创建、配置和运行微服务容器,最后讨论Docker在微服务架构中的优势和挑战。本文旨在为开发者提供一条清晰的路径,通过容器化技术实现微服务架构的高效部署和管理。
60 0
|
19天前
|
Kubernetes 开发者 Docker
深入浅出:使用Docker容器化部署微服务架构
在当今快速演进的软件开发领域,微服务架构因其高度的模块化和可伸缩性而受到广泛欢迎。然而,微服务的部署和管理也带来了新的挑战。本文旨在通过深入浅出的方式,探讨如何利用Docker容器技术有效地部署和管理微服务架构。我们将从Docker的基本概念出发,逐步深入到如何构建、部署微服务,并讨论在此过程中可能遇到的常见问题及其解决策略。本文不仅适合刚接触Docker和微服务的新手,也为有经验的开发者提供了实用的参考。
42 1
|
19天前
|
JSON JavaScript Docker
深入浅出:使用Docker容器化部署微服务架构
本文旨在向读者展示如何利用Docker技术高效地构建和部署微服务架构。通过深入浅出的方式,我们将探索Docker的基本概念、容器化的优势以及如何将其应用于微服务架构中。此外,文章还将提供一个简单的示例,指导读者实践如何使用Docker将一个现有的后端应用容器化,并部署到本地开发环境中。不同于传统的摘要,这里我们强调实践操作的重要性,鼓励读者通过实际操作来加深对Docker和微服务架构的理解。
39 1
|
19天前
|
Java 开发者 Docker
深入浅出:使用Docker容器化部署微服务架构
在本文中,我们将探索Docker容器技术如何革新微服务架构的部署方式,提高开发效率和应用的可扩展性。不同于传统摘要的概述风格,我们将通过一个实际案例,步骤明晰地展示如何将一个简单的微服务应用容器化,并在Docker环境中部署运行。本文旨在为开发者提供一个清晰、易懂的指南,帮助他们理解容器化技术的基本原理和操作流程,无论是初学者还是有经验的开发人员都能从中获益。
|
19天前
|
存储 Kubernetes Docker
深入浅出:使用Docker容器化部署微服务架构
在当今快速迭代的软件开发周期中,微服务架构凭借其高度的模块化和灵活性成为了众多企业的首选。然而,随之而来的是对环境一致性和服务部署效率的挑战。本文将探讨如何利用Docker这一轻量级容器技术,实现微服务的快速、一致和可靠部署。通过深入浅出的方式,我们将介绍Docker的基本概念、容器化微服务的优势以及步骤详解,旨在为读者提供一个清晰的实践指南,帮助他们在微服务架构的部署过程中提升效率和可靠性。
15 0
|
19天前
|
设计模式 运维 Docker
深入浅出:使用Docker容器化部署微服务架构
本文旨在为读者提供一个全面且易于理解的指南,介绍如何使用Docker技术来容器化部署微服务架构。随着云计算和微服务架构的普及,Docker作为一种轻量级的容器解决方案,已经成为开发和运维领域的热门技术。本文将从Docker的基本概念出发,详细讲解如何将传统的应用服务转化为容器化的微服务,包括Dockerfile的编写、镜像构建、容器部署以及服务编排等关键步骤。此外,文章还会探讨使用Docker部署微服务架构的最佳实践和常见问题,帮助读者有效地管理和优化其微服务系统。
14 1

相关产品

  • 容器镜像服务
  • 容器服务Kubernetes版