AWS是全球云计算领域的领跑者,它在计算、存储、网络等方面都做出了很多创新,同时也是其他云计算厂商学习及模仿的对象。 阿里云是目前国内市场份额最大的云计算厂商,其份额超过了第二至五位厂商的总和,份额领先优势比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这周参加了QCon 2019北京站,这里记录下部分印象深刻的主题以及个人感受。 QCon是由InfoQ主办的综合性技术盛会,主题涵盖了大前端、高可用架构、容器技术、大数据、机器学习等各种热门技术主题。其中也不乏下一代分布式应用、混沌工程等前沿有意思的主题,后面会详细介绍相关的主题演讲。 工程效率提升 这是在QCon第一日个人感兴趣且非常有意思的一个系列主题。无论是创业公司、独角兽企业还是互联网巨头都希望不断提升工程效率,3个相关的分享分别来自BAT,可见互联网巨头们对团队效率提升的渴望和重视。 10倍速原则对工程生产力建设的方向性影响 这个talk来自腾讯的高级顾问乔梁,这位老兄已经连续10年在QCon上分享持续集成、持续交付等工程 …
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基于函数计算的钉钉回调函数接口
由于企业内部管理的需要,用到了钉钉的业务事件回调能力,正好将这个轻量级的接口使用无服务器技术来实现部署,以应对流量无规律下的动态扩展伸缩、按需使用、按量计费等需求。 阿里云函数计算版本 由于公司系统部署在阿里云,首先选择使用阿里云函数计算来实现及部署。该接口使用了JVM上语言Kotlin开发,虽然阿里云函数计算官方支持的开发语言有Java但没有Kotlin。其实无论Java或Kotlin最终部署文件都是Java Class字节码,加上Kotlin与Java良好的互操作性,实测函数计算可以完美支持Kotlin开发(个人认为任意JVM上的开发语言都是支持的)。 同时该函数使用了表格存储来持久化回调事件。表格存储是个按量计费的分布式存储, …
Read MoreServerless Computing(无服务器计算)是目前最被看好的云端计算执行模型。其最大的好处是提供分布式弹性可伸缩的计算执行环境,仅为实际使用资源付费,并且将应用维护者从常规的运维事务中解放出来,更利于专注到具体的业务上。 在主流的应用部署方式下,无论是使用云主机还是Kubernetes作为运行环境,都会有大量运维层面的事务需要考虑和处理,并且应用程序需要按照分布式程序的设计准则来应对应用的水平伸缩。同时随着云计算服务的发展和完善,云计算厂商提供了越来越多的基础服务,例如API网关、对象存储、消息队列、日志、监控等服务,函数计算可以完美的同其他云服务集成,帮助用户快速实现出生产级别的弹性可伸缩的应用。 那函数计算是什么呢? …
Read More企业随着业务的发展,必然会部署各种各样的IT系统。出于安全性的考虑,一些系统仅可企业内部使用,甚至仅开放给企业部分部门员工使用。 这些IT系统大致可分为两类, 系统本身不支持任何认证机制,例如资讯或文档类系统。需要增加认证保护,能够限制非企业员工访问即可。系统运维通常的做法是,为站点设置HTTP Basic认证保护。由于HTTP Basic认证是通过预设的用户、密码认证,认证信息比较容易泄露。即使定期更换密码,但需要额外的机制通知用户密码的变更,用户体验也不好。 系统自身支持认证,甚至支持多种认证机制。比如最常用的开源CI/CD工具,Jenkins内置支持本地数据库认证、通过插件支持多种第三方系统集成认证。如果大量的IT系统都有一套 …
Read More企业使用公有云服务的第一件事情就是创建云帐号,有了帐号之后如何让企业员工安全合规的使用云帐号下的各种资源是开启云之旅后的第一个考验。 云计算厂商针对企业上云后面临的第一个需求已经推出了完善的解决方案--Identity and Access Management。IAM可以帮助云帐号安全地控制对云计算服务资源的访问。企业可以使用IAM控制对哪个用户进行身份验证 (登录) 和授权 (具有权限) 以使用资源。 云厂商是否提供完善的IAM服务可以作为整体产品解决方案是否成熟的一个衡量指标,比如AWS的IAM和阿里云的访问控制都是较为成熟完善的产品。国内某个以AI能力为卖点的云厂商,在IAM产品方面几乎为零,很难相信对安全合规有需求的企业会 …
Read More