grpc

Dapr微服务应用开发系列0:概述

醉酒当歌 提交于 2020-12-19 14:51:04
题记:Dapr是什么,Dapr包含什么,为什么要用Dapr。 Dapr是什么 Dapr( D istributed Ap plication R untime),是微软Azure内部创新孵化团队的一个开源项目,皆在解决微服务应用开发过程的一些共性问题。以官方文档的说法,Dapr是一个可移植、事件驱动的运行时,让企业开发者更容易利用各种语言和框架构建柔性、无状态和有状态的微服务应用,并运行在云端和边缘。 Dapr的核心由Go语言写成,开发团队一开始有计划使用.NET Core/C#来写,但是考虑到社区的接受程度,遂最终选定Go作为开发语言。当然,还是可以使用任何语言和框架来编写Dapr的扩展功能。由于Dapr要解决的问题确实是大家面临的一些痛点,并且Dapr的设计也独树一帜,所以一经开源,就成为GitHub上Star增长最快的开源项目之一,甚至达到5K Star的速率超过了Kubernetes。 Dapr包含什么 Dapr做的事情很简单,就是利用Sidecar的模式,把代码中的一些横切关注点需求(Cross-cutting)分离和抽象出来,从而达到 运行环境的独立 和 对外部依赖(包括服务之间)的独立 。 这种独立的途径就是使用开放协议(HTTP和gRPC)来代替依赖特定协议。如下图所示: 从上图我们可以看到,使用Dapr开发的微服务应用理论上可以部署到任意的云提供商、边缘设备

从零入门 Serverless | 架构的演进

北慕城南 提交于 2020-12-18 17:33:49
作者 | 许晓斌 阿里云高级技术专家 传统单体应用架构 十多年前主流的应用架构都是单体应用,部署形式就是一台服务器加一个数据库,在这种架构下,运维人员会小心翼翼地维护这台服务器,以保证服务的可用性。 ▲ 单体架构 单体应用架构面临的问题 随着业务的增长,这种最简单的单体应用架构很快就面临两个问题。首先,这里只有一台服务器,如果这台服务器出现故障,例如硬件损坏,那么整个服务就会不可用;其次,业务量变大之后,一台服务器的资源很快会无法承载所有流量。 解决这两个问题最直接的方法就是在流量入口加一个负载均衡器,使单体应用同时部署到多台服务器上,这样服务器的单点问题就解决了,与此同时,这个单体应用也具备了水平伸缩的能力。 ▲ 单体架构(水平伸缩) 微服务架构 1. 微服务架构演进出通用服务 随着业务的进一步增长,更多的研发人员加入到团队中,共同在单体应用上开发特性。由于单体应用内的代码没有明确的物理边界,大家很快就会遇到各种冲突,需要人工协调,以及大量的 conflict merge 操作,研发效率直线下降。 因此大家开始把单体应用拆分成一个个可以独立开发、独立测试、独立部署的微服务应用,服务和服务之间通过 API 通讯,如 HTTP、GRPC 或者 DUBBO。基于领域驱动设计中 Bounded Context 拆分的微服务架构能够大幅提升中大型团队的研发效率。 2.

.NET Core 3.0及ASP.NET Core 3.0 前瞻

主宰稳场 提交于 2020-12-17 15:48:30
前几天微软发布了 .NET Core 3.0 Preview 9 ,这是.NET Core 3.0 最后一个预览版。 .NET Core 3.0 正式发布将在.NET Conf 上发布,.NET Conf 时间是9月23日至25日。 Visual Studio 2019 16.3预览版3和Visual Studio for Mac 8.3支持.NET Core 3.0 ,这些版本也同时发布。 从.NET Core 3.0 Preview 7就可用于生产,目前dotnet官网就是使用 https://dotnet.microsoft.com/ Powered by .NET Core 3.0.0-preview9-19423-09。 博客园也在前些天升级为.NET Core 3.0 Preview 8,目前运行算是良好。 下面实际体验.NET Core 3.0 新特性。 .NET Core 3.0 System.Text.Json 示例: public class Person { public string FirstName { get; set; } public string LastName { get; set; } public DateTime? BirthDay { get; set; } } //转成对象 string json = ... Person

喧哗的背后:Serverless 的概念及挑战

我是研究僧i 提交于 2020-12-17 04:22:14
作者 | 许晓斌 阿里云高级技术专家,目前负责阿里集团 Serverless 研发运维平台建设,《Maven 实战》作者,曾经是 Maven 中央仓库的维护者。 **导读:**本文作者作为阿里集团 Serverless 研发运维平台负责人,从应用架构的角度去分析 Serverless 为何会让那么多人着迷,它的核心概念究竟是什么,并总结了一些落地 Serverless 必然会面临的问题。 前言 我曾在 《Serverless 的喧哗与骚动》 一文中对 Serverless 今天在行业中所处的状态做了一个比喻,这个比喻是这么说的: Serverless is like teenage sex: Everyone talks about it, nobody really knows how to do it, everyone thinks everyone else is doing it, so everyone claims they are doing it. 虽然距离写那篇文章已经过去了半年的时间,但是这种状态在我看来其实没有发生太大的变化,有很多的一线研发或者管理者对 Serverless 技术的理解是非常片面的,有些甚至是错误的。如果缺乏对应用架构演进的理解,缺乏对于云基础设施能力的理解,缺乏对风险的判断,盲目的上新技术可能不仅无法兑现业务价值,浪费精力

DevOps中的测试实践

帅比萌擦擦* 提交于 2020-12-15 15:12:28
万物皆可pipeline,流程自动化解放生产力。在DevOps的pipeline中,我们发现测试环节也需要一套流水线化的能力,来保证研发流程的大批pipeline稳定高品质交付。 下面介绍下DevOps中如何构建高水平全面的测试能力。 文化、流程、组织结构、技术发生变革,对测试提出新要求 · DevOps文化对测试带来的新要求(文化) 为适应市场的快速变化,要求企业的产品快速迭代,柔性应对用户需求,滋生了DevOps。 《持续交付2.0》中,作者将DevOps简化概括为2个环:价值探索和快速验证。 价值探索是快速发现和识别外部客户的真实需求,为其创造价值点。"快速验证环"要求企业在找到业务问题制定业务目标后,快速实现和落地价值点。 测试属于"快速验证环",过程中要求开发/测试/运维的角色紧密配合,高效高质地落地验证新特性。 · 在DevOps中构建测试工作的难点(流程) 在DevOps趋势下,测试部门从原先的大量集中测试,变成了高频快速测试。 原先大部分企业采用纯手工测试的方式,从根本上无法适应DevOps的高频快节奏需求。滋生了对自动化测试的诉求。 · 头部企业测试部门的现状(组织架构) · 人力外包比重高: 金融/通信/航空等大型企业的外包人力与正式人力之比,往往超过5:1,人员流动性高,素质参差不齐。对工具和系统的稳定性和使用门槛提出要求。 · 从集中到分散又回归集中:

Building grpc from source using preinstalled packages

时光毁灭记忆、已成空白 提交于 2020-12-15 05:47:21
问题 I'm trying to integrate gRPC in existing project. It already has directory containing all gRPC's dependencies installed (ssl, c-ares, protobuf and zlib). I want to use them while building gRPC, and install gRPC into the same directory. I downloaded gRPC archive (without cloning submodules located in grpc/third_party/), and tried to generate build system for building and installing gRPC into my destination folder (using cmake). I used following command: cmake -DCMAKE_INSTALL_PREFIX=$PREFIX

C++ grpc::experimental:interceptor how to return status and message from custom interceptor

北城余情 提交于 2020-12-12 11:04:10
问题 Im creating a custom inteceptor in my c++ grpc project to check if the Authorization Bearer token is valid or user is authenticated, so for that i create a interceptor to get the metadata and validate the token, if the token is ok i execute Proceed method, at this point all is ok, but... how i can return a grpc::Status::Unauthenticated error from the interceptor when the token is not valid? i try with method.ModifySendMessage and status but its not work and crash void AuthInterceptor:

grpc : call was half-closed error

只愿长相守 提交于 2020-12-12 10:25:12
问题 I'm using Google Cloud Platform Speech API. I'm developing using sample source. https://github.com/GoogleCloudPlatform/android-docs-samples/tree/master/speech/Speech almost the same as sample source. except many start/stop of VoiceRecorder in my app. I got this error in samsung devices. I didn't get this error in huawei devices. com.google.common.base.Preconditions.checkState (Preconditions.java:444) io.grpc.internal.ClientCallImpl.sendMessage (ClientCallImpl.java:389) io.grpc

CNCF宣布TiKV毕业

爷,独闯天下 提交于 2020-12-12 07:15:26
云原生键值数据库项目在全球拥有近1000家生产用户 旧金山,加利福尼亚州-2020年9月2日- CNCF®(Cloud Native Computing Foundation®,云原生计算基金会)为云原生软件构建可持续的生态系统,今天宣布TiKV是第12个毕业的项目。从孵化阶段到毕业阶段,TiKV被越来越多的人采用,拥有一个开放的治理过程,特性成熟,以及对社区、可持续性和包容性的坚定承诺。 TiKV是一个以Rust编写的开源分布式事务键值数据库。它提供具有ACID保证的事务性键值API。项目为需要数据持久性、水平可伸缩性、分布式事务、高可用性和强一致性的应用程序提供了统一的分布式存储层,使其成为下一代云原生基础设施的理想数据库。 “TiKV是我们第一个基于Rust的项目,它是一个真正灵活和可扩展的云原生键值存储。”CNCF CTO/COO Chris Aniszczyk说:“自项目加入CNCF以来,我们对项目的成长及培育全球开源社区的愿望印象深刻。” 自2018年8月加入CNCF以来,在生产中采用TiKV的公司增加了一倍,达到了1000家,横跨多个行业,核心仓库的贡献者从78位增加到226位。维护团队目前有7人,所代表的企业分布健康,包括PingCAP、知乎、京东云、一点资讯等。 PingCAP 首席工程师、TiKV 项目负责人唐刘表示:“开源已经成为全球基础软件发展的重要方向

阿里 双11 同款流控降级组件 Sentinel Go 正式 GA,助力云原生服务稳稳稳

拈花ヽ惹草 提交于 2020-12-09 18:53:50
作者 | 赵奕豪(宿何) Sentinel 开源项目负责人 来源| 阿里巴巴云原生公众号 前言 微服务的稳定性一直是开发者非常关注的话题。随着业务从单体架构向分布式架构演进以及部署方式的变化,服务之间的依赖关系变得越来越复杂,业务系统也面临着巨大的高可用挑战。 在生产环境中大家可能遇到过各种不稳定的情况,比如: 大促时瞬间洪峰流量导致系统超出最大负载,load 飙高,系统崩溃导致用户无法下单。 “黑马”热点商品击穿缓存,DB 被打垮,挤占正常流量。 调用端被不稳定第三方服务拖垮,线程池被占满,调用堆积,导致整个调用链路卡死。 这些不稳定的场景可能会导致严重后果,但很多时候我们又容易忽视这些与流量/依赖相关的高可用防护。大家可能想问:如何预防这些不稳定因素带来的影响?如何针对流量进行高可用的防护?如何保障服务“稳如磐石”?这时候我们就要请出阿里双十一同款的高可用防护中间件 —— Sentinel。在今年刚刚过去的天猫 双11 大促中,Sentinel 完美地保障了阿里成千上万服务 双11 峰值流量的稳定性,同时 Sentinel Go 版本也在近期正式宣布 GA。下面我们来一起了解下 Sentinel Go 的核心场景以及社区在云原生方面的探索。 Sentinel 介绍 Sentinel 是阿里巴巴开源的,面向分布式服务架构的流量控制组件,主要以流量为切入点,从限流、流量整形