© 2016 Autodesk
Alan Williams
@alanwill alanwill
What's better than Microservices?
Serverless Microservices
Apigee/AWS Webinar
 Definitions
 Sample Architecture
 Demo
 Decision Making Considerations
Agenda
"Microservices is a software architecture style in which
complex applications are composed of small, independent
processes communicating with each other using language-
agnostic APIs."
from Wikipedia
What is a Microservice?
 Event based
 API
 Discreet tasks/services/processes
 Independently scalable
Microservice Attributes
"…serverless computing is a cloud computing code execution
model in which the cloud provider fully manages starting
and stopping virtual machines as necessary to serve
requests, and requests are billed by an abstract measure of
the resources required to satisfy the request, rather than per
virtual machine, per hour."
from Wikipedia
What is Serverless?
 Code focused
 No servers to manage
 No EC2
 No manual scaling or server provisioning
 No idle resources
 No SSH (or RDP)
Serverless Attributes
EC2
SSH
Serveless Microservice Architecture
Email sent
to user
User
talr-cla
talr-configtalr-cloudtrail
talr-accountinfo
talr-vpc
talr-notify
talr-cla-response
talr-directconnect
talr-director
talr-validator
talr-cfn-response
talr-taskstatus
POST /account
POST /directconnect
AWS Lambda function
- Application Logic
AWS SNS Topic
- Asynchronous notifications
AWS DynamoDB Table
- Datastore
Apigee
- API Proxy
AWS SES
- Outbound Email
Legend
talr-cbinfo
talr-receptionist talr-interrogator
talr-inquirer
talr-cla-request
GET /account
GET /{service}
POST /cloudtrail POST /config POST /vpc
talr-dispatch-request
talr-notify-request
DDB event
Server Architecture
Auto scaling Group
User
talr-cbinfo
POST /account
talr-receptionist
talr-accountinfo
Auto scaling Group
talr-cla
Auto scaling Group
talr-director
AWS Lambda function
- Application Logic
AWS DynamoDB Table
- Datastore
Apigee
- API Proxy
Legend
AWS EC2
- Compute
AWS ELB
- Load Balancing
 Support for Node.js
 Also Serverless
 Focused on connectors & light-weight API orchestrations
Apigee Limitations
 Limited debugging & profiling
 Not polyglot
 Not recommended for complex business logic
 Not a generic event processor
Apigee Edge Proxies
Demo
https://github.com/alanwill/serverless-demo
Technology Toolkit
Software URL Languages
AWS Lambda https://aws.amazon.com/lambda/ Python/Node.js/Java
Serverless
Framework
http://serverless.com/ Python/Node.js
Apigee a127 https://github.com/apigee-127/a127 Node.js
Swagger http://swagger.io/ JSON/YAML
 Supports all AWS Lambda languages
 Other public cloud providers coming soon
 Local function testing
 View function logs
 Resource dependencies via Cloudformation
 Complete service encapsulation
 Node.js based
 Never need the AWS Management Console or CLI
Serverless Framework
Serverless Containers
Code Deployments ✔️ ✔️
No Servers ️✔️
Persistent Workloads ✔️
Event Based
Workloads
✔️
3rd Party Applications ✔️
Considerations…
Application Development Evolution
Amazon API Gateway Apigee Edge
API proxy ✔️ ✔️
Seamless integration
with AWS services
✔️
Short Learning Curve ✔️
Oauth Provider ✔️
Request Tracing ✔️
Caching ✔️ ✔️
Rate Limiting ✔️ ✔️
Swagger Support ✔️ ✔️
Auto-scaling Features ✔️ ✔️
Serverless Friendly ✔️ ✔️
Considerations…
 Learn a programming language (Node.js/Python/Java)
 Check out Serverless Framework
 Start small, start simple
 Focus on value add
Keys to success
Autodesk and the Autodesk logo are registered trademarks or trademarks of Autodesk, Inc., and/or its subsidiaries and/or affiliates in the USA and/or other countries. All other brand
names, product names, or trademarks belong to their respective holders. Autodesk reserves the right to alter product and services offerings, and specifications and pricing at any time
without notice, and is not responsible for typographical or graphical errors that may appear in this document.
© 2016 Autodesk. All rights reserved.

What's better than Microservices? Serverless Microservices

  • 1.
    © 2016 Autodesk AlanWilliams @alanwill alanwill What's better than Microservices? Serverless Microservices Apigee/AWS Webinar
  • 2.
     Definitions  SampleArchitecture  Demo  Decision Making Considerations Agenda
  • 3.
    "Microservices is asoftware architecture style in which complex applications are composed of small, independent processes communicating with each other using language- agnostic APIs." from Wikipedia What is a Microservice?
  • 4.
     Event based API  Discreet tasks/services/processes  Independently scalable Microservice Attributes
  • 5.
    "…serverless computing isa cloud computing code execution model in which the cloud provider fully manages starting and stopping virtual machines as necessary to serve requests, and requests are billed by an abstract measure of the resources required to satisfy the request, rather than per virtual machine, per hour." from Wikipedia What is Serverless?
  • 6.
     Code focused No servers to manage  No EC2  No manual scaling or server provisioning  No idle resources  No SSH (or RDP) Serverless Attributes EC2 SSH
  • 7.
    Serveless Microservice Architecture Emailsent to user User talr-cla talr-configtalr-cloudtrail talr-accountinfo talr-vpc talr-notify talr-cla-response talr-directconnect talr-director talr-validator talr-cfn-response talr-taskstatus POST /account POST /directconnect AWS Lambda function - Application Logic AWS SNS Topic - Asynchronous notifications AWS DynamoDB Table - Datastore Apigee - API Proxy AWS SES - Outbound Email Legend talr-cbinfo talr-receptionist talr-interrogator talr-inquirer talr-cla-request GET /account GET /{service} POST /cloudtrail POST /config POST /vpc talr-dispatch-request talr-notify-request DDB event
  • 8.
    Server Architecture Auto scalingGroup User talr-cbinfo POST /account talr-receptionist talr-accountinfo Auto scaling Group talr-cla Auto scaling Group talr-director AWS Lambda function - Application Logic AWS DynamoDB Table - Datastore Apigee - API Proxy Legend AWS EC2 - Compute AWS ELB - Load Balancing
  • 9.
     Support forNode.js  Also Serverless  Focused on connectors & light-weight API orchestrations Apigee Limitations  Limited debugging & profiling  Not polyglot  Not recommended for complex business logic  Not a generic event processor Apigee Edge Proxies
  • 10.
  • 11.
    Technology Toolkit Software URLLanguages AWS Lambda https://aws.amazon.com/lambda/ Python/Node.js/Java Serverless Framework http://serverless.com/ Python/Node.js Apigee a127 https://github.com/apigee-127/a127 Node.js Swagger http://swagger.io/ JSON/YAML
  • 12.
     Supports allAWS Lambda languages  Other public cloud providers coming soon  Local function testing  View function logs  Resource dependencies via Cloudformation  Complete service encapsulation  Node.js based  Never need the AWS Management Console or CLI Serverless Framework
  • 14.
    Serverless Containers Code Deployments✔️ ✔️ No Servers ️✔️ Persistent Workloads ✔️ Event Based Workloads ✔️ 3rd Party Applications ✔️ Considerations…
  • 15.
  • 17.
    Amazon API GatewayApigee Edge API proxy ✔️ ✔️ Seamless integration with AWS services ✔️ Short Learning Curve ✔️ Oauth Provider ✔️ Request Tracing ✔️ Caching ✔️ ✔️ Rate Limiting ✔️ ✔️ Swagger Support ✔️ ✔️ Auto-scaling Features ✔️ ✔️ Serverless Friendly ✔️ ✔️ Considerations…
  • 18.
     Learn aprogramming language (Node.js/Python/Java)  Check out Serverless Framework  Start small, start simple  Focus on value add Keys to success
  • 19.
    Autodesk and theAutodesk logo are registered trademarks or trademarks of Autodesk, Inc., and/or its subsidiaries and/or affiliates in the USA and/or other countries. All other brand names, product names, or trademarks belong to their respective holders. Autodesk reserves the right to alter product and services offerings, and specifications and pricing at any time without notice, and is not responsible for typographical or graphical errors that may appear in this document. © 2016 Autodesk. All rights reserved.

Editor's Notes

  • #13 A127 – directory structure, swagger editor Lambda console – show serverless function Edge Console – proxy editor, add more policies, logging Serverless – create function, deploy function