作者|刘宇   前言:本文将以阿里云函数计算为例,提供了在线调试.本地调试等多种应用优化与调试方案. Serverless 应用调试秘诀 在应用开发过程中,或者应用开发完成,所执行结果不符合预期时,我们要进行一定的调试工作.但是在 Serverless 架构下,调试往往会受到极大的环境限制,出现所开发的应用在本地可以健康.符合预期的运行,但是在 FaaS 平台上发生一些不可预测的问题的情况.而且在一些特殊环境下,本地没有办法模拟线上环境,难以进行项目的开发和调试.   Serverless 应用…
作者|刘宇 前言:Knative 是一款基于 Kubernetes 的 Serverless 框架.其目标是制定云原生.跨平台的 Serverless 编排标准. Knative 介绍 Knative 通过整合容器构建(或者函数).工作负载管理(动态扩缩)以及事件模型这三者实现其 Serverless 标准. 在 Knative 体系架构下,各角色的协作关系如下图所示. 开发者是指 Serverless 服务的开发人员可以直接使用原生 Kubernetes API 基于 Knative 部署 S…
作者 | 刘宇(江昱) 前言:OpenWhisk 是一个开源.无服务器的云平台,可以在运行时容器中通过执行扩展的代码响应各种事件,而无须用户关心相关的基础设施架构. OpenWhisk 简介 OpenWhisk 是基于云的分布式事件驱动的编程服务.OpenWhisk 提供一种编程模型,将事件处理程序注册到云服务中,以处理各种不同的服务.其可以支持数千触发器和调用,可以对不同规模的事件进行响应. OpenWhisk 是由许多组件构建的,这些组件让 OpenWhisk 成为一款优秀的开源 FaaS…
本文摘录<嵌入式Linux驱动模板简洁和工程实践>一本书"开发和调试技术". Linux强大的是,有那么多的开源项目可以使用.通常非常需要可以通过寻找相关的源模块被定义为高速的解决方案.使这些开源模块的嵌入.对开源项目进行交叉编译. 依据详细情况.下载的开源项目在组织上有非常多情况,在此对各种情况进行归类介绍. 1. 下载的开源软件包找不到Makefile 对于这样的开源包一般是採用configure的方式组织的,那么第一步就是使用软件包中的configure生成Makef…
研究生二年级实习(2010年5月)开始,一直跟着王益(yiwang)和靳志辉(rickjin)学习LDA,包括对算法的理解.并行化和应用等等.毕业后进入了腾讯公司,也一直在从事相关工作,后边还在yiwang带领下,与孙振龙.严浩等一起实现了一套大规模并行的LDA训练系统——Peacock.受rick影响,决定把自己对LDA工程实践方面的一些理解整理出来,分享给大家,其中可能有一些疏漏和错误,还请批评指正. Rickjin在<LDA数学八卦>[1]一文中已经对LDA的数学模型以及基本算法介绍得比…
https://mp.weixin.qq.com/s/44ysXnVBUq_nJByMyX9n5A 让互联网更快:通往QUIC之路 原创: 史天 翻译 云技术实践 8月15日 QUIC(Quick UDP Internet Connections)是一种默认加密的新互联网传输协议,它提供了多项改进,旨在加速HTTP传输并使其更加安全,目标是想最终取代TCP和TLS协议.在本文中,我们将概述QUIC协议的一些关键特性和它们给Web带来的好处,以及支持这一全新协议过程中遇到的一些挑战. 实际上有两个…
from:https://www.jianshu.com/p/9349c30a6b3e?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation GitChat技术杂谈 前言 本文较长,为了节省你的阅读时间,在文前列写作思路如下: 什么是 webpack,它要解决的是什么问题? 对webpack的主要配置项进行分析,虽然不会涉及太多细节,但是期待在本节能让我们知晓如果…
目录 一.准备工作 1.C/C++环境搭建 2.VSCode的配置 (1) 安装插件: (2) 设置配置文件: 二.工程化编程实战 1.模块化设计 2.可重用设计:进一步抽象 menu的进一步优化 可重入函数和线程安全 可重入的概念 线程安全的概念 两者之间的关系 对linktable模块的分析 计算机软件发展也有很多年了,软件工程越来越复杂,对代码的重用,工程的抽象和模块化需求越来越大,从一开始的面相过程,到面向对象,再到组件,微服务--现借本次课程的机会,梳理一下软件工程中基本的实践方法,看…
GCC(警告.优化以及调试选项) [介绍] gcc and g++分别是gnu的c & c++编译器   gcc/g++在执行编译工作的时候,总共需要4步   1.预处理,生成.i的文件 预处理器cpp2.将预处理后的文件不转换成汇编语言,生成文件.s 编译器egcs3.有汇编变为目标代码(机器代码)生成.o的文件 汇编器as4.连接目标代码,生成可执行程序 连接器ld 1.总体选项 -E   只激活预处理,这个不生成文件,你需要把它重定向到一个输出文件里   面.   例子用法:   gcc…
工程实践:给函数取一个"好"的名字 早在2013年,国外有个程序员做了一个有意思的投票统计(原始链接请见:<程序员:你认为最难做的事情是什么?>),该投票是让程序员从以下几个选项中选出平时在工作中自己认为最难做的事情: 做项目方案设计 编写测试用例 撰写设计文档 向别人解释我们在做什么事情 实现你不认同的feature 在别人写的代码基础上做改造 与人沟通 给函数.变量命名 进行工作量估时 也许在大家的印象中,撰写设计文档和在别人写的代码基础上做改造应该是最难的事情.但是最…