DevOps 学习笔记

这周参加了微软的“基于Docker的DevOps培训”。
下面就对学习的内容做一小结。

主要有几个议题:

Azure DevOps概述

云端应用的优势

应用可以进行动态扩展

在各种场景下匹配与之相对应该的运行资源。
应对一些突发的情况,周期的性

云计算的经济性

上面讲到时的动态扩展

Miscrosoft Azure 概述

这里面讲了一些商业数据,但觉得最重要一点,Miscrosoft开始拥抱开源。
有些开源的产品,比如SQL Server on Linux,HD Insight managed service on Linux。
这方面改变了对Miscrosoft一点印象。

DevOps概述

DevOps 发展历程

最开始的就是2009年,别
直到2013年docker出来。

然后讲了几个例子。
比如2011年的时候Amazon每11.6秒发布一次。
facebook 一天两次发部。

重点讲了Visual Studio 大规模持续交付的例子。
讲了微软团队如何控制复杂性,改进

什么是DevOps

  • 来自实践中的经验,为了解决实践者的问题
  • 不是方法论不是产品/工具,不是标准,不是职位
  • 没有核心组织,全面开放

基础设施即代码(Infa as Code)

Configuration as Code 基础架构即代码

让运维团队将运维服务转化为运维能力提供给开发团队,让开发团队像引用代码一样引用运维能力。
运维团队通过对环境代码改善将运维所关注的稳定性,性能,安全性等要求作为约束传导给开发团队,开发团队利用这种能力将业务价值更更快的交付给用户,最终实现研发和运维的整体敏捷。

Configuration as Code 工具链支持

主要分三大块:

  • Source Control
  • CI Build
  • Cloud

我觉得里面比较难做的就是CIBuild之后,如怎么检查这个版本的可用行。
要由机器能自动化的处理才行。但这又涉及到另一方面如何自动化测试。

实例:Powershell Dsc + Azure

讲了如可定义一台机器。
然后定义了部署的环境。
由于云去实现这个环境,比如说BootStrapper

实施策略框架

  • 过程
  • 工具

Docker 和容器技术概述

这里暂略

Docker 对DevOps 的价值

IT运维的演化

由原来的厚重的C/S架构,完善的技术栈,单体架构。
到现在轻量经的应用,开发人员按不同需求组合不同的服务形成的系统,有多种不同的运行环境组合。

总而言之就是,系统日益复杂,IT运维面临更多挑战

挑战

  • 如何管理高度异构化的技术栈?
  • 如何管理高度异构化的运维环境?
  • 如何管理这个N* N问题

类比1960年以前的运输行业
各种货物,要在不同的交通工具上运输,同样也是N* N 问题。
别的怎么解决的呢,集装箱。同时也创造出了全新的集装箱运输生态系统。

Docker: 代码集装箱卸载工

Docker 提供了将任何需要运送的代码进行封装,转移,管理的标准化工具。
所有的软件交付工具,发开,测试,持续集成,部署,版本管理,云行环境,人员技能,都按docker进行难一管理。

对DevOps的价值

  • 一次构建,多处运行
  • 配置一次,运行任何应用

容器 vs VMs

Docker 工作机制

Docker 发布系统工作机制

  • 源代码库中的Dockerfile,build 形成images
  • push到容器镜像仓库
  • search,pull,run 。

镜像都是分层存储。修改时,只用再次存取修改的部分。

容器编排平台概述

  • 一组互联的操作系统(实体机/虚拟机/容器)形成一个整体的资源池
  • 可以扩展到上千个节点,具备自我修复,扩展和收缩能力
  • 作为环境抽象成存在,使得应用不必关心所运行的节点

特点

  • 进行步抽象了计算机资源
  • 针对微服务运维提供资源调度的paas平台
  • 跨云
  • 面向应用
  • 跨技术栈

容器编排平台的工作方式

管理和部署端口
应用访问端口

由节点上的代理程序,与各节进行通讯,组成分布式系统。
负载均衡服务器分配。

虚拟机集群 vs. 编排平台

相同的都是有调度平台
不同的是编排平台比虚拟机集群,粒度更细,部署和升级快速,扩展迅速。

四大编排平台

  • Apache Mesos & Maratchon
  • Google kubernetes
  • Docker Swarm
  • Microsoft Azure Service Fabric

Azure 容器服务

Docker Swarm in Microsoft Azure

  • Swarm Manager
    • 维护集群内节点状态
    • 调度服务部署
  • Swarm Nodes
    • 承担工作负载
  • Swarm Cluster 私有网络
    • 将Swarm集群与Azure云中的其它环境进行隔离

Swarm Mode 特性

  • 集成在Docker内部的集群管理能力
  • 去中心化设计
  • 声明式服务模型
  • 服务发现

更多

http://devopshub.cn