2.软文推荐
3.软文推荐
目录: 1、TDSQL TCA 分布式实例特点初探分布表和SQL透传 2、腾讯云安全运营中心2.0对云服务器能带来什么 3、NewSQL分布式数据库发展策略讨论 4、在IT项目建设中,如何保证数据库安全性? 5、“去IOE”7年 银行IT架构国产化还需多久? 6、基于阿里云打造「云原生」Web应用——「懒猪行」Web应用开发实践 TDSQL TCA 分布式实例特点初探分布表和SQL透传TDSQL分布式实例通过Proxy接口提供和mysql兼容的连接方式,用户通过IP地址、端口号以及用户名、密码进行连接:
(注意:公有云TDSQL需要在实例页面申请公网连接地址)
连接示例:mysql -h172.21.32.13 (proxy地址) -P3306(proxy端口) -utest (数据库账号) -p
与普通的mysql连接方法一致,分布式实例兼容mysql的协议和语法,支持SSL加密等功能。当然,您也可以使用navicat、 jdbc、 odbc、 php、 Python等来连接分布式TDSQL实例。
1、TDSQL分布式实例支持表的类型介绍
a、分布式表: 即水平拆分表,也成为“分表”,该表从业务视角是一张完整的逻辑表,但后端根据分表键(shardkey)的HASH值将数据分布到不同的物理节点组(SET)中。
b、普通表: 又名Noshard表,即无需拆分的表,和传统集中式数据库中的表一致,且没有做任何特殊处理的表,目前分布式实例将该表默认存放在第一个物理节点组(set)中。
c、广播表: 又名小表广播技术,即设置为广播表后,该表的所有操作都将广播到所有物理节点组(set)中,每个set都有该表的全量数据,常用于业务系统关联查询较多,修改较少的小表或配置表等。
表类型选用注意事项:
在分布式实例中,如果两张表分表键相等,这意味着两张表**相同的分表键对应的行**,存储在相同的物理节点组中。这种场景通常被称为组拆分(groupshard),会极大的提升业务联合查询等语句的处理效率。由于单表默认放置在第一个set上,如果在分布式实例中建立大的单表,则会导致第一个set的负载太大。除非特别需要,在分布式实例中尽量使用分布式表,这也是分布式实例的特点之一。
2、TDSQL分布式实例表的创建
接下来我们来看下分布式数据库TDSQL所支持的三种类型表的使用方法和注意事项。
a、分布式表的使用
简述:普通的分表创建时必须在最后面**指定分表键(shardkey)的值,该值为表中的一个字段名字,会用于后续sql的路由选择。连接到TDSQL分布式实例后,我们创建一个本次操作使用的数据库名为:testdb
mysql create database testdb;
mysqluse testdb;
接下来我们创建分布式表,命名以分布式拼音首字母命名
**建表语句1:**
MySQL testdb create table fbs ( a int, b int, c char(20),primary key (a),unique key u_1(a,c) ) shardkey=a;
Query OK, 0 rows affected (0.07 sec)
**建表语句2:**
MySQL testdb create table fbs2 ( a int, b int, c char(20), primary key (a,b) ) shardkey=a;
Query OK, 0 rows affected (0.09 sec)
b、广播表的创建
简述:支持建小表(广播表),此时该表在所有set中都是全部数据,这个主要方用于跨set的join操作,同时通过分布式事务保证修改操作的原子性,使得所有set的数据是完全一致的 。
**语句:**
MySQL testdb create table gbb(a int,b int key) **shardkey=noshardkey_allset;**
Query OK, 0 rows affected (0.03 sec)
c、传统普通表
简述:支持建立普通的表,语法和传统mysql完全一样,此时该表的数据全量存在第一个set节点中,所有该类型的表都放在第一个set中。
MySQL testdb create table ptb(a int ,b varchar(10));
Query OK, 0 rows affected (0.03 sec)
注意事项:
1、在分布式实例中,分布式表shardkey对应后端数据库的分区字段,因此必须是主键以及所有唯一索引的一部分, 否则可能无法完成建表操作。
2、分布式表shardkey字段的值不包含中文, 否则proxy会转换字符集可能会出错。另外SQL语法上如:shardkey=a 一般放在SQL语句最后来写。
3、TDSQL分布式实例表的数据操作
为了更好的发挥分布式架构的优势,在进行SQL操作时和传统数据库还是有部分差异。接下来我们从数据库的插入,更新,删除方面分别来看有哪些注意事项。
======INSERT插入操作=======
**插入语句1:**
MySQL testdb insert into fbs(a,b) values(10,1000);
Query OK, 1 row affected (0.00 sec)
**插入语句2:**
MySQL testdb insert into fbs values(1,10,1000);
或
MySQL testdb insert into test1 (b,c) values(100,"record3");
ERROR 810 (HY000): Proxy ERROR:sql is too complex,need to send to only noshard table.Shard table insert must has field spec
注意:语句2报错的原因insert时字段需要包含shardkey,否则会拒绝执行该sql,因为Proxy不知道该sql发往哪个后端分片节点。
=====UPDATE、DELETE更新、删除操作=====
更新语句1:
MySQL testdb update fbs set b=2000 where a=10;
Query OK, 1 row affected (0.00 sec)
更新语句2:
MySQL testdb update fbs set b=2000 ;
ERROR 658 (HY000): Proxy ERROR: Join internal error: update query has no where clause
删除操作:
MySQL testdb delete from fbs;
ERROR 913 (HY000): Proxy ERROR:Join internal error: delete query has no where clause
注意事项:
1、出于数据操作安全上和减少人为误操作导致数据丢失情况的出现,TDSQL禁止update 无 where 条件的更新动作。
2、同样的delete操作无where条件也会被禁止执行,如果确认要删除表数据或表,建议备份后用truncate或drop方式操作。
3、同样的update操作时尽量避免更新shardkey字段,因为影响Proxy中的路由更新,会导致错误。
1、TDSQL透传功能介绍
对于分布式实例,会对SQL进行语法解析,有一定的限制,如果用户想在某个set中获取单个节点数据,或在指定节点执行SQL,可以使用TDSQL的透传SQL的功能。
使用透传功能,我们需要重新连接登录TDSQL分布式实例时指定 **- c选项**。普通登录方式,不支持指定节点执行SQL的透传功能。
登录如下:
mysql -h172.21.32.13 (proxy地址) -utest -P3306 -p -c(透传必须指定-c)
2、TDSQL透传操作演示
首先我们重新登陆TDSQL分布式实例: mysql -h172.21.32.13 -utest -P3306 -p -c
仍旧切换使用testdb数据库。
a、查看分布式实例set节点
使用/*proxy*/show status 查看当前的TDSQL分布式实例的节点信息,共有两个set ,分别为set_1605181898_1、set_1605181972_3
MySQL testdb /*proxy*/show status ;
+-----------------------------+-------------------------------------------------------------------+
| status_name | value |
+-----------------------------+-------------------------------------------------------------------+
| cluster | group_1605181791_302290 |
| **set_1605181898_1:ip | 10.53.179.14:4322;s1@10.53.178.227:4322@1@IDC_GZ_YDSS0301_79263@0 |
| set_1605181898_1:hash_range | 0---31 |
| **set_1605181972_3:ip | 10.53.179.14:4323;s1@10.53.178.227:4323@1@IDC_GZ_YDSS0301_79263@0 |
| set_1605181972_3:hash_range | 32---63 |
| set | set_1605181898_1,set_1605181972_3 |
+-----------------------------+-------------------------------------------------------------------+
6 rows in set (0.00 sec)
b、演示数据插入
我们针对之前创建的fbs分布式表进行数据的插入
MySQL testdb insert into fbs(a,b,c) values(10,1,'AAA'),(20,2,'bbb'),(30,3,'ccc'),(40,4,'dddd'),(50,5,'eee'),(60,6,'fff'),(70,7,'ggg'),(80,8,'hhhh');
MySQL testdb select * from fbs order by 1;
+----+------+------+
| a | b | c |
+----+------+------+
| 10 | 1 | AAA |
| 20 | 2 | bbb |
| 30 | 3 | ccc |
| 40 | 4 | dddd |
| 50 | 5 | eee |
| 60 | 6 | fff |
| 70 | 7 | ggg |
| 80 | 8 | hhhh |
+----+------+------+
8 rows in set (0.00 sec)
c、透传查看数据在各个节点的分布情况
MySQL testdb /*proxy*/show status;
+-----------------------------+-------------------------------------------------------------------+
| status_name | value |
+-----------------------------+-------------------------------------------------------------------+
| cluster | group_1605181791_302290 |
| **set_1605181898_1:ip | 10.53.179.14:4322;s1@10.53.178.227:4322@1@IDC_GZ_YDSS0301_79263@0 |
| set_1605181898_1:hash_range | 0---31 |
| set_1605181972_3:ip | 10.53.179.14:4323;s1@10.53.178.227:4323@1@IDC_GZ_YDSS0301_79263@0 |
| set_1605181972_3:hash_range | 32---63 |
| set | set_1605181898_1,set_1605181972_3 |
+-----------------------------+-------------------------------------------------------------------+
6 rows in set (0.00 sec)
查看数据在set_1605181898_1 节点上的分布
MySQL testdb /*sets:set_1605181898_1*/select * from fbs order by 1;
+----+------+------+------------------+
| a | b | c | info |
+----+------+------+------------------+
| 10 | 1 | AAA | set_1605181898_1 |
| 30 | 3 | ccc | set_1605181898_1 |
| 40 | 4 | dddd | set_1605181898_1 |
| 50 | 5 | eee | set_1605181898_1 |
| 80 | 8 | hhhh | set_1605181898_1 |
+----+------+------+------------------+
5 rows in set (0.00 sec)
查看数据在set_1605181972_3节点上的分布
MySQL testdb /*sets:set_1605181972_3*/select * from fbs order by 1;
+----+------+------+------------------+
| a | b | c | info |
+----+------+------+------------------+
| 20 | 2 | bbb | set_1605181972_3 |
| 60 | 6 | fff | set_1605181972_3 |
| 70 | 7 | ggg | set_1605181972_3 |
+----+------+------+------------------+
3 rows in set (0.00 sec)
d、通过shardkey分片号查看数据
MySQL testdb /*shardkey:2*/select * from fbs order by 1;
+----+------+------+
| a | b | c |
+----+------+------+
| 20 | 2 | bbb |
| 60 | 6 | fff |
| 70 | 7 | ggg |
+----+------+------+
3 rows in set (0.00 sec)
支持透传种类和格式:
1、set名字可以通过/*proxy*/show status查询
2、/*sets:set_1名称*/ 透传指定节点
3、/*sets:allsets*/ 透传所有节点
4、/*shardkey:10*/ 透传到shardkey分片对应的set
5、支持透传sql到对应的一个或者多个set
分布式表的DDL部分的语句限制:
暂不支持CREATE TABLE ... LIKE
暂不支持CREATE TABLE ... SELECT
暂不支持CREATE TEMPORARY TABLE
暂不支持CREATE/DROP/ALTER SERVER/LOGFILE GROUP/
暂不支持ALTER对分表键(shardkey)进行重命名,不过可以修改类型
分布式表的DML部分的语句限制:
暂不支持SELECT INTO OUTFILE/INTO DUMPFILE/INTO LOAD DATA导出
暂不支持INSERT ... SELECT
暂不支持UPDATE 分布式shardkey列的值
本操作主要是面向传统数据库的开发者或者DBA用户,让大家能够初步入手了解分布式数据库的特点。另外分布式数据库在架构上提供了灵活的读写分离模式,在SQL上支持全局的order by, group by, limit操作,支持聚合函数,跨set节点的join、子查询、支持分布式事务,传统数据库所支持的大部分操作在分布式数据库中得到继承。分布式数据库是在传统数据库的基础之上发展起来的,对传统集中式的数据库有较好的兼容性,对SQL语句语法的使用上兼容大部分SQL1999,SQL2003标准,且对SQL的ACID特性都予以支持。分布式数据库在逻辑上是一个独立完整的数据库,但在架构上和物理上采用 多节点分片方式,经过内部算法将数据打散分布来到不同节点存储数据,对前端业务屏蔽后端的复杂架构,并且自身具备数据的最终一致性访问,可用性和分区容灾等特性的数据库。希望本次操作能给大家带来一些对分布式数据库TDSQL的一些认识和收获。
*禁止转载,可转发(转发文章请注明出处)
TDPub企业级分布式关系数据库
腾讯云安全运营中心2.0对云服务器能带来什么随着产业互联网时代各行业数字化转型的逐步深入,用户有越来越多的业务依托公有云承载。公有云为用户构建数字化业务带来了极大便利和效率提升,但同时也对用户安全体系的建设带来了新的挑战。根据咨询机构的调查显示,公有云上安全事件发生的原因主要有用户不当的云配置以及云上的不当操作行为和越权操作。用户在公有云上除了需要应对外部威胁外,也需要做好自身的安全配置及云上操作的管理,防患于未然。
基于用户面临的云上安全挑战,腾讯安全即将发布腾讯云安全运营中心2.0,在原有安全运营中心的安全事件管理、泄漏监测及安全大屏等功能基础上新增资产安全中心、安全配置管理、云上用户行为智能分析、合规管理及安全评分等功能,帮助用户实现更全面的安全风险监测和一站式的自动化安全运营,提升用户在公有云上的整体安全水平。
安全评分
安全运营中心全新发布安全评分功能。基于安全运营中心的云上安全数据湖,从安全事件、漏洞及云安全配置风险等维度对云上安全情况进行整体评分,帮助云上用户直观了解自身腾讯云上业务的整体安全态势。
统一云上资产安全中心
资产安全运营是安全运营的基础。安全运营中心全新发布资产安全中心,实现12类云上资产的统一安全管理,涉及云服务器CVM、负载均衡LB、MySQL数据库、TDSQL数据库、Redis数据库、对象存储COS、云硬盘CBS及SSL证书等。资产安全中心可基于安全运营视角,从配置风险、漏洞及安全事件等角度对资产安全风险进行定位和管理,实现面向云资产的安全运营管理。针对云服务器,资产安全中心提供统一的漏洞运营平台,结合腾讯安全云鼎实验室提供的关键漏洞预警能力,帮助用户提升漏洞应对能力。
自动化云安全配置检查
针对云上各类型资产的配置风险,安全运营中心基于腾讯自身安全实践,为用户提供云原生的资产配置风险检查功能。从基础安全防护、身份认证与权限、网络访问控制、数据安全、日志审计及监控告警等维度,对云上12类资产进行自动化的配置风险检查;针对发现的风险问题提供相应的处置建议和快速修复方式,从源头提升云上风险应对水平。
云上用户行为智能分析(预览)
除了外部攻击及自身配置风险外,公有云业务面临的另一大安全风险来自于云上业务运营中的异常行为与风险操作。安全运营中心的Cloud UBA功能模块通过可视化、统计分析和异常检测等方式可对用户在公有云上的操作行为进行智能分析,识别安全风险。一方面,通过对操作路径、操作的云资源、操作行为、以及用户登录趋势等的统计与可视化呈现,帮助安全管理人员高效、直观地掌握云资源操作情况;另一方面,通过对云上的操作行为进行异常检测与动态风险评估,实现云上操作行为的风险智能化识别。
持续自动化的合规评估(预览)
合规是用户上云的基本安全要求。安全运营中心可为云上用户提供云原生的安全合规评估功能。针对用户公有云上的安全措施及安全体系建设情况,结合安全合规要求,安全运营中心通过自动化地、持续性地监测、评估来帮助用户实现云上业务的安全合规。目前已经覆盖了等级保护2.0标准中的部分安全通用要求及云计算安全扩展要求,并提供相应的解决方案建议,后续腾讯云将逐步提高对各类合规标准的覆盖。
NewSQL分布式数据库发展策略讨论作者 石默研
本文对新一代NewSQL分布式数据库发展策略中的普遍困扰进行讨论,包括云原生(Cloud Native)与本地部署(On Premise)、HTAP进展方向、分布式与单机需求等分布式数据库商业与技术发展中难以决策的问题。
1. 困扰
分布式NewSQL数据库近年来蓬勃兴起,其原因显而易见:切中了业务与数据量不断增长的用户对关系型数据库RDBMS需求,这在传统RDBMS到大数据的发展阶段中,有相当一段时间是空白。同时,随着互联网技术的不断发展与普及,用云计算模式满足IT需求似乎已经成为未来 社会 产业互联网发展的明确趋势,也就是说,有一种共识:不久的将来,绝大多数产业的IT服务是从公共的、行业的或者私有的、混合的云计算中心提供的。这一共识又带来了云原生(Cloud Native)概念与技术的兴起,而分布式NewSQL数据库自然也应该是云原生的,这决定了其相当多的产品设计决策应以符合这一趋势为原则。然而,在当今的现实中,满足业务与数据量不断增长的RDBMS需求的用户,与云原生的用户,除了互联网企业外,大多数情况下,并不重合,需要On-Premise部署的用户仍然占有很大比重,这就带来了第一个困扰:云原生(Cloud Native)与本地部署(On Premise)对产品发展要求的矛盾。
另一个困扰,是关于HTAP,即交易与分析混合负载。HTAP是当今非常火的一个概念与技术,在交易库上直接进行分析,而不再是将“数据从交易库搬下来,挪到另一个数据库中去”这样的繁琐过程。可以毫不夸张的说: 历史 上规模性企业IT复杂度的相当一部分,都来自于“搬数据”,这导致了数据采集、实时采集、全增量合并、数据传输、数据加载、数据建模、数据质量、数据标准、企业级元数据管理等繁杂多样的技术环节的产生,导致了企业数据分布、数据流向、数据模型、主数据、基础数据平台、ODS/数据仓库/数据集市、数据治理等复杂的数据架构设计优化领域,导致了由于多系统大规模数据搬迁而带来的如数据交换平台之类的复杂调度工程......。咋眼一看,感觉该企业的数据技术好厉害,相关各领域的技术产品好丰富,技术人员的相关技能也好受欢迎。但如果在交易库就能直接满足分析需求而不影响生产效能的话,这些复杂高级的技术环节不都成了“自己给自己造了一座山,还说自己爬的好辛苦”?然而,现实却是,问题并不这么简单,除了在交易库中进行分析会影响业务效能外,还有很多原因导致这一现象产生:交易库并不需要存储那么长的 历史 数据,而分析往往是需要建立在大量 历史 数据之上的;交易库的模型往往并不适合分析需求,多数情况下需要重要建模,如非常流行且价值不菲的各行业数仓主题模型;用于交易的OLTP数据库与用于分析的OLAP数据库,其技术体系完全不同;以及大型企业已固化的内部业务结构并没有留给交易/分析整合可实施的可行空间......等等。由于, 历史 积累的企业级数据体系相当复杂,HTAP的发明者迄今为止都没有系统表达完全替代数据分析需求、自顶而下重构企业数据体系的架构级策略,而是将产品重点定位在技术优化层面:在交易库上直接完成实时统计分析,满足高并发需求且不影响业务效能;或者是为实时分析统计/查询而建设的数据服务中间平台。然而,即使是暂时没有这种策略性的意向,在面向AP的产品具体研发中,又会发现明确的界限确实不好把握,随着一个个具体功能的不断完善,似乎假以时日,技术上也不是没有完全替代纯OLAP平台的可能性。那么,HTAP究竟如何定位呢?
再者就是规模化的分布式需求,与小规模的单机数据库需求(这里指逻辑上的单机)之间的矛盾:分布式数据库,自然而然是要应对规模化的数据管理需求的,长尾的小规模需求当然不应在产品设计考虑之列,同时,大炮轰苍蝇经常还打不好;然而,分布式NewSQL数据库又应该是云原生的,如果把云原生的业务含义理解为“全自助”,它应该以支持什么样的需求为主呢?现实看来,小规模长尾业务对云原生数据库的需求最起码应该是占据相当大的比重的。显而易见,如果是大规模的数据管理需求,即使是部署在云上,DBPaaS的“全自助”是其核心需求吗?这种规模化的业务,如果是云上的On-Premise又需要做出哪些方面的改变?从互联网与云计算发展的 历史 来看,“云自助”,其最核心的商业动机当然包括给用户侧的运维带来了方便,但更重要的可能是给云服务运营商应对海量长尾客户的安装与运维带来了极大的成本优势。这正如银行的小微及个人消费贷款都要走互联网线上模式,而重客、大客甚至中小企业信贷仍然是以线下为主的策略一样,本质是成本问题,而不是客户方便性问题。于是,矛盾显而易见:分布式是面向规模客户的,起码是中、大型客户,而云原生却有可能、最起码相当一段时间内是要以长尾客户为主要服务对象的。
以上困扰实质上,都涉及到了NewSQL分布式数据库的产品发展策略问题。
2. 讨论
问题是客观而又普遍的,但分析与应对策略往往包含主观因素:人们的一个决定与决策,很多情况下并不由严格推理而来,而是心中已经有一个答案,再来找理由支持它。这里的讨论或许也并不能例外。
首先,来看看Cloud Native与On Premise。云原生本应是数据库即服务,然而目前真正有规模化数据增长需求的NewSQL应用相当多的情况下却是付费On Premise与免费On Premise区别,很多互联网企业的应用也可能只是部署在云基础设施上而已,真正的云原生更多是一些实验性、尝试性的需求。但云原生数据库在公有云、行业云以及大型私有云上已经逐渐在形成一种意识上的共识,其商业前景不可限量。也就是说,未来的数字化转型进程中,产业互联网的数据库部署,会逐渐向云基础设施迁移,长在云上。它可能是公有云,也可能是行业云,也可能是私有云,它们都是被定义为云原生NewSQL数据库的市场范围。当然,肯定还会有相当一部分数据库长在云下,这也不用纠结,将其排除在云原生市场战略目标之外即可,就是说,不需要考虑这部分客户需求对产品规划的影响,因为前一部分的份额已经足够大了。这样看来,以云原生为目标进行产品规划的逻辑没有问题,不过,还是要明确一点:长在云上的数据库是不是一定符合我们对“云原生”的既有理解?这里认为,即使未来,在云上形成了产业互联网数据库市场的主体,需要“全自助”的数据库即服务可能也是以面向长尾客户最为迫切、必不可少并且是核心本质,而对中大型以上的需求,“全自助”的意义相对有限,同时比较而言商业模式的转变或者更关键些。那么,如果是以“长在云上”为市场目标,似乎可以将其定义为“广义的云原生”,同时,只要是“长在云上”,那么“云原生”概念中高弹性、高可用、低成本、快速迭代、存算分离等技术优势也都能方便获得。而对“云原生”策略中“云原生”一词的理解不同,对产品规划决策的影响也应该有所不同:一是目前被认为是On Premise的客户需求,或许也就是未来“云原生”主体市场的需求;二是NewSQL数据库关于云原生服务的产品策划,对用户侧“自助”水平的决策或许可以更灵活实用。高水平自助确实可以减轻客户对IT的依赖程度,但这里认为,云原生与用户自行在云上购买资源进行On-Premise部署相比,最关键的价值在于商业模式的改变,能自助多少,不一定是最重要的,因为成为云服务商后,运营运维的工作只会更多,责任可能会更大,甚至有时连IaaS的运维也需要PaaS服务商兜底。但从一个个客户的本地服务,变成集中化云服务,就已经是本质性的模式转变了。总之,需要就事论事,回到原点,仔细分析后决策,而不是用概念教条的判断,因为概念本身的定义并不见得准确对应实际的业务需求。
再来看看HTAP,对这个问题,正如在其它文章中表达过的一样,本文的观点较为明确。一是随着计算能力与架构的升级,从技术上讲,AP与TP的界限会越来越模糊;另外特别是在云原生的新世界里,数据库的这一特性又犹为重要,因为云原生的重要作用之一就是要让客户尽量摆脱对IT运维的依赖,将越来越多的精力集中到自己的业务发展上来;同时端到端的能力提升对云原生商业模式的贯彻也至关重要(需要仔细分析下目前DBPaaS的技术要求是否完全符合这一原点的、本质性的动力),过去与纯OLAP数据库的优势比较纠结在这里也可以得到正面支持;再者,既然架构上已经走向了AP,就很难做到在产品规划上时刻厘清纯AP与混合负载的需求后,再将前者排除在外。于是,以“混合负载满足部分AP需求”应该是由于投入与阶段性市场策略导致的阶段性产品规划,而长远来讲,以一套技术架构满足大多数需求,应该是云原生NewSQL数据库的追求。
接下来,就是关于规模化分布式与小规模单机需求的矛盾了。现在看来,经过上面的讨论,这一点已经不是什么问题了:因为“长在云上”、从分散服务向集中服务的商业模式转变就是指广义的云原生,而不一定要以小微的、迫切需要全自助的长尾为主流,那么,云原生NewSQL数据库仍然应以规模化分布式为其主体的需求方向,而小规模单机则暂时可以不做为重点来考虑。
最后指出一点,希望也能引发进一步的思考:我们所批判的主机,也声称自己是分布式架构,暂且不论其是否客观,但在现实中主机需要被替代的核心问题并不是有没有分布式,而是:一、扩展不灵活带来成本问题:“我只需要扩展一个节点,你却让我再买一台主机”;二、不自主可控;三、往往是软硬件结合的设计策略,包括内存、网络、存储与IO上的软硬融合设计,而这一点,是否需要云原生数据库从广义的定义出发进行学习参考,也是需要进一步讨论的。
在IT项目建设中,如何保证数据库安全性?云计算是信息技术发展和服务模式创新的集中体现,是信息化发展的重要变革和必然趋势。随着“新基建”加速布局,以及企业数字化转型的逐步深入,如何深化用云进一步提升云计算使用效能成为现阶段云计算发展的重点。云原生以其高效稳定、快速响应的特点极大地释放了云计算效能,成为企业数字业务应用创新的原动力,云原生进入快速发展阶段,就像集装箱加速贸易全球化进程一样,云原生技术正在助力云计算普及和企业数字化转型。
云原生计算基金会(CNCF)对云原生的定义是:云原生技术有利于各组织在公有云、私有云和混合云等新型动态环境中,构建和运行可弹性扩展的应用。云原生的代表技术包括容器、服务网格、微服务、不可变基础设施和声明式编程API。
#云安全时代市场发展#
云安全几乎是伴随着云计算市场而发展起来的,云基础设施投资的快速增长,无疑为云安全发展提供土壤。根据 IDC 数据,2020 年全球云安全支出占云 IT 支出比例仅为 1.1%,说明目前云安全支出远远不够,假设这一比例提升至 5%,那么2020 年全球云安全市场空间可达 53.2 亿美元,2023 年可达 108.9 亿美元。
海外云安全市场:技术创新与兼并整合活跃。整体来看,海外云安全市场正处于快速发展阶段,技术创新活跃,兼并整合频繁。一方面,云安全技术创新活跃,并呈现融合发展趋势。例如,综合型安全公司 PaloAlto 的 Prisma 产品线将 CWPP、CSPM 和 CASB 三个云安全技术产品统一融合,提供综合解决方案及 SASE、容器安全、微隔离等一系列云上安全能力。另一方面,新兴的云安全企业快速发展,同时,传统安全供应商也通过自研+兼并的方式加强云安全布局。
国内云安全市场:市场空间广阔,尚处于技术追随阶段。市场规模上,根据中国信通院数据,2019 年我国云计算整体市场规模达 1334.5亿元
“去IOE”7年 银行IT架构国产化还需多久?7月底,农行(601288.SH)宣告成立金融 科技 子公司农银金融 科技 有限责任公司,注册资本6亿。目前已有11家银行成立金融 科技 子公司,包括五家国有大行、五家股份行和一家城商行。新一家金融 科技 子公司的成立振奋市场,而国内银行金融 科技 是否能够与国际抗衡,是否能完成“进口替代”的话题再次浮出水面。
长久以来,IOE技术架构是银行业的标准配置和唯一选择,而在2013年之后,由于金融系统IT架构定价权和 游戏 规则控制在海外厂商手中,并且随着移动互联网的普及,高频交易让传统系统不堪重负,银行业也开始艰难谋求去IOE。
时隔7年,在金融 科技 助推下,银行们通过自我研发去IOE仍在进行中,也有银行依靠互联网等外部力量以求快速实现IT架构国产化。
银行业去IOE始于2013年左右。图 站酷海洛
IOE,分别指IBM(国际商用机器公司)、Oracle(甲骨文)和EMC(易安信),三者分别是小型机、数据库和高端存储的领导厂商,一定程度上主导了企业的IT架构。它们组成的系统一度被视为大型金融企业后台的“黄金架构”。
中国银行业自上世纪90年代开始逐步实现电子化,陆续采用数据、操作、应用大集中的管理模式,即数据中心大集中时代,以革除各家分支行各自为政的弊病,实现网点和业务的数据集中。而IBM以其强大的数据处理能力,装机量在国内一枝独秀。
当时,各类银行争相引进海外业务系统产品,实现流程改造和管理方式改革。
银行业去IOE始于2013年左右。
一直以来,由于银行业采用IOE为代表的IT基础体系,使得如此重要的金融机构IT整体都处于海外厂商的控制之中。可想而知,如若存在技术漏洞,或被主动植入漏洞,或者是国与国之间产生矛盾,供应商被要求停止技术服务,则金融业暴露在安全风险之中。
因此,国家层面基于金融与信息安全的导向推动提出了去IOE的想法,2012年6月国务院发布《关于大力推进信息化发展和切实保障信息安全若干意见》(国发〔2012〕23号),金融监管部门也期望银行逐年减轻对IOE的依赖程度。
尽管去IOE化在2014年、2015年就成为了金融 科技 领域的热门话题,但是它的进展速度显然没有它的热度上得快。
广发证券研报显示,去IOE在开始几年在传统银行间开展得并不顺利。
主要原因包括:第一,大型银行当前集中处理的业务模式对于服务器的稳定性要求极高。而IBM大型机/小型机的稳定性无人能及。其次,中小银行采用开放式平台架构,可以不用IBM服务器。但国产设备的性能、安全性、稳定性一直难以被信任。此外,服务器、存储、操作系统、数据库等基础设施层次相互依赖,难以单一替换。因此,过去5-10年,难以真正意义上撼动海外厂商在国内银行业的地位。
金融壹账通总经理助理、Gamma平台CEO区海鹰在接受媒体采访时对21世纪经济报道记者表示,去IOE仍是银行业头疼的问题。“因为金融是国家与 社会 最重要的一个稳定因素,银行业内部使用的技术中IOE占比非常高,如何去IOE对于银行业来说是一个非常大的挑战。”
区海鹰表示,去IOE只能“小步慢走”式迁移,而且这个工作量非常大。应用层、硬件层迁移已经非常耗费精力,而底层的改变要用到全部国产的服务器、网络,难度可想而知,“估计这个改造本身就是5-10年的工作”。
2019年10月,中国互联网金融协会发布的《中国商业银行数字化转型调查研究报告》显示,参与调研的75%的银行已经或正在启动数字化转型。这其中,不少银行通过自行研发实现了国产化架构支撑关键业务。
据微众银行年报披露,截至2018年底,微众银行已建成229个关键系统,1202个子系统。依靠分布式架构及开源技术的深度应用,行内系统成功支持了年内亿级客户量、亿级日交易量,达到国有大型银行同等规模。与此同时,行内账户运维成本持续下降45%。
今年5月,陆金所也宣布去“O”已经完成95%,预计到今年中实现开源数据库的完全替代。陆金所选择了MySQL的开放式架构作为Oracle核心数据库的替代方案。经测算,完全“去O”之后,系统软硬件成本将节约近90%。
如果说,微众银行等互联网银行实现去IOE更为轻车熟路,那么更多的银行通过外部合作,来降低对海外厂商的依赖,近年来尤其实现提速。
2019年5月,华为正式面向全球推出了GaussDB数据库,其GaussDB OLTP数据库已在招商银行综合支付交易系统成功上线投产,也已在工商银行内上线投产。同月,达梦发布DM8.0,10月23日,该新核心系统所引入的达梦数据库正式通过湖北银行项目方的验收。
去年10月,蚂蚁金服OceanBase登顶TPC-C,这是国产数据库首破OLTP的benchmark世界纪录。OceanBase落地西安银行,西安银行完成实施互联网金融业务平台MySQL数据库、互联网交易资金存管平台Oracle数据库向OceanBase分布式数据库的完整迁移。同月,中兴GoldenDB成功帮助中信银行替换DB2,换“心”后的中信银行信用卡核心交易系统对外投产,这是全国性股份制商业银行的首例。11月,腾讯宣布开源TBase数据库,TDSQL数据库落地张家港农商银行新一代核心业务系统。
对于互联网金融公司和银行的 科技 子公司在去IOE领域的竞争,一位金融 科技 业内人士认为,互联网 科技 公司的 科技 创新能力确实非常强,而且也有很大的服务C端用户的规模。银行业尤其是大行金融 科技 子公司从纯技术的角度与互联网公司旗鼓相当,但是互联网公司本身自带流量,具有很大的优势。
但上述人士坦言,数据库市场被国外厂商垄断,自研企业实力与Oracle仍有一定差距。智研咨询发布的《2020-2026年中国数据库市场深度分析及未来发展前景预测报告》显示:2018年我国数据库软件市场规模为139.25亿元,其中,关系型数据库规模约118.36,占比约85%。Oracle数据库关系型数据库市场份额超过46%,占数据库市场约39.1%。
国产数据库方面,既有传统大学成立的数据库企业,包括人大金仓、武汉达梦、神舟通用、南大通用、山东瀚高等,也有近几年主要以阿里、腾讯、华为为代表的企业研发也加快了追赶脚步。
从国产数据库的技术来源看,国产关系型数据库多源自或者借鉴开源MySQL、PostgreSQL等数据库及其变种,或收购商业源码(例如Informix)+自研的方式,大数据平台多源自或直接整合开源大数据生态组件,纯自研的国产数据库较少,数据库种类不够丰富,核心竞争力亟待突破。
更多内容请下载21 财经 APP
基于阿里云打造「云原生」Web应用——「懒猪行」Web应用开发实践作者:阿里云MVP 刘远程
背景
『懒猪行』专注于境外自由行S2B业务,涉及分销、终端用户服务、供应链等多个服务环节,随着业务规模的不端增加,我们一直在 探索 Web应用开发的最佳实践,以加快Web应用的迭代效率,为B/C端用户创造更多价值。
云原生
近几年,Spring Cloud为代表的微服务架构越来越火热,吸引了大量创业公司『入坑』。微服务系统的开发与单体应用的开发相比,从团队组织、运维、开发方式等多个方面带来了颠覆式的变化。从2018年开始以Istio、SOFAMesh等为代表的Service Mesh方案逐渐走上舞台,并被称为『下一代微服务架构』。
如果把以容器技术和Service Mesh为基础的IT架构定义为云原生架构,那么Dubbo、Spring Cloud为代表的分布式架构将是促进云原生架构诞生的『中间产物』。
就在18年,云原生计算基金会(CNCF)为云原生技术重新定义:
Cloud native technologies empower organizations to build and run scalable applications in modern, dynamic environments such as public, private, and hybrid clouds. Containers, service meshes, microservices, immutable infrastructure, and declarative APIs exemplify this approach.
『云原生技术帮助公司和机构在公有云、私有云和混合云等新型动态环境中,构建和运行可弹性扩展的应用。云原生的代表技术包括容器、服务网格、微服务、不可变基础设施和声明式API。』
These techniques enable loosely coupled systems that are resilient, manageable, and observable. Combined with robust automation, they allow engineers to make high-impact changes frequently and predictably with minimal toil.
『这些技术能够构建容错性好、易于管理和便于观察的松耦合系统。结合可靠的自动化手段,云原生技术可以使开发者轻松地对系统进行频繁并可预测的重大变更。』
这种新颖架构方式,不仅提供了完善的软件持续交付链方案,也为我们的应用组织方式带来了巨大的想象空间,甚至在将来可能给整个软件行业带来颠覆式的革命。有一点是显而易见的:原本强耦合在一起的应用被拆分,变身成为能够实现完整子集功能的可插拔式微服务,通过有机的组织让其与其它微服务共同对外提供服务;就如同组装 汽车 的发动机和座椅等,它可以来自全球供应链不同的厂商。以云原生的设计哲学来总结,云原生应用具备微服务, 健康 报告,遥测数据,弹性声明式(非反应式)等特征。
云原生所带来的效果非常明显,但完整的实践确是很容易让人知难而退,因为单Kubernetes一项,从入门到掌握也需要花费3个月左右的时间。但幸运的是,阿里云等公有云平台已经为我们准备好了容器服务(Kubernetes版)产品,并支持通过Kubernetes进行应用的容器化管理。
所有的微服务都和 Envoy sidecar 集成在一起,被集成服务所有的出入流量都被 sidecar 所劫持,这样就为外部控制准备了所需的 Hook,然后就可以利用 Istio 控制平面为应用提供服务路由、遥测数据收集以及策略实施等功能。
懒猪行的架构设计(简化)
在新的架构中,使用了大量的阿里云产品,这鉴于我们过去的经验,阿里云产品在运维上为我们节省了不少精力。
以上架构,是我们走向『云原生』的第一步,距离成熟还有非常大的发展空间,云原生的发展也在发展的起步阶段。按架构,把所有需要持久化的数据,如:文件、图片、数据库等存储到阿里云OSS、RDS及Redis产品,而应用则运行在以K8s管理调度的容器集群中。
阿里云DevOps工具链
阿里云在云原生架构整个生命周期都提供了完善的支持:
部署到Kubernetes_部署到Kubernetes_选择部署方式_用户指南_CodePipeline-阿里云
推荐阅读:
[1] Service Mesher社区:ServiceMesher · Service Mesh|服务网格中文社区
[2] Kubernetes Handbook:序言 · Kubernetes Handbook - Kubernetes中文指南/云原生应用架构实践手册 by Jimmy Song(宋净超)
MVP招募进行中,点击「链接」
【云原生数据库TDSQL-C】的内容来源于互联网,若引用不当,请发邮件联系删除
1
...