docker与CI/CD

作者: 小马过河R | 来源:发表于2020-08-14 15:34 被阅读0次

本文为学习总结笔记,作为日后复盘回顾,感谢原作者分享,文末已注明出处,侵删。

关键词:CI/CD(持续集成/持续交付),DevOps(开发运维),构建,容器编排。

DevOps是一种思想,是一种文化,主要强调软件开发测试运维的一体化,目标是减少各个部门之间的沟通成本从而实现软件的快速高质量的发布。CICD是指持续集成发布部署,是一套流程实现软件的构建测试部署的自动化

DevOps与CICD紧密相关,是理论与实践的结合,DevOps要实现人员一体化,必须要借助CICD工具来自动化整个流程。

容器,提供轻量化打包应用的方式,是任何DevOps的重要组成部分。但是你准备如何管理这些容器?现有的容器编排程序--KubernetesMesosphere MarathonDocker Swarm mode,很好地帮助你管理容器,避免你焦头烂额。

容器的设计主要是为了使进程或应用程序与底层系统彼此隔离。 创建和部署单个容器很容易。 但是,如果您要将多个容器(例如数据库,Web前端,计算后端)组装到可以作为一个整体进行管理的大型应用程序中,而不必担心部署,连接,管理,并分别缩放每个容器? 您需要一种将所有部分编排为功能整体的方法。这就是Kubernetes要做的工作。 如果集装箱是邮轮上的乘客,那么Kubernetes就是邮轮主管。

Kubernetes基于Google创建的项目,提供了一种方法,可以跨多个主机自动进行多容器应用程序的部署和管理,而不必直接管理每个容器。 开发人员描述了跨多个容器的应用程序布局,包括每个容器如何使用网络和存储的详细信息。Kubernetes在运行时处理其余部分。 它还处理诸如机密和应用程序配置之类的细微细节的管理。

综上,k8s和docker Swarm是平级的工具(下面将列出两者的区别),都是管理容器集群的。

代码集成,准备docker镜像 docker集群部署

CICD总结:

开发者提交代码;

触发镜像构建;

构建镜像上传至私有仓库;

镜像下载至执行机器;

镜像运行。

容器编排:k8s和docker Swarm区别

实现DevOps需要什么?

硬性要求:工具上的准备

上文提到了工具链的打通,那么工具自然就需要做好准备。现将工具类型及对应的不完全列举整理如下:

代码管理(SCM):GitHub、GitLab、BitBucket、SubVersion

构建工具:Ant、Gradle、maven

自动部署:Capistrano、CodeDeploy

持续集成(CI):Bamboo、Hudson、Jenkins

配置管理:Ansible、Chef、Puppet、SaltStack、ScriptRock GuardRail

容器:Docker、LXC、第三方厂商如AWS

编排:Kubernetes、Core、Apache Mesos、DC/OS

服务注册与发现:Zookeeper、etcd、Consul

脚本语言:python、ruby、shell

日志管理:ELK、Logentries

系统监控:Datadog、Graphite、Icinga、Nagios

性能监控:AppDynamics、New Relic、Splunk

压力测试:JMeter、Blaze Meter、loader.io

预警:PagerDuty、pingdom、厂商自带如AWS SNS

HTTP加速器:Varnish

消息总线:ActiveMQ、SQS

应用服务器:Tomcat、JBoss

Web服务器:Apache、Nginx、IIS

数据库:MySQL、Oracle、PostgreSQL等关系型数据库;cassandra、mongoDB、redis等NoSQL数据库

项目管理(PM):Jira、Asana、Taiga、Trello、Basecamp、Pivotal Tracker

在工具的选择上,需要结合公司业务需求和技术团队情况而定。(注:更多关于工具的详细介绍可以参见此文:51 Best DevOps Tools for #DevOps Engineers)

参考文献:

Docker与CI持续集成/CD

相关文章

  • docker与CI/CD

    本文为学习总结笔记,作为日后复盘回顾,感谢原作者分享,文末已注明出处,侵删。 关键词:CI/CD(持续集成/持续交...

  • 用Go写drone插件

    Drone是一个CI/CD的新起之秀,drone的主要特性就是所有的CI/CD流程都是借助Docker容器来构建。...

  • docker jenkins ci/cd

    Jenkins 是一个很老的 ci/cd 服务了,但是至今并未过时,几乎是各种公司的首选,足见其功能强大 最近用 ...

  • jenkins(pipeline) 前端打造 CI/CD

    使用 jenkins(pipeline) 打造 CI/CD,jenkins 安装文档,帮助你填坑. docker ...

  • docker+jenkins+nodejs 自动化部署

    https://blog.kinpzz.com/2017/05/16/docker-ci-cd/ 自己电脑做服务器...

  • Prepare

    CI/CD The adoption of CI/CD has changed how developers an...

  • Jenkins 介绍

    Jenkins构建CI/CD CI/CD是什么? CI(Continuous integration,中文意思是持...

  • CI/CD/CD

    CI 持续集成CONTINUOUS INTEGRATION持续集成的环境中,开发人员会频繁提交代码到主干。持续集成...

  • 0基础自学linux运维-3.0-linux进阶篇

    3.0系列我打算写linux一些进阶类的东西,比如docker、ansible、SaltStack、CI/CD方面

  • Linux系统环境基于Docker搭建Jenkins实战

    关于CI,CD&CD CI->Continuous Integration:持续集成 CD->Continuous...

网友评论

    本文标题:docker与CI/CD

    本文链接:https://www.haomeiwen.com/subject/yfbgdktx.html