Durante i laboratori pratici, gli esperti AWS ti mostrano quali strumenti aiutano a sviluppare le applicazioni Serverless in locale e nel cloud AWS e ti aiuteranno a programmare i prossimi passi per iniziare ad utilizzare questa tecnologia nella tua azienda.
11. what makes every customer unique,
them in 1:1 experiences
and your customer base.
Neosperience Cloud
Understand
Engage
Grow
12. How delivers digital experience innovation
Increase customer engagement
• Tailor storytelling and call-to-action
• Grow the value of the customer
• Suggest the most suitable products
and services
• Accelerate on-boarding and increase
conversions
• Generate recurring revenues, evolving
loyalty into membership
• Send personalized notifications
• Delight the customer with gamification
• Make digital experiences come alive in
extended reality
• Nudge advocacy
01
Listen to customers
across channels
02
Deliver relevant
experiences at scale
03
Transform prospects
into customers for life
Neosperience Cloud allows to create personalized, relevant experiences that strengthen
the relationship with the customer across touchpoints: web, app, platforms, point of sale
The first digital experience
platform to establish empathic
relationships with customers
that takes into account their
uniqueness.
A set of application modules
condensing multi-disciplinary
skills: data scientists,
designers, software architects,
cognitive, behavioral and social
psychologists, to unleash your
brand’s potential.
Understand
Engage
Grow
Neosperience Cloud
17. Any complex platform implements a set of different requirements
Different requirements
• Deep Learning models
• Integrating with 3rd party products
• Different data types to persist
• Need for speed and scalability
• Team communication has a lot of friction: IT operation and dev teams
20. Neosperience ( 2008 — 2012 )
The age of the monolith
• Multi-region deploy of SpringMVC / Java on Apache
Tomcat / JBoss
• Shared RDS database managed by Hibernate
• Autoscaling group for EC2 instances, Elastic IP
Pros
✓ Everything within a single package
✓ Simple CI workflow
✓ Easy services coordination
Cons
- Lifecycle: one change in code requires a full release of
Neosperience
- Scalability / Costs: planning autoscale for different
usages is not easy
- Everything is a REST endpoint
21. Neosperience Cloud
Cloud
Understand
Engage
Grow
image video conversation relation interaction behavior
Personalised
Content
Proximity
Marketing
Nudging &
Gamification
Image
Personalised
Commerce
Personalised
Advertising
Customer Base Channels
• Start separating concerns
• Every component has the
same technological stack
• Define interfaces between
components
• It’s called microservices
23. Neosperience ( 2012 — 2015 )
Separation of concerns
• Spring Boot/Cloud on Java Stack
• Docker image for each service within NGINX
• DynamoDB used as façade towards clients
• RDS managed through Spring Data
• Coordination service (Module Manager)
Pros
✓ Smaller services, same technology for everything
✓ Immutable deployments: from CI to Docker registry
✓ Easy services coordination
Cons
- Still paying for idle (database, instances)
- Manual provisioning of resources (through Beanstalk)
- Everything is a REST endpoint
27. Serverless means no servers.
No hardware to provision or manage
No IT service team installing hardware
But still it’s someone else server
Server
VM
OS
frameworks
code
your duty
29. Serverless means no VMs.
No under or over provisioning
Never pay for idle
No VM disaster recovery
VM
OS
frameworks
code
your duty
30. no patch to install.no OS to config.Serverless means
31. Serverless means no OS to config.
OS is provisioned automatically
Patches are installed by vendor
Built-in best practices OS
frameworks
code
your duty
33. Serverless means no schedulers.
Code is invoked by platform
Language support is packed within runtime
Analytics are provided out of the box
frameworks
code
your duty
37. Neosperience ( 2015 — now )
Here comes Serverless
• Triggers to Lambda functions
• Each service defines its own persistence
• Communication is handled through Kinesis
• Immutable deployments
Pros
✓ Many small packages
✓ Extremely fast release cycles (smaller changes)
✓ No servers to manage (woot-woot)
✓ Scalability at its best / Cost reduction
✓ There is no difference between dev/stage/
production
Cons
- Required a shift in team perspective towards
software development (there is no one size fits
all architecture)
- Expensive when utilization close to 100%
- No support for dedicated hardware
38. Some key points we had to address while moving to Serverless and microservices.
The questions we faced
How micro is a microservice?
Decompose your system into domain specific computing units using Domain Driven Development (DDD)
Do we want to reinvent the wheel?
AWS provides a variety of managed services that can ease out software development, reducing time to market of orders of
magnitude. Every time we had to implement a new functionality we asked ourselves whether there was an AWS service for
that.
How to deal with the outside world?
Neosperience is a B2B2C ISV vendor. Our product can be used SaaS by companies or integrated through API. We need to
rely on web standards REST and OAuth2
How about vendor lock-in?
Serverless does not lock you in. Data does. But it’s the same with languages, tools or frameworks.
39. Business Domain Support
✓17 different business domains
✓5-10 microservices each domain
✓a dozen of support services (monitoring, maintenance,
OAuth2, Organization, multi-tenancy, etc.)
Serverless
✓100% Serverless except for ML model training
Lambda Functions
✓200+ functions
AWS Resources
✓400+ AWS resources
✓managed through a 15+ CloudFormation stacks
Adopting microservices can really make our life as ISV better, with a number of benefits
Neosperience is a 100% Serverless cloud solution
Time to market
✓improved from months to weeks
✓business features released every sprint
✓technical features released multiple times a week
Costs
✓reduced by an order of magnitude
Team
✓developers provision cloud resources
✓innovation in encouraged, failure impact is bounded
✓shifted from running after business requirements to
waiting for business requirements
Happiness
! Dev Team has full control on delivery
! Business Team has feature delivery
40. “in the past were bigger companies that
outcompeted smaller companies
now are faster companies
to outcompete slower companies”
— Marc Benioff
64. AWS Lambda
• Run code without provisioning or managing
servers
• Pay only for the compute time you consume
• Virtually any type of application or backend service
• Zero administration
• Trigger from other AWS services or call it directly
from any web or mobile app
66. Anatomy of a Lambda function
Handler() function
Function to be executed
upon invocation
Event object
Data sent during Lambda
function Invocation
Context object
Methods available to
interact with runtime
information (request ID,
log group, more)
import json
def lambda_handler(event, context):
# TODO implement
return {
'statusCode': 200,
'body': json.dumps('Hello World!')
}
81. New Workloads on AWS Lambda
Large File
Data manipulation
Large Scale
Media Processing
AI/ML
Analytics
Realtime
applications
High Res Images
HD Videos
Zip/Archives
Git
MXNet
TensorFlow
Content Management
Web apps
Simplify Application Architecture
Process files of any size
Reduce Costs
85. Lambda Runtime API
Bring any Linux compatible language runtime
Powered by new Runtime API - Codifies the
runtime calling conventions and integration points
At launch, custom runtimes powering Ruby
support in AWS Lambda, more runtimes from
partners (like Erlang)
Custom runtimes distributed as “layers”
Rule
Stack
155. Our workshop after the break
• We will build an API using the CDK.
• The full manual and code samples can be found at
https://cdkworkshop.com/
• As requirements, install the following;
• The AWS CDK CLI
• VS Code or any code editor with highlighting
• Choose your favourite programming language (TypeScript, Python, .NET, Java)