热门标签 | 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玩溜。



推荐阅读
  • 本文详细介绍了Oracle RMAN中的增量备份机制,重点解析了差异增量和累积增量备份的概念及其在不同Oracle版本中的实现。通过对比两种备份方式的特点,帮助读者选择合适的备份策略。 ... [详细]
  • 深入解析Java并发之ArrayBlockingQueue
    本文详细探讨了ArrayBlockingQueue,这是一种基于数组实现的阻塞队列。ArrayBlockingQueue在初始化时需要指定容量,因此它是一个有界的阻塞队列。文章不仅介绍了其基本概念和数据结构,还深入分析了其源码实现,包括各种入队、出队、获取元素和删除元素的方法。 ... [详细]
  • 深入解析轻量级数据库 SQL Server Express LocalDB
    本文详细介绍了 SQL Server Express LocalDB,这是一种轻量级的本地 T-SQL 数据库解决方案,特别适合开发环境使用。文章还探讨了 LocalDB 与其他轻量级数据库的对比,并提供了安装和连接 LocalDB 的步骤。 ... [详细]
  • SQL 数据恢复技巧:利用快照实现高效恢复
    本文详细介绍了如何在 SQL 中通过数据库快照实现数据恢复,包括快照的创建、使用及恢复过程,旨在帮助读者深入了解这一技术并有效应用于实际场景。 ... [详细]
  • LIN总线技术详解
    LIN(Local Interconnect Network)总线是一种基于UART/SCI(通用异步收发器/串行接口)的低成本串行通信协议,主要用于汽车车身网络中智能传感器和执行器之间的通信。 ... [详细]
  • 本文详细介绍了如何在本地环境中安装配置Frida及其服务器组件,以及如何通过Frida进行基本的应用程序动态分析,包括获取应用版本和加载的类信息。 ... [详细]
  • 使用Pandas DataFrame探索十大城市房价与薪资对比
    在本篇文章中,我们将通过Pandas库中的DataFrame工具,深入了解中国十大城市的房价与薪资水平,探讨哪些城市的生活成本更为合理。这是学习Python数据分析系列的第82篇原创文章,预计阅读时间约为6分钟。 ... [详细]
  • 第1章选择流程控制语句1.1顺序结构的基本使用1.1.1顺序结构概述是程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序,依次执行,程序中大多数的代码都是这样执行 ... [详细]
  • 本文详细记录了一位求职者在搜狐进行的两次面试经历,包括面试的具体时间、面试流程、技术问题及个人感受。通过本次面试,作者不仅获得了宝贵的经验,还成功拿到了搜狐的录用通知。 ... [详细]
  • 基于51单片机的多项目设计实现与优化
    本文探讨了基于51单片机的多个项目的设计与实现,包括PID控制算法的开关电源设计、八音电子琴仿真设计、智能抽奖系统控制设计及停车场车位管理系统设计。每个项目均采用先进的控制技术和算法,旨在提升系统的效率、稳定性和用户体验。 ... [详细]
  • 本文详细介绍了如何处理Oracle数据库中的ORA-00227错误,即控制文件中检测到损坏块的问题,并提供了具体的解决方案。 ... [详细]
  • 本文介绍了基于Java的在线办公工作流系统的毕业设计方案,涵盖了MyBatis框架的应用、源代码分析、调试与部署流程、数据库设计以及相关论文撰写指导。 ... [详细]
  • 利用Cookie实现用户登录状态的持久化
    本文探讨了如何使用Cookie技术在Web应用中实现用户登录状态的持久化,包括Cookie的基本概念、优势及主要操作方法,并通过一个简单的Java Web项目示例展示了具体实现过程。 ... [详细]
  • 本文介绍了如何通过创建自定义 XML 文件来修改 Android 中 Spinner 的项样式,包括颜色和大小的调整。 ... [详细]
  • 深入解析mt_allocator内存分配器(二):多线程与单线程场景下的实现
    本文详细介绍了mt_allocator内存分配器在多线程和单线程环境下的实现机制。该分配器以2的幂次方字节为单位分配内存,支持灵活的配置和高效的性能。文章分为内存池特性描述、内存池实现、单线程内存池实现、内存池策略类实现及多线程内存池实现等部分,深入探讨了内存池的初始化、内存分配与回收的具体实现。 ... [详细]
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社区 版权所有