■前言

只能算是比较新而已,是最近这几年间出现的。

起码在我刚毕业,2010年的时候,完全没有听说过!

-----------------

・大数据时代到来
1.NoSQL
4.反向代理服务器
・DevOps 产品快速上线
2.Docker
3.Jenkins
5.SFDC 等产品

-----------------

1.NoSQL

个人的理解是,当处理大量数据访问时,传统的关系性数据库已经无法满足我们的需求,

比如淘宝的双十一,为了解决这样类似的问题,于是出现了NoSQL

NoSQL数据库在存储速度与灵活性方面有优势,也常用于缓存。
代表:Redis、Mongodb、Elasticsearch
NoSQL是非关系型数据库,有以下特点
1、使用键值对存储数据;
2、分布式;
3、一般不支持ACID特性;
4、非关系型数据库严格上不是一种数据库,应该是一种数据结构化存储方法的集合。

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

1.1、什么是 Redis?
Redis 是完全开源免费的,遵守 BSD 协议,是一个高性能的 key-value 数据库。
Redis 与其他 key - value 缓存产品有以下三个特点:
(1)Redis 支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
(2)Redis 不仅仅支持简单的 key-value 类型的数据,同时还提供 list,set,zset,hash 等数据结构的存储。
(3)Redis 支持数据的备份,即 master-slave 模式的数据备份。
Redis 优势
(1)性能极高 – Redis 能读的速度是 110000 次/s,写的速度是 81000 次/s 。
(2)丰富的数据类型 – Redis 支持二进制案例的 Strings, Lists, Hashes, Sets 及Ordered Sets 数据类型操作。
(3)原子 – Redis 的所有操作都是原子性的,意思就是要么成功执行要么失败完全不执行。单个操作是原子性的。多个操作也支持事务,即原子性,通过 MULTI 和 EXEC指令包起来。
(4)丰富的特性 – Redis 还支持 publish/subscribe, 通知, key 过期等等特性。

Redis 与其他 key-value 存储有什么不同?
(1)Redis 有着更为复杂的数据结构并且提供对他们的原子性操作,这是一个不同于其他数据库的进化路径。Redis 的数据类型都是基于基本数据结构的同时对程序员透明,无需进行额外的抽象。
(2)Redis 运行在内存中但是可以持久化到磁盘,所以在对不同数据集进行高速读写时需要权衡内存,
         因为数据量不能大于硬件内存。在内存数据库方面的另一个优点是,相比在磁盘上相同的复杂的数据结构,
         在内存中操作起来非常简单,这样 Redis可以做很多内部复杂性很强的事情。
         同时,在磁盘格式方面他们是紧凑的以追加的方式产生的,因为他们并不需要进行随机访问。

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

1.2.Elasticsearch

https://blog.csdn.net/zzh920625/article/details/80869130

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

DevOps

并非一种新的技术,而是一种理念

DevOps(Development和Operations的组合词)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。

它是一种重视“软件开发人员(Dev)”和“IT运维技术人员(Ops)”之间沟通合作的文化、运动或惯例。透过自动化“软件交付”和“架构变更”的流程,来使得构建、测试、发布软件能够更加地快捷、频繁和可靠。

它的出现是由于软件行业日益清晰地认识到:为了按时交付软件产品和服务,开发和运维工作必须紧密合作。

以下的两种技术(No.2,3),都是为了服务员DevOps

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

2.Docker

问:为什么会出现Docker

回答:因为部署太费事了!

--------------------------------------

运行环境要安装各种服务(JDK、Tomca、WebSphere、MySQL、Oracle、DB2等等)
不同版本的运行环境,以及环境自身的升级
不同版本的各种服务,以及服务的升级
升级后,运行环境与服务之间的兼容性
换一台机器,就要重来一次

--------------------------------------

2.1.Docker理念:
Docker是基于Go语言实现的云开源项目。
Docker的主要目标是**“Build,Ship and Run Any App;Anywhere",
也即是通过对应用组件的封装,分发,部署,运行等生命周期的管理,
使得用户的APP(也可以是一个WEB应用或数据库应用等等)及其运行环境能够做到“一次封装,到处运行”。
Linux容器技术的出现就解决了这样的一个问题,而Docker就是在它的基础上发展过来的。
将应用运行在Docker容器上面,而Docker容器在任何操作系统上都是一致的,这就实现了跨平台、跨服务器。
只需要一次配置好环境,换到别的机子上就可以一键部署好,大大简化了操作。

2.2.什么是Docker:
解决了运行环境和配置问题软件容器,方便做持续集成并有助于整体发布的容器虚拟化技术。

一次构建,到处运行。

2.3.Docker的前世今生:
之前的虚拟机技术
虚拟机就是带环境安装的一种解决方案
它可以在一种操作系统里面运行另一种操作系统,比如在Windows系统里面运行Linux系统。
应用程序对此毫无感知,因此虚拟机看上去跟真实系统一模一样,而对于底层系统来说,
虚拟机就是一个普通文件,不需要了就删掉,对其他部分毫无影响。这类虚拟机完美的运行了另一套系统,
能够使应用程序、操作系统和硬件三者之间的逻辑不变。
从而达到,一次构建,到处运行。

2.4.虚拟机的缺点:
1.资源占用多
2.冗余步骤多
3.启动慢

2.5.容器虚拟化技术:
由于之前虚拟机存在的缺点,Linux发展出了另一种虚拟化技术:Linux容器(Linux Containers,缩写LXC)。
Linux容器不是模拟一个完整的操作系统,而是对进程进行隔离。有了容器,就可以将软件运行所需的所有资源打包到一个隔离的容器中。容器与虚拟机不同,不需要捆绑一整套操作系统,只需要软件工作所需的库资源和设置。系统因此而变的高效轻量并保证部署在任何环境中的软件都能始终如一的运行

2.6.与传统虚拟机的不同:
1.传统虚拟机技术是模拟出一套硬件后,在其上运行一个完整操作系统,在该系统上再运行所需应用进程。
2.而容器内的应用程序直接运行于宿主的内核,而且也没有进行硬件虚拟。因此容器要比传统虚拟机更为轻便。
3.每个容器之间互相隔离,每个容器有自己的文件系统,容器之间进程不会相互影响,能区分计算资源。

--------------------------------------------------------------------
2.7.Docker的基本组成(镜像,容器,仓库)

镜像
Docker镜像(Image)就是一个只读的模板。镜像可以用来创建Docker容器,一个镜像可以创建很多容器

容器
Docker利用容器(Container)独立运行有一个或一组应用。容器是用镜像创建的运行实例。
它可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证安全的平台。
可以把容器看做一个简易版的Linux环境(包括root用户权限,进程空间,用户空间和网络空间等)和运行在其中的应用程序
容器的定义和镜像几乎一模一样,也是一堆层的统一视角,唯一区别在于容器的最上面那一层是可读可写的。

仓库
仓库(Repository)是集中存放镜像文件的场所
仓库(Repository)和仓库注册服务器(Registry)是有区别的。仓库注册服务器上往往存放着多个仓库,每个仓库又包含多个镜像,每个镜像有不同的标签(tag)
仓库分为公开仓库(Public)和私有仓库(Private)两种形式
最大的公开仓库是 Docker hub(https://hub.docker.com/)
存放了数量庞大的镜像供用户下载。国内的公开仓库包括阿里、网易云等

--------------------------------------------------------------------

2.8.Docker 安装:

查看自己的内核
uname -r命令用于打印当前系统相关信息(内核版本号、硬件架构、主机名称和操作系统类型等)

https://blog.csdn.net/ruozhuliufeng/article/details/103767478

--------------------------------------------------------------------

3.Jenkins

3.1.自动发布:

写好脚本后,达到一键部署的效果。

让系统发布变得更加简单。

对于敏捷开发非常有效果,我们敏捷开发时,有时,每周都有Sprint会议,

所以经常要发布最新代码到最新环境,确认效果。

指定一个参数,这个参数是,Maven的POM文件中的一个参数,

通过这个参数,可以发布不同的IT环境,以及ST等环境。

(不同环境,使用的Server,数据库,Log4j等都是不一样的,这些在POM中指定。)

(里面用到了Manvn想管的知识)

还有,启动Maven打包,打包后文件的移动,删除等待

(里面用到了LInux Shell相关的知识)

(而且敏捷宣言中提到【可工作软件 高于详尽的文档】)

使用Jenkins往IT环境部署,一键就可以部署,非常便捷!

3.2.自动检查代码缺陷:

SonarQube (比如,可以查看出,代码某处,存在发生空指针异常的风险)

3.3.非常好的版本管理:

可以查看每一次发布提交的代码内容

--------------------------------------------------------------------

4.反向代理服务器

把软件部署到多个服务器上,使用反向代理服务器,来达到负载均衡。

问:什么要把软件部署到多个服务器上

回答:当大量访问到来时,如果只有一个服务器,新能再好,也很难承受。

以上图片来自下面4.2中的链接,更详细的介绍,可以去看下面链接提供的文章。

4.1.反向代理服务器介绍

https://blog.csdn.net/sxzlc/article/details/103449412

4.2.分布式系统介绍

https://blog.csdn.net/weixin_44460333/article/details/103231535

https://www.jianshu.com/p/73613376b854

4.3.反向代理中的Session拷贝 (下面文章中的No.12)

https://blog.csdn.net/sxzlc/article/details/103450258

--------------------------------------------------------------------

5.SFDC 等产品(自带数据库服务)

使用这类框架开发之后,可以很快开发出产品并上线

・不必再担心环境的部署,服务器的准备,数据的存储。

・只要专注于产品业务的实现即可、

・这类产品提供了很好的框架,便于开发,提高开发速度

・数据的存储,是开发这类产品的公司为你管理。。。。

不过,个人认为,这类产品未来不一定能火起来,毕竟现在是大数据时代,// 2020 / 01 / 05 留言

用户的数据,对公司来说是宝贵的资源,

就算是搭建服务器保存数据,维护起来麻烦,费钱,

但是,用户数据还是保存在自己手里最好!

--------------------------------------------------------------------

■其他相关

--------------------------------------------------------------------

・分布式
系统中的多个模块在不同服务器上部署,即可称为分布式系统,
如Tomcat和数据库分别部署在不同的服务器上,或两个相同功能的Tomcat分别部署在不同服务器上。

・高可用
系统中部分节点失效时,其他节点能够接替它继续提供服务,则可认为系统具有高可用性

・集群
一个特定领域的软件部署在多台服务器上并作为一个整体提供一类服务,这个整体称为集群。
如Zookeeper中的Master和Slave分别部署在多台服务器上,共同组成一个整体提供集中配置服务。
在常见的集群中,客户端往往能够连接任意一个节点获得服务,
并且当集群中一个节点掉线时,其他节点往往能够自动的接替它继续提供服务,
这时候说明集群具有高可用性

Zookeeper(ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务)

https://blog.csdn.net/java_66666/article/details/81015302

・负载均衡
请求发送到系统时,通过某些方式把请求均匀分发到多个节点上,
使系统中每个节点能够均匀的处理请求负载,则可认为系统是负载均衡的

・正向代理和反向代理
系统内部要访问外部网络时,统一通过一个代理服务器把请求转发出去,
在外部网络看来就是代理服务器发起的访问,此时代理服务器实现的是正向代理;
当外部请求进入系统时,代理服务器把该请求转发到系统中的某台服务器上,
对外部请求来说,与之交互的只有代理服务器,此时代理服务器实现的是反向代理。
简单来说,正向代理是代理服务器代替系统内部来访问外部网络的过程,
反向代理是外部请求访问系统时通过代理服务器转发到内部服务器的过程。

--------------------------------------------------------------------

最近几年出现的新技术相关推荐

  1. 关于新技术的引入原则 ——从零开始学架构

    不以解决实际问题引入的技术都耍流氓. 新技术的引入不是为了证明自己,而是为了解决实际项目中遇到的问题.希望诸位能够控制住自己的心魔. 新技术的引入要求应该是解决的问题大于带来的问题. 再引入新技术,请 ...

  2. 如何在使用新技术前评估其浏览器兼容性

    这里向大家推荐两个网站:caniuse.com以及html5test.com,大家在使用新技术前,可以在这两个网站上看看浏览器的支持情况,看看自己能不能接受,同时也考虑一下能不能优雅降级. caniu ...

  3. 新技术、新思维开创公共安全管理新模式

    智慧城市的建设在国内外许多地区正如火如荼的进行中,在为期六天的第十七届中国国际高新技术成果交易会(高交会)上,智慧城市这一话题再次引发观众及城市建设者们的热议. 尤其是高交会期间召开的"20 ...

  4. OpenAI机械手单手轻松解魔方,背靠强化学习+新技术ADR

    编译 | 夕颜 出品 | AI科技大本营(ID:rgznai100) [导读]10月15日,人工智能研究机构OpenAI发布了一条机械手单手解魔方的视频.这个自学式的类人机器人手臂名为 Dactyl, ...

  5. 新技术“红”不过十年,半监督学习为什么是个例外?

    作者 | 严林 来源 | 授权转载自知乎(ID:严林) 这一波深度学习的发展,以2006年Hinton发表Deep Belief Networks的论文为起点,到今年已经超过了10年.从过往学术界和产 ...

  6. JGG:中大骆观正组开发微量样品m(6)A测序新技术

    2021年8月30日,Journal of Genetics and Genomics在线发表中山大学生命科学学院骆观正教授团队题为"Establishment of Transposase ...

  7. JGG: 赵方庆、赵翔等开发高效捕获RNA病毒基因组的宏转录组建库测序新技术

    2021年8月23日,Journal of Genetics and Genomics在线发表了中国科学院北京生命科学研究院赵方庆研究员团队和西安交通大学赵翔助理研究员团队合作题为"An e ...

  8. 自旋电子学与量子计算机,基于“分子自旋电子学”的新技术,将给量子计算机带来新希望!...

    基于量子力学的量子计算机,可能有一天会给世界带来革命性的变化,一旦我们成功地建造了一台强大的量子计算机,它将能够解决一些今天计算机需要数百万年才能计算的问题.计算机使用位(0或1)对信息进行编码,量子 ...

  9. 生成全1矩阵_全矩阵捕获技术:一种最大限度提升便携式相控阵超声检测设备功能的新技术...

    便携式相控阵超声检测系统进入市场已经将近20年了,如今随着科学技术的发展,最新一代的相控阵超声检测工具能够提供更好的振幅分辨率.更快的数据采集速率,而且还搭配了先进的数据分析软件包,其优秀的计算和数据 ...

  10. 用「我的世界」自动生成「现实世界」:英伟达展示AI脑补新技术

    点击上方"AI遇见机器学习",选择"星标"公众号 重磅干货,第一时间送达 来自:机器之心 Minecraft 里面自建像素风世界不够过瘾?英伟达:那就让 AI ...

最新文章

  1. CNS接连发文背书,原来生姜这么神奇
  2. 计算机专业只考408吗,关于计算机考研408的那些事儿
  3. Asp.net中的Cache--HttpRuntim.Cache 和 HttpContext.Current.Cache
  4. Qt Creator将应用程序部署到通用远程Linux设备
  5. 【图文详解】IDEA控制台运行时出现乱码:淇℃伅...
  6. Ubuntu系统opencv4.4 opencv_contribute安装常见问题
  7. mysql dump工具升级_MySQL数据库升级
  8. lumen php命令,php – 如何使用命令行手动运行laravel / lumen作业
  9. mit oracle 350平衡线,MIT MI-350 CVT 平衡线_已售器材欣赏区_信谊音响_二手音响_音响发烧站_高级音响 - 音响贵族网...
  10. 软件工程复习笔记 UML
  11. ECMAScript 6学习总结(2)——ECMAScript 6常用方法总结
  12. 表主键自增长Mybatis插入数据报错
  13. MySQL-快速入门(14)MySQL性能优化
  14. iPhone Xs上手体验,原来用绿联的转接线就能边充电边听歌
  15. outlook qr码在哪里_聚合码微信支付宝申请开通,商家融合收款码实现一码支付,如何申请微信和支付宝合并收款码?聚合码支持信用卡、花呗、微信和支付宝收款...
  16. 企业微信第三方应用开发
  17. 4种营销概念 -seo sem edm affi - 立体营销
  18. 魔兽对战平台官网地图《小兵合成》 最强攻略+合成表+隐藏合成+隐藏英雄+
  19. 公司内网与外网同时使用
  20. Master-MatPyon:学习历程

热门文章

  1. three.js 下载安装、开发环境
  2. C#路径中获取文件全路径、目录、扩展名、文件名称
  3. Java、Node.js、PHP还是.Net? 无论你选谁,我都能教你一招!
  4. HDU 6090 Rikka with Graph 思维 公式
  5. NoSQL 数据库分类
  6. 一个关于如何创建类似于QQ客户端聊天窗口的模拟小项目
  7. 私人定制-代码生成器3
  8. 贪吃蛇系列之七——有吃的啦
  9. SharePoint 2010 自定义Ribbon实现文档批量下载为Zip文件
  10. Python+Django+SAE系列教程6-----本地配置Django