当前位置:网站首页>从服务器到云托管,到底经历了什么?
从服务器到云托管,到底经历了什么?
2022-07-07 22:13:00 【腾讯云开发者社区】
“服务上云”一直是一个进行时,在2010年-2017年期间,发力点重心都在「自有物理建设」到「IAAS基础设施即服务」,各个云厂商都在此基础上推出网络产品、数据库产品、存储产品,提供「PAAS」层面的产品来促进上云的过程,我们称为“服务上云1.0”
“服务上云1.0”本质上就是将自建的物理服务设施迁移到云厂商提供的服务设施,并配备了一大批专业的工具。但在这一过程中,内在的关于开发者所选的服务技术架构,却很少干预触及;目前大部分流通的都是传统服务架构模式。
传统服务架构模式是什么,有什么特点?这里举几个例子大家感受一下:
a. 使用本地文件系统来持久化存储,数据文件和应用的文件混合在一起。
b. 在同一个服务器上运行很多服务,比如 MySQL、Redis 、Nginx 以及一大堆定时任务。
c. 使用大杂烩式的脚本和手工流程进行安装和升级。
d. 配置是存储在文件里的,通常散落在多个位置,并与应用的文件混在一起。
e. 进程间的通信是借助本地文件系统进行的(比如在磁盘上放一个文件,另一个进程来读取),而不是TCP/IP。
f. 按照单个服务器上只运行一个应用的实例的方式来设计的。
这些特点会在执行维护的过程中暴露出很多问题,比如:
a. 自动化部署很困难,虽然可以通过各种工具来实现,但仍有很大的水分空间存在。
b. 如果需要运行应用的多个不同的实例,很难让多个实例在同一个服务器上同时存在。
c. 如果服务器停机,由于需要手工流程所以需要较长的时间来恢复。
d. 部署新版本的过程基本是手动的,或者大部分是手动的,难以回滚。
e. 很有可能测试环境与生产环境有较大差异,导致一些生产环境问题不能在测试期间发现。
f. 很难通过增加新的实例来进行横向扩展。
这些问题会随着业务的发展日益突出,最终极大的消耗人力成本,也累积了很多风险因素,即使服务设施上云,有强大的环境,内部系统的维护问题始终阻碍和影响高质量的服务。
容器技术,规避了传统服务架构模式所带来的问题,作为一种新的架构模式开始在近几年兴起。
容器服务,就是通过标准化方式,将业务代码和其所依赖的环境资源一起打包成为镜像,然后在服务器中启动一个实例运行这个镜像,就可以提供服务了。
比如你去网吧工作,使用网吧的纯净系统,需要安装自己所需要的办公软件才能够开始正式工作,这里就类比你在传统模式下需要根据服务设施的不同来进行针对性运维,才能够把自己的业务项目运行起来。容器服务在这个例子中就是,你带了一块硬盘(或者一个U盘),将你的办公系统存储在其中,到网吧里直接插入你的硬盘,就可以立刻使用熟悉的系统了。
我们总结容器技术的几个特点:
a. 部署容易,可以使用新的容器镜像直接替换整个老版本。
b. 自动化部署也相对容易,可以完全由 CI 来驱动。
c. 部署失败时的回滚只要切换到之前的镜像就行,非常方便。
d. 应用升级不需要去考虑复杂的升级配置流程,不必执行繁琐的步骤。
e. 相同的容器镜像可以在不同的环境中充分测试,再直接部署到生产环境,确保测试环境与生产环境完全一致。
f. 系统更容易从宕机中恢复,因为可以迅速在新硬件资源上启动装有这个应用镜像的新容器,并附加到同一数据源上。
g. 开发人员能在本地以容器的形式,在更逼真的环境里测试新功能。
h. 硬件资源的利用更高效,在单一主机上可以运行多个容器应用。
i. 容器化是支持零停机升级、金丝雀部署、高可用和横向扩展的坚实基础。
容器技术和Docker到底是什么关系?Docker是构建容器的技术工具,是目前流行的。就好比安卓和IOS(Docker)是手机终端操作系统(容器技术)中比较流行的,因为流行,所以各个厂商都会适配,使得技术方案可以畅行无阻没有门槛。当我们构建的服务越来越多,同一个服务因为并发可能包含多个容器实例,那么如何有效的管理协调多个容器的位置资源?如何处理容器与容器之间的通信?这就需要容器编排技术。
Kubernetes是目前最流通的容器编排技术,提供API来控制容器的执行方式和位置,操作执行Docker容器和调节工作负载,解决在调整跨多部伺服器部署多个容器规模时的一些复杂作业。
我们来看一下标准的容器服务需要的配置,其适用于对容器编排非常熟悉的团队使用,可以灵活配置,按照自己的需求来调整
微信云托管,通过简化繁杂的配置流程,提供易配置高可用的容器服务;并整合与业务相关的套件,包含可自动扩缩容的数据库,对象存储等,同时也提供很多微信在服务技术的一些积累,打造安全的有生态特色的一站式后端服务平台。
也就是说,你即使没有微信相关应用服务,也可以使用微信云托管来为自己的业务提供服务,其在防刷攻击,安全链路方面都有很强的优势特点。
腾讯云与千锋联合推出精品项目课程《锋运票务系统——基于微信云托管的锋运票务管理系统》已上线 “腾讯云开发者社区”,帮你了解完整的微信云托管部署流程,学习实战级的小程序开发。机构名师手把手教学,共计3小时满满干货课程,快来领取全套课程吧:
免费领取课程福利:腾讯云产品代金券
边栏推荐
- [leetcode] 20. Valid brackets
- “一个优秀程序员可抵五个普通程序员”,差距就在这7个关键点
- How to put recyclerview in nestedscrollview- How to put RecyclerView inside NestedScrollView?
- Detailed explanation of interview questions: the history of blood and tears in implementing distributed locks with redis
- QT creator add JSON based Wizard
- Development of a horse tourism website (realization of login, registration and exit function)
- [the most detailed in history] statistical description of overdue days in credit
- 用语雀写文章了,功能真心强大!
- 快速回复二极管整流特性
- CoinDesk评波场去中心化进程:让人们看到互联网的未来
猜你喜欢
Set up personal network disk with nextcloud
Magic fast power
用語雀寫文章了,功能真心强大!
Development of a horse tourism website (realization of login, registration and exit function)
Solutions to problems in sqlserver deleting data in tables
The result of innovation in professional courses such as robotics (Automation)
Development of a horse tourism website (optimization of servlet)
C language 005: common examples
new和delete的底层原理以及模板
如何衡量产品是否“刚需、高频、痛点”
随机推荐
How to put recyclerview in nestedscrollview- How to put RecyclerView inside NestedScrollView?
52岁的周鸿祎,还年轻吗?
Scrapy framework
Kubectl's handy command line tool: Oh my Zsh tips and tricks
Binder核心API
动态库基本原理和使用方法,-fPIC 选项的来龙去脉
2022-07-07:原本数组中都是大于0、小于等于k的数字,是一个单调不减的数组, 其中可能有相等的数字,总体趋势是递增的。 但是其中有些位置的数被替换成了0,我们需要求出所有的把0替换的方案数量:
Automated testing: robot framework is a practical skill that 90% of people want to know
At the age of 35, I made a decision to face unemployment
Problems faced when connecting to sqlserver after downloading (I)
[programming problem] [scratch Level 2] 2019.09 make bat Challenge Game
Robomaster visual tutorial (10) target prediction
去了字节跳动,才知道年薪 40w 的测试工程师有这么多?
Connect diodes in series to improve voltage withstand
STM32F1与STM32CubeIDE编程实例-旋转编码器驱动
PostGIS learning
机器人(自动化)等专业课程创新的结果
单机高并发模型设计
“一个优秀程序员可抵五个普通程序员”,差距就在这7个关键点
Two small problems in creating user registration interface