Linux集群和自动化维3.1 Python语言的应用领域

本文涉及的产品
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
简介:

第3章


轻量级自动化运维工具Fabric详解

近期公司的业务系统代码发布频繁,笔者同时在几个项目组里面穿插工作,发现发布和运维的工作都相当机械,加上频率比较高,导致时间的浪费也比较多。很多测试工作,例如通过SSH登录到测试环境,推送代码,然后修改Bug进行测试,这些操作都是非常机械并且具有重复性的。更让人郁闷的是,每次的操作都是相同的,命令基本上都是一样的,并且是在多台机器上执行,很难在本机上以一个脚本来搞定,主要时间都浪费在使用SSH登录和输入命令上了。这个时候需要一个轻量级的自动化运维工具,来帮助我们解决这些问题,Fabric就顺应这个需求而出现了,它非常适合于这些简单的、重复性的远程操作。Fabirc是基于Python语言开发的,前文2.1节就提到过,Python应用非常火爆,接下来看看Python的应用领域及其流行的原因。


3.1 Python语言的应用领域


1.云计算基础设施

云计算平台分为私有云和公有云。私有云平台如大名鼎鼎的OpenStack,就是以Python语言编写的。公有云,无论是AWS、Azure、GCE(Google Compute Engine)、阿里云还是青云,都提供了Python SDK,其中GCE只提供了Python和JavaScript的SDK,青云只提供了Python SDK。由此可见各家云平台对Python的重视。

软件开发工具包(Software Development Kit,SDK)一般是一些开发工具的集合,用于为特定的软件包、软件框架、硬件平台、操作系统等创建应用软件。

2. DevOps

DevOps,中文名译作开发型运维。在互联网时代,只有能够快速试验新想法,并在第一时间,安全、可靠地交付业务价值,才能保持竞争力。DevOps推崇的自动化构建、测试、部署及系统度量等技术实践,在互联网时代是尤其重要的。

自动化构建是因应用而异的,如果是Python应用,因为有setuptools、pip、virtualenv、tox、flake8等工具的存在,所以自动化构建非常简单。而且,因为几乎所有的Linux版本都内置了Python解释器,所以用Python做自动化,系统不需要预安装什么软件。

自动化测试方面,目前流行的自动化测试框架有Robot Framework、Cucumber、Lettuce三种。基于Python的Robot Framework是企业级应用最喜欢的自动化测试框架,而且和语言无关。Cucumber也有很多支持者。基于Python的Lettuce可以实现完全一样的功能。此外,Locust(一个基于Python开发的开源负载测试工具)也开始在自动化性能测试方面受到越来越多的关注。

自动化配置管理工具,老牌的如Chef和Puppet,是基于Ruby语言开发设计的,目前仍保持着强劲的势头。不过,新生代Ansible、SaltStack,以及轻量级的自动化运维工具Fabric,均为Python语言开发。由于它们较前两者的设计更为轻量化,因此受到越来越多开发者的欢迎,并且已经给Chef和Puppet制造了不少的竞争压力。

3.网络爬虫

大数据的数据从哪里来?除了部分企业有能力自己产生大量的数据,大部分时候,是需要依靠网络爬虫来抓取互联网数据进行分析的。

网络爬虫是Python的传统强势领域,最流行的爬虫框架Scrapy、HTTP工具包urlib2、HTML解析工具Beautiful Soup、XML解析器lxml等,都是能够独当一面的类库。笔者公司的分布式网络爬虫程序也是基于Scrapy开发的。不过,网络爬虫并不仅仅是打开网页,解析HTML这么简单。高效的爬虫要能够支持大量灵活的并发操作,常常要能够同时抓取几千甚至上万个网页,使用传统的线程池方式资源浪费比较大,线程数上千之后系统资源基本上就全浪费在线程调度上了。由于Python能够很好地支持协程(Coroutine)操作,因此基于Python发展了很多并发库,如Gevent、Eventlet,还有Celery之类的分布式任务框架等。被认为是比AMQP更高效的ZeroMQ最早提供的也是Python版本。有了对高并发的支持,网络爬虫才可以真正达到大数据规模。

4.数据处理

从统计理论,到数据挖掘、机器学习,再到最近几年提出来的深度学习理论,数据科学正处于百花齐放的时代。数据科学家们都用什么语言编程呢?Python是数据科学家最喜欢的语言之一。和R语言不同,Python本身就是一门工程性语言,数据科学家用Python实现的算法,可以直接用在产品中,这对于初创的大数据公司来说,是非常有利于节省成本的。正是基于数据科学家对Python和R的热爱,Spark为了“讨好”数据科学家,对这两种语言都提供了非常好的支持。

Python的数据处理相关类库非常多。比如,高性能的科学计算类库NumPy和SciPy,给其他高级算法打下了非常好的基础;Matplotlib让Python画图变得像Matlab一样简单;Scikit-learn和Milk实现了很多机器学习算法,基于这两个库实现的Pylearn2,是深度学习领域的重要成员;Theano利用GPU加速,实现了高性能数学符号计算和多维矩阵计算。当然,还有Pandas,一个在工程领域已被广泛使用的大数据处理类库,其DataFrame的设计借鉴自R语言,后来又启发Spark项目实现了类似机制。

除了这些领域以外,Python还被广泛应用于Web开发、游戏开发、手机开发、数据库开发等众多领域。

相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
相关文章
|
26天前
|
搜索推荐 Python
使用Python自动化生成物业通知单
本文介绍如何使用Python结合Pandas和python-docx库自动化生成物业通知单。通过读取Excel数据并填充至Word模板,实现高效准确的通知单批量制作。包括环境准备、代码解析及效果展示,适用于物业管理场景。
60 14
|
30天前
|
数据采集 数据可视化 数据挖掘
利用Python自动化处理Excel数据:从基础到进阶####
本文旨在为读者提供一个全面的指南,通过Python编程语言实现Excel数据的自动化处理。无论你是初学者还是有经验的开发者,本文都将帮助你掌握Pandas和openpyxl这两个强大的库,从而提升数据处理的效率和准确性。我们将从环境设置开始,逐步深入到数据读取、清洗、分析和可视化等各个环节,最终实现一个实际的自动化项目案例。 ####
|
27天前
|
存储 数据采集 人工智能
Python编程入门:从零基础到实战应用
本文是一篇面向初学者的Python编程教程,旨在帮助读者从零开始学习Python编程语言。文章首先介绍了Python的基本概念和特点,然后通过一个简单的例子展示了如何编写Python代码。接下来,文章详细介绍了Python的数据类型、变量、运算符、控制结构、函数等基本语法知识。最后,文章通过一个实战项目——制作一个简单的计算器程序,帮助读者巩固所学知识并提高编程技能。
|
4天前
|
Python
自动化微信朋友圈:Python脚本实现自动发布动态
本文介绍如何使用Python脚本自动化发布微信朋友圈动态,节省手动输入的时间。主要依赖`pyautogui`、`time`、`pyperclip`等库,通过模拟鼠标和键盘操作实现自动发布。代码涵盖打开微信、定位朋友圈、准备输入框、模拟打字等功能。虽然该方法能提高效率,但需注意可能违反微信使用条款,存在风险。定期更新脚本以适应微信界面变化也很重要。
104 60
|
5天前
|
算法 数据处理 Python
高精度保形滤波器Savitzky-Golay的数学原理、Python实现与工程应用
Savitzky-Golay滤波器是一种基于局部多项式回归的数字滤波器,广泛应用于信号处理领域。它通过线性最小二乘法拟合低阶多项式到滑动窗口中的数据点,在降噪的同时保持信号的关键特征,如峰值和谷值。本文介绍了该滤波器的原理、实现及应用,展示了其在Python中的具体实现,并分析了不同参数对滤波效果的影响。适合需要保持信号特征的应用场景。
46 11
高精度保形滤波器Savitzky-Golay的数学原理、Python实现与工程应用
|
16天前
|
JSON 数据可视化 测试技术
python+requests接口自动化框架的实现
通过以上步骤,我们构建了一个基本的Python+Requests接口自动化测试框架。这个框架具有良好的扩展性,可以根据实际需求进行功能扩展和优化。它不仅能提高测试效率,还能保证接口的稳定性和可靠性,为软件质量提供有力保障。
48 7
|
1月前
|
Android开发 开发者 Python
通过标签清理微信好友:Python自动化脚本解析
微信已成为日常生活中的重要社交工具,但随着使用时间增长,好友列表可能变得臃肿。本文介绍了一个基于 Python 的自动化脚本,利用 `uiautomator2` 库,通过模拟用户操作实现根据标签批量清理微信好友的功能。脚本包括环境准备、类定义、方法实现等部分,详细解析了如何通过标签筛选并删除好友,适合需要批量管理微信好友的用户。
51 7
|
30天前
|
安全 API 文件存储
Yagmail邮件发送库:如何用Python实现自动化邮件营销?
本文详细介绍了如何使用Yagmail库实现自动化邮件营销。Yagmail是一个简洁强大的Python库,能简化邮件发送流程,支持文本、HTML邮件及附件发送,适用于数字营销场景。文章涵盖了Yagmail的基本使用、高级功能、案例分析及最佳实践,帮助读者轻松上手。
35 4
|
29天前
|
敏捷开发 测试技术 持续交付
自动化测试之美:从零开始搭建你的Python测试框架
在软件开发的马拉松赛道上,自动化测试是那个能让你保持节奏、避免跌宕起伏的神奇小助手。本文将带你走进自动化测试的世界,用Python这把钥匙,解锁高效、可靠的测试框架之门。你将学会如何步步为营,构建属于自己的测试庇护所,让代码质量成为晨跑时清新的空气,而不是雾霾中的忧虑。让我们一起摆脱手动测试的繁琐枷锁,拥抱自动化带来的自由吧!
|
30天前
|
缓存 开发者 Python
深入探索Python中的装饰器:原理、应用与最佳实践####
本文作为技术性深度解析文章,旨在揭开Python装饰器背后的神秘面纱,通过剖析其工作原理、多样化的应用场景及实践中的最佳策略,为中高级Python开发者提供一份详尽的指南。不同于常规摘要的概括性介绍,本文摘要将直接以一段精炼的代码示例开篇,随后简要阐述文章的核心价值与读者预期收获,引领读者快速进入装饰器的世界。 ```python # 示例:一个简单的日志记录装饰器 def log_decorator(func): def wrapper(*args, **kwargs): print(f"Calling {func.__name__} with args: {a
40 2