what?

什么是云计算?

把计算机资源或服务通过互联网服务于目标客户的一种方式

这种方式有以下三种层次
SaaS: Software-as-a-Service(软件即服务)
PaaS: Platform-as-a-Service(平台即服务)
IaaS: Infrastructure-as-a-Service(基础设施即服务)
云计算的范畴名词:OpenStack、Hypervisor、KVM、Docker、K8S…

最近有了更高大上的名称叫 serveless
————————————————
参考链接:https://zhuanlan.zhihu.com/p/69774299

什么是springboot?

Spring Boot是Spring发展到一定程度的一个产物,但并不是Spring的替代品,Spring Boot是为了让程序员更好的使用Spring。其设计目的是用来简化Spring应用初始搭建以及开发过程。Spring Boot其实就是一个整合很多可插拔的组件(框架),内嵌了使用工具(比如内嵌了Tomcat、Jetty等),方便开发人员快速搭建和开发的一个框架。

Spring Boot特点

1、搭建项目快,几秒钟就可以搭建完成;
2、让测试变的简单,内置了JUnit、Spring Boot Test等多种测试框架,方便测试;
3、Spring Boot让配置变的简单,Spring Boot的核心理念:约定大约配置,约定了某种命名规范,可以不用配置,就可以完成功能开发,比如模型和表名一致就可以不用配置,直接进行CRUD(增删改查)的操作,只有表名和模型不一致的时候,配置名称即可;
4、内嵌容器,省去了配置Tomcat的繁琐;
5、方便监控,使用Spring Boot Actuator组件提供了应用的系统监控,可以查看应用配置的详细信息;

什么是Spring Cloud?

简单来说,Spring Cloud是一个微服务框架的规范
Spring Cloud是一套微服务开发和治理框架,来自Netflex的OSS,包含了微服务运行的功能,比如远程过程调用,动态服务发现,负载均衡,限流等。

什么是SOA(Service-Oriented Architecture)?

官方:面向服务的架构(SOA)是一个组件模型,它将应用程序的不同功能单元(称为服务)进行拆分,并通过这些服务之间定义良好的接口和协议联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种各样的系统中的服务可以以一种统一和通用的方式进行交互。

通俗:SOA不是具体的什么技术,而是一种开发项目的思想,即解耦部分功能,单独进行部署
优点:方便扩展,新人友好,语言通用,发版方便
缺点:问题排查不便、沟通不便、关系混乱、运维难度、数据一致性问题
优点

1、扩展方便:一旦哪天突然有一堆人要注册,假设这堆人仅仅只是注册而不做其他事情,注册这个功能压力很大,而原有的一台部署了注册服务的服务器已经承受不了这么高的并发,这时候就可以单独集群部署这个注册服务,提供多几台服务器提供注册服务。
2、语言通用:实现这个服务的可以试任何语音,只要提供的接口通用就可以了,比如PHP擅长处理逻辑、Ruby语言擅长高并发、java擅长大数据等那我可以再比如某些业务逻辑很复杂的服务中使用PHP,在某些并发很高的服务中使用Ruby。
3、新人友好:新人进公司的时候他无需了解整个项目的架构是怎样的,比如你进阿里了,你想要熟练整个淘宝的架构你会累死,而这种SOA思想开发的项目由于是服务形式的,比方把你分到购物车组,那你只需要了解购物车的功能就好了。
4、发版方便:比方说你是淘宝购物车项目组的,你的项目改了一些东西要发版(发布生产),如果你是传统项目测试可能怕你改动到了其他的东西影响到了其他的功能(虽然你很确信没改动到,但万一呢?)不得不对淘宝整体的功能都做一遍测试,累死人,而这种形式的测试只需要测试你的购物车的功能,so
easy。退一步说,万一你改的代码有问题测试没测出来,那也是影响购物车的功能,用户下单支付不影响。

缺点

1、问题排查不便:比方用户买东西的时候出现了一个报错,很难直接定位到问题出在哪个环节,可能是订单组的代码有问题,也可能是支付组的代码有问题。
2、沟通不便:如果你们在大公司待过的话就会明白,用户组,订单组,购物车组,支付组等等是分别属于不同的领导管理,出了问题沟通起来很麻烦,甚至你都不知道找谁沟通,也能以前跟你沟通的人后来离职了等等的问题。
3、性能问题:相对于传统项目的直觉调用,SOA中不管你是使用RPC还是什么HTTP等技术调用,肯定会有性能的损耗,因为网络通信是需要时间的。
4、关系混乱:当服务越来越多,调用方也越来越多的时候,它们之间的关系就变得非常混乱。
5、运维难度:随着服务的增多,系统架构会越发复杂,这就给运维层面带来了挑战。
6、数据一致性问题:单体项目因为数据都在同一个数据库里面,不需要过多的关注分布式事务等问题,SOA就需要关心了。

整体而言SOA肯定是利大于弊的,虽然缺点很明显,但是基本都是可以克服的,问题排查不便那就对花点时间差呗,沟通不便就找上级领导多沟通呗,性能问题用内网什么的也能降低到很少,关系乱就可以用服务治理。相对而言好处部分基本上是不可能克服的,比如非SOA项目扩展基本很难,全部的代码丢到一个项目里面类似淘宝这种新人可能看三年五年也看不懂。
————————————————
参考链接:https://blog.csdn.net/qq32933432/article/details/87195037

什么是微服务?

微服务是一种架构模式,叫微服务架构更合理,就是把一个系统中的各个功能点都拆开为一个个的小应用然后单独部署,同时因为这些小应用多,所以需要一些办法来管理这些小应用。比如Spring Cloud

Spring boot与Spring cloud 是什么关系?

  • Spring boot 是 Spring 的一套快速配置脚手架,可以基于spring boot 快速开发单个微服务
  • Spring Cloud是一个基于Spring Boot实现的云应用开发工具;

  • Spring boot专注于快速、方便集成的单个个体
  • Spring Cloud是关注全局的服务治理框架;

  • spring boot使用了默认大于配置的理念,很多集成方案已经帮你选择好了,能不配置就不配置
  • Spring Cloud很大的一部分是基于Spring boot来实现。
  • Spring boot可以离开Spring Cloud独立使用开发项目,但是Spring Cloud离不开Spring boot,属于依赖的关系。
  • spring -> spring boot > spring cloud 这样的关系。

什么是doker?

是指容器化技术,用于支持创建和使用 Linux® 容器。
借助 Docker,您可将容器当做轻巧、模块化的虚拟机使用。同时,您还将获得高度的灵活性,从而实现对容器的高效创建、部署及复制,并能将其从一个环境顺利迁移至另一个环境

Docker 技术使用 Linux 内核和内核功能(例如 Cgroups 和 namespaces)来分隔进程,以便各进程相互独立运行。这种独立性正是采用容器的目的所在;它可以独立运行多种进程、多个应用,更加充分地发挥基础设施的作用,同时保持各个独立系统的安全性。

docker就是类似的理念。现在都流行云计算了,云计算就好比大货轮。docker就是集装箱。

1.不同的应用程序可能会有不同的应用环境,比如.net开发的网站和php开发的网站依赖的软件就不一样,如果把他们依赖的软件都安装在一个服务器上就要调试很久,而且很麻烦,还会造成一些冲突。比如IIS和Apache访问端口冲突。这个时候你就要隔离.net开发的网站和php开发的网站。常规来讲,我们可以在服务器上创建不同的虚拟机在不同的虚拟机上放置不同的应用,但是虚拟机开销比较高。docker可以实现虚拟机隔离应用环境的功能,并且开销比虚拟机小,小就意味着省钱了。
2.你开发软件的时候用的是Ubuntu,但是运维管理的都是centos,运维在把你的软件从开发环境转移到生产环境的时候就会遇到一些Ubuntu转centos的问题,比如:有个特殊版本的数据库,只有Ubuntu支持,centos不支持,在转移的过程当中运维就得想办法解决这样的问题。这时候要是有docker你就可以把开发环境直接封装转移给运维,运维直接部署你给他的docker就可以了。而且部署速度快。
3.在服务器负载方面,如果你单独开一个虚拟机,那么虚拟机会占用空闲内存的,docker部署的话,这些内存就会利用起来。

什么是serverless?

serverless中文的含义是 “无服务器”,但是它真正的含义是开发者再也不用过多考虑服务器的问题,但是并不代表完全去除服务器,而是我们依靠第三方资源服务器后端,比如使用 Amazon Web Services(AWS) Lambda. 计算服务来执行代码,那么Serverless架构分为 Backend as a Service(BaaS) 和 Functions as a Service(FaaS) 两种技术,Serverless 它是由开发者实现的服务端逻辑运行在无状态的计算容器中,它是由事件触发,完全被第三方管理的。

注意:Lambda是什么?它是一种计算服务,它在AWS基础上执行用javascript、node.js、Python、C#或java编写的代码,源代码将被打包并部署到孤立的容器中,该容器有单独分配的内存、磁盘空间和处理器。代码、配置和依赖项的组合被称作为Lambda函数

————————————————
参考链接:https://www.cnblogs.com/liuxiaokun/p/12684375.html

什么是auth2.0?

OAuth 就是一种授权机制。数据的所有者告诉系统,同意授权第三方应用进入系统,获取这些数据。系统从而产生一个短期的进入令牌(token),用来代替密码,供第三方应用使用。
————————————————
参考链接:https://blog.csdn.net/lidongliangzhicai/article/details/88963354

什么是微前端微?

微前端与微服务类似,都是将一个复杂大型的应用程序拆解成颗粒度更小的可以独立开发、测试及部署的小模块,并通过一些策略方案来确定这些模块之间的依赖关系。
微前端是构建一个现代 Web 应用所需要的技术、策略和方法,并具备多个团队独立开发、部署的特性。
特点
(一)代码库更小,可维护性更高
(二) 渐进式升级与迭代
(三) 独立部署
实现方式
(一) 打包之后的 Bundle 如何集成

  • 服务端集成
  • 构建时集成
  • 构建时集成

(二) 子应用之间如何隔离
(三) 子应用之间如何通信
(四) 公共资源如何复用

————————————————
参考链接:https://zhuanlan.zhihu.com/p/96464401
参考链接:https://blog.csdn.net/weixin_44135121/article/details/110038393

什么是flutter?

Flutter是Google一个新的用于构建跨平台的手机App的SDK。写一份代码,在Android 和iOS平台上都可以运行。
————————————————
参考链接:http://c.biancheng.net/view/6741.html
参考链接:https://www.jianshu.com/p/51e989500ca3

什么是Web Components ?

Web Components 是一套不同的技术,允许您创建可重用的定制元素(它们的功能封装在您的代码之外)并且在您的web应用中使用它们。

使用方法

  1. 创建一个类或函数来指定web组件的功能,推荐请使用 ECMAScript 2015 的类语法。
  2. 使用 CustomElementRegistry.define() 方法注册自己的新自定义元素 ,并向其传递要定义的元素名称、指定元素功能的类、以及可选的其所继承自的元素。
  3. 如果需要的话,使用Element.attachShadow() 方法将一个shadow DOM附加到自定义元素上。使用原生的DOM方法向shadow DOM中添加子元素、事件监听器等。
  4. 如果需要的话,使用 和 定义一个HTML模板。再次使用常规DOM方法克隆模板并将其附加到shadow DOM中。
  5. 最后在页面中使用我们的自定义元素,就像使用原生HTML元素一样
    ————————————————
    参考链接:https://zhuanlan.zhihu.com/p/268732230

你可能感兴趣的:(工具,docker,spring,serverless,云计算)