开源中国

我们不支持 IE 10 及以下版本浏览器

It appears you’re using an unsupported browser

为了获得更好的浏览体验,我们强烈建议您使用较新版本的 Chrome、 Firefox、 Safari 等,或者升级到最新版本的IE浏览器。 如果您使用的是 IE 11 或以上版本,请关闭“兼容性视图”。
博客专区 - 开源中国社区

精彩阅读

  • 最新推荐

  • 今日热门

  • 本周热门

  • 每日一博

  • 最新文章

Docker Swarm的前世今生

![心静只需一杯茗](http://upload-images.jianshu.io/upload_images/9824247-f0646518a1fe6a25.jpg) --- ## 概述 在我的[《Docker Swarm集群初探》](https://www.jianshu.com/p/3f3c9e0e3db5)一文中,我们实际体验了Docker Swarm容器集群技术的魅力,与[《Kubernetes实践录》](https://www.jianshu.com/p/9bc87b5380e8)一文中提到的Kubernetes集群技术相比,Docker Swarm没有Kubernetes显得那么厚重,因此可以认为是更加轻量级的容器集群技术,这也就意味着上手更加方便快捷,使用起来也要省事很多。作为Docker集群技术三(或“四”)架马车之一的Docker Swarm,它从一开始便是Docker官方的“亲儿子”,发展到现在也经历了很多阶段和迭代。作者在学习的过程中也了解了一点其发展历史,发现有几个概念还是挺容易混淆的,因此撰写成文,是梳理,也是总结。 --- --- ## 初出茅庐之:经典Swarm 早在2014年底,Docker公司就设计了容器集群的方案组合:**Machine + Swarm + Compose**。其中Machine主要用于快速创建Docker运行环境,其支持在创建出来的节点上自动部署Swarm,此时的Swarm我们称为 **“经典Swarm”**,它是一款整合跨节点网络的集群式容器服务,其利用Docker守护进程...
CodeSheep 发布于 1天前 阅读 99 评论 2

深入分析Kubernetes Scheduler的NominatedPods

本文对NominatedPods和NominatedNode的作用进行了阐述,并从源码角度分析了抢占调度时及抢占调度后,NominatedPods都有哪些变更操作,最后分析了PriorityQueue中Pod的Add/Update/Delete操作对PriorityQueue NominatedPods Cache的影响,希望有助于读者加深对scheduler抢占调度和优先级队列的理解。
WaltonWang 发布于 4周前 阅读 188 点赞 1

华为云」云中优选惠,全场低至2折,6.19-6.30开抢,签到抽P20

华为云年中钜惠,注册抽免费高配(2核4G)云服务器,单人成团2折起抢购热销云产品;云服务器、数据库、安全防护、大数据等150+云产品,更有精彩好礼送不停!
华为云

Rancher 2.0部署过程中常见问题分析与解决

本文主要介绍了部署Rancher 2.0的环境需求,包括操作系统、硬件配置、支持的docker版本部署过程中的常见问题及排查思路,多数问题整理收集自Rancher官方技术交流群内用户的提问与反馈。
RancherLabs 发布于 1个月前 阅读 247

CoreOS配置Docker镜像加速器

CoreOS下的Docker配置是通过flannel unit来实现的 通过命令可以看出配置文件的默认位置 systemctl cat docker # /run/systemd/system/docker.service [Unit] Requires=torcx.target After=torcx.target Description=Docker Application Container Engine Documentation=http://docs.docker.com After=containerd.service docker.socket network-online.target Wants=network-online.target Requires=containerd.service docker.socket [Service] EnvironmentFile=/run/metadata/torcx Type=notify EnvironmentFile=-/run/flannel/flannel_docker_opts.env Environment=DOCKER_SELINUX=--selinux-enabled=true /run/flannel/flannel_docker_opts.env 这个文件默认是没有的,所以我们创建对应目录和文件即可。 补充:如果docker run的时候报如下错误: Error response from daemon: error creating overlay mount to /var/lib/docker/overlay2/007018df729636dd7c3d22ea683d13b6f5f0657b7c2c9e0014c671id argument. 则需要修改/run/systemd/system/docker.service文件中的这一项 Environment=DOCKER_SELINUX=--selinux-enabled=false 然后 systemctl daemon-reload system...
ykbj 发布于 1个月前 阅读 187

剖析Kubernetes EnableEquivalenceClassCache提升Scheduler吞吐量的工作机制

Equivalence Class是用来给Kubernetes Scheduler加速Predicate,从而提升Scheduler的吞吐性能。Kubernetes scheduler维护着Equivalence Cache的数据,当有Pod进入到Predicate阶段时,会先从Equivalence Cache中争取命中缓存,从而减少不必要的、重复的预选策略处理。本文从Equivalence Class的概念及意义、工作原理、核心代码分析等几个方面展开分析。
WaltonWang 发布于 1个月前 阅读 270 点赞 2

技术解读Rainbond ServiceMesh微服务架构_开源PaaS Rainbond

``` 从技术实现的维度解读开源PaaS Rainbond如何支持ServiceMesh微服务架构 ``` 当我们谈论微服务架构时,我们在谈论什么? 服务发现和注册、弹性伸缩与负载均衡、容错处理(断路器与限流)、监控与报警、数据存储与共享、日志分析…… 除了以上自然联想到的技术点,还有如Spring Cloud、Dubbo这样在过去几年受到广泛关注和应用的微服务架构框架,以及最近数个月内在国内外技术圈异军突起的Service Mesh。 ## 什么是ServiceMesh Service Mesh是一种非入侵、透明化的微服务治理框架。作为服务与服务直接通信的透明化管理框架,Service Mesh不限制服务开发语言、使用轻量级的通信协议(HTTP、gRPC等),并插件式的提供各类功能,如服务发现、负载均衡、智能路由、流量管控、性能分析等等,换而言之,用户通过Service Mesh得以用简单的方式获取高级的功能。 ![rainbond_service_mesh](https://grstatic.oss-cn-shanghai.aliyuncs.com/images/article/service_mesh.png) Rainbond原生支持Service Mesh,接下来我们将从服务发现和注册、弹性伸缩与负载均衡、容错处理(断路器与限流)、监控与报警、数据存储与共享、日志分析等方面进行解读。 ## 服务发现和注册 服务注册是任何一...
好雨云帮 发布于 1个月前 阅读 145

深入分析Kubernetes Scheduler的优先级队列

从1.9版本开始,Kubernetes实现了基于Pod优先级的调度队列,一方面提供高优先级的Pod优先被调度的能力,另一方面减轻抢占式调度时潜在的High Priority Pod Starvation的问题,截止Kubernetes 1.10,PriorityPod Feature Gate仍处于Alpha。本文将从源码的层面对PriorityQueue进行深入分析,了解内部的两个Sub-Queue以及在什么情况下操作这两个Sub-Queue的,又是如何操作的,另外也提醒当前实现还可能存在的问题。
WaltonWang 发布于 1个月前 阅读 954 点赞 2

基于容器应用设计的原则,模式和反模式

容器和容器编排(Kubernetes)的广泛使用,让我们可以轻松的构建基于微服务的“云原生”(Cloud Native)的应用。容器成为了云时代的新的编程单元,类似面向对象概念下的对象,J2EE中的组件或者函数式编程中的函数。 在面向对象时代,有许多著名的设计原则,模式和反模式等,例如: SOLID (单一功能、开闭原则、里氏替换、接口隔离以及依赖反转) Design Patterns: Elements of Reusable Object-Oriented Software Anti-Pattern 在新的容器背景下,相应的原则和模式有助于帮助我们更好的构建“云原生”的应用。我们可以看到,这些原则和模式并非对之前模式的颠覆和推翻,更像是适应新环境的演进版本。 原则 单一职责原则 SINGLE CONCERN PRINCIPLE (SCP) 与OO的单一功能相对应,每一个容器应该提供单一的职责,只关注于做好一件事。单一职责使得容器更容易重用。通常容器对应于一个进程,而该进程专注于做好一件事。 高可观测性原则 HIGH OBSERVABILITY PRINCIPLE (HOP) 容器像对象一样,应该是一个封装良好的黑盒子。但是在云的环境下,这个黑盒子应该提供良好的观测接口,使得其在云的环境下得到相应的监控和管理。这样,整个应用才能提供一致的生命周期的管理。 可观测...
naughty 发布于 1个月前 阅读 975 评论 4 点赞 4

calico在docker上的部署及验证

etcdnode1,etcdnode2和etcdnode3将部署etcd,作为calico网络的后端分布式存储;hostnode1和hostnode2将部署calico网络。
BookShu 发布于 1个月前 阅读 135 评论 1

使用DPDK优化VirtIO和OVS网络

在云计算的虚拟化技术中,通过使用DPDK加速VirtIO在宿主机的后端驱动,可以大幅提升网络性能,本文主要记录下自己初步探索和简单测试的过程。
LastRitter 发布于 2个月前 阅读 263

Kubelet Deivce Manager源码分析

本文基于Kubernetes v1.10的代码,对Kubelet Device Manager的实现进行了代码走读分析,方便对kubelet与device plugin的交互有更深入的理解。另外,分别对kubelet的Register服务、kubelet调用device plugin的Allocate接口等做了分析,尤其要了解kubelet device plugins的checkpoint机制。
WaltonWang 发布于 2个月前 阅读 126 打赏 1

如何实现一个优质的微服务框架:Apache ServiceComb 的开放性设计

一个优质的微服务框架需要考虑的要素众多,在满足微服务设计理念的前提下,也是一个不断实践优化的过程。 本文讲述了整个 开源微服务框架 Apache ServiceComb 设计形成的前因后果,尝试从理念、思想和实践结合的维度剖析一个优质的微服务框架应该具备哪些要素,包括但不限于 对开发者友好、高性能、内外部扩展性等。 阅读本文有利于加深对微服务理念和框架的理解,给予微服务用户或开发者以帮助,这也是 Apache ServiceComb 的前身华为云微服务引擎的智慧结晶,从细节处承载了华为云自身多年云化转型的经验。
微服务框架 发布于 2个月前 阅读 3333 评论 10 点赞 3 打赏 1

高可用负载均衡:开源PaaS Rainbond组件Rainbond-Entrance揭秘

负载均衡(Load Balancing)是开源PaaS Rainbond的亮点功能,主要由“软件定义负载均衡”Rainbond-Entrance控制器完成。 本文将围绕设计架构和实现介绍Rainbond-Entrance。 #### 为什么需要负载均衡 Rainbond内部网络划分支持多租户,每个租户都有一个私有的IP段,不同租户的网络相互不可见。当我们把一个容器化应用部署到Rainbond,Rainbond会为该容器分配一个内部IP,用于同一租户中不同应用在集群内部的通信,而集群外部无法直接访问,因此我们需要有一个集群入口控制器,以便用户可以方便地访问这些应用。 另外,Rainbond中部署的每个应用都可以有多个实例,即假设我们为一个WEB应用部署了三个实例,每个实例分担一部分流量,我们就需要这三个实例前增加负载均衡控制器来完成分发流量的工作。 除了上述的基本功能以外,负载均衡控制器还必须支持更多功能,例如: * 入口控制器能够根据数据包信息(如协议、端口号、主机名等)将请求转发给指定的应用 * 实时发现集群中应用的变化(如添加自定义域名、添加证书、添加端口等)并动态更新自身的转发规则 * 同时支持HTTP、TLS、TCP、UDP协议,因为有时不只WEB应用需要向外提供服条,RPC、MySQL等也需要对外开放 * 支持高可用...
好雨云帮 发布于 2个月前 阅读 156

完整微服务化示例:使用 Apache ServiceComb (incubating) 进行微服务开发、容器化、弹性伸缩

最完整的微服务化示例,从业务场景入手,讲述微服务化架构设计、容器化、集群部署、弹性伸缩
微服务框架 发布于 2个月前 阅读 3481 评论 10 点赞 1 打赏 1

微服务Apache ServiceComb 数据一致性Saga演进介绍

微服务 开源项目 Apache ServiceComb(incubating) 的 微服务事务的数据一致性解决方案 Saga[4](以下简称Saga)进行了演进。相对于上一版[2],新演进的设计主要有以下优势: 极大提升易用性。开发者只需使用2-3个注解(即启用事务服务:EnableOmega、全局事务标记:SagaStart和子事务标记:Compensable)。 更方便扩展。对微服务框架的支持更友好。 数据一致性与业务逻辑解耦。在演进后的设计中,通过服务侧omega的引入,saga协调器的职责更为单一(只需负责协调事务的完整性),与具体业务无关,因此,开发人员可以聚焦在具体业务的开发。
微服务框架 发布于 2个月前 阅读 60

NVIDIA/k8s-device-plugin源码分析

本文主要对NVIDIA/k8s-device-plugin v1.10的源码进行分析,包括插件的启动、停止、注册、gRPC Server的实现,及其基于Kubernetes device plugin v1beta1的ListAndWatch、Allocate接口实现细节等内容。
WaltonWang 发布于 2个月前 阅读 277

MySQL 如何使用 PV 和 PVC?- 每天5分钟玩转 Docker 容器技术(154)

本节演示如何为 MySQL 数据库提供持久化存储。
CloudMAN 发布于 2个月前 阅读 532 点赞 3

Kubernetes如何通过Device Plugins来使用NVIDIA GPU

在Kubernetes 1.10版本中,默认并推荐使用DevicePlugins Feature Gate来发现和使用Nvidia GPU资源,抛弃了Kubernetes 1.8之前推荐使用的Accelerators Feature Gate的built-in方式,继承了Kubernetes的插件化的思想,把专业的事交给专业的厂商去做。本文将介绍Device Plugins的的原理和工作机制、Extended Resource、异常处理及改进、如何使用和调度GPU等内容。
WaltonWang 发布于 2个月前 阅读 541

zookeeper实现主-从结构的一般原理

![输入图片说明](https://static.oschina.net/uploads/img/201804/10214015_9d4p.jpg "在这里输入图片标题") ### 以下文字只是时序图的解释说明,重点是看懂时序图。 为了避免主节点/从节点和zk的节点概念看着乱,以下就用Master/Slave称呼了。 ### 1 选Master 系统启动后,所有slave都会尝试在zk树上创建/master节点,创建成功的节点成为Master角色。 然而Master可能会崩溃,所以其他slave要继续监视/master节点。当Master挂掉后,slave重新选举出新的Master(这里的选举就是抢占)。这就要求服务节点挂掉后,/master节点随之删除,以便能让其他slave接到通知,所以master为必须为**临时节点**。 ### 2 Master的准备工作 创建三个父节点/works 、/tasks、 /assign 。(也可以由一个引导程序建) 这三个父节点都是**永久节点**,且不包含任何数据,作为**目录节点**存在。其子节点分别用于存储可用的slave、任务信息、向从节点分配任务。 创建完成后,Master要监视/works和/tasks两个节点,以便能感知到由哪些slave当前可用,当前有新任务需要分配。 ### 3 Slave的准备工作 slave向zk注册自己的信息,让zk通知Master“我上线了,有新任务分配给我!” 同样,Master也需要及时...
忙碌的键盘 发布于 2个月前 阅读 188

回收 PV - 每天5分钟玩转 Docker 容器技术(152)

当 PV 不再需要时,可通过删除 PVC 回收。
CloudMAN 发布于 2个月前 阅读 291

一名开源小白的Apache成长自述

                今天收到了来自Apache Vote我成为Serviceomb项目Committer的邮件,代表自己的贡献得到了充分的肯定;除了感谢团队的给力支持,我更希望将自己的成长经历——如何践行Apache Way的心得介绍给大家,让大家爱上Apache开源社区,也能和我一样成长为自己喜爱项目的Committer。               根据个人贡献获得价值(Government By Merit)               回忆我刚参与ServiceComb项目,面对上万行的存量代码,总觉得无从下手,甚至认为开源社区高手如云,如果没有深厚且对口的技术功底,还是不要来掺和了。         在这个困难而关键的时候,社区导师给了我明确的指导——不要怕,从小事做起,不要“善小而不为”。于是我静下心来,在Jira上寻找最简单的任务,主动请缨的第一个任务是支持配置兼容,具体需求是cse.xxx配置项和servicecomb.xxx配置项要具备等同效果,经过一番努力,成功Merge PR ;之后我又接下另一个简单任务,增加一个Annotation用于支持Json String作为请求参数……         Apache Way非常看重个人贡献,没有贡献,一切无从谈起,与开源软件同行,不仅看你获得了多少,更要坚持长期贡献...
微服务框架 发布于 3小时前

日志采集中的关键技术分析

概述 日志从最初面向人类演变到现在的面向机器发生了巨大的变化。最初的日志主要的消费者是软件工程师,他们通过读取日志来排查问题,如今,大量机器日夜处理日志数据以生成可读性的报告以此来帮助人类做出决策。在这个转变的过程中,日志采集Agent在其中扮演着重要的角色。 作为一个日志采集的Agent简单来看其实就是一个将数据从源端投递到目的端的程序,通常目的端是一个具备数据订阅功能的集中存储,这么做的目的其实是为了将日志分析和日志存储解耦,同一份日志可能会有不同的消费者感兴趣,获取到日志后所处理的方式也会有所不同,通过将数据存储和数据分析进行解耦后,不同的消费者可以订阅自己感兴趣的日志,选择对应的分析工具进行分析。像这样的具备数据订阅功能的集中存储业界比较流行的是Kafka,对应到阿里巴巴内部就是DataHub还有阿里云的LogHub。而数据源端大致可以分为三类,一类就是普通的文本文件,另外一类则是通过网络接收到的日志数据,最后一类则是通过共享内存的方式,本文只会谈及第一类。一个日志采集Agent最为核心的功能大致就是这个样子了。在这个基础上进一步又可以引入日志过滤、日志格式化、路由等功能,看起来就好像是一个生产车间。从日志投...
tqyin 发布于 4小时前

使用 Jenkins 构建 Coding 项目

使用 Jenkins 构建 Coding 项目   Jenkins 版本 安装配置 Jenkins Coding Webhook Plugin 在 Coding 中配置 Webhook Jenkins 是一个用 Java 编写的开源的持续集成工具。它运行在 Servlet 容器中(例如 Apache Tomcat)。它支持软件配置管理(SCM)工具(包括 AccuRev SCM、CVS、Subversion、Git、Perforce、Clearcase 和 RTC),可以执行基于 Apache Ant 和 Apache Maven 的项目,以及任意的 Shell 脚本和 Windows 批处理命令。 使用 Jenkins 构建 Coding 项目是利用 Webhook 向 Jenkins 服务器发送请求。Jenkins 接收到 Webhook 请求后,进行构建。要实现以上功能需要使用 Jenkins 的插件来实现,Jenkins Coding Webhook Plugin 是通过 Jenkins Gitlab Webhook 插件修改而得。安装后即可响应 Coding 的 Webhook 请求。 Jenkins 版本 在 Jenkins 插件库里标记的,对 Jenkins 的版本依赖是 1.625.3。 在我司吃自己的狗粮的实践中,目前使用 Jenkins 版本为 2.67。(稳定版为 2.60 / 2.73) 安装配置 Jenkins Coding Webhook Plugin 安装 登陆到您的 Jenkins 服务器。选择『系统管理』。 点击『管理插件』  选择『可选插件』,在右上方 『过滤』框中,输入『coding』...
寰宇01 发布于 2个月前 阅读 50

使用Java程序消费SAP Leonardo的机器学习API

以sap leonardo作为关键字在微信上搜索,能搜到不少文章。但是我浏览了一下,好像没有发现有从具体编程角度上来介绍的。所以我就贡献一篇。 ![](https://upload-images.jianshu.io/upload_images/2085791-725419ae7ffc33c2.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) # 需求 开发一个Java程序,用户可以指定一张图片,该Java程序调用SAP Leonardo上训练好的机器学习API,该API会识别该图片,给用户返回一个文本信息,告诉用户识别结果。 1. 访问https://api.sap.com, 点击API: ![](https://upload-images.jianshu.io/upload_images/2085791-b6e8789b05b4400a.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) SAP Leonardo Machine Learning - Functional Services ![](https://upload-images.jianshu.io/upload_images/2085791-30b3ac1bcd62670e.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) 点击Product Image Classification API: ![](https://upload-images.jianshu.io/upload_images/2085791-e44f07fea9f0e957.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) 会看到如下界面。该界面包含了这个API的Model Schema介...
JerryWang_SAP 发布于 1个月前 阅读 11

OSS重磅推出OSS Select——使用SQL选取文件的内容【免费公测中】

摘要: OSS重磅推出OSS Select功能,可以直接使用简单的SQL语句,从OSS的文件中选取所需要的内容 对象存储OSS(Object Storage Service)具有海量、可靠、安全、高性能、低成本的特点。OSS提供标准、低频、归档类型,覆盖多种数据从热到冷的存储需求,单个文件的大小从1字节到48.8TB,可以存储的文件个数无限制。OSS已成为互联网、企业级数据应用的基础设施。 通常,获取对象存储数据的通方式为:获取整个对象,或按指定的字节范围来获取数据。今天,我们重磅推出OSS Select,直接使用简单的SQL语句,从OSS的文件中选取所需要的内容。 OSS Select介绍 使用SQL选取OSS文件中的内容 OSS Select(公测中)让开发者可以直接使用SQL语句,从OSS文件中选取需要的内容。 使用OSS Select,只获取应用程序所需的查询结果,并支持并发地分片查询,会大幅提升程序的性能,通常情况下能有400%的提升。 公测说明: 文件格式:公测期间支持未加密的CSV格式或者有分隔符的UTF8文本文件,参考RFC4180, 公测期间支持标准、低频类型的Object 支持RangeQuery(公测期间,RangeQuery模式下不支持Use Header Name) OSS Select公测期间免费 后续阿里云EMR、DataLakeAnalytics、MaxCompute、Hybri...
阿里云云栖社区 发布于 4周前 阅读 10

简介持续集成(CI)以及相关工具推荐

[Vladimir Pecanac](https://code-maze.com/what-is-continuous-integration/) 虽然并非每个软件项目都注定会获得巨大成功,但一些软件方法和最佳实践可以提高成功几率,并让开发工作更愉快。其中现在流行的一种做法是持续集成(CI,Continuous Integration)。 持续集成最初由Grady Booch在布区方法中提出,之后成为了极限编程(extreme programming)的一部分,目的是防止集成问题堆积成为“集成地狱(integration hell)”。 接下来,我们将从以下几个方面一起了解什么是持续集成以及如何利用它: * 什么是持续集成 * 持续集成的好处 * 持续集成的要求 * 持续集成服务器 * 对于团队的要求 * 持续交付和持续部署 * 潜在的担心 ## 什么是持续集成 持续集成是指不断整合项目更改并进行相应的测试,通常每天至少进行一次。 马丁福勒说得很好: > 持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通过每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽早地发现集成错误。 自动化的构建、测试和部署流程可以解决软件开发项目中的许多麻烦和问题。通过可靠的方法频繁整合...
好雨云帮 发布于 3周前 阅读 10

分布式消息服务DMS与开源Kafka对比

分布式消息服务(简称DMS)是一项基于高可用分布式集群技术的消息中间件服务,提供了可靠且可扩展的托管消息队列,用于收发消息和存储消息。那么,比起自建开源的Kafka,分布式消息服务DMS有哪些好处呢?以下就是两者的详细对比。    
中间件小哥 发布于 2周前 阅读 27

阿里云弹性计算Apsara Block Storage正式发布 构建企业级分布式块存储服务平台

摘要: 6月13日,阿里云宣布弹性计算Apsara Block Storage产品正式发布,为企业级客户量身打造,构建高性能、弹性、可靠的大规模分布式块存储服务平台。 Apsara Block Storage可兼容多种类型的计算平台,包括阿里云ECS、ZStack、OpenStack、Kubernetes以及物理服务器等不同类型,帮助客户轻松应对云时代下海量存储资源的敏捷存取需求,适用于政府、金融、运营商和大型制造企业的线下数据中心云存储业务场景。 6月13日,阿里云宣布弹性计算Apsara Block Storage产品正式发布,为企业级客户量身打造,构建高性能、弹性、可靠的大规模分布式块存储服务平台。 Apsara Block Storage可兼容多种类型的计算平台,包括阿里云ECS、ZStack、OpenStack、Kubernetes以及物理服务器等不同类型,帮助客户轻松应对云时代下海量存储资源的敏捷存取需求,适用于政府、金融、运营商和大型制造企业的线下数据中心云存储业务场景。 客户需求和行业趋势 数字化转型已成为促进客户业务创新和敏捷发展的重要推进力量,传统集中式、“烟囱式”的IT系统建设架构,已经不能满足日益复杂的业务发展需求,特别是在存储资源的灵活使用上,遇到了越来越多的问题。采用资源化、平台化、灵活扩展的云存储架...
猫耳m 发布于 6天前 阅读 4

Readiness 探测 - 每天5分钟玩转 Docker 容器技术(144)

除了 Liveness 探测,Kubernetes Health Check 机制还包括 Readiness 探测。
CloudMAN 发布于 3个月前 阅读 20

Spring Boot 入门

一、简介 Spring 官方网站本身使用Spring 框架开发,随着功能以及业务逻辑的日益复杂,应用伴随着大量的XML配置文件以及复杂的Bean依赖关系。  随着Spring 3.0的发布,Spring IO团队主键开始摆脱XML配置文件,并且在开发过程中大量使用“约定优先配置”(convention over configuration)的思想来摆脱Spring框架中各种复杂的配置,衍生了Java Config。 Spring Boot正是在这样的一个背景下被抽象出来的开发框架,它本身并不提供Spring框架的核心特性以及扩展功能,只是用于快速、敏捷地开发新一代基于Spring框架的应用程序。也就是说,它并不是用来替代Spring的解决方案,而是和Spring框架紧密结合用于提升Spring开发者体验的工具。同时它集成了大量常用的第三方库配置(例如Jackson, JDBC, Mongo, Redis, Mail等等),Spring Boot应用中这些第三方库几乎可以零配置的开箱即用(out-of-the-box),大部分的Spring Boot应用都只需要非常少量的配置代码,开发者能够更加专注于业务逻辑。 该项目旨在帮助开发者更容易地创建基于Spring的应用程序和服务,使得现有的和新的Spring开发者能够最快速地获得所需要的Spring功能。 Spring Boot不生成代码,且完全不需要XML配置。其主要...
wsl_Mr 发布于 6天前 阅读 4

在线培训 | 使用Rancher 2.0管理Kuberentes集群

培训第3季第3期!4月19日晚20:30,如何使用Rancher2.0管理Kubernetes集群课程来啦! 文内还有第2期培训的视频回放及讲师PPT下载福利!
RancherLabs 发布于 3个月前 阅读 67

NFS PersistentVolume - 每天5分钟玩转 Docker 容器技术(151)

上一节我们介绍了 PV 和 PVC,本节通过 NFS 实践。
CloudMAN 发布于 2个月前 阅读 25

ceilometer的数据处理和管道

处理数据的机制称为管道。 在配置级别上,管道描述数据来源和相应的汇合点之间的耦合,用于转换和公布数据。 此功能由通知代理处理。 source是数据的生产者: samples 或 events 。 实际上, 它是一组为匹配的 meters和事件类型集合 发出数据点的通知处理程序。 每个source配置将名称匹配和映射封装到一个或多个 sinks 中以供发布。 另一方面,sink是数据的使用者,为转换和发布来自相关源的数据提供逻辑。 实际上,sink描述了一系列的处理程序。 该 chain 从零或更多的 transformers 开始,并以一个或多个 publishers 结束。 chain中的第一个transformer从对应的source传递数据, 采取一些操作, 例如 deriving变动率, 执行单位转换或聚合, 然后 publishing。 管道配置 通知代理支持两种管道: 一个处理 samples,另一个处理events。 通过在[notifications]设置管道选项,可以启用和禁用管道。 默认情况下,每个管道的实际配置存储在单独的配置文件中: pipeline.yaml 和 event_pipeline.yaml。配置文件的位置可以由 pipeline_cfg_file 和 event_pipeline_cfg_file 选项设置,配置文件模板查看:Ceilometer Configuration Options。 meter pipeline 的定义如下的: --- sour...
JennerLuo 发布于 2个月前 阅读 15

自定义horizon插件

此例子是基于ocata版本horizon的自定义了一个插件。帮助对于horizon自定义dashbaord及panel的了解。要求对Python、HTML和JavaScript(AngularJS)有基本的了解。 仓库命名¶ 不用说,选择一个有意义的存储库名称很重要。此外,如果您计划在您的dashboard插件上支持翻译,建议选择一个类似于xxxx-dashboard的名称(或xxxx-ui. xxx-horizon)。OpenStack CI infra脚本将这些后缀视为Django项目。 文件结构¶ 整个插件目录结构如下: xxxx-dashboard │ ├── xxxxdashboard │ ├── __init__.py │ │ │ ├── enabled │ │ ├──_90000_mydashboard.py │ │ ├──_90010_mygroup_panel_group.py │ │ └──_90011_mypanel.py │ │ │ ├── api │ │ ├──__init__.py │ │ ├── my_rest_api.py │ │ └── myservice.py │ │ │ ├── dashboards │ │ ├──__init__.py │ │ └── mydashboard │ │ ├──__init__.py │ │ ├──dashboard.py │ │ ├── mypanel │ │ │ ├── __init__.py │ │ │ ├── panel.py │ │ │ ├──...
JennerLuo 发布于 2个月前 阅读 29

微服务 Apache ServiceComb (incubating) 首次发布新版本

微服务 Apache ServiceComb 发布新版本
微服务框架 发布于 2个月前 阅读 36

阿里云大学云计算专业欢迎加入

云计算: 云计算(cloud computing)是基于互联网的相关服务的增加、使用和交付模式,通常涉及通过互联网来提供动态易扩展且经常是虚拟化的资源。云是网络、互联网的一种比喻说法。过去在图中往往用云来表示电信网,后来也用来表示互联网和底层基础设施的抽象。因此,云计算甚至可以让你体验每秒10万亿次的运算能力,拥有这么强大的计算能力可以模拟核爆炸、预测气候变化和市场发展趋势。用户通过电脑、笔记本、手机等方式接入数据中心,按自己的需求进行运算。 对云计算的定义有多种说法。对于到底什么是云计算,至少可以找到100种解释。现阶段广为接受的是美国国家标准与技术研究院(NIST)定义:云计算是一种按使用量付费的模式,这种模式提供可用的、便捷的、按需的网络访问, 进入可配置的计算资源共享池(资源包括网络,服务器,存储,应用软件,服务),这些资源能够被快速提供,只需投入很少的管理工作,或与服务供应商进行很少的交互。  阿里云大学互联网学院:云计算专业课程首页 从0到1,成为云计算工程师; 理论结合实战,掌握云计算核心知识以及上云技能,学成后可独立完成迁移上云及大型互联网云上架构设计项目,成为行业专家。 适合人群 云计算爱好者、开发...
mcy0425 发布于 2个月前 阅读 13

Rancher 2.0正式发布:简化、加速企业Kubernetes落地

今天,硅谷容器管理软件供应商Rancher Labs宣布,公司的里程碑产品Rancher 2.0已正式发布。 Rancher 2.0是一个开源的Kubernetes管理平台,为企业用户提供Kubernetes-as-a-Service (Kubernetes即服务),并且Rancher 2.0能够实现多Kubernetes集群的统一纳管,不论这些Kubernetes集群在何处、以何种方式部署。这一创造性的统一纳管功能将解决生产环境中企业用户可能面临的基础设施不同的困境。Rancher 2.0是业界第一个能统一纳管来自Google(GKE)、Amazon(EKS)和Azure(AKS)等公有云上托管的Kubernetes服务的平台。 Rancher 2.0执行统一的安全策略,且拥有简洁直观的界面风格及操作体验,这将极大程度解决业界遗留已久的Kubernetes原生UI易用性不佳以及学习曲线陡峭的问题。借助Rancher 2.0,企业在生产环境中落地Kubernetes便拥有了更加便捷的途径。 ![输入图片说明](https://static.oschina.net/uploads/img/201805/03094051_CjNn.jpg "在这里输入图片标题") > Rancher 2.0在开源容器管理方面迈出了重要的一步。对于那些希望为混合环境寻找容器管理解决方案的企业来说,Rancher 2.0就是一个理想的选择。 > >——EMA研究总监Steve Hendrick ### **加速企业Kubernetes落地...
RancherLabs 发布于 2个月前 阅读 39

自动上线测试已经不潮了,你有跟上DevOps的潮流吗?

相信大家一定都(没)有使用过Facebook的经验,一定对他的快速改版私毫不陌生,可能早上醒来时发现「赞」的图案突然从实心变从空心,或是开始多了一些缤纷酷炫的功能(像是直播、限时动态..等等),但你能想像一下吗?在过去十年前,大部份软件服务上的版本更新,都只能像是Office每年的一期一会来做推陈出新,但新的功能可能没解决到用户的痛处,反而增添了更多不必要的麻烦。 所以在快速变迁的时代里,这种快速、持续发布新版本的特性,俨然成为了适性生存的不二法则。你能想像Flicker每天至少会有10次以上的服务发布吗?如果在传统的开发方式,一旦有新功能的释出,如果使用者体验不好需要改进就算了,但如果有BUG的话,却需要等待一个月或一整年的时间才能解决,这样的产品你还会想用吗? 所以与传统开发方法那种大规模的、低频繁的发布,敏捷方法为基础的DevOps,目的就是为了提升了发布频率的速度与效率,从过去的「年」、「季」,提升到「月」、「周」,甚至是「日」。 但快速发布的概念,并非是「开发团队」的步调快速紧凑起来就可以达到的方式,因为每一个新版本的Release,除了靠开发团队的努力外,也需要「维运团队」、「测试团队」的努力,才有办法相辅相成,但通常...
好雨云帮 发布于 2个月前 阅读 6

如何把应用转移到Kubernetes

[Ben Sears](https://medium.freecodecamp.org/getting-started-with-kubernetes-for-your-saas-91e91116dd7d) Kubernetes是时下最流行的管理和编排工具,它提供了一个配置驱动的框架,让我们可以通过定义和操作获得整个网络、磁盘和应用,并以可伸缩且易于管理的方式进行。 如果我们还没有完成应用容器化,那么把应用转移到Kubernetes上会是一件高强度的工作,本文目的则是介绍应用与Kubernetes集成的方法。 #### Step 1 — 将应用容器化 容器是可以独立运行的基本操作单元,不同于传统虚拟机依赖模拟操作系统,容器利用各种内核特性来提供与主机隔离的环境。 ![](https://grstatic.oss-cn-shanghai.aliyuncs.com/images/article/1_yn1HpaQO2QVRrMrJ7rjLHw.png) 对于有经验的技术人员来说,整个容器化过程不算复杂——使用docker,定义一个包含安装步骤和配置(下载包、依赖等等)的dockerfile,最后构建一个可以让开发人员使用的镜像即可。 #### Step 2 — 采用一个多实例架构 ![](https://grstatic.oss-cn-shanghai.aliyuncs.com/images/article/1_umRbD6euqnJI4PRESEwOAQ.png) 在我们把应用迁移到Kubernetes之前,需要确认向最终用户交付的方式。 传统web应用的多租...
好雨云帮 发布于 2个月前 阅读 16

Docker Swarm的前世今生

![心静只需一杯茗](http://upload-images.jianshu.io/upload_images/9824247-f0646518a1fe6a25.jpg) --- ## 概述 在我的[《Docker Swarm集群初探》](https://www.jianshu.com/p/3f3c9e0e3db5)一文中,我们实际体验了Docker Swarm容器集群技术的魅力,与[《Kubernetes实践录》](https://www.jianshu.com/p/9bc87b5380e8)一文中提到的Kubernetes集群技术相比,Docker Swarm没有Kubernetes显得那么厚重,因此可以认为是更加轻量级的容器集群技术,这也就意味着上手更加方便快捷,使用起来也要省事很多。作为Docker集群技术三(或“四”)架马车之一的Docker Swarm,它从一开始便是Docker官方的“亲儿子”,发展到现在也经历了很多阶段和迭代。作者在学习的过程中也了解了一点其发展历史,发现有几个概念还是挺容易混淆的,因此撰写成文,是梳理,也是总结。 --- --- ## 初出茅庐之:经典Swarm 早在2014年底,Docker公司就设计了容器集群的方案组合:**Machine + Swarm + Compose**。其中Machine主要用于快速创建Docker运行环境,其支持在创建出来的节点上自动部署Swarm,此时的Swarm我们称为 **“经典Swarm”**,它是一款整合跨节点网络的集群式容器服务,其利用Docker守护进程...
CodeSheep 发布于 1天前 阅读 99 评论 2

阿里云弹性计算Apsara Block Storage正式发布 构建企业级分布式块存储服务平台

摘要: 6月13日,阿里云宣布弹性计算Apsara Block Storage产品正式发布,为企业级客户量身打造,构建高性能、弹性、可靠的大规模分布式块存储服务平台。 Apsara Block Storage可兼容多种类型的计算平台,包括阿里云ECS、ZStack、OpenStack、Kubernetes以及物理服务器等不同类型,帮助客户轻松应对云时代下海量存储资源的敏捷存取需求,适用于政府、金融、运营商和大型制造企业的线下数据中心云存储业务场景。 6月13日,阿里云宣布弹性计算Apsara Block Storage产品正式发布,为企业级客户量身打造,构建高性能、弹性、可靠的大规模分布式块存储服务平台。 Apsara Block Storage可兼容多种类型的计算平台,包括阿里云ECS、ZStack、OpenStack、Kubernetes以及物理服务器等不同类型,帮助客户轻松应对云时代下海量存储资源的敏捷存取需求,适用于政府、金融、运营商和大型制造企业的线下数据中心云存储业务场景。 客户需求和行业趋势 数字化转型已成为促进客户业务创新和敏捷发展的重要推进力量,传统集中式、“烟囱式”的IT系统建设架构,已经不能满足日益复杂的业务发展需求,特别是在存储资源的灵活使用上,遇到了越来越多的问题。采用资源化、平台化、灵活扩展的云存储架...
阿里云云栖社区 发布于 6天前 阅读 23

「华为云」云中优选惠,全场低至2折,6.19-6.30开抢,签到抽P20

华为云年中钜惠,注册抽免费高配(2核4G)云服务器,单人成团2折起抢购热销云产品;云服务器、数据库、安全防护、大数据等150+云产品,更有精彩好礼送不停!
华为云

完整微服务化示例:使用 Apache ServiceComb (incubating) 进行微服务开发、容器化、弹性伸缩

最完整的微服务化示例,从业务场景入手,讲述微服务化架构设计、容器化、集群部署、弹性伸缩
微服务框架 发布于 2个月前 阅读 3481 评论 10 点赞 1 打赏 1

创建calico网络报错client response is invalid json

使用docker创建calico网络失败。 ```bash # docker network create --driver calico --ipam-driver calico-ipam testcalico Error response from daemon: failed to update store for object type *libnetwork.endpointCnt: client: response is invalid json. The endpoint is probably not valid etcd cluster endpoint. ``` 查看docker日志: ```bash # journalctl -fu docker -- Logs begin at Sun 2018-05-06 10:42:10 CST. -- May 06 10:51:11 gpu16 dockerd[1045]: time="2018-05-06T10:51:11.997488908+08:00" level=warning msg="Registering as \"192.168.56.16:2375\" in discovery failed: client: response is invalid json. The endpoint is probably not valid etcd cluster endpoint." May 06 10:51:13 gpu16 dockerd[1045]: time="2018-05-06T10:51:13.209441579+08:00" level=error msg="discovery error: client: response is invalid json. The endpoint is probably not valid etcd cluster endpoint." May 06 10:51:13 gpu16 dockerd[1045]: time="2018-05-06T10:51:13.211323271+08:00" level=error msg="discovery error: client: response is inv...
BookShu 发布于 6天前 阅读 15

如何实现一个优质的微服务框架:Apache ServiceComb 的开放性设计

一个优质的微服务框架需要考虑的要素众多,在满足微服务设计理念的前提下,也是一个不断实践优化的过程。 本文讲述了整个 开源微服务框架 Apache ServiceComb 设计形成的前因后果,尝试从理念、思想和实践结合的维度剖析一个优质的微服务框架应该具备哪些要素,包括但不限于 对开发者友好、高性能、内外部扩展性等。 阅读本文有利于加深对微服务理念和框架的理解,给予微服务用户或开发者以帮助,这也是 Apache ServiceComb 的前身华为云微服务引擎的智慧结晶,从细节处承载了华为云自身多年云化转型的经验。
微服务框架 发布于 2个月前 阅读 3333 评论 10 点赞 3 打赏 1

nagios 安装

Nagios简介:监控网络并排除网络故障的工具:nagios,Ntop,OpenVAS,OCS,OSSIM等开源监控工具。 可以实现对网络上的服务器进行全面的监控,包括服务(apache、mysql、ntp、ftp、disk、qmail和http等)的状态,服务器的状态等。 Nagios:监控主机和服务 Ntop:监控网络流量,流量采集技术有以下几个:        1.sniffer:采集的信息最全面,可完全复制网络的数据报文。        2.SNMP:是一种主动的采集方式,取得的数据只包含端口层数据,      对于伪造端口地址的蠕虫病毒无能为力。 3.Netflow :统计所有网络报文,对网络设备性能影响较大。 4.sFlow:采用采样的方式,通过设定一定的采样率,进行数据捕获,对网络设备影响很小。 Nagios的管理模式: 分布-集中的管理模式,在nagios服务器上安装主程序,在被监控主机上安装nagios代理程序,通过nagios主程序nagios代理程序之间的通信,监控对象的状态。 nagios通过nrpe插件来远程管理服务的工作过程 Nagios执行安装在它里面的check_nrpe插件,并告诉check_nrpe去检测哪些服务。 通过ssl,check_nrpe连接远端机器上的NRPE daemon。 NRPE运行本地的各种插件去检测本地服务器和状态(check_disk,...etc)。 NRPE把...
寰宇01 发布于 2天前 阅读 4

分布式消息服务DMS与开源Kafka对比

分布式消息服务(简称DMS)是一项基于高可用分布式集群技术的消息中间件服务,提供了可靠且可扩展的托管消息队列,用于收发消息和存储消息。那么,比起自建开源的Kafka,分布式消息服务DMS有哪些好处呢?以下就是两者的详细对比。    
中间件小哥 发布于 2周前 阅读 27

使用DPDK优化VirtIO和OVS网络

在云计算的虚拟化技术中,通过使用DPDK加速VirtIO在宿主机的后端驱动,可以大幅提升网络性能,本文主要记录下自己初步探索和简单测试的过程。
LastRitter 发布于 2个月前 阅读 263

virsh命令来创建虚拟机步骤

(1)生成硬盘镜像文件:  格式:raw或qcow2 # qemu-img create -f raw fdisk.img 10G # qemu-img info fdisk.img (2)编写xml配置文件,这一步在后面做详细介绍  (3)创建并运行虚拟机 # sudo apt-get install qemu-kvm # virsh define vm0.xml //导入虚拟机配置 # virsh start vm0 //开启vm0 # virsh list --all // 显示所有虚拟机状态 # virsh destroy vm0 //销毁虚拟机 # virsh undefine vm1 //删除虚拟机配置 # virsh dumpxml vm0 //显示虚拟机xml配置 其中“vm0.xml”是步骤(2)中创建的xml文件。 虚拟机XML文件 <domain type='kvm'> //如果是Xen,则type=‘xen’ <name>vm0</name> //虚拟机名称,同一物理机唯一 <uuid>fd3535db-2558-43e9-b067-314f48211343</uuid> //同一物理机唯一,可用uuidgen生成 <memory>524288</memory> <currentMemory>524288</currentMemory> //memory这两个值最好设成一样 <vcpu>2</vcpu> //虚拟机可使用的cpu个数,查看物理机可用CPU个数:cat /proc/cpuinfo |grep processor | wc -l <os> <type arch='x86_64' machine='pc-i440fx-vivid'>hvm</type> //arch指出系统架构类型,...
banwh 发布于 1周前 阅读 18

最佳实践 | Windows下配置SSH连接Git Server _开源PaaS Rainbond

> [Rainbond](https://www.rainbond.com)(云帮)是一款以应用为中心的开源PaaS,深度整合基于Kubernetes的容器管理、ServiceMesh微服务架构最佳实践、多类型CI/CD应用构建与交付、多数据中心资源管理等技术,提供云原生应用的全生命周期解决方案。 Git一般可以通过本地传输、SSH、Git协议、HTTP协议传输数据,本文为开源PaaS Rainbond最佳实践文章,介绍windows下配置SSH连接Git Server的方法。 ## 安装Git ### 准备 Windows7/Windows8系统 Git 2.15 安装包下载([Git for Windows 32 ](https://pkg.goodrain.com/apps/git/Git-2.15.1.2-32-bit.exe)) ([Git for Windows 64 ](https://pkg.goodrain.com/apps/git/Git-2.15.1.2-64-bit.exe)) ### 安装 1. Git安装包通过浏览器下载完成后,需要修改文件的锁定属性,特别是 `.zip` 文件和 `.chm` 文件(否则打开chm会显示404). 右键点击下载的文件,选择属性,然后点击"解除锁定"按钮,确定即可. 如下图所示: ![](https://static.goodrain.com/images/acp/docs/bestpractice/windows-ssh-git/windows-ssh-git.png) 2. 双击安装包文件开始安装,如果有Windows拦截警告,允许即可。 3. 出现安装向导界面,按照提示安装。建议均使用默认...
好雨云帮 发布于 5天前 阅读 10

想要打造自己的PaaS?看看开源PaaS Rainbond用了哪些开源组件

站在巨人肩膀上才能看得更远,开源PaaS Rainbond的发展离不开众多优秀开源项目的贡献。 以下是Rainbond使用到或参考过的一些开源组件,如果您想要打造自己的PaaS可以作为参考。 **kubernetes** Kubernetes是Google开源的容器集群管理系统,其提供应用部署、维护、 扩展机制等功能,利用Kubernetes能方便地管理跨机器运行容器化的应用,其主要功能如下: 1) 使用Docker对应用程序包装(package)、实例化(instantiate)、运行(run)。 https://github.com/kubernetes/kubernetes **docker/moby** Docker是一个开放源代码软件项目,让应用程序布署在软件容器下的工作可以自动化进行,借此在Linux操作系统上,提供一个额外的软件抽象层,以及操作系统层虚拟化的自动管理机制。 https://github.com/moby/moby **heroku buildpack** Heroku Buildpacks是用于在Heroku上编译应用程序的开源脚本集。它们构成了Heroku多语种平台的支柱。构建包使您能够扩展Heroku的构建系统以支持您的语言或自定义,或者使运行时可以使用某些二进制包。Heroku Buildpack允许您自由地编写最适合您应用和团队的语言和框架。 https://github.com/heroku **openresty** OpenResty® 是一个基于 Nginx 与 Lu...
好雨云帮 发布于 1周前 阅读 16

动静内容混合站点,怎样用全站加速支持实际业务场景?

摘要: 伴随着近几年O2O的爆发,网络已经不仅是传统的展示企业品牌的渠道,而逐渐演变成为嫁接企业和用户之间服务和交流的桥梁,我们开始赋予网络更多的功能,比如购物、出行、学习、娱乐等等。 同时,网络内容形态的进阶发展,网页内容已经从静态的图片、文字向短视频、直播演变,网站和应用的内容变得越来越复杂。 伴随着近几年O2O的爆发,网络已经不仅是传统的展示企业品牌的渠道,而逐渐演变成为嫁接企业和用户之间服务和交流的桥梁,我们开始赋予网络更多的功能,比如购物、出行、学习、娱乐等等。 同时,网络内容形态的进阶发展,网页内容已经从静态的图片、文字向短视频、直播演变,网站和应用的内容变得越来越复杂。几乎所有的站点都由静态、动态两种页面组成,这就决定了交互内容更加复杂和丰富。这让很多网站的CDN内容分发加速效果不理想。 这是因为通常CDN对静态内容支持得较好,当面临动态内容请求的时候,一般会回源,源站再将内容传节点,进而传给用户,传输链路步骤增多,势必会影响速度。同时,也需要源站具备区分动静态资源的能力。为了优化动静混合站点和纯动态站点的加速效果,阿里云推出了全站加速方案,通过智能区分动静态请求,实现整站加速效果的全...
阿里云云栖社区 发布于 1周前 阅读 12

一文读懂物体分类AI算法:LeNet-5 AlexNet VGG Inception ResNet MobileNet

摘要: 当前深度学习十分火热,深度学习网络模型对于降低错误率的重要作用不言而喻。深度学习应用场景主要分为三类:物体识别与分类,物体检测,自然语言处理。在物体识别与分类领域,随着AlexNet在2012年一炮走红,深度学习重新燃起了一片热情。从Lenet5第一次使用卷积开始,经历了AlexNet VGG Inception ResNet等各种模型,错误率也一再降低。ResNet-152 1 引言 当前深度学习十分火热,深度学习网络模型对于降低错误率的重要作用不言而喻。深度学习应用场景主要分为三类:物体识别与分类,物体检测,自然语言处理。在物体识别与分类领域,随着AlexNet在2012年一炮走红,深度学习重新燃起了一片热情。从Lenet5第一次使用卷积开始,经历了AlexNet VGG Inception ResNet等各种模型,错误率也一再降低。ResNet-152 top-5错误率仅为3%左右,远低于人眼的5.1%。本文主要讲解各种网络模型的结构,他们的特点,以及这些特点为何能减少训练时间和降低错误率。 2 LeNet-5 LeNet-5的出现标志着CNN卷积神经网络在AI领域的出现,CNN以视觉感受野和权值共享的思想,大大减少了模型参数,使得深度学习模型训练成为了可能。但由于诞生于1998年,GPU的概念都还没有提出,CPU的性能又是极其...
阿里云云栖社区 发布于 2周前 阅读 14

Rancher 2.0部署过程中常见问题分析与解决

本文主要介绍了部署Rancher 2.0的环境需求,包括操作系统、硬件配置、支持的docker版本部署过程中的常见问题及排查思路,多数问题整理收集自Rancher官方技术交流群内用户的提问与反馈。
RancherLabs 发布于 1个月前 阅读 247

2018 Docker 用户报告 - Sysdig Edition

This article is part of an **Virtualization Technology** tutorial series. Make sure to check out my other articles as well: - [2018 年度 Docker 用户报告 - Sysdig Edition ](https://riboseyim.github.io/2018/06/12/DevOps-Container-Usage/) - [Cyber-Security: Linux 容器安全的十重境界](https://riboseyim.github.io/2017/11/12/DevOps-Container-Security/) - [DevOps漫谈:Docker ABC](https://riboseyim.github.io/2017/08/21/DevOps-Docker/) 根据 [Sysdig](https://sysdig.com/opensource/) 发表的年度 [Docker]((https://riboseyim.github.io/2017/08/21/DevOps-Docker/) 用户报告,在容器市场 Docker 仍然是事实上的行业标准,但是其它品牌的容器运行环境正在发展;Kubernetes 仍然是容器编排领域的王者。报告的数据来源主要依据 Sysdig Monitor 和 Sysdig Secure cloud service 提供的容器使用状况的实时快照报告,它们从容器健康、性能和安全性等方面提供度量指标和可视化服务。样本集包括垂直行业和各类规模不等的大中型企业,地域覆盖北美洲、拉丁美洲、EMEA(欧洲、中东、非洲)和亚太地区。与去年一样,这份报告并不是用来代表整个容器市场。因...
RiboseYim 发布于 1周前 阅读 20

使用Dubbo+Kubernetes部署线上的TensorFlow Serving服务

> Author: xidianwangtao@gmail.com > 摘要:本文介绍了在Kubernetes集群中,使用Dubbo+Zookeeper来完成TensorFlow Serving服务的注册与发现、负载均衡的方案,以及使用KubeDNS+Kube2LVS的方案。 ## 背景 TensorFlow Serving服务在Kubernetes集群中的部署方案,如果是从零开始建设,那么可以通过Kubernetes原生的Service+KubeDNS实现服务的注册与发现,并通过对接LVS集群进行负载均衡。因此我们在TaaS中开发了Kube2LVS模块,负责对TensorFlow Serving服务进行ListAndWatch,实现TensorFlow Serving Service Info动态reload到LVS config中。 但是在TensorFlow Serving on Kubernetes发布之前,用户已经通过裸机部署的方式在线上部署了Serving服务,用户采用Dubbo框架来进行Serving服务的注册与发现、LB,因此为了兼容已有的架构,我们最终选择使用Dubbo+Zookeeper的方式来取代前面基于KubeDNS+Kube2LVS的方案。 需要说明: - 我们为TensorFlow Serving服务单独提供了一个CaaS集群,目前并没有和训练集群混合部署。 - CaaS集群的网络方案要求Pod IP对集群外可见,Cisco Contiv(OVS + Vlan)和Calico(BGP)均可。 ## KubeDNS + Kube2LVS ### Architecture ![](https://oscim...
WaltonWang 发布于 1周前 阅读 48

service mesh与api gateway有何不同?

[Kasun Indrasiri](https://medium.com/microservices-in-practice/service-mesh-vs-api-gateway-a6d814b9bf56) service mesh与api gateway的关键特征可以帮助我们更好的区分两者。 ## API Gateway: 将服务作为托管api暴露给外部 api gateway的核心目标是将微服务作为托管的api暴露给外部系统,我们在api gateway层开发api或是边界服务以提供特定的业务功能。 api/边界服务调用下游微服务,并包含业务逻辑的多个服务下游服务组合。 api/边界服务同时需要以弹性的方式调用下游服务,并应用多种稳定性相关模块,例如断路器、超时、负载均衡/故障转移等等。大多数api gateway解决方案均内置以上模块或功能。 api gateway往往同时包含内置的服务发现、分析(指标、监控、分布式日志、分布式跟踪)以及安全。 api gateway常与api管理生态中的一些其他组件协作,例如api商店、api分发门户。 ## service mesh 那么再看看service mesh有何不同。 我们可以认为service mesh是网络通信基础设施,它允许我们从服务代码中剥离大部分应用网络功能。 在service mesh下,我们处理service-to-service通信时,不需要刻意在服务代码中实现包括断路器、超时等弹性通信功能特性。同样的,servi...
好雨云帮 发布于 6天前 阅读 14

ubuntu16下搭建ss服务(VPN)

基本设置 0、更新软件源 sudo apt-get update 1、安装pip3 sudo apt-get install python3-pip 2、先用python3安装shadowsocks: sudo pip3 install shadowsocks 3、编辑配置文件 sudo vim /etc/shadowsocks.json 配置文件按照以下设置: { "server":"你的主机的IP地址。 好像0.0.0.0 也可以", "server_port": 9999, "password":"password", "timeout":600, "method":"aes-256-cfb", "port_password": { "5200":"password", "5201":"password", "5202":"password", "5203":"password", "5204":"password", "5205":"password", "1314":"password" } } 4、启动服务(以后台方式启动) sudo ssserver -c /etc/shadowsocks.json -d start -----  高级进阶设置 通过ss-bash流量管理脚本来管理各个端口的流量使用情况 0、如果shadowsocks正在运行,请先停止服务 sudo ssserver -c /etc/shadowsocks.json -d stop  1、安装必要的软件 sudo apt-get install bc git 2、下载ssbash流量管理脚本 sudo git clone https://github.com/hellofwy/ss-bash.git 3、配置相关规则 #进入ssbash的目录 cd ss-bash/ #首次运行时,先新建用户 #例如新...
墨染青衫 发布于 3个月前 阅读 46

2018先知白帽大会 | 议题解读

摘要: 今年的先知白帽大会,与会者将能够亲身感受到非常多有趣的技术议题,如HITCON在国际赛事中屡夺佳绩的CTF团队,其队长Orange将亲临现场,分享穿针引线般的漏洞利用艺术。 当然,还有代码审计圈的新锐phithon、jkgh006、廖新喜,在国际会议锤炼过的redrain、白小龙、蒸米、kevin2600,战斗在阿里一线的安全工程师菜丝、cdxy、猪猪侠等知名白帽也会现身现场,与大家一起畅聊技术思路和攻防实践经验。 今年的先知白帽大会,与会者将能够亲身感受到非常多有趣的技术议题,如HITCON在国际赛事中屡夺佳绩的CTF团队,其队长Orange将亲临现场,分享穿针引线般的漏洞利用艺术。 当然,还有代码审计圈的新锐phithon、jkgh006、廖新喜,在国际会议锤炼过的redrain、白小龙、蒸米、kevin2600,战斗在阿里一线的安全工程师菜丝、cdxy、猪猪侠等知名白帽也会现身现场,与大家一起畅聊技术思路和攻防实践经验。 大会将持续奋战一整天,疲劳在所难免。为避免错过精彩内容,先知君提前曝光议题详情,方便各位能在会议当天,把最好的时间和精力留给最感兴趣的内容。 01 macOS 上的逻辑提权漏洞 菜丝 蚂蚁金服安全工程师。主要从事桌面端和移动端、IoT 设备安全漏洞的攻防,安全工具开...
阿里云云栖社区 发布于 6天前 阅读 13

Service Mesh服务网格:是什么和为什么

Service Mesh(服务网格)会是今年微服务生态的主角吗?从趋势来看,众多企业正在将这项理微服务复杂性的技术/工具,搬进他们的IT“火药库”之中。 ### 什么是Service Mesh? 根据Linkerd CEO William Morgan定义,Service Mesh是用于处理服务间通信的基础设施层,用于在云原生应用复杂的服务拓扑中实现可靠的请求传递。在实践中,Service Mesh通常是一组与应用一起部署,但对应用透明的轻量级网络代理。 ![](https://grstatic.oss-cn-shanghai.aliyuncs.com/images/article/what-is-service-mesh-1.png) Service Mesh与传统基础设施层不同之处在于,它形成了一个分布式的互连代理网络,以sidecar形式部署在服务两侧,服务对于代理无感知,且服务间所有通信都由代理进行路由。 ![](https://grstatic.oss-cn-shanghai.aliyuncs.com/images/article/what-is-service-mesh-2.png) ### 为什么需要Service Mesh? “Smart endpoint and dumb pipes”是微服务架构在集成服务时采用的一个核心理念,这一理念改变了过去臃肿集中的ESB(企业服务总线),无疑是正确方向上的一大进步,但同时也给我们出了一些难题——多智能才不会过于智能,而服务轻重大小的程度如何拿捏?我们应该如...
好雨云帮 发布于 4周前 阅读 18

如何选择最佳CI工具:Drone VS. Jenkins

CI界的老牌霸主Jenkins,和在容器时代发展迅猛的小而美的Drone,他们在平台安装和管理、插件生态系统、Pipeline细节等方面各有何优缺点?希望本文可以为Kubernetes/Docker用户更好运用CI解决方案带来启发。
RancherLabs 发布于 2个月前 阅读 96 点赞 1

阿里云发布企业数字化及上云外包平台服务:阿里云众包平台

摘要: 阿里云正式发布旗下众包平台业务(网址:https://zhongbao.aliyun.com/),支持包括:网站定制开发,APP、电商系统等软件开发,商标、商品LOGO、VI、产品包装设计、营销推广、大数据人工智能等各类企业上云、数字化转型服务。 阿里云正式发布旗下众包平台业务(网址:https://zhongbao.aliyun.com/),支持包括:网站定制开发,APP、电商系统等软件开发,商标、商品LOGO、VI、产品包装设计、营销推广、大数据人工智能等各类企业上云、数字化转型服务。 1、平台特色担保服务:给项目免费上保险?! 通过与蚂蚁金服联合第三方保险公司,发布其平台特色服务:免费项目保险担保。凡发布在阿里云众包平台的需求,在与服务商沟通确认下单后都会获得一份由保险公司担保的免费的项目保险。此项服务就是要解决困扰外包需求客户:保证金无法覆盖保证项目,付款出现问题无法追偿的难题。 2、120天超长质保服务 截止到平台发布日起,在业内平台敢于承诺的最长的质保服务期。经过多方走访,我们发现其实在众多外包的定制服务项目中,产品的一些细节问题是在后续的使用过程中才会发现,短短的几天验收期也是无法发现的。为此,阿里云众包平台携手平台服务商给予所有需求用户,提供...
阿里云云栖社区 发布于 20小时前 阅读 3

阿里云宣布与国内规模最大的汽车企业上汽集团合作

摘要: 云栖大会·上海峰会,6月7日,阿里云宣布与国内规模最大的汽车企业上汽集团合作,上线业内首个混合云汽车研发仿真计算服务平台——上汽仿真计算云SSCC(SAIC Simulation Computing Cloud)。        云栖大会·上海峰会,6月7日,阿里云宣布与国内规模最大的汽车企业上汽集团合作,上线业内首个混合云汽车研发仿真计算服务平台——上汽仿真计算云SSCC(SAIC Simulation Computing Cloud)。从2014年开始合作,2016年合作发布全球首款量产互联网汽车荣威RX5至今,上汽集团旗下自主品牌包括荣威、名爵、大通等新车全线搭载基于AliOS操作系统的斑马智行,装车量已突破60万辆。未来双方也将继续深入合作,从端到云全面拓展合作。       上汽仿真计算云 基于ECS神龙SCC超级计算集群+E-HPC弹性高性能计算产品,让客户在阿里云端打造了一个媲美物理机集群性能,同时兼具与HPC业务部署灵活性和弹性的高性能云端计算服务平台,助力智能制造行业客户上云。 原文链接 本文为云栖社区原创内容,未经允许不得转载。
阿里云云栖社区 发布于 22小时前 阅读 2

Docker Swarm的前世今生

![心静只需一杯茗](http://upload-images.jianshu.io/upload_images/9824247-f0646518a1fe6a25.jpg) --- ## 概述 在我的[《Docker Swarm集群初探》](https://www.jianshu.com/p/3f3c9e0e3db5)一文中,我们实际体验了Docker Swarm容器集群技术的魅力,与[《Kubernetes实践录》](https://www.jianshu.com/p/9bc87b5380e8)一文中提到的Kubernetes集群技术相比,Docker Swarm没有Kubernetes显得那么厚重,因此可以认为是更加轻量级的容器集群技术,这也就意味着上手更加方便快捷,使用起来也要省事很多。作为Docker集群技术三(或“四”)架马车之一的Docker Swarm,它从一开始便是Docker官方的“亲儿子”,发展到现在也经历了很多阶段和迭代。作者在学习的过程中也了解了一点其发展历史,发现有几个概念还是挺容易混淆的,因此撰写成文,是梳理,也是总结。 --- --- ## 初出茅庐之:经典Swarm 早在2014年底,Docker公司就设计了容器集群的方案组合:**Machine + Swarm + Compose**。其中Machine主要用于快速创建Docker运行环境,其支持在创建出来的节点上自动部署Swarm,此时的Swarm我们称为 **“经典Swarm”**,它是一款整合跨节点网络的集群式容器服务,其利用Docker守护进程...
CodeSheep 发布于 1天前 阅读 99 评论 2

nagios 安装

Nagios简介:监控网络并排除网络故障的工具:nagios,Ntop,OpenVAS,OCS,OSSIM等开源监控工具。 可以实现对网络上的服务器进行全面的监控,包括服务(apache、mysql、ntp、ftp、disk、qmail和http等)的状态,服务器的状态等。 Nagios:监控主机和服务 Ntop:监控网络流量,流量采集技术有以下几个:        1.sniffer:采集的信息最全面,可完全复制网络的数据报文。        2.SNMP:是一种主动的采集方式,取得的数据只包含端口层数据,      对于伪造端口地址的蠕虫病毒无能为力。 3.Netflow :统计所有网络报文,对网络设备性能影响较大。 4.sFlow:采用采样的方式,通过设定一定的采样率,进行数据捕获,对网络设备影响很小。 Nagios的管理模式: 分布-集中的管理模式,在nagios服务器上安装主程序,在被监控主机上安装nagios代理程序,通过nagios主程序nagios代理程序之间的通信,监控对象的状态。 nagios通过nrpe插件来远程管理服务的工作过程 Nagios执行安装在它里面的check_nrpe插件,并告诉check_nrpe去检测哪些服务。 通过ssl,check_nrpe连接远端机器上的NRPE daemon。 NRPE运行本地的各种插件去检测本地服务器和状态(check_disk,...etc)。 NRPE把...
寰宇01 发布于 2天前 阅读 4

最佳实践 | Windows下配置SSH连接Git Server _开源PaaS Rainbond

> [Rainbond](https://www.rainbond.com)(云帮)是一款以应用为中心的开源PaaS,深度整合基于Kubernetes的容器管理、ServiceMesh微服务架构最佳实践、多类型CI/CD应用构建与交付、多数据中心资源管理等技术,提供云原生应用的全生命周期解决方案。 Git一般可以通过本地传输、SSH、Git协议、HTTP协议传输数据,本文为开源PaaS Rainbond最佳实践文章,介绍windows下配置SSH连接Git Server的方法。 ## 安装Git ### 准备 Windows7/Windows8系统 Git 2.15 安装包下载([Git for Windows 32 ](https://pkg.goodrain.com/apps/git/Git-2.15.1.2-32-bit.exe)) ([Git for Windows 64 ](https://pkg.goodrain.com/apps/git/Git-2.15.1.2-64-bit.exe)) ### 安装 1. Git安装包通过浏览器下载完成后,需要修改文件的锁定属性,特别是 `.zip` 文件和 `.chm` 文件(否则打开chm会显示404). 右键点击下载的文件,选择属性,然后点击"解除锁定"按钮,确定即可. 如下图所示: ![](https://static.goodrain.com/images/acp/docs/bestpractice/windows-ssh-git/windows-ssh-git.png) 2. 双击安装包文件开始安装,如果有Windows拦截警告,允许即可。 3. 出现安装向导界面,按照提示安装。建议均使用默认...
好雨云帮 发布于 5天前 阅读 10

实战:使用SVN+apache搭建一个版本控制服务器

SVN简介        SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。 SVN官网       SVN(subversion)是版本管理工具,是CVS的接班人。目前,绝大多数开源软件都使用svn作为代码版本管理软件。作为一个运维人员安装和配置SVN服务器和客户端是必须要掌握的内容。   运行方式   svn服务器有2种运行方式:独立服务器和借助apache运行。两种方式各有利弊,用户可以自行选择。 数据存储   svn存储版本数据也有2种方式:BDB(一种事务安全型表类型)和FSFS(一种不需要数据库的存储系统)。因为BDB方式在服务器中断时,有可能锁住数据,所以还是FSFS方式更安全一点。 优缺点   1 存储类型格式 CVS是个基于RCS文件的版本控制系统。每个CVS文件都不过是普通的文件,加上一些额外信息。这些文件会简单的重复本地文件的树结构。因此,不必担心有什么数据损失,如果必要的话可以手工修改RCS文件。 SVN是基于关系数据库的(BerkleyDB)或一系列二进制文件的(FS_FS)。一方面这解决了许多...
寰宇01 发布于 6天前 阅读 6

Spring Boot 入门

一、简介 Spring 官方网站本身使用Spring 框架开发,随着功能以及业务逻辑的日益复杂,应用伴随着大量的XML配置文件以及复杂的Bean依赖关系。  随着Spring 3.0的发布,Spring IO团队主键开始摆脱XML配置文件,并且在开发过程中大量使用“约定优先配置”(convention over configuration)的思想来摆脱Spring框架中各种复杂的配置,衍生了Java Config。 Spring Boot正是在这样的一个背景下被抽象出来的开发框架,它本身并不提供Spring框架的核心特性以及扩展功能,只是用于快速、敏捷地开发新一代基于Spring框架的应用程序。也就是说,它并不是用来替代Spring的解决方案,而是和Spring框架紧密结合用于提升Spring开发者体验的工具。同时它集成了大量常用的第三方库配置(例如Jackson, JDBC, Mongo, Redis, Mail等等),Spring Boot应用中这些第三方库几乎可以零配置的开箱即用(out-of-the-box),大部分的Spring Boot应用都只需要非常少量的配置代码,开发者能够更加专注于业务逻辑。 该项目旨在帮助开发者更容易地创建基于Spring的应用程序和服务,使得现有的和新的Spring开发者能够最快速地获得所需要的Spring功能。 Spring Boot不生成代码,且完全不需要XML配置。其主要...
wsl_Mr 发布于 6天前 阅读 4

Spring Boot 入门

一、简介 Spring 官方网站本身使用Spring 框架开发,随着功能以及业务逻辑的日益复杂,应用伴随着大量的XML配置文件以及复杂的Bean依赖关系。  随着Spring 3.0的发布,Spring IO团队主键开始摆脱XML配置文件,并且在开发过程中大量使用“约定优先配置”(convention over configuration)的思想来摆脱Spring框架中各种复杂的配置,衍生了Java Config。 Spring Boot正是在这样的一个背景下被抽象出来的开发框架,它本身并不提供Spring框架的核心特性以及扩展功能,只是用于快速、敏捷地开发新一代基于Spring框架的应用程序。也就是说,它并不是用来替代Spring的解决方案,而是和Spring框架紧密结合用于提升Spring开发者体验的工具。同时它集成了大量常用的第三方库配置(例如Jackson, JDBC, Mongo, Redis, Mail等等),Spring Boot应用中这些第三方库几乎可以零配置的开箱即用(out-of-the-box),大部分的Spring Boot应用都只需要非常少量的配置代码,开发者能够更加专注于业务逻辑。 该项目旨在帮助开发者更容易地创建基于Spring的应用程序和服务,使得现有的和新的Spring开发者能够最快速地获得所需要的Spring功能。 Spring Boot不生成代码,且完全不需要XML配置。其主要...
wsl_Mr 发布于 6天前

阿里云弹性计算Apsara Block Storage正式发布 构建企业级分布式块存储服务平台

摘要: 6月13日,阿里云宣布弹性计算Apsara Block Storage产品正式发布,为企业级客户量身打造,构建高性能、弹性、可靠的大规模分布式块存储服务平台。 Apsara Block Storage可兼容多种类型的计算平台,包括阿里云ECS、ZStack、OpenStack、Kubernetes以及物理服务器等不同类型,帮助客户轻松应对云时代下海量存储资源的敏捷存取需求,适用于政府、金融、运营商和大型制造企业的线下数据中心云存储业务场景。 6月13日,阿里云宣布弹性计算Apsara Block Storage产品正式发布,为企业级客户量身打造,构建高性能、弹性、可靠的大规模分布式块存储服务平台。 Apsara Block Storage可兼容多种类型的计算平台,包括阿里云ECS、ZStack、OpenStack、Kubernetes以及物理服务器等不同类型,帮助客户轻松应对云时代下海量存储资源的敏捷存取需求,适用于政府、金融、运营商和大型制造企业的线下数据中心云存储业务场景。 客户需求和行业趋势 数字化转型已成为促进客户业务创新和敏捷发展的重要推进力量,传统集中式、“烟囱式”的IT系统建设架构,已经不能满足日益复杂的业务发展需求,特别是在存储资源的灵活使用上,遇到了越来越多的问题。采用资源化、平台化、灵活扩展的云存储架...
阿里云云栖社区 发布于 6天前 阅读 23

阿里云弹性计算Apsara Block Storage正式发布 构建企业级分布式块存储服务平台

摘要: 6月13日,阿里云宣布弹性计算Apsara Block Storage产品正式发布,为企业级客户量身打造,构建高性能、弹性、可靠的大规模分布式块存储服务平台。 Apsara Block Storage可兼容多种类型的计算平台,包括阿里云ECS、ZStack、OpenStack、Kubernetes以及物理服务器等不同类型,帮助客户轻松应对云时代下海量存储资源的敏捷存取需求,适用于政府、金融、运营商和大型制造企业的线下数据中心云存储业务场景。 6月13日,阿里云宣布弹性计算Apsara Block Storage产品正式发布,为企业级客户量身打造,构建高性能、弹性、可靠的大规模分布式块存储服务平台。 Apsara Block Storage可兼容多种类型的计算平台,包括阿里云ECS、ZStack、OpenStack、Kubernetes以及物理服务器等不同类型,帮助客户轻松应对云时代下海量存储资源的敏捷存取需求,适用于政府、金融、运营商和大型制造企业的线下数据中心云存储业务场景。 客户需求和行业趋势 数字化转型已成为促进客户业务创新和敏捷发展的重要推进力量,传统集中式、“烟囱式”的IT系统建设架构,已经不能满足日益复杂的业务发展需求,特别是在存储资源的灵活使用上,遇到了越来越多的问题。采用资源化、平台化、灵活扩展的云存储架...
猫耳m 发布于 6天前 阅读 4

2018先知白帽大会 | 议题解读

摘要: 今年的先知白帽大会,与会者将能够亲身感受到非常多有趣的技术议题,如HITCON在国际赛事中屡夺佳绩的CTF团队,其队长Orange将亲临现场,分享穿针引线般的漏洞利用艺术。 当然,还有代码审计圈的新锐phithon、jkgh006、廖新喜,在国际会议锤炼过的redrain、白小龙、蒸米、kevin2600,战斗在阿里一线的安全工程师菜丝、cdxy、猪猪侠等知名白帽也会现身现场,与大家一起畅聊技术思路和攻防实践经验。 今年的先知白帽大会,与会者将能够亲身感受到非常多有趣的技术议题,如HITCON在国际赛事中屡夺佳绩的CTF团队,其队长Orange将亲临现场,分享穿针引线般的漏洞利用艺术。 当然,还有代码审计圈的新锐phithon、jkgh006、廖新喜,在国际会议锤炼过的redrain、白小龙、蒸米、kevin2600,战斗在阿里一线的安全工程师菜丝、cdxy、猪猪侠等知名白帽也会现身现场,与大家一起畅聊技术思路和攻防实践经验。 大会将持续奋战一整天,疲劳在所难免。为避免错过精彩内容,先知君提前曝光议题详情,方便各位能在会议当天,把最好的时间和精力留给最感兴趣的内容。 01 macOS 上的逻辑提权漏洞 菜丝 蚂蚁金服安全工程师。主要从事桌面端和移动端、IoT 设备安全漏洞的攻防,安全工具开...
阿里云云栖社区 发布于 6天前 阅读 13

service mesh与api gateway有何不同?

[Kasun Indrasiri](https://medium.com/microservices-in-practice/service-mesh-vs-api-gateway-a6d814b9bf56) service mesh与api gateway的关键特征可以帮助我们更好的区分两者。 ## API Gateway: 将服务作为托管api暴露给外部 api gateway的核心目标是将微服务作为托管的api暴露给外部系统,我们在api gateway层开发api或是边界服务以提供特定的业务功能。 api/边界服务调用下游微服务,并包含业务逻辑的多个服务下游服务组合。 api/边界服务同时需要以弹性的方式调用下游服务,并应用多种稳定性相关模块,例如断路器、超时、负载均衡/故障转移等等。大多数api gateway解决方案均内置以上模块或功能。 api gateway往往同时包含内置的服务发现、分析(指标、监控、分布式日志、分布式跟踪)以及安全。 api gateway常与api管理生态中的一些其他组件协作,例如api商店、api分发门户。 ## service mesh 那么再看看service mesh有何不同。 我们可以认为service mesh是网络通信基础设施,它允许我们从服务代码中剥离大部分应用网络功能。 在service mesh下,我们处理service-to-service通信时,不需要刻意在服务代码中实现包括断路器、超时等弹性通信功能特性。同样的,servi...
好雨云帮 发布于 6天前 阅读 14

创建calico网络报错client response is invalid json

使用docker创建calico网络失败。 ```bash # docker network create --driver calico --ipam-driver calico-ipam testcalico Error response from daemon: failed to update store for object type *libnetwork.endpointCnt: client: response is invalid json. The endpoint is probably not valid etcd cluster endpoint. ``` 查看docker日志: ```bash # journalctl -fu docker -- Logs begin at Sun 2018-05-06 10:42:10 CST. -- May 06 10:51:11 gpu16 dockerd[1045]: time="2018-05-06T10:51:11.997488908+08:00" level=warning msg="Registering as \"192.168.56.16:2375\" in discovery failed: client: response is invalid json. The endpoint is probably not valid etcd cluster endpoint." May 06 10:51:13 gpu16 dockerd[1045]: time="2018-05-06T10:51:13.209441579+08:00" level=error msg="discovery error: client: response is invalid json. The endpoint is probably not valid etcd cluster endpoint." May 06 10:51:13 gpu16 dockerd[1045]: time="2018-05-06T10:51:13.211323271+08:00" level=error msg="discovery error: client: response is inv...
BookShu 发布于 6天前 阅读 15

2018 Docker 用户报告 - Sysdig Edition

This article is part of an **Virtualization Technology** tutorial series. Make sure to check out my other articles as well: - [2018 年度 Docker 用户报告 - Sysdig Edition ](https://riboseyim.github.io/2018/06/12/DevOps-Container-Usage/) - [Cyber-Security: Linux 容器安全的十重境界](https://riboseyim.github.io/2017/11/12/DevOps-Container-Security/) - [DevOps漫谈:Docker ABC](https://riboseyim.github.io/2017/08/21/DevOps-Docker/) 根据 [Sysdig](https://sysdig.com/opensource/) 发表的年度 [Docker]((https://riboseyim.github.io/2017/08/21/DevOps-Docker/) 用户报告,在容器市场 Docker 仍然是事实上的行业标准,但是其它品牌的容器运行环境正在发展;Kubernetes 仍然是容器编排领域的王者。报告的数据来源主要依据 Sysdig Monitor 和 Sysdig Secure cloud service 提供的容器使用状况的实时快照报告,它们从容器健康、性能和安全性等方面提供度量指标和可视化服务。样本集包括垂直行业和各类规模不等的大中型企业,地域覆盖北美洲、拉丁美洲、EMEA(欧洲、中东、非洲)和亚太地区。与去年一样,这份报告并不是用来代表整个容器市场。因...
RiboseYim 发布于 1周前 阅读 20

Kubernetes 集群日志管理 - 每天5分钟玩转 Docker 容器技术(180)

Kubernetes 开发了一个 Elasticsearch 附加组件来实现集群的日志管理。这是一个 Elasticsearch、Fluentd 和 Kibana 的组合。Elasticsearch 是一个搜索引擎,负责存储日志并提供查询接口;Fluentd 负责从 Kubernetes 搜集日志并发送给 Elasticsearch;Kibana 提供了一个 Web GUI,用户可以浏览和搜索存储在 Elasticsearch 中的日志。 部署 Elasticsearch 附加组件本身会作为 Kubernetes 的应用在集群里运行,其 YAML 配置文件可从 https://github.com/kubernetes/kubernetes/tree/master/cluster/addons/fluentd-elasticsearch 获取。 可将这些 YAML 文件下载到本地目录,比如 addons ,通过 kubectl apply -f addons/ 部署。 这里有一点需要注意:后面我们会通过 NodePort 访问 Kibana,需要注释掉 kibana-deployment.yaml 中的环境变量 SERVER_BASEPATH,否则无法访问。 所有的资源都部署在 kube-system Namespace 里。 DaemonSet fluentd-es 从每个节点收集日志,然后发送给 Elasticsearch。 Elasticsearch 以 StatefulSet 资源运行,并通过 Service elasticsearch-logging 对外提供接口。这里已经将 Service 的类型通过 kubectl edit 修改为 NodePort...
CloudMAN 发布于 1周前 阅读 16

redis的持久化:

redis的持久化: 目的:将内存中的数据保存到磁盘,在机器宕机或重启时可以保证数据不丢失。 说明:建议RDB和AOF同时开启,若二者同时开启,则redis在启动时优先使用aof文件来恢复数据,若AOF出问题时,我们可以动态修改配置文件,将AOF关闭,然后使用RDB来恢复。 持久化的方式: RDB(Redis DataBase) 1)概念:当符合一定条件时,redis会自动将内存中的数据进行快照并且存储到磁盘上,即在指定目录(默认是当前目录)下生成一个dump.rdb文件;redis启动后通过读取rdb文件,将数据再次载入到内存中。 2)快照的过程: 1>redis复制当前进程得到一个当前进程的副本,当前进程即父进程,当前进程的副本即子进程。 2>父进程继续接收并处理客户端发出的请求,子进程开始将内存中的数据写到磁盘的一个临时文件中。 3>当子进程把所有的数据都写到临时文件中后,用这个临时文件替换掉之前的rdb文件。 3)配置文件redis.conf: # 设置触发快照的条件(Will save the DB if both the given number of seconds and the given number of write operations against the DB occurred.) # 格式:save save 900 1 # 900秒内,如果有1个以上(包括1个)的key被修改了,则触发快照。 save 300 10 # 30...
A__17 发布于 1周前 阅读 7

遍历文件夹

import java.io.File; import java.util.ArrayList; import java.util.concurrent.LinkedBlockingQueue; /** 遍历文件夹 */ public class TraversalFolder { /** * 深度优先遍历文件夹 * * 要点:使用递归的方式来实现。 * * [@param](https://my.oschina.net/u/2303379) topFile * [@param](https://my.oschina.net/u/2303379) orderedList */ public static void depthFirstSearch(File topFile, ArrayList orderedList) { if (null != topFile) { if (topFile.isDirectory()) { File[] files = topFile.listFiles(); for (File file : files) { if (file.isDirectory()) { depthFirstSearch(file, orderedList); } else { orderedList.add(file); } } } else { orderedList.add(topFile); } } } /** * 广度优先遍历文件夹 * * 要点:利用栈的先进后出的特点来实现。 * * [@param](https://my.oschina.net/u/2303379) topFile * [@param](https://my.oschina.net/u/2303379) orderedList * [@param](https://my.oschina.net/u/2303379) maxNum */ public static void breadthFirstSearch(File topFile, ArrayList orderedList, int maxNum) { if (null != topFile) { Lin...
A__17 发布于 1周前 阅读 1

动态规划

/** * 动态规划(Dynamic Programming): * 1)将待求解的问题分解为若干个子问题(即:将求解的过程分为若干阶段),按顺序求解子问题,前一子问题的解,为后一子问题的求解提供了有用的信息; * 2)在求解任一子问题时,列出可能的局部解,通过决策保留那些有可能达到最优的局部解,丢弃其它的局部解; * 3)依次解决各子问题,最后一个子问题的解就是初始问题的解。 * * 问题:求一个整型数组中最大连续子序列的和,数组中既包含正整数也包含负整数。 * * 举例:数组int[] array = {1, -3, 7, 8, -4, 10, -19, 11};中最大连续子序列为:7, 8, -4, 10 它们的和为21 */ public class DP { /** * 暴力求解 * * 时间复杂度:O(N^2) */ public static int maxSubSumByEnum(int[] array) { int maxSum = 0; int begin = 0; int end = 0; /** * 1)第i次循环结束后可以找到:以第i个元素为起点的连续子序列的最大值。 * 2)i表示序列的起点,j表示序列的终点。 * 3)每一次循环中将终点不断向后移动:每次向后移动一位并且计算当前序列的和,循环结束后,我们就可以得到本次循环中子序列和最大的值。 */ for (int i = 0; i < array.length; i++) { // int tempSum = 0; for (int j = i; ...
A__17 发布于 1周前 阅读 1

动静内容混合站点,怎样用全站加速支持实际业务场景?

摘要: 伴随着近几年O2O的爆发,网络已经不仅是传统的展示企业品牌的渠道,而逐渐演变成为嫁接企业和用户之间服务和交流的桥梁,我们开始赋予网络更多的功能,比如购物、出行、学习、娱乐等等。 同时,网络内容形态的进阶发展,网页内容已经从静态的图片、文字向短视频、直播演变,网站和应用的内容变得越来越复杂。 伴随着近几年O2O的爆发,网络已经不仅是传统的展示企业品牌的渠道,而逐渐演变成为嫁接企业和用户之间服务和交流的桥梁,我们开始赋予网络更多的功能,比如购物、出行、学习、娱乐等等。 同时,网络内容形态的进阶发展,网页内容已经从静态的图片、文字向短视频、直播演变,网站和应用的内容变得越来越复杂。几乎所有的站点都由静态、动态两种页面组成,这就决定了交互内容更加复杂和丰富。这让很多网站的CDN内容分发加速效果不理想。 这是因为通常CDN对静态内容支持得较好,当面临动态内容请求的时候,一般会回源,源站再将内容传节点,进而传给用户,传输链路步骤增多,势必会影响速度。同时,也需要源站具备区分动静态资源的能力。为了优化动静混合站点和纯动态站点的加速效果,阿里云推出了全站加速方案,通过智能区分动静态请求,实现整站加速效果的全...
阿里云云栖社区 发布于 1周前 阅读 12

想要打造自己的PaaS?看看开源PaaS Rainbond用了哪些开源组件

站在巨人肩膀上才能看得更远,开源PaaS Rainbond的发展离不开众多优秀开源项目的贡献。 以下是Rainbond使用到或参考过的一些开源组件,如果您想要打造自己的PaaS可以作为参考。 **kubernetes** Kubernetes是Google开源的容器集群管理系统,其提供应用部署、维护、 扩展机制等功能,利用Kubernetes能方便地管理跨机器运行容器化的应用,其主要功能如下: 1) 使用Docker对应用程序包装(package)、实例化(instantiate)、运行(run)。 https://github.com/kubernetes/kubernetes **docker/moby** Docker是一个开放源代码软件项目,让应用程序布署在软件容器下的工作可以自动化进行,借此在Linux操作系统上,提供一个额外的软件抽象层,以及操作系统层虚拟化的自动管理机制。 https://github.com/moby/moby **heroku buildpack** Heroku Buildpacks是用于在Heroku上编译应用程序的开源脚本集。它们构成了Heroku多语种平台的支柱。构建包使您能够扩展Heroku的构建系统以支持您的语言或自定义,或者使运行时可以使用某些二进制包。Heroku Buildpack允许您自由地编写最适合您应用和团队的语言和框架。 https://github.com/heroku **openresty** OpenResty® 是一个基于 Nginx 与 Lu...
好雨云帮 发布于 1周前 阅读 16

工欲善其事必先利其器。100万项目资金助你成为自由职业者

广告
优质开发商申请规则细则落地了,赶紧来看看自己符合不符合。
众包

基于容器应用设计的原则,模式和反模式

容器和容器编排(Kubernetes)的广泛使用,让我们可以轻松的构建基于微服务的“云原生”(Cloud Native)的应用。容器成为了云时代的新的编程单元,类似面向对象概念下的对象,J2EE中的组件或者函数式编程中的函数。 在面向对象时代,有许多著名的设计原则,模式和反模式等,例如: SOLID (单一功能、开闭原则、里氏替换、接口隔离以及依赖反转) Design Patterns: Elements of Reusable Object-Oriented Software Anti-Pattern 在新的容器背景下,相应的原则和模式有助于帮助我们更好的构建“云原生”的应用。我们可以看到,这些原则和模式并非对之前模式的颠覆和推翻,更像是适应新环境的演进版本。 原则 单一职责原则 SINGLE CONCERN PRINCIPLE (SCP) 与OO的单一功能相对应,每一个容器应该提供单一的职责,只关注于做好一件事。单一职责使得容器更容易重用。通常容器对应于一个进程,而该进程专注于做好一件事。 高可观测性原则 HIGH OBSERVABILITY PRINCIPLE (HOP) 容器像对象一样,应该是一个封装良好的黑盒子。但是在云的环境下,这个黑盒子应该提供良好的观测接口,使得其在云的环境下得到相应的监控和管理。这样,整个应用才能提供一致的生命周期的管理。 可观测...
naughty 发布于 1个月前 阅读 975 评论 4 点赞 4

如何实现一个优质的微服务框架:Apache ServiceComb 的开放性设计

一个优质的微服务框架需要考虑的要素众多,在满足微服务设计理念的前提下,也是一个不断实践优化的过程。 本文讲述了整个 开源微服务框架 Apache ServiceComb 设计形成的前因后果,尝试从理念、思想和实践结合的维度剖析一个优质的微服务框架应该具备哪些要素,包括但不限于 对开发者友好、高性能、内外部扩展性等。 阅读本文有利于加深对微服务理念和框架的理解,给予微服务用户或开发者以帮助,这也是 Apache ServiceComb 的前身华为云微服务引擎的智慧结晶,从细节处承载了华为云自身多年云化转型的经验。
微服务框架 发布于 2个月前 阅读 3333 评论 10 点赞 3 打赏 1

完整微服务化示例:使用 Apache ServiceComb (incubating) 进行微服务开发、容器化、弹性伸缩

最完整的微服务化示例,从业务场景入手,讲述微服务化架构设计、容器化、集群部署、弹性伸缩
微服务框架 发布于 2个月前 阅读 3481 评论 10 点赞 1 打赏 1

TensorFlow on Kubernetes的架构与实践

这两年,Kubernetes在企业中的DevOps、微服务领域取得了出色的成绩,从2017年开始,将Kubernetes应用到HPC、AI等领域也成了技术热点。这里我给大家分享一下Kubernetes在AI中的落地经验,内容包括TensorFlow on Kubernetes的架构与实践,以及线上经验和坑。
WaltonWang 发布于 5个月前 阅读 1841 评论 4 点赞 4

操作系统级虚拟化概述

本文简要介绍了操作系统级虚拟化的概念,并简要阐述了实现操作系统虚拟化所用到的技术Namespace及cgroups的原理及使用方法。
宅蓝三木 发布于 5个月前 阅读 1211 评论 3 点赞 3

kubernetes中部署DNS

* 先吐槽一下,最近研究k8s的dns,看了很多相关博客,发现很多都是一样的内容,大部分都是转载或者copy,也不验证一下就发出来,给我无形中挖了很多坑。再次先谴责一下这些人! * 开始正题! * 使用场景:ubuntu16.04, kubernetes1.4及以上, 集群没有搭建CA等认证!其他场景仅作参考! ## 1.为什么要部署DNS kubernetes 提供了 service 的概念可以通过 VIP(Service IP 是 virtual IP(VIP)) 访问 pod 提供的服务,但是在使用的时候还有一个问题:怎么知道某个应用的 VIP?比如我们有两个应用,一个 app,一个 是 db,每个应用使用 rc或deployment进行管理,并通过 service 暴露出端口提供服务。app 需要连接到 db 应用,我们只知道 db 应用的名称,但是并不知道它的 VIP 地址。这就涉及到了==服务发现==的问题了。 * 针对以上问题,k8s提供了三种==服务发现==的方法: ### 方法1.通过kubernetes 提供的 API 查询 该方法较为简单,但问题较多。首先每个应用都要在启动的时候编写查询依赖服务的逻辑,这本身就是重复和增加应用的复杂度;其次这也导致应用需要依赖 kubernetes,不能够单独部署和运行(当然如果通过增加配置选项也是可以做到的,但这又是增加复杂度)。 ### ...
蓝色雨全 发布于 6个月前 阅读 1231 评论 10 点赞 2 打赏 1

TensorFlow Serving在Kubernetes中的实践

本文介绍了TensorFlow Serving的配置,尤其是官方文档没作完整介绍的model version policy的配置,另外介绍了编译TensorFlow Serving时的优化实践以及在Kubernetes中的部署,以及使用时的注意事项。
WaltonWang 发布于 6个月前 阅读 1449 评论 4 点赞 2

Kubernetes在vivo容器云平台中的应用与实践

本博文是我参加2017/11/04 K8S技术社区深圳站Meetup分享的PPT内容,主要介绍Kubernetes在vivo容器云平台的应用与实践,重点介绍我们跟业界大多数方案不一样的地方,包括整体架构(HA/Security)、定制化的应用滚动方案、Ingress方案及部署实践、容器网络方案以及在TaaS方向的探索与实践等等。
WaltonWang 发布于 7个月前 阅读 2912 评论 16 点赞 7

解析Kubernetes 1.8中的基于Pod优先级的抢占式调度

在 1.8 的发布版本中,SIG Scheduling 通过引入 Pod 优先级和抢占特性扩展了共享集群的概念。这些特性允许在单一集群中混合运行不同类型的应用和任务,提高了集群的利用率和可用性。这些特性目前都是 alpha 版本。本文将对这一特性进行全面介绍,下一篇博文会从scheduler源码进行分析。
WaltonWang 发布于 8个月前 阅读 1512 评论 2 点赞 3

私有云中Kubernetes Cluster HA方案

发现很多Kubernetes刚入门的同学对Kubernetes的Master高可用方案很感兴趣,官方又只给出了GCE上部署高可用的方案,因此我觉得有必要把我之前做的Kubernetes Master HA方案分享一下。
WaltonWang 发布于 8个月前 阅读 1490 评论 2 点赞 4

实弹军演-基于Ceph对象存储的实战兵法

保障国家权益的第一道防线是军队,而保障数据安全的最强壁垒则是存储。老司机多年经验总结,分享几点基于Ceph的对象存储实战兵法.
秦牧羊 发布于 11个月前 阅读 1555 评论 4 点赞 4

Spring Cloud 项目综述(技术栈一览)

Spring Cloud 为构建分布式系统和微服务提供了一些通用的工具,例如:配置中心,服务注册与发现,熔断器,路由,代理,控制总线,一次性令牌,全局锁,leader选举,分布式 会话,集群状态等。
侯法超 发布于 1年前 阅读 8016 评论 14 点赞 18

API的文档自动生成——基于CDIF的SOA基本能力

当前,作为大部分移动app和云服务后台之间的标准连接方式,REST API已经得到了绝大部分开发者的认可和广泛的应用。近年来,在新兴API经济模式逐渐兴起,许多厂商纷纷将自己的后台业务能力作为REST API开放出来,给更广泛的第三方开发者使用。   但是,管理REST API并非是一件容易的工作。由于缺乏有效的接口数据schema约束,加上设计REST API时resource endpoint的安排,以及发送http请求的方式又都五花八门,REST API开发完成后,大多数情况下API开发者仍然需要手动书写API文档,让用户能按照文档的说明接入。并且在API发生变化时需要重写文档,这个过程费时费力而且容易出错。比如,一个REST API文档最少必须列明以下的基本信息:   * API的名称 * API所在的URL资源路径 * http请求方法(GET, POST, PUT等) * API提交数据的方式(查询参数、表单提交、JSON提交等) * 调用API返回数据的格式   在上面提供的REST API信息中,从API返回的JSON数据在大部分情况下甚至只能用“举例”的方法说明数据的结构,而无法精确表达出这段JSON数据中每个字段的精确含义和类型定义。这都是因为REST API缺少对JSON数据的schema定义而导致,而这种“举例”的方式毫无疑问是一种很无奈很...
尼采与旺财 发布于 1年前 阅读 1782 评论 17

CheungSSH3.0国产自动化运维堡垒机

CheungSSH Web3.0 虽然不优秀,但衷心希望能给予支持和理解 项目地址:http://git.oschina.net/CheungSSH_OSC/CheungSSH 建议您使用git命令下载,因为文件比较大,如果用浏览器,和可能下载不完整 [root@CheungSSH ~]# git clone https://git.oschina.net/CheungSSH_OSC/CheungSSH.git 讨论QQ群:517241115        在当今互联网的发展大势下,云计算和大数据已经成为主导。在两大趋势下,企业的服务器数量日益增多,如何有效的管理众多的服务器,已经成为了各大公司考虑的问题。在传统的人工管理模式下,已经很难做到高效的维护,是人管理服务器?还是服务器管理人?        为了解决这个问题,我痴迷于运维自动化研究,目前后端使用的Python语言+Django的Web框架,前端使用Bootstrap+Javascript+jQuery框架开发的CheungSSH Web3.0自动化运维系统,通信协议采用Linux系统自带的SSH协议,无Agent。并通过Paramiko库完成自动化登录,本系统可以基本满足日常的自动化运维需求。系统全程由我自主研发,不采用任何第三方工具和接口。        系统设计不足之处请各位朋友指出,也感谢大家的支持和信任,如果在使用过程中遇到任何问题,或者有任何的意见和建议...
张其川 发布于 1年前 阅读 9172 评论 28 点赞 21

用大白话聊聊分布式系统

一提起“分布式系统”,大家的第一感觉就是好高大上啊,深不可测,看各类大牛关于分布式系统的演讲或者书籍,也大多是一脸懵逼。本文期望用浅显易懂的大白话来就什么是分布式系统、分布式系统有哪些优势、分布式系统会面临哪里挑战、如何来设计分布式等方面的话题来展开讨论。
waylau 发布于 1年前 阅读 4506 评论 11 点赞 8

使用spark计算文档相似度

使用spark,TF_IDF计算文档相似度
penngo 发布于 2年前 阅读 4019 评论 3 点赞 5

构建多平台的Ignite集群:Java+.NET

Ignite集群可以由它支持的任意平台启动的节点组成,包括Java、.NET和C++。本文会介绍如何通过NuGet和Maven运行一个.NET/Java集群,作为一个示例,本文会创建一个跨平台的点对点聊天系统。
李玉珏 发布于 2年前 阅读 1829 评论 4 点赞 3

配置 DHCP 服务 - 每天5分钟玩转 OpenStack(89)

前面章节我们看到 instance 在启动过程中能够从 Neutron 的 DHCP 服务获得 IP,本节将详细讨论其内部实现机制并开始配置。
CloudMAN 发布于 2年前 阅读 2146 点赞 1

Apache Hadoop 入门教程

Apache Hadoop 是一个由 Apache 基金会所开发的分布式系统基础架构。可以让用户在不了解分布式底层细节的情况下,开发出可靠、可扩展的分布式计算应用。 Apache Hadoop 框架,允许用户使用简单的编程模型来实现计算机集群的大型数据集的分布式处理。它的目的是支持从单一服务器到上千台机器的扩展,充分利用了每台机器所提供本地计算和存储,而不是依靠硬件来提供高可用性。其本身被设计成在应用层检测和处理故障的库,对于计算机集群来说,其中每台机器的顶层都被设计成可以容错的,以便提供一个高度可用的服务。 Apache Hadoop 的框架最核心的设计就是:HDFS 和 MapRedu
waylau 发布于 2年前 阅读 5933 评论 6 点赞 13

Hive Transaction 事务性 小试

提到Hive一般都会想到,Hive是数据仓库,支持类SQL查询,有很多语法支持,可以嵌套MR,写Transform、写UDF/UDAF等,但是,不支持更新操作。所以Hive的常见也一般都是一次写入,频繁读取。从Hive 0.13开始,加入了ACID的新feature,但是0.13的时候还不支持insert、update和delete操作,我也并没有欣然的当小白鼠。 目前我们平台使用hive1.2.1的社区版,业务上也遇到了需要更新的场景。也是继续调研Transaction的特性。
王二铁 发布于 2年前 阅读 4126 评论 5
顶部