无服务器架构的Docker镜像数据分析应用
近期对Docker镜像做了些数据分析,这里分享一下利用云原生技术快速且低成本的实现任意数量的数据分析。 之前通过文章介绍了不用拉取Docker镜像就可获取镜像的大小的一种方法,通过其中的示例脚本,我们可以获取到待分析的原始数据。 比如nginx镜像的部分原始数据(csv格式)如下, 1 2 3 4 5 6 7 8 9 10 11 12 …
Read MoreGithub/Gitlab已经成为众多开发者非常熟悉的代码协作平台,通过他们参与开源项目或实施企业内部项目协作。 AWS也提供了托管的、基于Git、安全且高可用的代码服务CodeCommit。CodeCommit主要针对企业用户场景,所以他并没有社交功能以及代码仓库fork功能,是否CodeCommit就无法实现Github基于Pull Request的协同工作模式呢? 答案是,CodeCommit完全可以实现基于Pull Request的代码协作。由于Git的分布式代码管理特性,首先fork上游项目仓库,将修改后的代码提交到fork仓库,通过Pull Request申请修改请求合并。Github将这套协作流程推广开来并被开源项目广 …
Read MoreAWS在3月12日正式发布了新一代的API网关 -- HTTP APIs。AWS发布的第一代API Gateway服务已经快5年了,通过这些年来大规模服务客户的心得以及客户反馈,由此重新构建了更快(相比第一代网关60%的延迟减少)、更便宜(至少节省71%的费用)、更易用的第二代网关服务。 除了性能、费用、易用性的大幅度改进之外,在HTTP APIs发布博客中着重介绍了以下新特性, HTTP APIs网关可同私有VPC内的负载均衡(ALB/NLB),服务发现(Cloup Map)集成。意味着可将目前最流行且普遍应用的容器服务作为API后端 可以将自定义域名的API路径混合映射到第一代的REST APIs和最新的HTTP APIs 请求 …
Read More业务时常有需求将某个域名(A)的访问重定向到其他域名(B),即使实现这样一个很简单的需求通常也需要部署Web服务器(例如Nginx),为域名A的请求返回302响应,并提供新的Location地址重定向到域名B。现在基于云计算服务,我们可以使用一些托管服务来实现同样的事情,无需管理服务器和维护应用,同时做到最低成本实现该需求。 接下来将介绍如何利用AWS上的服务实现该需求。 使用AWS S3和AWS CloudFront实现域名重定向 创建一个新的S3 bucket,例如 redirect.domain.com 配置新bucket属性,开启静态网站托管, …
Read MoreSpring Cloud Function -- 跨Serverless平台的函数计算框架
Jun 28, 2019 · 3 min read · 云计算 FaaS 函数计算 AWS AWS Lambda 钉钉 dingtalk Serverless Computing Spring Spring Cloud Function ·基于serverless框架的钉钉回调函数中介绍了serverless framework,一款支持跨云厂商/Serverless平台的部署工具。但是函数代码还是需要针对不同的serverless平台作对应的适配。而Spring Clound Function就是针对这种情况专门开发的跨serverless平台的框架,实现一套代码通过不同的打包实现跨serverless平台。Spring Clound Function目前支持AWS Lambda, Microsoft Azure Function以及Apache OpenWhisk。 这里我们继续使用无函数版本的钉钉回掉函数来演示Spring Clound Function for …
Read MoreAWS是全球云计算领域的领跑者,它在计算、存储、网络等方面都做出了很多创新,同时也是其他云计算厂商学习及模仿的对象。 阿里云是目前国内市场份额最大的云计算厂商,其份额超过了第二至五位厂商的总和,份额领先优势比AWS在全球还要显著,同时全球份额也超过IBM来到第四。 本文将对AWS和阿里云核心服务做一个简要对比,以及这两家厂商发展方向的一些个人见解。 云计算,其核心服务就是计算、存储及网络。这些基本能力的稳定性,功能完善性决定了云计算厂商能力的下限。 除了上面提到的三大计算机核心组件能力,下面这些能力也是云计算中非常重要的组成部分, 按量计费 资源编排(也就是平台作为代码) 云资源的认证及授权 API 基于上面列举的云计算核心服务和关 …
Read MoreServerless Framework是一个开源命令行工具。他提供函数脚手架、流程自动化、最佳实践等帮助开发、部署跨云厂商的托管无服务器计算服务(官方已支持aws, Azure, GCP, IBM Cloud等各种厂商的无服务器计算)。同时支持使用插件来扩展各种功能,比如支持更多云厂商无服务器计算服务,例如阿里云的函数计算。 这里使用基于函数计算的钉钉回调函数接口示例来演示如何使用Serverless Framework将一个无服务器函数部署到AWS Lambda。 安装servereless后,可以通过serverless create命令创建函数脚手架工程,或者在已有工程的下创建serverless配置文 …
Read More在基于函数计算的钉钉回调函数接口中使用钉钉回调函数案例实践了AWS Lambda无服务函数。该示例中,我们将自定义的函数代码及依赖的第三方库(比如json处理库jackson, 钉钉openapi加密库, aws dynamodb client等)整体打包为一个部署包,上传到lamdba代码仓库用于函数执行。 然而实际项目中,其实有大量的相关函数可能会共享这些基础依赖库、三方函数库(比如headless chrome(Puppeteer), pandoc, OCR library -- Tesseract等等)或者使用自定义runtime(如官方未支持的java11)的需求。AWS Lambda在去年底发布了Lambda …
Read More基于Java的Spring Cloud是由Java最大开源生态Spring社区推出的Out-of-Box分布式微服务解决方案,自2016年发布起就被众多开发者看好。Java作为广为流行的服务端编程语言,Spring Cloud也就越来越多的被用于微服务开发。 Spring Cloud集成了Netflix OSS开源项目实现了很多功能(或作为实现之一),包括服务治理、网关路由、客户端负载均衡、服务间调用、断路器等。Spring Cloud Netflix将很多生产级别微服务能力开箱即用的带到了Spring Cloud架构下的微服务中,帮助开发者快速的构建满足12要素的应用。 在去年底发布的Spring Cloud Greenwich版 …
Read More本文是为Kubernetes中任意应用添加基于oauth2的认证保护的下篇,将图文详解如何使用基于钉钉认证的oauth2 proxy为自身本没有认证授权功能的Web站点实现认证及授权。 示例是使用的AWS EKS服务作为K8S环境。鉴于K8S的应用运行时属性,该示例也可以部署在其他云厂商托管的K8S。 示例模块简介 Nginx Ingress Controller为K8S集群内Web应用提供反向代理,以及支持外部认证。 简单的Web站点,基于Nginx docker容器。该站点默认没有认证及授权功能,使用外部钉钉应用作为认证及授权。 OAuth2 Proxy on Dingtalk提供基于钉钉应用的扫码认证及授权,只有认证且授权的用 …
Read More