文档结构  
翻译进度:已翻译     翻译赏金:0 元 (?)    ¥ 我要打赏

生产工作软件涉及到的不仅仅是编写代码。

大量的软件应用程序需要某种形式的数据存储,它们必须在某个地方构建,测试和部署。

你知道吗?

我们需要知道如何处理这种东西的人,并做到这一点。

这就是DBA(数据库管理员)和DevOps的角色。

你可能想知道为什么你需要知道这一切,难道不能只写代码吗?

嗯,是的,有时候你可以写代码,但越来越多的团队正在变得跨学科,软件开发人员需要承担或至少做出自己的贡献,并需要以各种不同的角色工作。

第 1 段(可获 1.5 积分)

软件开发,特别是在敏捷环境中,更像是团队努力,我们增加了一大堆最佳流程和“完成事情应该的方式”,因为多年来我们已经学会了如何提供更好的软件。 (或着至少我们认为我们有。)

无论如何,作为软件开发人员,你可能会被要求戴几种不同的帽子,特别是如果你工作于一家没有专门的DBA或运营团队的创业公司或小型公司时。

这不是不可能,有一天你会被要求安装数据库或设置一个应用程序。

第 2 段(可获 1.33 积分)

同样,可能会要求您帮助确定采用工作应用程序代码,构建和测试以及将其部署到生产服务器的过程。

或者,你可能会被要求与这些奇怪的生物之一工作,他们称自己为DBA或DevOps ... 兄弟们?

无论如何,不管什么原因,你都应该可以学习一些与你的技术相关联的那些技术。

哦,我们以后会得到质量保证,这是值得花一整章讨论的。

DBA们

首先,让我们从DBA开始。

什么是DBA或数据库管理员

嗯,每个组织对于这个角色都可以给出不同的定义,但通常它会因为告诉开发人员他们写的代码太烂,使用太多的数据库连接,而且当开发人员询问是否能做各种各样涉及数据库的事情时,回答他们“不行”,而伤害了他们的感情。

第 3 段(可获 1.76 积分)

但在大多数情况下,DBA负责设置,维护,保证数据库安全,优化并监视数据库,甚至可能设置数据库模式或者编写存储过程。

一些DBA在本质上更像运维,并且在实际创建数据库表和编写任何类型的数据库代码方面没有做太多工作。

其他DBA除了他们在数据库上做的运维工作之外,更像是数据库程序员。

数据库需要照料和喂养

不是每个开发团队都会有一个DBA。

事实上,许多组织都会有开发人员 - 可能就是你 - 需要执行许多DBA的职责,因此了解你的数据库以及一些基础的安装和维护数据库方面的知识会很有用。

第 4 段(可获 1.63 积分)

对于许多软件应用程序,数据库是业务的重要组成部分,因此无论维护和管理的角色是直接落入DBA手中还是分布在开发人员手中,重要的是这份工作得有人做。

数据库随着时间的推移而增长,并且可能是相当大的资源消耗,因此选择正确的硬件来运行数据库并确定何时升级是至关重要的。

数据库还包含一些非常重要的数据,因此必须定期对其进行备份,有些人需要制定一个灾难恢复计划来恢复数据库,或者当发生故障时保持运行。

第 5 段(可获 1.46 积分)

让我们不要忘记性能。 随着时间的推移,未经良好设计或调整的数据库可能会变得缓慢而低效,因此必须特别注意对数据库进行配置,并确定应如何安排数据或创建索引以使查询更快。

我可以继续下去,但我让你明白。 数据库不能自我提升。

我需要成为DBA吗?

不,但我强烈建议您投入一些时间学习如何:

  • 安装和配置数据库。
  • 创建和恢复备份。
  • 创建表和模式。
  • 创建存储过程。
  • 索引表和索引的工作原理。
  • 执行查询,插入,更新等基本操作。
  • 连接表。
第 6 段(可获 1.49 积分)

就像我说的,你不必成为这方面的专家,但作为一个软件开发人员知道这些基础知识将会非常有助于你的工作,无论是你自己做这些工作,还是必须与DBA一起工作。

DevOps:新角色

在IT领域中发明全新角色的情况并不常见,因此DevOps的作用是独一无二的,我们应该说,它们的定义是松散的。

DevOps到底是什么?

那么,它是一种聚集或混搭,如果你愿意,也可以称为开发和运维。

在我看来,我认为MacGyver是。

如果你问不同的人,你会得到很多不同的答案,但在大多数情况下,他们会同意DevOps是做那些需要做的事情来完成代码构建,测试,部署并使之在生产环境运行的人。

第 7 段(可获 1.85 积分)

要真正理解和欣赏DevOps,你必须了解...

操作:我们如何使用它

你看,在有DevOps之前,过去只是开发人员和运维(有时称为IT)。

开发人员写的代码,然后他们把它丢给QA。

QA说代码太烂了,又把它扔了回来。

代码会在一方或两方最终放弃之前来回多次,然后他们一起将代码扔给运维团队。

运维团队会抱怨代码的效率不高,它将如何破坏服务器,开发人员一点儿也不懂安全,然后又把它扔了回来。

第 8 段(可获 1.54 积分)

开发人员会诅咒那些让他们难堪的运维人员,对代码做一些小的改动后,又把它扔给运维。

最后,运维团队获取代码,将其部署到服务器,一切都会崩溃,每个人都会责怪其他人。

好吧,也许我在这里有点戏剧化,但问题是我们以前在软件开发领域有很多彼此间分离的团队

在过去 - 对于一些组织今天仍是这样 - 以前是由开发人员编写代码,运维获取代码并部署它,没有团队知道其他团队做了什么。

第 9 段(可获 1.44 积分)

这确实造成了大量的问题,但问题是可以承受的,直到敏捷软件开发的到来。

现在,团队每周发送一到两次新代码,有时甚至三次,而不是每六个月左右发送一次。

开发团队每天都会多次构建代码,并对代码进行自动化测试和质量检查。

事情不再像写代码,构建代码和部署代码那么简单了。

相反,一整套操作和程序作为一种尽可能敏捷的方式出现,并且能够将代码从开发快速移动到生产。

第 10 段(可获 1.33 积分)

DevOps是什么?

好吧,既然你知道了这个故事,那么DevOps究竟是什么?

它是将代码从开发转移到生产并在代码运行的时候维护代码的多学科过程。

而不是两个或三个单独的角色,彼此之间互不了解,有时可能处于敌对和对抗的状态,在整个过程中的每一步DevOps都拥有充分的所有权。

在一些组织中,有一些特定的DevOps角色,你可能有一个程序员了,他解如何构建和部署创建构建和部署系统所涉及的代码,以尽可能自动化该过程。

第 11 段(可获 1.4 积分)

在其他组织中,开发人员,测试人员和运营角色仍然是独立的,但他们都通过相互理解,合作和集体所有权共同努力,充分发挥DevOps的作用。

关于DevOps,最重要的是,它是对如何将软件交付给生产的思考的根本转变。

这对你意味着什么

好吧,在技术上,作为一个软件开发人员,你是DevOps的一部分。

欢迎。 恭喜。 这是你的官方DevOps派。

今天,软件开发人员应该不仅仅知道编写代码。

第 12 段(可获 1.11 积分)

你不能通过把代码丢给别人而逃避责任,让它成为别人的问题,特别是当你在一家小公司或创业公司工作。

你需要了解用于将代码从开发转移到生产的过程和工具,理想情况下还要了解如何设置和使用其中的一些工具。

显然,你应该知道如何使用IDE并在本地构建自己的代码; 没有人会为你做这个。

但是,你还应该知道如何使用源代码控制来检入并将代码集成到系统中的其他代码中。

第 13 段(可获 1.36 积分)

你应该知道持续集成的基础知识以及构建服务器的工作原理。 (别担心,我们将在后续章节中介绍大部分内容。)

你应该知道测试的基本原理和类型,以及各种自动化测试如何适应构建和部署代码的更大图景

你应该知道应用程序如何打包,并准备好分发或部署。

你应该了解部署过程以及如何将代码从构建服务器移动到分段服务器或生产服务器,以及在各种服务器上如何管理配置

第 14 段(可获 1.26 积分)

最后,你应该了解有关监控现有应用程序的有关内容,以检查性能问题和其他问题。

是的,我意识到,有许多东西要学,但你不必对所有这些事情都有深入的了解,而且不必一次学习所有内容。

更重要的是你知道这些工具和过程是什么,所以如果你需要自己实现这个工具链的一部分或帮助实现它们,你可以做到。

这样想吧。

假设你是棒球队的投手。

你不需要知道团队中每个的职位,但如果你不知道其他职位以及他们做什么,就很难谈论任何有意义的策略。

第 15 段(可获 1.84 积分)

你不想加入一个软件开发团队,并且完全不知道在你检入代码后会发生什么。

许多软件开发团队不想雇佣这样的开发人员。

就像我说的,不过,不要担心。在下面的章节中我将给你一些基本的概述。

第 16 段(可获 0.76 积分)

文章评论