Deploy

从企业微信机器人到小爱同学,用 Serverless 实现生活智能化!

北城余情 提交于 2020-08-11 08:56:39
通过定时触发器,可以简单快速地定制一个企业微信机器人。我们可以用它来实现喝水、吃饭提醒等小功能,还能实现定时推送新闻、天气,甚至是监控告警的小功能。 使用企业微信机器人 在企业微信中,选择添加机器人: 之后,我们可以根据文档进行企业微信机器人的基础功能定制: 以下是用 curl 工具往群组推送文本消息的示例(注意要将 url 替换成机器人的 webhook 地址,content 必须是 utf8 编码): curl '企业微信机器人地址' \ -H 'Content-Type: application/json' \ -d ' { "msgtype": "text", "text": { "content": "hello world" } }' 通过 Python 语言实现: url = "" data = { "msgtype": "markdown", "markdown": { "content": "hello world", } } data = json.dumps(data).encode("utf-8") req_attr = urllib.request.Request(url, data) resp_attr = urllib.request.urlopen(req_attr) return_msg = resp_attr.read().decode("utf

如何在两个k8s上使用kubefate部署fate集群?

纵饮孤独 提交于 2020-08-11 08:52:03
*本文作者系VMware中国研发中心研发工程师 马陈龙 目标 本文将介绍如何使用kubefate在两个kubernetes集群上部署互通的两个FATE。这两个FATE可以完成各种联邦学习的任务。 完成后将会得到下图的结构: 先决条件 两个独立的kubernetes集群 v1.16.0+; 两个集群都可以连接互联网也可以互通; 两个部署机器,分别可以执行两个集群的kubectl命令; 两个kubernetes都已经部署了ingress-controller ; 本教程的两个kubernetes集群我们分别称为【 A集群 】和【 B集群 】 部署的两个FATE实例分别称为【 PartyA 】和【 PartyB 】 开始 检查集群 A集群 的信息 [deploy-A]$ kubectl get node -o wide NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME master Ready master 191d v1 .17.3 192.168.10.1 <none> CentOS Linux 7 (Core) 3.10.0-1062.12.1 .el7.x86_64 docker: //19.3.5 node -0 Ready <none>

使用FastAPI部署yolov5

纵饮孤独 提交于 2020-08-11 07:56:17
自己琢磨了好几天的部署方法,目前临时使用的是使用fastapi存储文件,再用yolov5读取图片并保存结果,再用fastapi返回结果文件。 下一步思路,重写predict.py文件实现直接读取接收的图片,并返回结果图片。 地址参见: https://github.com/Frank1126lin/deploy_yolov5_with_fastapi 觉得还不错的话,请一键三连,给个星星。 来源: oschina 链接: https://my.oschina.net/frank1126/blog/4375331

jenkins安装

这一生的挚爱 提交于 2020-08-11 03:37:55
一、下载docker镜像 To use the latest LTS: docker pull jenkins/jenkins:lts To use the latest weekly: docker pull jenkins/jenkins 二、运行docker镜像 docker run -d -u 0 -p 8080:8080 -p 50000:50000 -v /data/jenkins_home:/var/jenkins_home jenkins/jenkins:lts 三、系统初始化密码文件 /data/jenkins_home/secrets/initialAdminPassword 四、python jenkins pip install python-jenkins 使用文档: http://python-jenkins.readthedocs.io/en/latest/examples.html#example-1-get-version-of-jenkins 创建任务 import jenkins server = jenkins.Jenkins(' http://localhost:8080 ', username='admin', password='passwd') job_xml = """<?xml version='1.0' encoding=

微服务的理想与现实

♀尐吖头ヾ 提交于 2020-08-11 01:00:13
随着云原生微服务的日益火热,很多人都开始对微服务的相关知识内容感兴趣。本篇内容,旨在扫盲(意思是小白可入),希望能对大家有帮助。如有问题,欢迎大家一起讨论,共同学习进步。 01 微服务从哪里来?--- 服务架构的演进史 互联网初期, 2G还是个时髦词儿,人们的需求也很朴实,一个静态网站告诉大家我是谁、一个留言板让大家能够与我联系,就能满足信息传播和互相交流的需要。于是码农们给我们提供了这样一套解决方案: 界面+业务处理+数据处理 ,通过一个zip包就可完成所有的事情,这也就是服务架构的 单体架构时代 。 图片为作者原创 随着3G的普及,越来越多的人们可以通过PC上网了,此时BBS、门户咨询网站的出现开始吸引着大量观众。当漂亮的交互更能抓人眼球、有趣的信息瞬间引爆千万用户在线围观时,“并发“问题产生了,于是码农们加班奋战,将系统分为前端和后端,通过拆分出可复用的中间件,来提升业务处理能力、解决并发问题,这便是 分层架构时代的到来 。 图片为作者原创 后来,互联网进入微博时代,几乎网民都有Blog,打开手机就刷weibo。而此时的分层架构面对更复杂服务要求时,在应用扩展、服务调用、扩容等方面都越发桎梏,于是服务架构走进了面向服务的架构(SOA)时代。SOA网上说的很多,这里列举几个关键词: 中心化的服务治理, ESB(企业服务总线)中心化、服务之间通过精确定义的接口进行通讯、耦合度更低

jenkins pipeline基础语法与示例

青春壹個敷衍的年華 提交于 2020-08-11 00:53:52
一、Jenkins介绍 二、Jenkins Pipeline介绍 Jenkins Pipeline总体介绍 1.Pipeline 是Jenkins 2.X核心特性,帮助Jenkins实现从CI到CD与DevOps的转变 2.Pipeline 简而言之,就是一套运行于Jenkins上的工作流框架,将原本独立 运行于单个或者多个节点的任务连接起来,实现单个任务难以完成的复杂流 程编排与可视化。 什么是Jenkins Pipeline 1.Jenkins Pipeline是一组插件,让Jenkins可以实现持续交付管道的落地和实施。 2.持续交付管道(CD Pipeline)是将软件从版本控制阶段到交付给用户或客户的完 整过程的自动化表现。 3.软件的每一次更改(提交到源代码管理系统)都要经过一个复杂的过程才能被发布。 Pipeline提供了一组可扩展的工具,通过Pipeline Domain Specific Language (DSL) syntax可以达到Pipeline as Code的目的 Pipeline as Code:Jenkinsfile 存储在项目的源代码库 Why Pipeline? 本质上,Jenkins 是一个自动化引擎,它支持许多自动模式。 Pipeline向Jenkins中添加了一组强大的工具, 支持用例 简单的CI到全面的CD pipeline

Hexo yilia主题搭建自己的github个人博客(一)

旧城冷巷雨未停 提交于 2020-08-10 23:44:09
前言:本文章的前提是默认你已经安装了git,node,npm,电脑也与github建立 了联系 1. 在D盘下创建"blog_hexo"文件夹并查询自己电脑是否已经安装好需要的东西 2.安装淘宝镜像源(如果错误就重来,因为连接可能不稳定,不要害怕多试几次就可以了) npm install -g cnpm --registry=https://registry.npm.taobao.org 3.安装Hexo (如果失败重新来过就可以了) cnpm install -g hexo-cli 检测是否安装成功 hexo -v 4.初始化hexo并查看 5. 发布到github上 在 D:\blog_hexo 目录下安装一个hexo部署插件 cnpm install --save hexo-deployer-git 打开 D:\blog_hexo 目录,找到_config.yml 文件,使用编译器打开,建议使用 Visual Studio Code打开,找到第100行,deploy 将其改成下面的内容 deploy: type: git repository: git@github.com:xxx/xxx.github.io.git branch: master 保存该文件,使用 git bash 部署到github上 hexo d 安装hexo,部署github成功!!

ETHER/ERC20批量交易PHP开发包

冷暖自知 提交于 2020-08-10 22:43:26
以太坊批量转账PHP开发包支持以太币ERC20代币的批量转账,有效减少交易手续费。官方下载地址: http://sc.hubwiz.com/codebag/eth-batch-transfer/ 。 1、以太坊批量转账PHP开发包简介 以太坊批量转账PHP开发包的主要特性如下: 支持以太币和ERC20代币一对多转账 只需要支付一个交易的手续费 支持使用公共节点(例如Infura)或自己部署节点 以太坊批量转账PHP开发包运行于PHP7.1+环境下,主要类及相互关系如下图所示: 以太坊批量转账PHP开发包的主要代码文件清单见官网: http://sc.hubwiz.com/codebag/eth-batch-transfer/ 2、合约部署 以下部分说明如何使用附带的脚本和PHP程序部署合约。当然你也可以使用 Solidity在线IDE 部署合约。 进入开发包目录,执行如下命令编译合约: ~$ cd ~/ebt ~/ebt$ ./build-contract.sh 执行如下命令部署合约: ~/ebt$ php deploy-contract.php 在~/ebt/contract/build/目录下的合约部署地址文件(后缀.addr)中记录有合约的部署地址。 3、批量转账PHP API初始化 PHP侧提供的BatchTransfer.php包含了BatchTransfer类的实现

flowable 跟 model ID 部署流程

南笙酒味 提交于 2020-08-10 19:13:17
/**部署流程定义 * @return www.1b23.com */ @RequestMapping(value="/deployment") @RequiresPermissions("fhmodel:edit") @ResponseBody public Object deployment(){ Map<String,Object> map = new HashMap<String,Object>(); String result = "success"; PageData pd = new PageData(); pd = this.getPageData(); try{ deploymentProcessDefinitionFromUIModelId(pd.getString("modelId"));//部署流程定义 }catch (Exception e){ result = "error"; }finally{ map.put("result", result); } return map; } /**部署流程定义(根据ui.modeler的 modelId部署) * @param modelId 模型ID * @return 部署ID www.1b23.com */ protected String

在阿里云函数计算上部署.NET Core 3.1

。_饼干妹妹 提交于 2020-08-10 17:28:26
使用阿里云ECS或者其他常见的VPS服务部署应用的时候,需要手动配置环境,并且监测ECS的行为,做补丁之类的,搞得有点复杂。好在很多云厂商(阿里云、Azure等)提供了Serverless服务,借助于Serverless,开发人员可以更加专注于代码的开发,减少运维的成本。 Azure的部署直接集成在了VS中,非常方便,本文主要介绍一下使用ASP.NET CORE 3.1部署在阿里云Serverless(函数计算)的内容。 准备 阿里云的函数计算提供了很多运行库,对.NET的支持现在到ASP.NET CORE 2.1,如果我们需要自定义runtime,那么需要使用到函数计算的custom runtime功能。 首先准备好一个ASP.NET CORE 3.1程序,保证其可以正常运行(Release模式下能够正常工作)。然后做以下改动: 修改端口 阿里云函数计算自定义runtime使用的是固定的监听端口9000,因此,需要修改Program.cs文件 Copypublic static IWebHostBuilder CreateWebHostBuilder(string[] args) => WebHost.CreateDefaultBuilder(args) //指定监听9000端口 .UseUrls("http://*:9000") .UseStartup<Startup>();