flask vuejs 全栈开发-min.png

应多位读者的要求,终于在空闲时间写了 Flask-RESTful 插件实现 API。它其实是对 Flask MethodView 的再次封装,让用户能够更方便快捷地构建出 REST API,比如基于 HTTP 方法的调度、快速定义路由规则、支持对传入的参数值进行检验、可快速定制要返回的数据各字段值、资源方法可分别应用不同的装饰器(比如权限认证),默认返回 JSON 格式的数据(无需调用 jsonify 方法),当然也可以返回 HTML、XML、CSV 等格式的数据

Kubernetes-min.png

如果手动安装 Kubernetes 服务端和客户端的各组件会非常复杂,尤其是初学者尚不清楚 K8s 的架构情况下很容易部署失败,从而打击继续学习的积极性。当然,如果你只是想体验一下 K8s 的特性,可以使用官方入门教程 https://kubernetes.io/docs/tutorials/kubernetes-basics/ 中那样单台虚拟机上运行 Minikube 即可。或者,使用 Ansible role (https://galaxy.ansible.com/geerlingguy/kubernetes) 来自动部署,但是如果你想深入掌握 K8s 各组件的作用,建议使用官方提供的管理工具 kubeadm 来部署 K8s 集群

ansible-min.png

Ansible 在 1.2 版本以后开始支持 role,它与我们日常使用的 playbook 没有什么区别,只不过对目录结构进行了一些规范。我们可以对一个很复杂的 playbook 进行拆分,比如将任务都放到 tasks/ 目录中、将触发处理程序都放到 handlers/ 目录中等。如果以后需要对 role 进行修改或者调整,只需修改相应的文件即可。如果还想把这个 role 分享给其它人,也只需要分享整个目录即可,从而实现重用的目的。role 只是关于一个功能的集合,我们使用它时,只需要编写一个 playbook 通过 roles 关键字去调用我们写好的 role 即可

ansible-min.png

playbook 文件包含了多个 play,每个 play 可以应用于一个主机组或单个主机。而每个 play 又包含一系列编排后的 tasks(按顺序执行),每个 task 其实就是执行一次 Ad Hoc 临时命令,从根本上来讲,所谓的 task 无非就是调用了 Ansible 的一个模块。如果你熟悉 Python 中的 Flask 框架,它默认的模板引擎就是 Jinja2,那么你学习本文内容时会感觉非常简单

ansible-min.png

Ansible 是使用了 Python 作为开发语言,简单易用、功能强大的自动化运维管理工具,可以出色地完成配置管理、应用部署、任务编排等多方面工作。与 Puppet、Saltstack 等其它自动化产品相比较,Ansible 无需在远程服务器上安装 agent 客户端代理,它只依赖 SSH 连接,而且它的学习曲线非常低