1 of 41

JAVASCRIPT On the cloud

See longer with JS@Cloud!

2 of 41

SPEAKER

3 of 41

Who I am

Giorgio Desideri

Work in IT from 2006

4 of 41

introduction

5 of 41

As Developer

I am going to treat you as

6 of 41

As PROGRAMMER

NOT

7 of 41

DIFFERENCES

DEVELOPER

  • Focus on application
  • Requirements understanding
  • Flexible structure of the code
  • Global vision of the application

programmer

  • Focus on coding only
  • Repetitive structures
  • Repetitive syntax
  • Poor vision of the application

8 of 41

agenda

9 of 41

AGENDA

CASE #1 - Security

CASE #2 - Project Architecture

CASE #3 - Serverless

10 of 41

CASE #1

SECURITY

11 of 41

Case #1

  • Login
  • Logout
  • Session Management
  • User Management
  • Tracing Management

12 of 41

Case #1

  • Login
  • Logout
  • Session Management
  • User Management
  • Tracing Management
  • Authentication
  • Authorization
  • Audit

13 of 41

Case #1

SECURITY

  • Login
  • Logout
  • Session Management
  • User Management
  • Tracing Management
  • Authentication
  • Authorization
  • Audit

14 of 41

Case #1

User

User’s BROWSERS

15 of 41

Case #1

User

User’s BROWSERS

16 of 41

Case #1

User

User’s BROWSERS

17 of 41

Case #1

User

User’s BROWSERS

custom

18 of 41

You have to manage

  • Tokens
    • JSON Web Token
  • Keys
    • Digest / Uniqueness
  • Cookies
    • Max-Age / Domains / Secure
  • Custom
    • (tokens | pseudo-keys | chocolate cakes){1,}

19 of 41

Who have to

Manage that ?

20 of 41

  1. you
  2. Giorgio
  3. someone
  4. NONE OF ABOVE

21 of 41

A.C.M.E. SOLUTION

22 of 41

A.C.M.E. SOLUTION

23 of 41

A.C.M.E. integration

24 of 41

A.C.M.E. SOLUTION

Custom (tokens | pseudo-keys | chocolate cakes){1,}

25 of 41

CASE #2

Architecture

26 of 41

Architecture & project structure

Code quality &

Attitude

27 of 41

Case #2

  • Clean Architecture Principles
    • Setting Boundaries
    • Separate Layers
      • Domains / Entities
      • Use-Case / Business Logic
      • Adapters
      • Drivers / Gateways

28 of 41

29 of 41

Gift 4 you

30 of 41

The checklist

31 of 41

Case #2

  • Monolithic or Microservice ?
    • Am I able to draw the Domains ?
      • Are they separated ?
      • Are there some dependencies among them ?
      • Data duplication ?

32 of 41

Case #2

  • Monolithic or Microservice ?
    • How to manage the communication across domains?
      • Sync => Manage as faster as you can
      • Async => Manage as more precise as you can

33 of 41

Case #2

  • Cost of development
    • Phase #1 : Monolithic
    • Phase #2 : Microservice

34 of 41

CASE #3

serverless

35 of 41

Case #3

36 of 41

Case #3

37 of 41

Gift 4 you

38 of 41

The 101

39 of 41

Case #2

  • Serverless
    • Context / Requirement
      • Is Stateless or Stateful ?
      • Is good for Event-driven computation ?

40 of 41

Case #2

  • Testing
    • Test your code not the infrastructure
    • Type
      • Unit Test
      • Business Logic Test
      • Performance test
      • (Integration test){0,1}

41 of 41

QUESTIONS ?