首页 文章 精选 留言 我的

精选列表

搜索[最权威安装],共10000篇文章
优秀的个人博客,低调大师

fast-boot v1.2 简洁的快速开发平台

介绍 FastBoot是采用SpringBoot、SpringSecurity、Mybatis-Plus等框架,开发的一套SpringBoot快速开发系统,使用门槛极低,且采用MIT开源协议,完全免费开源,可免费用于商业项目等场景。 开发文档:https://maku.net/docs/fast-boot 演示环境:https://demo.maku.net/fast-boot 更新日志 新增文件上传功能,支持阿里云、本地文件上传 新增分配角色给用户功能 新增权限配置方式,允许修改auth.yml配置文件,忽略不需要认证的资源 新增api模块,用于实现各模块解耦 新增用户选择组件,可以方便用户选择 重构数据权限,数据权限更完善 优化查询条件,基于Lambda表达式实现 优化弹窗,可实现拖拽功能 优化fast-select组件 升级vite到3.0 升级element-plus 升级springboot依赖 前端工程 Github 仓库:https://github.com/makunet/fast-admin Gitee 仓库:https://gitee.com/makunet/fast-admin 代码生成器 Github 仓库:https://github.com/makunet/fast-generator Gitee 仓库:https://gitee.com/makunet/fast-generator 交流和反馈 官方社区:https://maku.net Github 仓库:https://github.com/makunet/fast-boot Gitee 仓库:https://gitee.com/makunet/fast-boot 技术解答、交流、反馈、建议等,请移步到官方社区,我们会及时回复,也方便今后的小伙伴寻找答案,感谢理解! 效果图

优秀的个人博客,低调大师

在选择云区域时如何做出明智的选择

当企业在不同的云区域之间进行选择时,离其最近的区域并不总是一个最佳选择。 云计算的优势之一是公有云供应商提供了数十个云区域供企业决定在哪里托管工作负载时进行选择。但这也会带来一些挑战,因为企业必须确定哪个云区域(或多个云区域)最适合自己的需求。 什么是云区域? 云区域是云计算供应商运营数据中心所在的地理区域。公有云提供商通常在多个不同区域运营和维护数据中心,并允许客户在部署工作负载时进行选择。 事实上,企业不仅可以从不同的云区域中进行选择,而且还必须这样做。换句话说,云计算提供商将要求企业在部署工作负载时选择特定的云区域。 为什么云区域很重要? 云区域之所以重要的主要原因是,企业的用户离工作负载所在的数据中心越近,用户体验就越好。当企业的云区域在地理上远离最终用户时,其优化页面加载时间比较困难。 选择正确的云区域也很重要,因为许多云计算服务的成本取决于企业的工作负载所在的区域。例如,AWS公司在香港云区域使用S3数据存储服务的价格要高于美国俄亥俄州云区域的价格。 企业使用的云区域也会对合规性和可靠性等产生影响,其考虑的因素如下所述。 选择云区域时要考虑的因素 许多企业默认选择在离总部最近的云区域中托管他们的工作负载。但这种方法并不总是一个最佳选择。 与其相反,在从云区域中进行选择时,企业需要权衡以下注意事项: (1)企业的最终用户在哪里? 如果企业的大多数最终用户位于特定区域,那么在离他们最近的云区域托管工作负载是显而易见的事情。这是优化性能的关键一步。 当然,如果企业为分布在多个地理区域的用户提供服务,则在选择云区域时需要考虑其他因素。 (2)企业具有数据主权要求吗? 如果合规性规则或内部数据隐私政策要求企业将数据保留在特定地理管辖范围内,需要选择满足这一需求的云区域。在这种情况下,企业需要决定使用哪个云区域。 (3)企业的其他工作负载在哪里? 如果企业在一个云区域中部署的工作负载需要与在内部部署设施、不同云平台或不同云区域中运行的工作负载集成或连接,这也是一个需要考虑的因素。一般来说,企业的各种工作负载在地理意义上越接近,整体性能就越好。 例如,如果企业正在构建一个应用程序,该应用程序将由日本用户访问,但需要提取其在美国东部拥有的私有数据中心托管的数据,那么可能需要选择介于这两个地点之间的云区域。选择靠近日本的云区域可能无法提供最佳的整体性能,因为将数据从美国运营的数据中心传输到日本的云区域需要更长的时间。 (4)企业的服务等级协议(SLA)需求是什么? 在某些情况下,云计算提供商为云服务提供的服务等级协议(SLA)由于云区域而有所不同。如果服务等级协议(SLA)的可用性保证是关键优先事项,需要检查是否可以在一个云区域中获得比其他云服务更好的服务等级协议(SLA),无论企业将使用哪种云计算服务。 (5)企业需要哪些云计算功能? 云计算服务提供的功能也可能因地区而异。例如,并非所有AWS EC2实例类型在所有AWS区域都可用。有时,有些云计算服务在给定区域可能根本不可用。 企业需要确保打算使用的区域支持需要从云服务中获得的特定配置或功能。 (6)哪个云区域成本最低? 如上所述,云区域之间的成本可能会有所不同。企业对于计划使用的云服务区域之间的价格进行比较,可以显著优化和减少云计算成本。 (7)企业需要多少个可用性区域? 公有云提供商将他们的每个云区域划分为多个可用性区域。可用性区域是给定云区域内独立运营的数据中心。尽管企业不必使用多个可用性区域,但选择这样做以提高其工作负载的可靠性。如果一个可用性区域出现故障,只要被镜像到第二个可用性区域,其工作负载就会保持正常运行。 所有云计算区域都会提供两个以上可用性区域,有的甚至更多。如果企业要使用两个以上的可用性区域,需要选择支持这种方法的云区域。 同时使用多个云区域 如果企业在采用单个云区域时遇到问题,需要记住,可以同时使用多个云区域。 企业可以在一个云区域托管一些工作负载,同时在同一云平台中的另一个云区域运行其他工作负载。如果企业需要满足集中在两个不同云区域的用户需求,这种方法可以很好地工作。 同样,如果企业需要使用的一种云服务在一个云区域的成本较低,而另一种服务在不同云区域的成本较低,企业可以在最具成本效益的云区域运行每项服务。 需要记住的是,使用多个云区域来提高可靠性并不是一种具有成本效益的策略。企业可以使用多个可用性区域。 结论 选择正确的云区域对于优化成本、性能、可靠性等很重要。不要默认使用离企业最近的云区域或云计算提供商建议的任何云区域,而是进行研究以确定哪个(或多个)区域可以提供最佳的价值和性能。

优秀的个人博客,低调大师

这可能是容易理解的 Go Mutex 源码剖析

Hi,大家好,我是 haohongfan。 上一篇文章《一文完全掌握 Go math/rand》,我们知道 math/rand 的 global rand 有一个全局锁,我的文章里面有一句话:“修复方案: 就是把 rrRand 换成了 globalRand, 在线上高并发场景下, 发现全局锁影响并不大.”, 有同学私聊我“他们遇到线上服务的锁竞争特别激烈”。确实我这句话说的并不严谨。但是也让我有了一个思考:到底多高的 QPS 才能让 Mutex 产生强烈的锁竞争 ? 到底加锁的代码会不会产生线上问题? 到底该不该使用锁来实现这个功能?线上的问题是不是由于使用了锁造成的?针对这些问题,本文就从源码角度剖析 Go Mutex, 揭开 Mutex 的迷雾。 源码分析 Go mutex 源码只有短短的 228 行,但是却包含了很多的状态转变在里面,很不容易看懂,具体可以参见下面的流程图。Mutex 的实现主要借助了 CAS 指令 + 自旋 + 信号量来实现,具体代码我就不再每一行做分析了,有兴趣的可以根据下面流程图配合源码阅读一番。 Lock Unlock 一些例子 1. 一个 goroutine 加锁解锁过程 2. 没有加锁,直接解锁问题 3. 两个 Goroutine,互相加锁解锁 4. 三个 Goroutine 等待加锁过程 整篇源码其实涉及比较难以理解的就是 Mutex 状态(mutexLocked,mutexWoken,mutexStarving,mutexWaiterShift) 与 Goroutine 之间的状态(starving,awoke)改变, 我们下面将逐一说明。 什么是 Goroutine 排队? 如果 Mutex 已经被一个 Goroutine 获取了锁, 其它等待中的 Goroutine 们只能一直等待。那么等这个锁释放后,等待中的 Goroutine 中哪一个会优先获取 Mutex 呢? 正常情况下, 当一个 Goroutine 获取到锁后, 其他的 Goroutine 开始进入自旋转(为了持有CPU) 或者进入沉睡阻塞状态(等待信号量唤醒). 但是这里存在一个问题, 新请求的 Goroutine 进入自旋时是仍然拥有 CPU 的, 所以比等待信号量唤醒的 Goroutine 更容易获取锁. 用官方话说就是,新请求锁的 Goroutine具有优势,它正在CPU上执行,而且可能有好几个,所以刚刚唤醒的 Goroutine 有很大可能在锁竞争中失败. 于是如果一个 Goroutine 被唤醒过后, 仍然没有拿到锁, 那么该 Goroutine 会放在等待队列的最前面. 并且那些等待超过 1 ms 的 Goroutine 还没有获取到锁,该 Goroutine 就会进入饥饿状态。该 Goroutine 是饥饿状态并且 Mutex 是 Locked 状态时,才有可能给 Mutex 设置成饥饿状态. 获取到锁的 Goroutine Unlock, 将 Mutex 的 Locked 状态解除, 发出来解锁信号, 等待的 Goroutine 开始竞争该信号. 如果发现当前 Mutex 是饥饿状态, 直接将唤醒信号发给第一个等待的 Goroutine 这就是所谓的 Goroutine 排队 排队功能是如何实现的 我们知道在正常状态下,所有等待锁的 Goroutine 按照 FIFO 顺序等待,在 Mutex 饥饿状态下,会直接把释放锁信号发给等待队列中的第一个Goroutine。排队功能主要是通过 runtime_SemacquireMutex, runtime_Semrelease 来实现的. 1. runtime_SemacquireMutex -- 入队 当 Mutex 被其他 Goroutine 持有时,新来的 Goroutine 将会被 runtime_SemacquireMutex 阻塞。阻塞会分为2种情况: Goroutine 第一次被阻塞: 当 Goroutine 第一次尝试获取锁时,由于当前锁可能不能被锁定,于是有可能进入下面逻辑 queueLifo:=waitStartTime!=0 ifwaitStartTime==0{ waitStartTime=runtime_nanotime() } runtime_SemacquireMutex(&m.sema,queueLifo,1) 由于 waitStartTime 等于 0,runtime_SemacquireMutex 的 queueLifo 等于 false, 于是该 Goroutine 放入到队列的尾部。 Goroutine 被唤醒过,但是没加锁成功,再次被阻塞由于 Goroutine 被唤醒过,waitStartTime 不等于 0,runtime_SemacquireMutex 的 queueLifo 等于 true, 于是该 Goroutine 放入到队列的头部。 2. runtime_Semrelease -- 出队 当某个 Goroutine 释放锁时,调用 Unlock,这里同样存在两种情况: 当前 mutex 不是饥饿状态 ifnew&mutexStarving==0{ old:=new for{ ifold>>mutexWaiterShift==0||old&(mutexLocked|mutexWoken|mutexStarving)!=0{ return } //Grabtherighttowakesomeone. new=(old-1<<mutexWaiterShift)|mutexWoken ifatomic.CompareAndSwapInt32(&m.state,old,new){ runtime_Semrelease(&m.sema,false,1) return } old=m.state } } Unlock 时 Mutex 的 Locked 状态被去掉。当发现当前 Mutex 不是饥饿状态,设置 runtime_Semrelease 的 handoff 参数是 false, 于是唤醒其中一个 Goroutine。 当前 mutex 已经是饥饿状态 }else{ //Starvingmode:handoffmutexownershiptothenextwaiter,andyield //ourtimeslicesothatthenextwaitercanstarttorunimmediately. //Note:mutexLockedisnotset,thewaiterwillsetitafterwakeup. //ButmutexisstillconsideredlockedifmutexStarvingisset, //sonewcominggoroutineswon'tacquireit. runtime_Semrelease(&m.sema,true,1) } 同样 Unlock 时 Mutex 的 Locked 状态被去掉。由于当前 Mutex 是饥饿状态,于是设置 runtime_Semrelease 的 handoff 参数是 true, 于是让等待队列头部的第一个 Goroutine 获得锁。 Goroutine 的排队 与 mutex 中记录的 Waiters 之间的关系? 通过上面的分析,我们知道 Goroutine 的排队是通过 runtime_SemacquireMutex 来实现的。Mutex.state 记录了目前通过 runtime_SemacquireMutex 排队的 Goroutine 的数量 Goroutine 的饥饿与 Mutex 饥饿之间的关系? Goroutine 的状态跟 Mutex 的是息息相关的。只有在 Goroutine 是饥饿状态下,才有可能给 Mutex 设置成饥饿状态。在 Mutex 是饥饿状态时,才有可能让饥饿的 Goroutine 优先获取到锁。不过需要注意的是,触发 Mutex 饥饿的 Goroutine 并不一定获取锁,有可能被其他的饥饿的 Goroutine 截胡。 Goroutine 能够加锁成功的情况 Mutex 没有被 Goroutine 占用 Mutex.state = 0, 这种情况下一定能获取到锁. 例如: 第一个 Goroutine 获取到锁还有一种情况 Goroutine有可能加锁成功: 当前 Mutex 不是饥饿状态, 也不是 Locked 状态, 尝试 CAS 加锁时, Mutex 的值还没有被其他 Goroutine 改变, 当前 Goroutine 才能加锁成功. 某个 Goroutine 刚好被唤醒后, 重新获取 Mutex, 这个时候 Mutex 处于饥饿状态. 因为这个时候只唤醒了饥饿的 Goroutine, 其他的 Goroutine 都在排队中, 没有其他 Goroutine 来竞争 Mutex, 所以能直接加锁成功 Mutex 锁竞争的相关问题 探测锁竞争 日常开发中锁竞争的问题还是能经常遇到的,我们如何去发现锁竞争呢?其实还是需要靠 pprof 来人肉来分析。 《一次错误使用 go-cache 导致出现的线上问题》就是我真是遇到的一次线上问题,表象就是接口大量超时,打开pprof 发现大量 Goroutine 都集中 Lock 上。这个真实场景的具体的分析过程,有兴趣的可以阅读一下。简单总结一下:压测或者流量高的时候发现系统不正常,打开 pprof 发现 goroutine 指标在飙升,并且大量 Goroutine 都阻塞在 Mutex 的 Lock 上,这个基本就可以确定是锁竞争。 pprof 里面是有个 pprof/mutex 指标,不过该指标默认是关闭的,而且并没有太多资料有介绍这个指标如何来分析 Mutex。有知道这个指标怎么用的大佬,欢迎留言。 mutex 锁的瓶颈 现在模拟业务开发中的某接口,平均耗时 10 ms, 在 32C 物理机上压测。CentOS Linux release 7.3.1611 (Core), go1.15.8压测代码如下: packagemain import( "fmt" "log" "net/http" "sync" "time" _"net/http/pprof" ) varmuxsync.Mutex functestMutex(whttp.ResponseWriter,r*http.Request){ mux.Lock() time.Sleep(10*time.Millisecond) mux.Unlock() } funcmain(){ gofunc(){ log.Println(http.ListenAndServe(":6060",nil)) }() http.HandleFunc("/test/mutex",testMutex) iferr:=http.ListenAndServe(":8000",nil);err!=nil{ fmt.Println("starthttpserverfail:",err) } } 这个例子写的比较极端了,全局共享一个 Mutex。经过压测发现在 100 qps 时,Mutex 没啥竞争,在 150 QPS 时竞争就开始变的激烈了。 当然我们写业务代码并不会这么写,但是可以通过这个例子发现 Mutex 在 QPS 很低的时候,锁竞争就会很激烈。需要说明的一点:这个压测是数值没啥具体的意义,不同的机器上表现肯定还会不一样。 这个例子告诉我们几点: 写业务时不能全局使用同一个 Mutex 尽量避免使用 Mutex,如果非使用不可,尽量多声明一些 Mutex,采用取模分片的方式去使用其中一个 Mutex 日常使用注意点 1. Lock/Unlock 成对出现 我们日常开发中使用 Mutex 一定要记得:先 Lock 再 Unlock。 特别要注意的是:没有 Lock 就去 Unlock。当然这个 case 一般情况下我们都不会这么写。不过有些变种的写法我们要尤其注意,例如 varmusync.Mutex funcrelease(){ mu.Lock() fmt.Println("lock1success") time.Sleep(10*time.Second) mu.Lock() fmt.Println("lock2success") } funcmain(){ gorelease() time.Sleep(time.Second) mu.Unlock() fmt.Println("unlocksuccess") for{} } 输出结果: releaselock1success mainunlocksuccess releaselock2success 我们看到 release goroutine 的锁竟然被 main goroutine 给释放了,同时 release goroutine 又能重新获取到锁。 这段代码可能你想不到有啥问题,其实这个问题蛮严重的,想象一下你的代码中,本来是要加锁给用户加积分的,但是竟然被别的 goroutine 给解锁了,导致积分没有增加成功,同时解锁的时候还别的 Goroutine 的锁给 Unlock 了,互相加锁解锁,导致莫名其妙的问题。 所以一般情况下,要在本 Goroutine 中完成 Mutex 的 Lock&Unlock,千万不要将要加锁和解锁分到两个 Goroutine 中进行。如果你确实需要这么做,请抽支烟冷静一下,你真的是否需要这么做。 2. Mutex 千万不能被复制 我之前发过的《当 Go struct 遇上 Mutex》里面详细分析了不能被复制的原因,以及如何 Mutex 的最佳使用方式,建议没看过的同学去看一遍。我们还是举个例子说下为啥不能被复制,以及如何用源码进行分析 typePersonstruct{ muxsync.Mutex } funcReduce(p1Person){ fmt.Println("step...",) p1.mux.Lock() fmt.Println(p1) deferp1.mux.Unlock() fmt.Println("over...") } funcmain(){ varpPerson p.mux.Lock() goReduce(p) p.mux.Unlock() fmt.Println(111) for{} } 问题分析: main Goroutine 已经给 p.mux 加了锁 , 这个时候 p.mux 的 state 的值是 mutexLocked。 然后将 p.mux 复制给了 Reduce Goroutine。这个时候被复制的 p1.mux 的 state 的值也是 mutexLocked。 main Goroutine 虽然已经解锁了, 但是 Reduce Goroutine 跟 main Goroutine 的 mutex 已经不是同一个 mutex 了, 所以 Reduce Goroutine 就会加锁失败, 产生死锁,关键是编译器还发现不了这个 Deadlock. 关于为什么编译器不能发现这个死锁,可以看我的博客《一次 Golang Deadlock 的讨论》 至此 Go Mutex 的源码剖析全部完毕了,有什么想跟我交流的可以再评论区留言。

优秀的个人博客,低调大师

盘点:2020年炙手可热的10家云计算初创公司

新冠病毒大流行进一步推动了云计算的发展,也让这个领域的初创公司有机会加速自身云服务被采用的速度。 根据研究和咨询公司Gartner的数据,预计最终用户企业和组织的全球公有云支出将从今年的2575亿美元增长到明年的3049亿美元,增幅为18%,这也为云计算初创公司抢占留出了很大的空间。 Wedbush Securities分析师Daniel Ives认为,随着2021年美国进入经济复苏期,云计算仍将是“技术食物链”的一个基础领域。 他在11月15日发布的一份报告中这样写道:“技术领域的基本增长动力仍然是十分强劲的……尤其是在云和网络安全领域,越来越多的企业和政府将他们的应用或者数据工作负载加速到由云驱动的环境中,这在COVID大背景下得到了显著的加速。” 下面就让我们看看这10家值得关注的云计算初创公司。 Amperity 首席执行官:Kabir Shahani 总部:美国西雅图 Amperity的企业客户数据管理平台利用人工智能和云规模来帮助企业掌控数据,并对客户有全方位的了解。目前包括阿拉斯加航空、Kroger、Lucky Brand、J.Crew、Planet Fitness、Kenneth Cole、Crocs和Stanley在内的多家企业客户都采用了Amperity的平台。 Amperity于2017年投入商业运营,首席执行官Kabir Shahani和首席技术官Derek Slager在将Appature(一家提供基于云的医疗营销软件的初创公司)出售给前IMS Health之后,在2013年成立了Amperity公司。Amperity在去年11月收购了Custora,一个客户分析平台消费品牌。 Astronomer 首席执行官:Joe Otto 总部:美国辛辛那提 Astronomer的Apache Airflow开源数据工作流程编排平台最早是作为Airbnb的一个内部项目在2014年启动的,该平台允许用户以Python编程方式编写、安排和监视数据管道。 Astronomer的Astronomer Cloud是一款多租户、多云的“Airflow即服务”产品,让客户可以启动和扩展Apache Airflow集群而不用操心底层基础设施,它运行在由Astronomer托管和管理的Kubernetes集群上。自托管的Astronomer Enterprise是一个基于Kubernetes的云原生平台,用于部署、管理和扩展分布式Airflow服务,可以运行在任何公有云、私有云或者裸机环境中。 今年5月,Astronomer在由美国加州风投公司Venrock领投的A轮融资中获得了1360万美元资金。 Benchling 首席执行官:Saji Wickramasekara 总部:美国旧金山 Benchling提供了一款统一的生命科学研究和开发云软件平台,以集中所有研发数据并实现标准化。该平台主要针对复杂大分子研究构建的,让用户可以对任何事物进行建模和互连,从序列到细胞系再到试剂等等,可以把任何实验过程建模成数字化的工作流程步骤。用户可以创建自定义的仪表板,用于追踪任何研发数,无需代码即可调整基准测试,集成任何工具或软件自动执行那些手动操作的数据任务。 今年5月,Benchling在由纽约风投公司Alkeon Capital Management领投的D轮融资中获得了5000万美元,当时Benchling首席执行官Saji Wickramasekara表示,Benchling累计获得的总投资金额已经达到1.14亿美元,估值为8.5亿美元。 Benching的客户主要来自制药、燃料到农业和食品等行业,其中那些在COVID-19大流行期间走在研究前沿的公司,例如Gilead Sciences、Regeneron Pharmaceuticals和Mammoth Biosciences。 Coder CEO:Kyle Carberry和John Andrew Entwistle 总部:美国奥斯丁 Coder提供的开源工具和企业平台旨在简化配置、保护和管理软件开发环境过程,让工程师可以在任何地方开展工作并专注于编写代码。 Coder的Coder Enterprise平台将软件开发移至云端,实现企业组织开发项目的集中化,创建和配置开发环境等手动过程的自动化。开发人员在几秒钟内就能从图像中启动完全配置的开发环境,用户可以从任何位置通过浏览器安全地访问这些环境。基础设施中的所有代码和数据集都是安全的,开发人员可以使用他们喜欢的IDE、工具和语言。Coder Enterprise可以运行在任何公有云或者私有云平台上,也可以部署在虚拟私有云的内部环境中。 Coder的平台也有免费开源版,据称,Coder的软件已经从Docker提取超过2300万次,并在GitHub上获得了36000颗星。 Coder创立于2017年,当时公司的联合创始人Entwistle和Carberry分别只有20岁和21岁,联合创始人兼首席技术官Ammar Bandukwala也才19岁,公司就筹集到了450万美元的种子资金。到目前为止,Coder已经累计融资4300万美元,其中包括在今年4月由美国加州风投公司GGV Capital领投的B轮融资中获得的3000万美元,Redpoint Ventures、Uncork Capital和中央情报局风险投资部门In-Q-Tel也参与了本轮投资。Coder为政府软件开发人员提供了DevSecOps解决方案,客户包括美国空军。 Ermetic 首席执行官:Shai Morag 总部:以色列特拉维夫 Ermetic是一家云身份和访问管理公司,可通过管理身份和访问权限、大规模实施最小特权来帮助企业保护IaaS和PaaS云基础设施。 Ermetic的云安全平台提供了全栈可见性,以及对多云基础设施权限的控制。Ermetic消除了攻击表面的盲点,让企业组织通过分析身份和访问管理策略以及网络、存储和机密资产的配置,在整个云基础设施中实施最低特权。 Ermetic的联合创始人兼首席执行官Shai Morag曾经是以色列公司Secdo(端点检测和响应厂商)的联合创始人兼首席执行官,Palo Alto Networks在2018年收购了Secdo。Ermetic其他联合创始人也曾打造过企业安全公司Aorato(在2014年被微软收购)和Sygnia(在2018年被新加坡投资公司淡马锡收购)。 今年5月Ermetic走出隐身模式,在由美国加州风投公司Accell领投的A轮融资中获得1725万美元,以及种子轮投资方的1000万美元。 Lightspin 首席执行官:Vladi Sandler 总部:以色列特拉维夫 云安全公司Lightspin专注于云安全技术,保护原生环境、Kubernetes和微服务免受风险影响。近日Lightspin走出隐身模式,在种子轮融资中获得400万美元。 Lightspin的创始人曾是前“白帽”黑客,很多全球大型企业付费邀请他们攻击自己的云基础设施以测试安全性。Lightspin联合创始人兼首席执行官Vladi Sandler表示,了解攻击者的想法,是Lightspin的“超级能力”。 Lightspin让企业组织可以在几分钟之内主动映射整个云堆栈,从而检测潜在重大威胁并避免出现配置漏洞,从而比黑客更早抢占先机。SaaS平台使用基于图形的预测工具和算法来提供快速的、深入的云堆栈可视化,分析潜在的攻击路径并检测根本原因。 种子轮融资是由美国丹佛风投公司Ibex Investors领投的。目前Lightspin的员工(包括研究、开发和工程设计)中有一半是女性。 Privacera 首席执行官:Balaji Ganesan 总部:美国加州弗里蒙特 Apache Ranger的创始人曾在2016年创立了Privacera,将Ranger的治理和安全功能从传统大数据环境扩展到云原生服务,以及AWS、微软Azure和Google Cloud Platform等云厂商的主流分析平台,和大数据分析平台开发方Databricks。 Privacera Platform是一套针对公有云中机器学习和分析工作负载的集中化企业数据治理和安全解决方案。今年10月Lightspin发布了最新4.0版本中的新功能,包括用于加速加载和自定义数据访问的访问工作流,扩展了在复杂基础设施环境中无缝数据标记的发现功能,以及用于自动加密和解密功能的加密网关。 今年7月,Lightspin宣布在由美国加州风投公司Accell领投的A轮融资中获得1350万美元,用于支持公司扩张和平台方面的投资。 Privitar 首席执行官:Jason du Preez 总部:英国伦敦 Privita Data Privacy Platform与AWS、微软Azure以及Google Cloud Platform进行了原生集成,以保护和管理敏感数据,同时优化用于分析应用的实用工具。企业可以自动执行数据配置,支持云规模的分析、机器学习、数据科学和其他服务,甚至可以从敏感数据集中获取洞察。 今年6月Privitar在C轮融资中获得700万美元,汇丰银行加入本轮融资,使融资总额达到8700万美元。汇丰银行也在成为Privitar客户的四年之后,成为Privitar的股东。 Privitar在去年12月加入了AWS合作伙伴网络的全球创业计划。近日,Privitar宣布通过了Microsoft One商业合作伙伴计划,获得微软的共同销售认可,并以独立软件提供商的身份加入微软FastTrack for Azure计划。 Sensu 首席执行官:Caleb Hailey 总部:美国俄勒冈州波特兰 Sensu为DevOps和站点可靠性工程团队提供了可观察性的管道,以代码形式提供监控功能。 Sensu的商用软件Sensu Go是专为基于容器和多云的基础设施设计的,基于同名的开源项目。这个基于代理的监控事件管道允许用户收集、过滤和转换监控事件,并将其发送到他们所选的数据库中。Sensu Go为Ansible Tower、Elasticsearch、PagerDuty、ServiceNow和Splunk等工具提供了交钥匙集成方案。 Sensu的企业客户包括Activision、Box.com和Sony。 WireWheel 首席执行官:Justin Antonipillai 总部:美国弗吉尼亚州阿灵顿 WireWheel是一家数据隐私管理软件提供商,提供的SaaS平台可以让隐私程序大规模运行,并利用与云基础设施、本地环境和云数据存储环境的集成。 WireWheel可以在企业组织隐私管理计划的所有阶段提供支持,包括协作和供应商风险管理,和隐私法规遵从,例如欧洲通用数据保护法规(GDPR)、加利福尼亚州消费者隐私法案(CCPA)、加利福尼亚州隐私权利法案(CPRA)等。 WireWheel创立于2016年底,今年3月被《Forrester Wave for Privacy Management Software》报告评为该领域的“表现突出的公司”。 WireWheel公司首席执行官Justin Antonipillai曾在奥巴马政府领导的美国商务部负责经济事务的副部长两年时间。他负责经济和统计署,其中包括首席经济学家办公室,人口普查局和经济分析局,以及围绕隐私和安全性开展的多项国际项目。 【责任编辑: 赵宁宁 TEL:(010)68476606】

资源下载

更多资源
优质分享App

优质分享App

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。