随着微服务架构的流行,迈向云原生的趋势,容器化微服务就成为了持续集成最好的手段,镜像成为了持续交付最好的产物,容器成为了镜像运行最好的环境,kubernetes成了部署容器最好的生态系统和规范。实践出真知,自学习kubernetes以来,写了一系列文章,首先,为了发现知识盲点,查漏补缺,将知识点形成体系,决定将之前写的文章做一个汇总,方便查看;其次,希望打通微服务落地kubernetes的任督二脉,探索出一种工作模式,建立一条高度自动化的流水线,于是踏上了西天取经的道路,并梳理出了西游路线图,希望大家和我一起打妖怪,早日到达雷音寺,取得真经,阿弥陀佛,成佛成仙,呵呵;最后,通过梳理明确学习的方向和目标,一步一步前进,勿急勿躁,也鞭策自己不断学习、探索,因为有时真的就懒惰了,嘿嘿,正如四书五经《大学》中所言:“知止而后有定,定而后能静,静而后能安,安而后能虑,虑而后能得”,这是我最喜欢的话之一,也是懒惰时常常会想起的一句话,好了,不扯犊子了,嘿嘿。

西游路线图(不断探索中...):

  1. 持续集成 --- development阶段
    代码提交、代码审核、构建编译、单元和功能测试、合并到代码仓库(git)、打包微服务成镜像、上传到镜像仓库 --- 全自动化。

    备注:持续集成流程非常重要,特别是互联网行业,产品不断的更新迭代,周期却很短,业务系统微服务化后,就像一辆汽车被拆分成各种组件,分配到不同的工厂加工生产,生产过程的每个阶段都需要按标准不断的交互对接,保证最后组合在一起的产物是符合预期设计标准的。至于持续集成的工作流程,每个公司可以结合自己的实际情况,建立符合自身的持续集成流程。
    该阶段的产物是镜像

  2. 持续交付 --- staging阶段
    持续集成系统级别的发布方案到chart模板仓库,使用k8s的包管理器helm一键部署预生产环境,自动运行联调(集成)测试 --- 半自动化。

    备注:生产环境必须由专人按照严谨、合理、认可、稳定的流程(滚动发布、金丝雀发布等)完成部署工作,我们将这些方案编排成chart模板,并在预生产环境进行测试,没问题后,持续集成到远程仓库。
    该阶段目的就是根据服务之间的依赖关系编排服务,并将服务部署代码化,即基础设施自动化,它的产物是chart模板,可以看作是一份DevOps文档,里面存放在各种各样的运维脚本,自动化完成各式任务,这样生产环境对于服务的发布、更新、回滚、扩容都可通过编排文件实现,从而增加可塑性、易管理性、和自动化的能力。比如需要升级100个服务中的5个服务,只需要修改编排文件中5个服务的配置就行了,当编排文件提交后,生产环境通过命令一键更新,当发现新环境这5个服务有问题时,当然希望将这个5个服务原子回滚,如果没有编排文件,需要人工记录这次升级了哪5个服务。有了编排文件,只需要执行一个命令就revert到上一个版本了,而且所有的操作在代码仓库里面都已经被记录了。

  3. 持续部署 --- production阶段
    只需要一个命令,自动从远程仓库拉取特定的chart模板,完整部署准备就绪的微服务脚手架到k8s生产环境 --- 全自动化。

第一部分 修行

第二部分 西天取经

第三部分 吃饭睡觉打妖怪

延伸阅读

https://mp.weixin.qq.com/s/Ybca--Nx4m1_w9xfH6voMQ

kubernetes 微服务西游记(持续更新中...)的更多相关文章

  1. 白话kubernetes的十万个为什么(持续更新中...) - kubernetes

    Kubernetes简称? 答:k8s或kube. Kubernetes是什么? 答:由Google开发的一个强大的平台,可以在集群环境中管理容器化应用程序.本质上是一种特殊的数据库,里面存储的是能够 ...

  2. 中国.NET:各地微软技术俱乐部汇总(持续更新中...)

    中国.NET:各地微软技术俱乐部汇总(持续更新中...)   本文是转载文,源地址: https://www.cnblogs.com/panchun/p/JLBList.html by ​史记微软. ...

  3. 基于容器微服务的PaaS云平台设计(一) 实现容器微服务和持续集成

    版权声明:本文为博主原创文章,欢迎转载,转载请注明作者.原文超链接 ,博主地址:http://www.cnblogs.com/SuperXJ/ 前言:关于什么是容器微服务PaaS和容器微服务PaaS的 ...

  4. [置顶] Docker学习总结(7)——云端基于Docker的微服务与持续交付实践

    本文根据[2016 全球运维大会•深圳站]现场演讲嘉宾分享内容整理而成 讲师简介 易立 毕业于北京大学,获得学士学位和硕士学位:目前负责阿里云容器技术相关的产品的研发工作. 加入阿里之前,曾在IBM中 ...

  5. 《WCF技术剖析》博文系列汇总[持续更新中]

    原文:<WCF技术剖析>博文系列汇总[持续更新中] 近半年以来,一直忙于我的第一本WCF专著<WCF技术剖析(卷1)>的写作,一直无暇管理自己的Blog.在<WCF技术剖 ...

  6. HBase常见问题答疑解惑【持续更新中】

    HBase常见问题答疑解惑[持续更新中] 本文对HBase开发及使用过程中遇到过的常见问题进行梳理总结,希望能解答新加入的HBaser们的一些疑惑. 1. HTable线程安全吗? HTable不是线 ...

  7. 云端基于Docker的微服务与持续交付实践

    云端基于Docker的微服务与持续交付实践笔记,是基于易立老师在阿里巴巴首届在线技术峰会上<云端基于Docker的微服务与持续交付实践>总结而出的. 本次主要讲了什么? Docker Sw ...

  8. 史上最全的spark面试题——持续更新中

    史上最全的spark面试题——持续更新中 2018年09月09日 16:34:10 为了九亿少女的期待 阅读数 13696更多 分类专栏: Spark 面试题   版权声明:本文为博主原创文章,遵循C ...

  9. git常用命令(持续更新中)

    git常用命令(持续更新中) 本地仓库操作git int                                 初始化本地仓库git add .                       ...

随机推荐

  1. IE浏览器getElementsByTagName方法的兼容问题

    今天发现了一个非常可笑的IE兼容问题,环境是IE8,调用getElementsByTagName方法搜索元素,结果集居然自动识别元素的id作为键名,去掉元素定义id才能按正常的数字索引返回. 因为网页 ...

  2. MQTT入手笔记(二)

    Mosquitto是一个实现了MQTT3.1协议的代理服务器,由MQTT协议创始人之一的Andy Stanford-Clark开发,它为我们提供了非常棒的轻量级数据交换的解决方案.本文的主旨在于记录M ...

  3. python 中的csv读写

    1.首先 import csv 2.读一个csv文件 data = open(filename) lines = csv.reader(data)  #reader 函数和 dirtreader函数的 ...

  4. 关于引用(python中的伪指针)的理解

    # 总结:个人理解,引用不可变的的变量时,随着改变会指向新的地址 # 引用可变的变量时,位置不会随着变量改变而改变 a = 1 b = a print(b) a = 2 # 指向了新的内存地址 pri ...

  5. larave5.4自定义公共函数的创建

    原文地址:http://blog.csdn.net/qq_38125058/article/details/76862151 公共函数,简单来说就是在任何地方都可以直接使用这个函数.简单介绍两种实现方 ...

  6. java 引用数据类型(类)

    我们可以把类的类型为两种: 第一种,Java为我们提供好的类,如Scanner类,Random类等,这些已存在的类中包含了很多的方法与属性,可供我们使用. 第二种,我们自己创建的类,按照类的定义标准, ...

  7. dup和dup2应用实例(dup跟APUE有出入,close+dup=dup2?)

    dup/dup2函数 有时我们希望把标准输入重定向到一个文件,或者把标准输出重定向到一个网络连接. dup()与dup2()能对输入文件描述符进行重定向. 函数原型如下: dup函数创建一个新的文件描 ...

  8. Linux的文本处理工具浅谈-awk sed grep

    Linux的文本处理工具浅谈 awk   老大 [功能说明] 用于文本处理的语言(取行,过滤),支持正则 NR代表行数,$n取某一列,$NF最后一列 NR==20,NR==30 从20行到30行 FS ...

  9. 页面获取Spring Security登录用户

    1.在session中取得spring security的登录用户名如下:${session.SPRING_SECURITY_CONTEXT.authentication.principal.user ...

  10. springmvc配置详解 教程

    https://www.cnblogs.com/sunniest/p/4555801.html