热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

云计算和python哪个容易学自学python和openstack达到怎样的水平能够去云计算公司上班?...

之前参与公司面试和出部分校招题,谈谈个人看法吧,这里我格外强调个人看法,因为这确实就是我的个人看法,不代表所有人࿰

之前参与公司面试和出部分校招题,谈谈个人看法吧,这里我格外强调个人看法,因为这确实就是我的个人看法,不代表所有人,更不代表我公司。说实话,在公司校招的这个问题上还产生过争议。

关于编程语言问题,其实我觉得编程能力和解决问题能力更重要。OpenStack是基于Python语言实现的没错,掌握Python是作为OpenStack开发的基本功。但Python需要掌握到什么程度呢?我个人并不认同死抠语法(诸如空字符串、空列表、"False"、[False]...,转化成bool类型哪个是True,哪个是False),掌握基本的语法、熟悉debug以及常用的Python库就够了。OpenStack连lambda表达式其实都很少用,相对高级的语法也就装饰器、反射机制了。编程语言大多是共通的,如果熟悉C、Java,转向Python并不需要花很多的学习精力,仅仅需要一个适应的过程而已。相对编程语言本身,我认为算法能力、数据结构、建模能力、设计模式、编程艺术、代码规范更重要,花费大量时间在抠语法上,不如多学点方法论。当然为了考察Python的基础,也会问几个Python的相关问题(本人随意列举,与实际面试无关),比如:Python是否支持重载?

Python的属性和方法是否支持权限访问控制?

Python是否支持运算符重载?

range和xrange区别是什么(何谓生成器)?

关于第二个问题,OpenStack需要达到什么样的水平?这个没有绝对的评判标准。因为OpenStack不仅包含一个庞大的项目集(计算服务Nova、块存储服务Cinder、对象存储Swift、编排服务Heat、裸机服务Ironic、容器编排服务Magnum...),还涵盖了庞大的技术生态(数据中心、运维、高可用、虚拟化技术、存储、网络技术...),要想精通OpenStack的所有方方面面,难度较大。所以,首先得明确你想要做什么,才好有针对性的学习什么,而不是胡子眉毛一把抓。

当然从事OpenStack相关的任何工作,对OpenStack的基本感性认识是必须的,不可能精通每个项目,但至少得熟悉OpenStack的几个核心项目(Keystone、Glance、Nova、Cinder、Neutron、Swift),知道它们都是干嘛的,包含哪些服务,各个服务是什么作用,服务之间是如何通信的,最好能理清各个服务的数据流。下面针对不同工作进一步细分:OpenStack开发:主要参与社区开发或者内部patch。除了以上提到的Python语法,还需要掌握OpenStack项目的代码结构,可参考int32bit/openstack-workflow。追踪焦点项目的社区开发进度和新特性,参与社区讨论并贡献代码。打开一个模块的一个方法,需要快速地定位是在哪个组件运行的(nova-api?nova-conductor?nova-compute?)。OpenStack的项目结构还是相对统一的,掌握了一个项目,其它项目的骨骼也就基本清晰了。以上是OpenStack开发的通识基础。当然如果你对Nova感兴趣,则还需要对Nova的架构和原理非常熟悉,掌握调度算法和常用的filters,熟悉libvirt以及虚拟化技术。如果研究Cinder,Cinder通常都会使用Ceph作为存储后端,因此通常还需要学习Ceph的知识,Cinder如何支持多存储后端?为什么cinder-volume不支持AA高可用模式。而如果是Neutron的话,其实更多的知识是网络技术,对ovs的熟悉是必要的。其它的高级服务,比如Sahara,当然还需要对Hadoop/Spark有一定的了解,尤其是CDH的部署,而Magnum则需要对K8S以及Swarm有一定的了解。

OpenStack运维: OpenStack的实现原理、架构,熟悉OpenStack的API。还有一些传统运维相关的技能,如排错、数据库调优、网络故障、服务监控等。

OpenStack部署实施: OpenStack的部署架构、配置优化,通用技术如网络规划和配置、自动化部署(如Puppet、Ansible)等。

架构师:OpenStack服务和组件原理、高可用技术、故障恢复、异地容灾等。

OpenStack测试:测试是所有项目都必须的,并不是OpenStack所特有的,测试方法和场景也类似,包括功能测试和验证(PoC验证)、集成测试、性能和压力测试等,测试方法如monkey测试、冒烟测试等。OpenStack测试相关的项目如Tempest、Rally。

OpenStack产品设计:熟悉OpenStack所包含实体的概念以及作用,比如server、volume、flavor、stack等。熟悉OpenStack的API。其它产品设计的通用技术,比如UI设计、用户体验和交互、前端技术等。

OpenStack方案、售前、售后:对整个OpenStack生态有基本认识,OpenStack有什么优势,市场情况如何,前沿技术调研,与别家产品有什么差别等等。

以上是针对OpenStack直接相关的,还有与OpenStack生态相关的技术,如存储相关技术(分布式存储原理、数据一致性、对Ceph有研究等)、网络相关的SDN技术等。除了以上的硬实力,其它的诸如心理素质、沟通能力、学习能力以及对技术热爱、开源社区贡献、对前沿技术敏感等也是十分有用的。

新手的话,建议从手动部署开始,推荐按照官方文档一步一步执行Ocata Installation Tutorials and Guides,安装文档还包含对各个服务的功能介绍,这是非常不错的入门学习资源,最好能够从头到尾过一遍,顺便还能熟悉OpenStack的CLI。安装完成后,好好折腾折腾,先把OpenStack玩溜。



推荐阅读
  • 线程能否先以安全方式获取对象,再进行非安全发布? ... [详细]
  • 在本文中,我们将探讨如何在Docker环境中高效地管理和利用数据库。首先,需要安装Docker Desktop以确保本地环境准备就绪。接下来,可以从Docker Hub中选择合适的数据库镜像,并通过简单的命令将其拉取到本地。此外,我们还将介绍如何配置和优化这些数据库容器,以实现最佳性能和安全性。 ... [详细]
  • Android中将独立SO库封装进JAR包并实现SO库的加载与调用
    在Android开发中,将独立的SO库封装进JAR包并实现其加载与调用是一个常见的需求。本文详细介绍了如何将SO库嵌入到JAR包中,并确保在外部应用调用该JAR包时能够正确加载和使用这些SO库。通过这种方式,开发者可以更方便地管理和分发包含原生代码的库文件,提高开发效率和代码复用性。文章还探讨了常见的问题及其解决方案,帮助开发者避免在实际应用中遇到的坑。 ... [详细]
  • 本文将带你快速了解 SpringMVC 框架的基本使用方法,通过实现一个简单的 Controller 并在浏览器中访问,展示 SpringMVC 的强大与简便。 ... [详细]
  • 秒建一个后台管理系统?用这5个开源免费的Java项目就够了
    秒建一个后台管理系统?用这5个开源免费的Java项目就够了 ... [详细]
  • 如何将Python与Excel高效结合:常用操作技巧解析
    本文深入探讨了如何将Python与Excel高效结合,涵盖了一系列实用的操作技巧。文章内容详尽,步骤清晰,注重细节处理,旨在帮助读者掌握Python与Excel之间的无缝对接方法,提升数据处理效率。 ... [详细]
  • 如何将TS文件转换为M3U8直播流:HLS与M3U8格式详解
    在视频传输领域,MP4虽然常见,但在直播场景中直接使用MP4格式存在诸多问题。例如,MP4文件的头部信息(如ftyp、moov)较大,导致初始加载时间较长,影响用户体验。相比之下,HLS(HTTP Live Streaming)协议及其M3U8格式更具优势。HLS通过将视频切分成多个小片段,并生成一个M3U8播放列表文件,实现低延迟和高稳定性。本文详细介绍了如何将TS文件转换为M3U8直播流,包括技术原理和具体操作步骤,帮助读者更好地理解和应用这一技术。 ... [详细]
  • 阿里巴巴终面技术挑战:如何利用 UDP 实现 TCP 功能?
    在阿里巴巴的技术面试中,技术总监曾提出一道关于如何利用 UDP 实现 TCP 功能的问题。当时回答得不够理想,因此事后进行了详细总结。通过与总监的进一步交流,了解到这是一道常见的阿里面试题。面试官的主要目的是考察应聘者对 UDP 和 TCP 在原理上的差异的理解,以及如何通过 UDP 实现类似 TCP 的可靠传输机制。 ... [详细]
  • 在机器学习领域,深入探讨了概率论与数理统计的基础知识,特别是这些理论在数据挖掘中的应用。文章重点分析了偏差(Bias)与方差(Variance)之间的平衡问题,强调了方差反映了不同训练模型之间的差异,例如在K折交叉验证中,不同模型之间的性能差异显著。此外,还讨论了如何通过优化模型选择和参数调整来有效控制这一平衡,以提高模型的泛化能力。 ... [详细]
  • 本文详细探讨了几种常用的Java后端开发框架组合及其具体应用场景。通过对比分析Spring Boot、MyBatis、Hibernate等框架的特点和优势,结合实际项目需求,为开发者提供了选择合适框架组合的参考依据。同时,文章还介绍了这些框架在微服务架构中的应用,帮助读者更好地理解和运用这些技术。 ... [详细]
  • OpenAI首席执行官Sam Altman展望:人工智能的未来发展方向与挑战
    OpenAI首席执行官Sam Altman展望:人工智能的未来发展方向与挑战 ... [详细]
  • Web开发框架概览:Java与JavaScript技术及框架综述
    Web开发涉及服务器端和客户端的协同工作。在服务器端,Java是一种优秀的编程语言,适用于构建各种功能模块,如通过Servlet实现特定服务。客户端则主要依赖HTML进行内容展示,同时借助JavaScript增强交互性和动态效果。此外,现代Web开发还广泛使用各种框架和库,如Spring Boot、React和Vue.js,以提高开发效率和应用性能。 ... [详细]
  • 深入理解排序算法:集合 1(编程语言中的高效排序工具) ... [详细]
  • 利用ZFS和Gluster实现分布式存储系统的高效迁移与应用
    本文探讨了在Ubuntu 18.04系统中利用ZFS和Gluster文件系统实现分布式存储系统的高效迁移与应用。通过详细的技术分析和实践案例,展示了这两种文件系统在数据迁移、高可用性和性能优化方面的优势,为分布式存储系统的部署和管理提供了宝贵的参考。 ... [详细]
  • 提升 Kubernetes 集群管理效率的七大专业工具
    Kubernetes 在云原生环境中的应用日益广泛,然而集群管理的复杂性也随之增加。为了提高管理效率,本文推荐了七款专业工具,这些工具不仅能够简化日常操作,还能提升系统的稳定性和安全性。从自动化部署到监控和故障排查,这些工具覆盖了集群管理的各个方面,帮助管理员更好地应对挑战。 ... [详细]
author-avatar
qin2112
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有