我认为来自开发人员的背景实际上会使成为“开发人员”变得更加棘手,您的问题已经存在了将近3年了,因此,很高兴听到您如何找到自己的旅程,我将从以下角度给出答案:有关您上面提到的应用程序的系统管理员,希望它能阐明一些观点,或者给出非技术性的观点,从而可以解释为什么某个人(管理员或开发人员)将开始完全考虑您的要求,例如从devops透视图x,y,z之间的关系是什么,这些工具是否大于它们各个部分的总和?
我实际上认为sys管理员在这里占了上风,您在问题中提到的大多数应用程序都可以解决admin的“问题”,从而提供了一个更抽象的数据中心环境,这反过来对于开发人员和新的“ devops的策略(阅读策略/团队,devops不是一个人)。那么与您提到的应用有什么关系?如何为IT服务提供整体方法?
OpenStack:一种工具,可让您构建自己的私有云,因此可与AWS之类的东西相提并论
就是这样,但是它做什么呢?-最恰当地命名为DOS的操作系统-它通过抽象化BIOS操作磁盘,OpenStack操作数据中心并抽象化基础架构(IaaS-是数据中心操作系统的行话)。现在,您的数据中心具有API,命令语法和GUI,OpenStack可以驱动系统管理程序,交换机,路由器,防火墙,存储区域网络,负载平衡器,泊坞窗主机等。Openstack使用您的硬件制造商的“插件” 或特定功能可以只存在于软件中,因为软件定义了某些东西或网络功能虚拟化。在此OpenStack以及所有其他云之上,可以通过读取您在业务流程引擎中抛出的脚本或根据规则(按比例放大,按比例缩小等)触发的脚本来协调其自身的基础架构。因此,openstack是一个巨大的抽象层,例如,我不在乎我拥有什么交换机,可以使用此命令为我提供一个网络,或者为我构建一个复杂的负载平衡,HA,可公开使用,自动扩展,域名注册,存储附加的东西 - 使用这个脚本我在互联网上找到了。
Docker:基于一些Linux内核概念的“轻量级VM”,可用于独立运行进程,例如在共享Web托管环境中。
Docker是另一层抽象,就像云是一种破坏性技术一样,它正在改变整个行业,因为它解决了许多运营“问题”,例如软件依赖项,升级,数据隔离和纯粹的可移植性。Java之所以变得流行是因为开发人员不必考虑它的源代码可移植性,运行JVM意味着只要支持Java,他们的代码就应该在咖啡机上运行。Docker解决了类似的问题,要运行我的应用,您需要一个Docker主机,而不是,则需要此版本的python,此内核,此linux发行版等,应用程序当然仍然具有这些依赖关系,但是底层主机不在乎,管理员也不在乎您在隔离的容器中做什么(一点)。Docker正在改变开发和运营模式,将整个操作系统及其服务视为二进制文件。我们可以从存储库中获取它们,对其进行版本控制,对其进行修改,使用参数对其进行运行等。
Chef:一种用于设置和配置操作系统(例如在VM内部)的工具。
是的,Chef,puppet,ansible,salt,系统中心运营经理以及该领域中大量其他应用程序没有前两个版本那样具有破坏性,这为开发人员和管理员提供了一种对部署,升级和其他操作(配置变更),似乎没有任何标准机构可以像云技术那样努力。但是我们没有像基础架构这样确定的东西来处理,因此,学习这些知识会更加痛苦,而且彼此之间的转移并不多。
流浪汉:据我了解,是要自动创建和管理VM:设置,启动和停止它们。可以使用本地VM或远程(例如在云平台上)完成此操作。
这是您提到的应用程序列表中的一个奇怪的部分,Vagrant是开发人员的工具,也是管理员的玩具,您可以通过vagrant快速站起来一个开发环境,例如,我想开发一个Android应用程序,从中获取IDE流浪汉,我认为它将很快被Docker取代。
您能为我提供如何开始使用所有这些的建议吗(同时很多,而且我不知道从哪里开始)?
这就是为什么我认为管理员占上风,我们必须手动完成大部分工作,然后知道会出什么问题,木偶清单,云计算和docker编排将对我们来说变得更容易,开发人员会发现自己需要很多切线,所以我对任何潜在开发者的建议是首先成为管理员。