产品战略专家梁宁确认出席AICon北京站,分享AI时代下的商业逻辑与产品需求 了解详情
写点什么

Autodesk 无服务器微服务架构样例

  • 2016-08-23
  • 本文字数:1049 字

    阅读完需:约 3 分钟

在题为“什么比微服务更好?无服务器微服务”的网络直播中,Alan Williams(Autodesk)、Asha Chakrabarty(Amazon)和 Alan Ho(Apigee)讨论了一个无服务器微服务的架构。其中,该微服务的构建使用了 AWS lambda 函数和运行在 AWS 上的 Apigee 端点。

据 Chakrabarty 介绍,无服务器是一种相对比较新的架构风格,其中的计算单元不是虚拟机,而是一个封装了待执行代码(事件触发)的函数。Williams 指出,无状态计算模型的主要特点是:“代码为主(code focused)”、没有需要管理的服务器、没有需要配置和管理的 EC2 实例、无需人工扩展、没有空闲资源、没有 SSH 或 RDP。

下图简单地描述了一个由 Autodesk 实现的无服务器微服务的架构(点击查看大图):

该微服务有多个入口点作为 HTTP 端点(由 Apigee 管理)暴露。用户发起一个 HTTP 调用,并不知道其请求会由一个无服务器微服务提供服务。该服务由多个 Python 编写的 lambda 函数组成,这些函数之间通过 AWS SNS 异步通知进行通信。Lambda 函数是相互独立的,可以使用不同的语言开发,可以由不同的团队维护。

由于 lambda 不是短期的,所以它们需要将状态在某个地方持久化,其中一个选择是使用 DynamoDB 表。这些表的访问通过 IAM 角色控制,并且仅限于那些需要对它们进行读 / 写访问的函数。这可以避免将不需要的数据暴露给某个 lambda 函数,如果存在安全漏洞的话,这还可以缩小微服务的攻击面。Autodesk 之所以选择使用 DynamoDB 存储状态,是因为它简单,可以将数据作为 JSON 传递,不需要管理一个服务器实例,并且支持自动向上扩展。

上图底部的 DynamoDB 表(talr-taskstatus)将来自多个 lambda 函数的状态持久化,并在表被修改时产生流式事件。这些事件由另一个 lambda 函数监控(talr-validator),它会在必要时采取行动。

对于在 AWS 上实现一个无服务器架构,Williams 列举了如下好处。

  • 敏捷性:只需数周就可以实现。
  • 不需要管理基础设施,无需 EC2 或 ELB 实例,不需要打安全补丁。
  • 开发人员只需专注于他们编写的代码。
  • 通过无服务器框架管理代码的能力。
  • 成本。根据他们的经验,运行 lambda 解决方案的成本只是传统云解决方案的一小部分(约 1%)。由于不需要雇佣运维人员配置和监控 EC2 和 ELB 实例,所以成本还会进一步降低。

Williams 还提到,无服务器架构不适合运行长期工作负载或者第三方应用程序。在那些情况下,他认为容器更合适。

本次直播还展示了如何在 AWS 上通过无服务器框架组织代码、部署和运行演示程序。

查看英文原文: A Sample Serverless Microservice Architecture from Autodesk

2016-08-23 19:002504
用户头像

发布了 1008 篇内容, 共 390.0 次阅读, 收获喜欢 344 次。

关注

评论

发布
暂无评论
发现更多内容

JavaScript进阶(三)模块化

Augus

JavaScript 9月日更

中秋节如何拍月亮

卢卡多多

9月日更

网络攻防学习笔记 Day140

穿过生命散发芬芳

9月日更 网站安全基础

惊掉下巴!这本Alibaba百万年薪必备—高性能架构路线震撼出世!

Java 编程 程序员 架构 计算机

阿里巴巴最新最全800道Java后端面试大全(值得收藏)

Java 程序员 编程语言 java面试 java架构

什么是数据粒度

奔向架构师

数据仓库 9月日更

autojs自动化框架简介

IT蜗壳-Tango

9月日更

linux之fping命令

入门小站

Linux

在线JSON转jsdoc工具

入门小站

工具

博睿数据 短信服务监测解决方案专场直播

博睿数据

即时通讯系统架构设计-如何设计一款WhatsApp

OpenIM

【优化技术专题】「温故而知新」基于Quartz系列的任务调度框架的动态化任务实现分析

洛神灬殇

Java quartz 任务调度 9月日更

耗时大半个月收整全套「Java架构进阶pdf」没白费,Github上点赞破十万!

Java 程序员 面试 计算机 金九银十

CSS交互动画指南之transition

devpoint

CSS css3 transform 引航计划 9月日更

【Vuex 源码学习】第六篇 - Vuex 的模块收集

Brave

源码 vuex 9月日更

小小感悟

Nydia

Node 编码规范 -努力做得更好

Geek_25b8d1

node.js Node 规范

【LeetCode】回文链表Java题解

Albert

算法 LeetCode 9月日更

Prometheus 2.22.0 新特性

耳东@Erdong

Prometheus 9月日更

探索:北鲲云超算平台能否应用于中医药行业

北鲲云

别把云原生想复杂了

dinstone

微服务 云原生 云平台

权威报告显示:BATH坐稳中国四朵云

科技热闻

数据结构与算法:缓存置换算法

正向成长

LRU 置换算法

产品分析:谁是利益相关者?

石云升

产品经理 9月日更

Android 上的 Kotlin 协程

Changing Lin

9月日更

译文:为什么超链接是蓝色的?(一)

姬翔

【直播预告】阿里云服务网格 ASM 产品易用性改善实践与思考

阿里巴巴云原生

阿里云 云原生

JVM 内存模型学习笔记(二)

风翱

JVM 9月日更

Java“锁”事

中原银行

Java 中原银行

汽车行业的进化秘诀,竟在这座智慧出行乐园中……

脑极体

边缘使用 K8s 门槛太高?OpenYurt 这个功能帮你快速搭建集群!

阿里巴巴云原生

阿里云 云原生 边缘计算

Autodesk无服务器微服务架构样例_架构_Abel Avram_InfoQ精选文章