“在你的每一次旅程中看到可能性的光芒。”
作为我的第一个博客,我强烈希望这个博客必须在读者的脑海中闪耀。
在这篇博客中,我将解释我在 DevOps 旅程中所遵循的路径。
那么,什么是 DevOps?
这是一个常见问题,当您在 Google 中搜索 DevOps 时,您也可以将其作为推荐问题找到。 但在进入实际定义之前,我将用简单的语言解释什么是 DevOps。
“开发+运营=DevOps”
DevOps 不是一种特定的技术、工具或技术堆栈,而是可以将其定义为软件开发中的一种方法论或过程,通过确保整个过程的顺畅流动来帮助快速有效地交付软件产品。在公司的工作流程中实施 DevOps 将帮助开发团队和运营团队更加轻松。
“DevOps 是文化理念、实践和工具的结合,可提高组织高速交付应用程序和服务的能力:以比使用传统软件开发和基础设施管理流程的组织更快的速度发展和改进产品。” — AWS
“开发”阶段包括规划->创建->验证->构建->应用程序打包。在“Ops”阶段,我们有发布->部署->操作->应用程序监控。后期开发活动与运营团队相关联。
为什么选择 DevOps?
DevOps 的主要优势是可以在开发的每个阶段采用的自动化功能。
“作为开发人员,我们拥有的最强大的工具是自动化。” — 斯科特·汉塞尔曼
在正常的开发环境中,开发和运营团队共同完成项目。在某些情况下,当开发人员编写代码并将代码及其配置传递给运营团队进行测试和部署时,开发人员将开始着手下一个项目。那时在之前项目的部署过程中,如果因为代码有问题而出现错误,运维团队会指向开发团队,这会篡改开发者当前项目的开发流程.因此,为了解决所有这些冲突并增强时间管理,正在使用 DevOps。在 DevOps 方法论中,开发和运营团队将携手合作,这有助于他们降低项目的复杂性,并可以在正确的时间交付产品。
DevOps 的优势
以下是在项目中实施 DevOps 的一些优势:
- 速度
- 快速交货
- 可靠性
- 可扩展性
- 改善协作
- 安全
这些观点在每种技术的优势方面可能听起来相似😁,但所有这些优势都有助于 DevOps 在其他方法中脱颖而出。
DevSecOps
DevSecOps 是上述 DevOps 定义中增加了“Sec”。
“开发<+>安全<+>运营=DevSecOps”
在 DevSecOps 中,在 DevOps 的每个阶段都确保了安全性,即从规划阶段到最终交付阶段,每个阶段都包含适当的安全集成。
DevSecOps 的主要好处是更快地交付更安全的代码/产品。
DevSecOps 的好处:
在项目中实施 DevSecOps 时可以获得的一些好处是:
- 快速交付安全代码
- 每个阶段的安全性
- 漏洞评估和修补管理
DevSecOps 的实现:
DevSecOps 就像是现有 DevOps 实践的掩护或盾牌。它可以通过多种方式实现。
“左移”是 DevSecOps 的口头禅:它鼓励软件工程师将安全性从 DevOps(交付)流程的右侧(末端)转移到左侧(开始)。在 DevSecOps 环境中,安全性从一开始就是开发过程中不可或缺的一部分。使用 DevSecOps 的组织将其网络安全架构师和工程师作为开发团队的一部分。他们的工作是确保堆栈中的每个组件和每个配置项都得到修补、安全配置和记录。 — IBM
主要的实施过程是让开发和运营团队都了解常见的漏洞,以便他们可以为部署生成安全的代码和安全的环境。
对于 DevSecOps,学习路径与 DevOps 类似,唯一的变化是在每个阶段学习实现安全性。
一些资源是:
我的 DevOps 路线图
通往 DevOps 的旅程是一条漫长的道路,其中有许多里程碑。正如我所提到的,由于 DevOps 不是一项特定的技术,因此最好了解所有更新的工具和框架。永无止境的学习欲望🤓和更新知识的兴趣将有助于实现这一目标。我坚信将较大的任务分解成较小的部分将有助于更有效地完成整个任务。这是我在 DevOps 旅程中所遵循的路径:
1. 学习操作系统。
对于 DevOps,操作系统及其基本概念非常重要。 因为在处理服务器时,了解虚拟化、内核、文件和存储管理等主题至关重要。在这个阶段学习 Linux 非常重要。 了解 Linux 命令并学习它们会很棒。
资源:
- Linux 和终端命令简介 — Kunal Kushwaha https://youtu.be/iwolPf6kN-k
- Linux 初学者教程:Linux 操作系统简介 — Guru99 https://youtu.be/V1y-mbWM3B8
- Edureka Linux 完整课程 https://youtu.be/Wgi-OfbP2Gw
2. 学习一门编程语言
至少需要了解一种编程语言😐。 学一个没什么大不了的,当然会有一些困难,但是如果你学习一门编程语言,比如 Python、Golang 等,那就太好了。
资源:
3. 计算机网络
在处理服务器时,有必要确保入站和出站网络规则、端口、防火墙。 如果你能学习各种网络协议、网络模型、路由、桥接等会更好。通过学习,你可以管理和控制服务器的网络,并可以为你的应用程序制定特定的网络配置。
资源:
- Nerds lesson — https://youtu.be/k9ZigsW9il0
4. Docker 和 Kubernetes
Docker 和 Kubernetes 是两个重要的 CI/CD 工具。 最好对容器、容器镜像、容器编排、打包等有所了解。
资源:
- Docker — https://youtu.be/3c-iBn73dDE
- Kubernetes — https://youtu.be/X48VuDVv0do
5. 其他 CI/CD 工具
持续集成和持续交付/持续部署 (CI/CD) 工具是那些促进开发人员和运营团队顺利工作的工具。 持续集成处理开发人员将代码集成到项目存储库的主分支中,而持续交付则自动将经过验证的代码发布给公众。 许多工具有助于支持这一点。 其中一些是 Jenkins、Circle-CI、Nagios、Github Actions 等。
资源:
- Github Actions — https://youtu.be/R8_veQiYBjI
- Jenkins — https://youtu.be/FX322RVNGj4
- Travis CI — https://youtube.com/playlist?list=PLT7ak8zxhXKjVTn3Lwc2MM4eEDfp811ys
这里只列出了部分工具,熟悉了之后就可以尝试相关的新工具了。
6. 云计算
云计算是目前最热门的技术之一。 DevOps 方法采用的大多数提到的工具和项目都是基于云的。因此,了解基本的云术语和技术非常重要,一旦您掌握了这些,您就可以切换和实践您正在使用的云服务提供商提供的服务。
资源:
- https://youtu.be/RWgW-CgdIk0
- AWS (Amazon Web Services)
- GCP (Google Cloud Platform)
- Azure (Microsoft Azure)
额外主题
以下是一些可以作为附加组件学习的主题,如果您对它们有所了解,那就太好了。
- 学习 YAML、JSON 等脚本语言。
- shell脚本基础
- 服务器管理基础知识(Linux 和 Windows)
- 网络服务器
额外资源
这些平台可以帮助您了解 DevOps 和云计算的最新信息,也可以帮助您参考。
- IBM Technology— https://www.youtube.com/c/IBMTechnology
- DevOps AWS
- DevOps.com
- Atlassian
- Azure
- DevDaily
- Linux Foundation
- Spacelift
附言这些资源将有助于了解 DevOps。正如我所说,由于 DevOps 不是一项特定的技术,完成这些路径将使您对此有所了解。要成为专家,您需要使用最新的工具和技术进行更新。 “小知识永远不会浪费”,有了这种心态,您可以取得更多成就。做一个永无止境的学习者,练习你学到的东西。将你学到的东西应用到现实生活中会产生巨大的变化,并帮助你成为这方面的专家。
原文:https://faun.pub/devops-decsecops-roadmap-from-beginner-to-an-expert-c3…
最新内容
- 3 days 6 hours ago
- 3 days 8 hours ago
- 3 days 8 hours ago
- 6 days ago
- 6 days 7 hours ago
- 6 days 8 hours ago
- 6 days 8 hours ago
- 6 days 8 hours ago
- 1 week 3 days ago
- 1 week 3 days ago