云的业务与技术知识归档

云的选型、开发和部署
云是做什么的,都有什么功能?
通俗的说,就是饿了要吃饭。自己做的话需要食材厨房厨具餐具能源。而云就是一个饭店,只管点菜吃饭,交完钱拍拍屁股走人。
难点就是服务器的性能和其间的通信能力。
作用

  • ECS(Elastic Compute Service)一种在线计算服务,弹性计算虚拟阿里云服务器。
  • OSS(Object Storage Service)一种对象云储存服务,通过不受平台限制的RESTful API接口,在任何应用、任何时间、任何地点存储和访问任意数据类型。
  • 负载均衡:通过分流算法,合理分摊服务器压力,使得(绝大多数)服务器性能达到最大(前提是服务器配置都一样)。
  • 块存储就类似硬盘适用通用的应用场景,OSS用于非结构化数据,譬如业务网站搭建、动静资源分离和CDN加速等业务场景,NAS文件存储,与OSS类似,不同的是需要通过标准的文件访问协议访问这些数据。
  • 【云的业务与技术知识归档】功能:PaaS层服务(Platform-as-a-Service平台即服务也称为中间件)PaaS公司在网上提供各种开发和分发应用的解决方案,比如虚拟服务器和OS。这样节约了硬件上的费用,也让分散的工作室之间的合作变得更加容易。应用场景譬如网页应用管理、应用设计、应用虚拟主机、存储、安全以及应用开发协作工具等。
  • CI/CD/CO的实现
    首先这些术语是什么意思:Continuous Integration(CI)持续集成,Continuous Delivery(CD)。CI/CD说大白话就是“经常测试/经常部署”。它不在于用了什么工具,而是在于思想、流程,让每一个开发人员能自主地提交代码、测试、部署到prod,这是一条龙服务的所需环境和工作流程。
    如何完成这项工作的总体设计称为“持续交付(CD)”。启动装配生产线的过程称为“持续集成(CI)”。确保质量的过程称为“持续测试”,将最终产品提供给用户的过程称为“持续部署”。而有能力将这一切简单、顺畅、高效的运行的人,把他称之为专家,“运维开发(DevOps)”实践者。
拓展
  • CI是如何工作的?其基本思想是让一个自动化过程监测一个或多个源代码仓库是否有issue变更。当变更被PR至repo时,它会监测到变更、下载副本、构建并运行任何相关的单元测试。
  • 什么是预检查?其指的是在讲代码引入仓库并触发CI之前,可进行其他的验证,譬如“测试编译test build”和“代码审查code review”
  • 单元测试是不依赖或调用其他不可直接访问的代码,也不依赖外部数据源或其他模块。而实际工程中,通常用一种称为“TDD测试驱动开发(test-driven develop)”的模型来证明代码的正确性。
  • 持续交付是什么?其通常指整个流程链(工艺),它自动监测源代码变更并通过编译、测试、打包和相关操作运行它们以生成可部署的版本,基本上没有任何人为干预。持续交付包括持续集成(自动检测源代码变更、执行构建过程、运行单元测试以验证变更),持续测试(对代码运行各种测试以保障代码质量),和(可选)持续部署(通过管道发布版本自动提供给用户)。
  • 如何在管道中识别/追踪多个版本?版本控制是持续交付话管道的关键概念。在管道中从源代码创建的对象通常可以称为“工件artifact”。工件在build时应该有应用于它们的版本。将版本好分配给工件的推荐策略称为“语义化控制版本semantic versioning”。
  • 什么是“持续部署”?其指能够自动提供交付管道中可发布版本给最终用户使用的想法。根据用户的安装方式,可能是在云环境中自动部署、app升级(如手机上的应用程序)、更新网站或只更新可用版本列表。并不意味着部署来自管道中每组可交付成果。
  • 在完全部署到所有用户之前,有哪些方法可以测试部署?由于必须回滚/撤销对所有用户的部署可能是一种代价高昂的情况(无论技术还是用户感知上),已经有许多技术允许“尝试”部署新功能并在发现问题是轻松“撤销”它们。
    1、蓝/绿测试/部署。在这种部署软件的方法中,维护两个相同的主机环境即一个是“生产环境”另一个是“预发布环境”,颜色不重要仅作区分。在这些实例的前面是调度系统,它们充当产品或应用程序的客户的“网关”。通过将调度系统只想蓝色或绿色实例,可以将客户流量引流到期望的部署环境中。当新的版本准备好进行测试时,可以将其部署到非生产环境中。经过测试和批准后,可以更改调度系统设置,以将传入的线上流量指向它(因此它将成为新的生产站点)。现在曾作为生产环境实例可供下次候选发布使用同理,如果在最新部署中发现问题并且之前的生产实例仍然可用,则简单的更改可以将客户流量引流回到之前的生产实例——有效的将问题实例“下线”并且回滚到以前版本。然后有问题的新实例在其他区域debug。
    2、金丝雀测试/部署。3、功能开关feature toggle。添加功能开关,这是在代码中if-then软件功能开关,仅在设置数据值时才激活新代码。此数据值是全局可访问的位置,部署的应用程序将检查改位置是否应执行新代码。4、暗箱发布dark launch。代码被逐步测试/部署到生产环境中,但是用户不会看到更改。例如,在生产版本中,网页查询的某些部分可能会重定向到查询新数据源的服务。开发人员可收集此信息进行分析,而不会将有关接口,事务或结果的任何信息暴露给用户。
  • DevOps是什么?运维开发是使开发和运维小组更加容易合作开发和发布软件的一系列想法和推荐的实践。它是贯穿整个开发周期——解决对于运维团队在后期才开始介入,并且必须在短时间内完成他们的工作,对于开发团队因为没有充分测试产品的安装/部署功能——综合协作的工作方式。
  • 持续交付如何与运维开发相交?持续交付管道是几个DevOps理念实现的。产品开发的后期阶段(如打包和部署)始终可以在管道的每次运行中完成,而不是等待产品开发周期中的特定时间。同样,从开发到部署的过程中,开发和运维都可以清楚地看到事情何时起作用,何时不起作用。DevOps建议实现管道的基础架构也会被视为代码。
  • “管道即代码”是什么? pipeline-as-code是通过编写代码创建管道作业/任务的通用术语,就像开发人员编写代码一样,它的目标是将管道实现表示为代码。
  • DevOps如何影响生产软件的基础设施?在传统意义上,管道中使用的各种硬件系统都有配套的软件(OS、应用程序、开发工具等)。而在极端情况下,每个系统都是手工设置来定制的,这意味着当系统出问题或需要更新是,这通常也是一项自定义任务,违背了持续交付的理念即易于重现和可追踪的环境。为了保持持续交付的原则,就有了标准化交付(安装和配置)系统。如虚拟机VM即在计算机上运行的计算机程序,之后也有了容器container,只需使用一些现有的操作系统结构来划分空间,使用linux的内核功能(如命名空间和控制组)在OS上创建容器。
什么是微服务和容器?
微服务是面向面向服务架构SOA发展出来的产物,它是一种优化过的SOA实现方式。
部署私有云(IaaS、PaaS)
基础设施即服务
云和微服务的改造
私有云搭建和交付的全套流程和内容
  • 答:网络配置、机柜配置、PDU供电、RAID配置、网络上行、端口堆叠、网络风暴、环境检测、脚本内容。
  • 为了完成私有云部署,准备好服务器、万兆交换机。网络规划方的确定。由于服务器的配置改变,导致每次都更改机柜图。协调到万兆上行端口。光模块配备万兆单模光模块而不是多模(850nm)。40G堆叠线和光纤线。由于没有光模块,服务器和交换机间不能直接连接。网络布线只能甩线。布线乱了意味着线序乱了,一根根排查。Raid配置错误。自动部署开始,客户四个配置并做了堆叠的上行端口给到我这边网络工程师直接连线。导致广播风暴。

    推荐阅读