Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Building a SaaS Serverless Cloud on AWS

Building a SaaS Serverless Cloud on AWS

How Neosperience built its 100% serverless architecture?

Aletheia

June 28, 2019
Tweet

More Decks by Aletheia

Other Decks in Technology

Transcript

  1. Best in class customers Consumer Products, Retail & Distribution, Communications

    & Media Financial Services, Travel & Transportation, Government Automotive, Health, Industry & Services Fashion, Luxury & Beauty
  2. what makes every customer unique, them in 1:1 experiences and

    your customer base. Neosperience Cloud Understand Engage Grow
  3. 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
  4. 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
  5. Neosperience Cloud Cloud Understand Engage Grow Neosperience Cloud Services •

    Define Cloud Requirements • One endpoint serves multiple requests • It’s called the monolith
  6. 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
  7. 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
  8. image video conversation relation interaction behavior Personalised Content Proximity Marketing

    Nudging & Gamification Image Personalised Commerce Personalised Advertising Customer Base Channels Customer 
 Generations Search Customer CI / CD
  9. 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
  10. 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
  11. Serverless means no VMs. No under or over provisioning Never

    pay for idle No VM disaster recovery VM OS frameworks code your duty
  12. Serverless means no OS to config. OS is provisioned automatically

    Patches are installed by vendor Built-in best practices OS frameworks code your duty
  13. 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
  14. Serverless means Servicefull. Patrick Debois - 2016 Server VM OS

    frameworks code your duty some one else duty
  15. image video conversation relation interaction behavior Personalised Content Proximity Marketing

    Nudging & Gamification Image Personalised Commerce Personalised Advertising Customer Base Channels Customer 
 Generations Search Customer CI / CD • Move to cloud native adoption • Script cloud resources • Each service has its own persistence • Migrate data models Neosperience Cloud
  16. 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
  17. 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.
  18. Adopting microservices can really make our life as ISV better,

    with a number of benefits Neosperience is a 100% Serverless cloud solution 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 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
  19. “in the past were bigger companies that outcompeted smaller companies

    now are faster companies to outcompete slower companies” — Marc Benioff