GitLab CI

DDD战略设计相关核心概念的理解

▼魔方 西西 提交于 2021-02-12 04:40:49
01 前言 本文想再讨论一下关于领域、业务、业务模型、解决方案、BC、领域模型、微服务这些概念的含义和关系。 初衷是我发现现在DDD领域建模以及解决方案落地过程中,常常对这些概念理解不清楚或者有歧义,导致我们不知道如何运用这些概念来落地我们的软件。 先通过一个图来说明一下这些概念之间的关系,如下图所示 02 领域、业务、业务模型 · 领域,即问题域、问题空间,领域是一种边界、范围。 所以,一个领域代表了一个问题域的边界,也可以理解为是一个业务的边界。 · 领域边界越大,业务范围就越大,反之则相反。 通常我们大家交流都比较喜欢用业务这一词,比如这块业务,那块业务,业务的边界,我是一个业务开发人员(区分于我是一个中间件开发人员)。而领域一词,相对比较抽象,不是那么容易懂。 · 领域既然是一个边界,所以可以划分领域的大小。 即领域划分,划分出来的子领域简称子域,每个子域对应一个小的问题域和和小的业务;当然,不同的子域的重要性也是不同的,所以才有了核心子域、支撑子域的说法,这点显而易见。 · 每个业务都有一个对应的业务模型 (注意这个业务模型不是领域模型,而是一个业务概念的模型,领域模型下面会提到),这个业务模型设计的时候,完全不需要考虑任何软件设计的思想,比如对象的抽象、继承、存储、性能,等。 我们是从业务本身出发,分析业务边界范围内的各种业务概念,以及业务概念之间的关系

Docker -v 对挂载的目录没有权限 Permission denied

北城以北 提交于 2021-01-01 09:39:22
在 CentOS 7中运行NodeJs的容器,发现挂载的本地目录在容器中没有执行权限,经过各种验证和Google搜索,找到了问题的原因,这里做一下记录。原因是CentOS7中的安全模块selinux把权限禁掉了,至少有以下三种方式解决挂载的目录没有权限的问题: 1,在运行容器的时候,给容器加特权: 示例:docker run -i -t --privileged=true -v /home/docs:/src waterchestnut/nodejs:0.12.0 2,临时关闭selinux: 示例:su -c "setenforce 0" 之后执行:docker run -i -t -v /home/docs:/src waterchestnut/nodejs:0.12.0 注意:之后要记得重新开启selinux,命令:su -c "setenforce 1" 3,添加selinux规则,将要挂载的目录添加到白名单: 示例:chcon -Rt svirt_sandbox_file_t /home/docs 之后执行:docker run -i -t -v /home/docs:/src waterchestnut/nodejs:0.12.0 CentOS 6/7系列安装Docker http://www.linuxidc.com/Linux/2014-07/104768.htm

企业级 DevOps CI/CD实践教程

二次信任 提交于 2020-12-29 17:13:06
你好,我是泽阳,在DevOps领域实践了多年,借助公司项目机会从端到端的对项目进行实施改造。在经过实践后,项目通过了信通院发布的《DevOps持续交付标准三级》评估。在此过程中不断的实施与改进验证了DevOps理念,积累了相关经验。 我 专注于企业级相关的技术研究与实践分享,在不断的实践过程中也希望能够给业界同行带来一些分享(避坑指南)。 大家都在谈的DevOps是什么? 自动化运维是将运维工程师手头的日常事务借助自动化工具实现高效工作。例如: 编写一些各种语言脚本进行自动化部署、自动化发布。基本上可以定义为 "运维工作 As Code"。 运维效率提升了,那么开发呢?想想开发有哪些工作是可以自动化实现的? 想想开发人员主要做啥呢?写代码 写代码 写代码 还是写代码。代码就是开发人员的输出也是后期产品的体现。代码是如何管理的?分支模式是? 多久提交一次代码?多久构建一次代码? 代码里面有没有硬编码?等....... 持续集成(CI) 开发人员将 每次提交的代码 进行构建验证 。 这个构建验证包含哪些呢? 例如: 代码是否可以正常编译? 单元测试是否能够覆盖? 代码的质量如何? 。 这些都可以纳入 CI持续集成阶段。 持续交付、持续部署(CD) 代码经过了集成,开始对每次的变更进行发布。发布到非生产的测试环境或者临时环境中。 持 续交付与持续 部署 之间的区别在于 ,

企业级 DevOps CI/CD实践教程

风流意气都作罢 提交于 2020-12-29 17:12:51
对于DevOps工具链相关的技术,今年录制的3套DevOps实践视频课程,分享给你,希望对你有所帮助!期待你的加入。 【免费公开课】 《Jenkins入门运维管理课程》 《GitLabCI入门课程》 【付费精品课】 视频课程,课件齐全。更多的是服务。 基于Jenkins的DevOps流水线实践 基于GitLabCI/CD流水线实践 基于Spinnaker的持续交付实践 如果你在实施DevOps过程中有好的想法和建议,可以联系我哦!欢迎交流,持续改进DevOps流程。(我的微信:devopsvip)。 更多精彩文章,可以关注公众号哦! 本文分享自微信公众号 - DevOps云学堂(idevopsvip)。 如有侵权,请联系 support@oschina.cn 删除。 本文参与“ OSC源创计划 ”,欢迎正在阅读的你也加入,一起分享。 来源: oschina 链接: https://my.oschina.net/u/4579342/blog/4868404

企业级 DevOps CI/CD实践教程

故事扮演 提交于 2020-12-29 15:56:46
对于DevOps工具链相关的技术,今年录制的3套DevOps实践视频课程,分享给你,希望对你有所帮助!期待你的加入。 【免费公开课】 《Jenkins入门运维管理课程》 《GitLabCI入门课程》 【付费精品课】 视频课程,课件齐全。更多的是服务。 基于Jenkins的DevOps流水线实践 基于GitLabCI/CD流水线实践 基于Spinnaker的持续交付实践 如果你在实施DevOps过程中有好的想法和建议,可以联系我哦!欢迎交流,持续改进DevOps流程。(我的微信:devopsvip)。 更多精彩文章,可以关注公众号哦! 本文分享自微信公众号 - DevOps云学堂(idevopsvip)。 如有侵权,请联系 support@oschina.cn 删除。 本文参与“ OSC源创计划 ”,欢迎正在阅读的你也加入,一起分享。 来源: oschina 链接: https://my.oschina.net/zeyangli/blog/4868406

小cookie,大智慧

你离开我真会死。 提交于 2020-12-17 05:05:20
Cookie是什么?cookies是你访问网站时创建的数据片段文件,通过保存浏览信息,它们使你的在线体验更加轻松。 使用cookies,可以使你保持在线登录状态,记录你的站点偏好,并为你提供本地化支持。 First-party cookies or Third-party cookies 第一方cookie由你访问的站点创建。该站点指的是地址栏显示的站点; 第三方cookie是由其他站点创建的。这些站点拥有你当前访问的网页上部分资源,如广告或图像。 第一方/第三方cookie不是绝对的标签,而是相对于用户的上下文。 同一cookie可以是第一方也可以是第三方,这取决于用户当时所在的网站。 “ 为什么要提第三方cookie,这与下面的cookie的SameSite策略密切相关。 cookie的常规使用方式 web服务端发送给浏览器的cookie,浏览器会存储并在下次请求原服务器的时候回发cookie。 在HTTP请求模型中以标头的形式体现:Response中 Set-Cookie 标头种植cookie;Request Cookie 标头携带(该请求允许携带的)cookies HTTP/1.0 200 OK Content-type: text/html Set-Cookie: yummy_cookie=choco Set-Cookie: X-BAT-FullTicketId=TGT

DevOps工程相关技术实践类教程

人走茶凉 提交于 2020-12-13 04:48:27
你好,我是泽阳,在DevOps领域实践了多年,借助公司项目机会从端到端的对项目进行实施改造。在经过实践后,项目通过了信通院发布的《DevOps持续交付标准三级》评估。在此过程中不断的实施与改进验证了DevOps理念,积累了相关经验。 我 专注于企业级相关的技术研究与实践分享,在不断的实践过程中也希望能够给业界同行带来一些分享(避坑指南)。 大家都在谈的DevOps是什么? 自动化运维是将运维工程师手头的日常事务借助自动化工具实现高效工作。例如: 编写一些各种语言脚本进行自动化部署、自动化发布。基本上可以定义为 "运维工作 As Code"。 运维效率提升了,那么开发呢?想想开发有哪些工作是可以自动化实现的? 想想开发人员主要做啥呢?写代码 写代码 写代码 还是写代码。代码就是开发人员的输出也是后期产品的体现。代码是如何管理的?分支模式是? 多久提交一次代码?多久构建一次代码? 代码里面有没有硬编码?等....... 持续集成(CI) 开发人员将 每次提交的代码 进行构建验证 。 这个构建验证包含哪些呢? 例如: 代码是否可以正常编译? 单元测试是否能够覆盖? 代码的质量如何? 。 这些都可以纳入 CI持续集成阶段。 持续交付、持续部署(CD) 代码经过了集成,开始对每次的变更进行发布。发布到非生产的测试环境或者临时环境中。 持 续交付与持续 部署 之间的区别在于 ,

DevOps如何解决技术债务挑战?

我是研究僧i 提交于 2020-11-25 07:23:05
许多组织在迁移到云期间发现了大量的技术债务。但是什么是技术债务呢?DevOps如何帮助我们去解决技术债务呢?在这篇文章中,我们将讨论使用DevOps将您的技术债务负担减少的方式! 什么是技术债务? 技术债务是指在整个应用程序生命周期内做出的 次优技术决策 的累积。最终,改变事物变得越来越困难,使IT计划陷入停顿。 例如,应用程序中不良的状态管理可能会使水平缩放策略难以实施。在执行您真正想做的事情(横向扩展应用程序,以便应对日益增长的流量)之前,您需要重新编写代码的状态管理部分。 “先做需要做的事,然后再做想做的事”的工作就是技术债务 。 值得指出的是,技术债务不仅会发生在开发中,还可能发生在运营中。例如:仍在运行不再受支持的过时的操作系统(Windows Server 2008或Ubuntu 11.04)。不保持服务器的修补程序更新和最新状态,会使您容易受到网络攻击和勒索软件的攻击。这些都是技术债务。 为什么会存在技术债务? 马丁·福勒(Martin Fowler)的技术债务象限指出,有时技术债务是无意的。您不知道的内容,但是现在您知道了,因此可以对其进行修复。 谨慎,刻意的技术债务是精益创业公司 Eric Ries的“构建-度量-学习”周期的核心。有时,了解您是否拥有可行产品的唯一方法是 发布产品并将其掌握在客户手中 。这可能意味着您“偷工减料”,从而招致技术债务。

如何利用Gitlab-CI持续部署到远程机器?

纵饮孤独 提交于 2020-11-20 07:02:08
长话短说,今天聊一聊使用Gitlab-CI 自动部署到远程服务器。 如果看过《 基于docker-compose的Gitlab CI/CD实践&排坑指南 》这篇文章的朋友,会注意到我是在 Gitlab-Runner服务器上自动部署的站点,本次我们结合 ssh 部署到远程机器(将CI服务器和部署服务器分离,避免资源抢占)。 SSH免密登陆 还是那句: CI/CD实质是将我们手动集成、拷贝部署的方式脚本化 ,远程部署的重要姿势是要求 免密操控 。 受控机器上的某个账户信任 CI机器上gitlab-runner账户。 先执行 su gitlab-runner 切换到 gitlab-runner 账户 在你的CI机器(主控端)上使用 ssh-keygen命令创建公钥,使用 ssh-keygen -t rsa 来创建,程序会问你存放目录,如果不需要修改,直接回车几次即可 将~/.ssh目录下 id_rsa.pub 文件拷贝到受控机器的 ~/.ssh 目录中,然后将文件内容导入到 ~/.ssh/authorized_keys 文件 主控方: scp /home/gitlab-runner/.ssh/id_rsa.pub ****@10.202.42.252:/home/***/.ssh/ 受控方: cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

从零入门 Serverless | 教你 7 步快速构建 GitLab 持续集成环境

旧街凉风 提交于 2020-10-25 03:57:50
作者 | 存诚 阿里云弹性计算团队 本文整理自 《Serverless 技术公开课》 ,“Serverless”公众号后台回复“入门”,即可获取系列文章 PPT。 **导读:**本节课程为您介绍如何基于阿里云 Serverless Kubernetes(简称 ASK)服务,来快速构建 GitLab 持续集成环境。 ASK 介绍 首先,ASK 是什么?ASK 是阿里云推出的无服务器版 Kubernetes 容器服务。与传统的 Kubernetes 服务相比,ASK最大的特点就是通过虚拟节点接入 Kubernetes 集群,而 Kubernetes 的 Master 节点也完全由阿里云容器服务托管。因此,在整个 ASK 集群中,用户无需管理和运维真实节点,只用关心 Pod 资源即可,ASK 中的 Pod 则由阿里云弹性容器实例 ECI 承载。 ASK 的优势主要有以下几点: 降低用户使用 Kubernetes 的门槛,无需管理 Node 节点; 无需考虑节点的容量规划; 以 Pod 为单位按需计费; 宕机故障影响面小,Pod 级别。 同时,ASK 主要适用的场景有: 在线业务弹性(视频直播、在线教育); 大数据计算(Spark); 定时任务; CI/CD 持续集成。 GitLab CI on ASK 的优势 说到 CI/CD,大家最熟悉的两个工具,一个是 Jenkins,另一个是