SlideShare a Scribd company logo
XVA Web Platform
Demo & Architecture
Agenda
• Enterprise Web Application Architecture
– Classical model
– Distributed architecture
• XVA Platform
Enterprise Web Application
Architecture
• Our organisation today
Organisation
TEAM 1 TEAM 3TEAM 2 TEAM 4
HTML 5 Project
- Features
- Modules
- …
HTML 5 Project
- Features
- Modules
- …
HTML 5 Project
- Features
- Modules
- …
HTML 5 Project
- Features
- Modules
- …
Enterprise Web Application
Architecture
• Classical model
– 1 big repository
– 1 build
– Difficult to share code
– Difficult to release or patch
– Difficult to maintain
– Difficult to scale
– Load everything at the same time
Could lead to spaghetti code!
Server Application (Apache Node IIS)
Features
Libraries
CSS
…
Enterprise Web Application
Architecture
• What’s a single page Web App?
– 1 HTML page that needs to be loaded and hosted on a
server (Apache, node, IIS, JBoss…)
– It loads a bunch of static files
• Scripts
• CSS
• Resources
– And talks to a backend API
Enterprise Web Application
Architecture
• Towards a new approach
– A tiny server application
– All static files in a CDN
APIAPI API
CDN
- Static files
Server Application
-load the default
page
Enterprise Web Application
Architecture
• Distributed architecture
– Each module is loaded on request.
Default
HTML Page
App A Module
App B Module
App C Module
Component 1
Module
Component 2
Module
Component 3
Module
CDNServer
Enterprise Web Application
Architecture
• Distributed architecture
– 1 small server Application hosted independently
– Everything else is a module.
• Modules are built, tested, versioned, and released
independently
• Have their own repository
• Can be swapped with another or mocked
• Can be shared and reused in other projects
Enterprise Web Application
Architecture
• Distributed architecture
– Pros
• Far more scalable
• More collaborative
• Easier to release
• Higher code quality and test coverage
• Easier to maintain, as smaller repository
• Faster builds
• Better performance as modules are loaded on request
– Cons
• More builds to setup in Jenkins, TeamCity…
• More Server to maintain, Server app and CDN
• More modules to keep track of
• More repositories to maintain and work on
The XVA Platform
• A distributed architecture composed of the following
– NodeJs application called CVAPlatform
– CDN
• xva-packages-conf
• xva-app-explorer
• xva-counterPartyViewer
• xva-workflowViewer
• xva-chart
• xva-grid
• xva-event-emitter
• xva-socket
• xva-utils
• …
– A REST Api – built with WebApi 2.0
The XVA Platform
• CVAPlatform
• Load the index page
• The index page loads requireJs and the app-bootstrap file
• And when ready, call the xva-app-explorer
The XVA Platform
• On load, the app-bootstrap
– gets the environment config from the xva-packages-
conf module
– then, the require paths are transformed, ie:
• "xva-app-explorer":"{cdnUrl}xva-app-explorer/{version}/xva-app-explorer{debugOrMin}"
• "xva-app-explorer": “http://dev/xva-app-explorer/1.0.2/xva-app-explorer.debug”
– and the xva-app-explorer module is called.
• Page loaded, the app is ready to use
– The xva-app-explorer can LAZY loads all other apps.
The XVA Platform
• How it works for all our environments?
– xva-packages-conf
• Set the module version used on each environments
• Assets are released on the CDN in CDN/xva-packages-conf/latest
• Latest is the only version of this module!
– xva-applications-conf
• Choose which applications is accessible per environments
"uat":{
"xva-event-emitter" : "1.0.0",
"xva-utils": "1.0",
"xva-grid": "1.0.0",
"xva-chart": "1.0.1",
"xva-socket": "1.0.6",
"xva-identity": "1.0.0",
"xva-router": "1.0.8",
"xva-app-explorer": "1.0.9",
"xva-libraries": "1.0.0",
"xva-counterPartyViewer": "1.0.5",
"xva-workflowViewer": "1.0.2",
…
},
"development":{
"xva-event-emitter" : "latest",
"xva-utils": "latest",
"xva-grid": "latest",
"xva-chart": "latest",
"xva-socket": "latest",
"xva-identity": "latest",
"xva-router": "latest",
"xva-app-explorer": "latest",
"xva-libraries": "latest",
"xva-counterPartyViewer": "latest",
"xva-workflowViewer": "latest",
…
},
The XVA Platform
CDN
Xva-packages-conf
Latest
Xva-app-explorer
Latest 1.0.1
Xva-counterPartyViewer
Latest 1.0.1 1.0
Xva-workflowViewer
Latest 1.0.1 1.0
Xva-grid
Latest 0.0.8 0.0.7
Xva-chart
Latest 0.0.5 0.0.4
DEV Server
CVAPlatform
Require
Paths
WebApi Workflow
Services
Database
UAT Server
CVAPlatform
Require
Paths
WebApi Workflow
Services
Database
Production Server
CVAPlatform
Require
Paths
WebApi Workflow
Services
Database
The XVA Platform
• Continuous Integration & Delivery
– Grunt
• Runs JsHint on each JS files
• Runs Less compilation
• Runs the r.js optimizer to build a debug and a minified version of each module
• Runs the Karma, jasmine, unit tests
• Runs grunt-bump to release a new version of the package (ONLY the publish
Job on our integration server runs it)
– Assets (debug, min, and map files) are copied to the CDN
(CDN/Module/version/), either in latest or in the specified version
– Once the package is released, just change the xva-packages-conf, to
update the version and see the changes on the desired environment
The XVA Platform
• On our local environment
– Pull the nodeJs module (CVAPlatform)
– Load every modules from the CDN
– Except for the ones in our override file,
dependencies.json
The XVA Platform
• Pros
– Very scalable
– What you see is what is loaded
– Sharable
– Fast and easy to release
– Developers have limited access to the code
• Cons
– Common library version for every modules
• ie one module can’t load angular 1.3 and another, angular
1.1
Our Vision of Tomorrow
Organisation
TEAM 1 TEAM 3TEAM 2 TEAM 4
T1-greatComponent
T4-module
T2-utilsComponent
T3-ReactApp
T4-App
T3-module
T2-AppT1-superApp
T1-superApp2
Common Server
Application
Contribute
Own
Use
Thank You!

More Related Content

What's hot

Olivier_Tisserand_projects
Olivier_Tisserand_projectsOlivier_Tisserand_projects
Olivier_Tisserand_projects
Olivier Tisserand
 
Le novità di sql server 2019
Le novità di sql server 2019Le novità di sql server 2019
Le novità di sql server 2019
Gianluca Hotz
 
Build 2014 - Running Java and Oracle Applications on Microsoft Azure
Build 2014 - Running Java and Oracle Applications on Microsoft AzureBuild 2014 - Running Java and Oracle Applications on Microsoft Azure
Build 2014 - Running Java and Oracle Applications on Microsoft Azure
Brian Benz
 
Camel oneactivemq posta-final
Camel oneactivemq posta-finalCamel oneactivemq posta-final
Camel oneactivemq posta-final
Christian Posta
 
2015 deploying flash in the data center
2015 deploying flash in the data center2015 deploying flash in the data center
2015 deploying flash in the data center
Howard Marks
 
CloudStack Hyderabad Meetup: How the Apache community works
CloudStack Hyderabad Meetup: How the Apache community worksCloudStack Hyderabad Meetup: How the Apache community works
CloudStack Hyderabad Meetup: How the Apache community works
CloudStack - Open Source Cloud Computing Project
 
Azure PaaS databases
Azure PaaS databasesAzure PaaS databases
Azure PaaS databases
Gianluca Hotz
 
Oow2016 review-13th october 2016
Oow2016 review-13th october 2016Oow2016 review-13th october 2016
Roll your own FOSS cloud hosting
Roll your own FOSS cloud hostingRoll your own FOSS cloud hosting
Roll your own FOSS cloud hosting
Russell Searle
 
Un problème 10 solutions : Azure Fighter
Un problème 10 solutions : Azure FighterUn problème 10 solutions : Azure Fighter
Un problème 10 solutions : Azure Fighter
felixbillon
 
Making Cloudy Peanut Butter Cups: Apache CloudStack + Riak CS
Making Cloudy Peanut Butter Cups: Apache CloudStack + Riak CSMaking Cloudy Peanut Butter Cups: Apache CloudStack + Riak CS
Making Cloudy Peanut Butter Cups: Apache CloudStack + Riak CS
John Burwell
 
Migrating Enterprise BI to Azure
Migrating Enterprise BI to AzureMigrating Enterprise BI to Azure
Migrating Enterprise BI to Azure
Wlodek Bielski
 
Getting Started with Apache CloudStack
Getting Started with Apache CloudStackGetting Started with Apache CloudStack
Getting Started with Apache CloudStack
Joe Brockmeier
 
DevOps with ActiveMQ, Camel, Fabric8, and HawtIO
DevOps with ActiveMQ, Camel, Fabric8, and HawtIO DevOps with ActiveMQ, Camel, Fabric8, and HawtIO
DevOps with ActiveMQ, Camel, Fabric8, and HawtIO
Christian Posta
 
Zarafa SummerCamp 2012 - Steve Hardy Friday Keynote
Zarafa SummerCamp 2012 - Steve Hardy Friday KeynoteZarafa SummerCamp 2012 - Steve Hardy Friday Keynote
Zarafa SummerCamp 2012 - Steve Hardy Friday Keynote
Zarafa
 
Lessons from database failures
Lessons from database failuresLessons from database failures
Lessons from database failures
Colin Charles
 
MariaDB Server & MySQL Security Essentials 2016
MariaDB Server & MySQL Security Essentials 2016MariaDB Server & MySQL Security Essentials 2016
MariaDB Server & MySQL Security Essentials 2016
Colin Charles
 
Using AWS CloudFormation for AWS Multi-AZ VPC Deployment
Using AWS CloudFormation for AWS Multi-AZ VPC DeploymentUsing AWS CloudFormation for AWS Multi-AZ VPC Deployment
Using AWS CloudFormation for AWS Multi-AZ VPC Deployment
Santanu Dey
 
oracle openworld review UX presentation 2016
oracle openworld review UX presentation 2016oracle openworld review UX presentation 2016
oracle openworld review UX presentation 2016
Getting value from IoT, Integration and Data Analytics
 
MVC 6 - the new unified Web programming model
MVC 6 - the new unified Web programming modelMVC 6 - the new unified Web programming model
MVC 6 - the new unified Web programming model
Alex Thissen
 

What's hot (20)

Olivier_Tisserand_projects
Olivier_Tisserand_projectsOlivier_Tisserand_projects
Olivier_Tisserand_projects
 
Le novità di sql server 2019
Le novità di sql server 2019Le novità di sql server 2019
Le novità di sql server 2019
 
Build 2014 - Running Java and Oracle Applications on Microsoft Azure
Build 2014 - Running Java and Oracle Applications on Microsoft AzureBuild 2014 - Running Java and Oracle Applications on Microsoft Azure
Build 2014 - Running Java and Oracle Applications on Microsoft Azure
 
Camel oneactivemq posta-final
Camel oneactivemq posta-finalCamel oneactivemq posta-final
Camel oneactivemq posta-final
 
2015 deploying flash in the data center
2015 deploying flash in the data center2015 deploying flash in the data center
2015 deploying flash in the data center
 
CloudStack Hyderabad Meetup: How the Apache community works
CloudStack Hyderabad Meetup: How the Apache community worksCloudStack Hyderabad Meetup: How the Apache community works
CloudStack Hyderabad Meetup: How the Apache community works
 
Azure PaaS databases
Azure PaaS databasesAzure PaaS databases
Azure PaaS databases
 
Oow2016 review-13th october 2016
Oow2016 review-13th october 2016Oow2016 review-13th october 2016
Oow2016 review-13th october 2016
 
Roll your own FOSS cloud hosting
Roll your own FOSS cloud hostingRoll your own FOSS cloud hosting
Roll your own FOSS cloud hosting
 
Un problème 10 solutions : Azure Fighter
Un problème 10 solutions : Azure FighterUn problème 10 solutions : Azure Fighter
Un problème 10 solutions : Azure Fighter
 
Making Cloudy Peanut Butter Cups: Apache CloudStack + Riak CS
Making Cloudy Peanut Butter Cups: Apache CloudStack + Riak CSMaking Cloudy Peanut Butter Cups: Apache CloudStack + Riak CS
Making Cloudy Peanut Butter Cups: Apache CloudStack + Riak CS
 
Migrating Enterprise BI to Azure
Migrating Enterprise BI to AzureMigrating Enterprise BI to Azure
Migrating Enterprise BI to Azure
 
Getting Started with Apache CloudStack
Getting Started with Apache CloudStackGetting Started with Apache CloudStack
Getting Started with Apache CloudStack
 
DevOps with ActiveMQ, Camel, Fabric8, and HawtIO
DevOps with ActiveMQ, Camel, Fabric8, and HawtIO DevOps with ActiveMQ, Camel, Fabric8, and HawtIO
DevOps with ActiveMQ, Camel, Fabric8, and HawtIO
 
Zarafa SummerCamp 2012 - Steve Hardy Friday Keynote
Zarafa SummerCamp 2012 - Steve Hardy Friday KeynoteZarafa SummerCamp 2012 - Steve Hardy Friday Keynote
Zarafa SummerCamp 2012 - Steve Hardy Friday Keynote
 
Lessons from database failures
Lessons from database failuresLessons from database failures
Lessons from database failures
 
MariaDB Server & MySQL Security Essentials 2016
MariaDB Server & MySQL Security Essentials 2016MariaDB Server & MySQL Security Essentials 2016
MariaDB Server & MySQL Security Essentials 2016
 
Using AWS CloudFormation for AWS Multi-AZ VPC Deployment
Using AWS CloudFormation for AWS Multi-AZ VPC DeploymentUsing AWS CloudFormation for AWS Multi-AZ VPC Deployment
Using AWS CloudFormation for AWS Multi-AZ VPC Deployment
 
oracle openworld review UX presentation 2016
oracle openworld review UX presentation 2016oracle openworld review UX presentation 2016
oracle openworld review UX presentation 2016
 
MVC 6 - the new unified Web programming model
MVC 6 - the new unified Web programming modelMVC 6 - the new unified Web programming model
MVC 6 - the new unified Web programming model
 

Similar to XVA Web Platform

Sas 2015 event_driven
Sas 2015 event_drivenSas 2015 event_driven
Sas 2015 event_driven
Sascha Möllering
 
Vert.X and MSA - DevOps
Vert.X and MSA - DevOpsVert.X and MSA - DevOps
Vert.X and MSA - DevOps
YongHyuk Lee
 
WSO2 Application Server
WSO2 Application ServerWSO2 Application Server
WSO2 Application Server
Sagara Gunathunga
 
Directions for CloudStack Networking
Directions for CloudStack  NetworkingDirections for CloudStack  Networking
Directions for CloudStack Networking
Chiradeep Vittal
 
The Future of SDN in CloudStack by Chiradeep Vittal
The Future of SDN in CloudStack by Chiradeep VittalThe Future of SDN in CloudStack by Chiradeep Vittal
The Future of SDN in CloudStack by Chiradeep Vittal
buildacloud
 
The challenge of application distribution - Introduction to Docker (2014 dec ...
The challenge of application distribution - Introduction to Docker (2014 dec ...The challenge of application distribution - Introduction to Docker (2014 dec ...
The challenge of application distribution - Introduction to Docker (2014 dec ...
Sébastien Portebois
 
321 codeincontainer brewbox
321 codeincontainer brewbox321 codeincontainer brewbox
321 codeincontainer brewbox
Lino Telera
 
AWS as platform for scalable applications
AWS as platform for scalable applicationsAWS as platform for scalable applications
AWS as platform for scalable applications
Roman Gomolko
 
Openstack presentation
Openstack presentationOpenstack presentation
Openstack presentation
Sankalp Jain
 
Serverless brewbox
Serverless   brewboxServerless   brewbox
Serverless brewbox
Lino Telera
 
Apache Kafka 0.8 basic training - Verisign
Apache Kafka 0.8 basic training - VerisignApache Kafka 0.8 basic training - Verisign
Apache Kafka 0.8 basic training - Verisign
Michael Noll
 
Being Ready for Apache Kafka - Apache: Big Data Europe 2015
Being Ready for Apache Kafka - Apache: Big Data Europe 2015Being Ready for Apache Kafka - Apache: Big Data Europe 2015
Being Ready for Apache Kafka - Apache: Big Data Europe 2015
Michael Noll
 
IBM InterConnect 2015 - IIB in the Cloud
IBM InterConnect 2015 - IIB in the CloudIBM InterConnect 2015 - IIB in the Cloud
IBM InterConnect 2015 - IIB in the Cloud
Andrew Coleman
 
Linux containers and docker
Linux containers and dockerLinux containers and docker
Linux containers and docker
Fabio Fumarola
 
Short-Training asp.net vNext
Short-Training asp.net vNextShort-Training asp.net vNext
Short-Training asp.net vNext
Betclic Everest Group Tech Team
 
A closer look to locaweb IaaS
A closer look to locaweb IaaSA closer look to locaweb IaaS
A closer look to locaweb IaaS
Gleicon Moraes
 
Cloud Foundry Summit Europe 2018 - Deveveloper Experience with Cloud Foundry ...
Cloud Foundry Summit Europe 2018 - Deveveloper Experience with Cloud Foundry ...Cloud Foundry Summit Europe 2018 - Deveveloper Experience with Cloud Foundry ...
Cloud Foundry Summit Europe 2018 - Deveveloper Experience with Cloud Foundry ...
Neven Cvetković
 
2 Linux Container and Docker
2 Linux Container and Docker2 Linux Container and Docker
2 Linux Container and Docker
Fabio Fumarola
 
Intro Docker october 2013
Intro Docker october 2013Intro Docker october 2013
Intro Docker october 2013
dotCloud
 
從劍宗到氣宗 - 談AWS ECS與Serverless最佳實踐
從劍宗到氣宗  - 談AWS ECS與Serverless最佳實踐從劍宗到氣宗  - 談AWS ECS與Serverless最佳實踐
從劍宗到氣宗 - 談AWS ECS與Serverless最佳實踐
Pahud Hsieh
 

Similar to XVA Web Platform (20)

Sas 2015 event_driven
Sas 2015 event_drivenSas 2015 event_driven
Sas 2015 event_driven
 
Vert.X and MSA - DevOps
Vert.X and MSA - DevOpsVert.X and MSA - DevOps
Vert.X and MSA - DevOps
 
WSO2 Application Server
WSO2 Application ServerWSO2 Application Server
WSO2 Application Server
 
Directions for CloudStack Networking
Directions for CloudStack  NetworkingDirections for CloudStack  Networking
Directions for CloudStack Networking
 
The Future of SDN in CloudStack by Chiradeep Vittal
The Future of SDN in CloudStack by Chiradeep VittalThe Future of SDN in CloudStack by Chiradeep Vittal
The Future of SDN in CloudStack by Chiradeep Vittal
 
The challenge of application distribution - Introduction to Docker (2014 dec ...
The challenge of application distribution - Introduction to Docker (2014 dec ...The challenge of application distribution - Introduction to Docker (2014 dec ...
The challenge of application distribution - Introduction to Docker (2014 dec ...
 
321 codeincontainer brewbox
321 codeincontainer brewbox321 codeincontainer brewbox
321 codeincontainer brewbox
 
AWS as platform for scalable applications
AWS as platform for scalable applicationsAWS as platform for scalable applications
AWS as platform for scalable applications
 
Openstack presentation
Openstack presentationOpenstack presentation
Openstack presentation
 
Serverless brewbox
Serverless   brewboxServerless   brewbox
Serverless brewbox
 
Apache Kafka 0.8 basic training - Verisign
Apache Kafka 0.8 basic training - VerisignApache Kafka 0.8 basic training - Verisign
Apache Kafka 0.8 basic training - Verisign
 
Being Ready for Apache Kafka - Apache: Big Data Europe 2015
Being Ready for Apache Kafka - Apache: Big Data Europe 2015Being Ready for Apache Kafka - Apache: Big Data Europe 2015
Being Ready for Apache Kafka - Apache: Big Data Europe 2015
 
IBM InterConnect 2015 - IIB in the Cloud
IBM InterConnect 2015 - IIB in the CloudIBM InterConnect 2015 - IIB in the Cloud
IBM InterConnect 2015 - IIB in the Cloud
 
Linux containers and docker
Linux containers and dockerLinux containers and docker
Linux containers and docker
 
Short-Training asp.net vNext
Short-Training asp.net vNextShort-Training asp.net vNext
Short-Training asp.net vNext
 
A closer look to locaweb IaaS
A closer look to locaweb IaaSA closer look to locaweb IaaS
A closer look to locaweb IaaS
 
Cloud Foundry Summit Europe 2018 - Deveveloper Experience with Cloud Foundry ...
Cloud Foundry Summit Europe 2018 - Deveveloper Experience with Cloud Foundry ...Cloud Foundry Summit Europe 2018 - Deveveloper Experience with Cloud Foundry ...
Cloud Foundry Summit Europe 2018 - Deveveloper Experience with Cloud Foundry ...
 
2 Linux Container and Docker
2 Linux Container and Docker2 Linux Container and Docker
2 Linux Container and Docker
 
Intro Docker october 2013
Intro Docker october 2013Intro Docker october 2013
Intro Docker october 2013
 
從劍宗到氣宗 - 談AWS ECS與Serverless最佳實踐
從劍宗到氣宗  - 談AWS ECS與Serverless最佳實踐從劍宗到氣宗  - 談AWS ECS與Serverless最佳實踐
從劍宗到氣宗 - 談AWS ECS與Serverless最佳實踐
 

XVA Web Platform

  • 1. XVA Web Platform Demo & Architecture
  • 2. Agenda • Enterprise Web Application Architecture – Classical model – Distributed architecture • XVA Platform
  • 3. Enterprise Web Application Architecture • Our organisation today Organisation TEAM 1 TEAM 3TEAM 2 TEAM 4 HTML 5 Project - Features - Modules - … HTML 5 Project - Features - Modules - … HTML 5 Project - Features - Modules - … HTML 5 Project - Features - Modules - …
  • 4. Enterprise Web Application Architecture • Classical model – 1 big repository – 1 build – Difficult to share code – Difficult to release or patch – Difficult to maintain – Difficult to scale – Load everything at the same time Could lead to spaghetti code! Server Application (Apache Node IIS) Features Libraries CSS …
  • 5. Enterprise Web Application Architecture • What’s a single page Web App? – 1 HTML page that needs to be loaded and hosted on a server (Apache, node, IIS, JBoss…) – It loads a bunch of static files • Scripts • CSS • Resources – And talks to a backend API
  • 6. Enterprise Web Application Architecture • Towards a new approach – A tiny server application – All static files in a CDN APIAPI API CDN - Static files Server Application -load the default page
  • 7. Enterprise Web Application Architecture • Distributed architecture – Each module is loaded on request. Default HTML Page App A Module App B Module App C Module Component 1 Module Component 2 Module Component 3 Module CDNServer
  • 8. Enterprise Web Application Architecture • Distributed architecture – 1 small server Application hosted independently – Everything else is a module. • Modules are built, tested, versioned, and released independently • Have their own repository • Can be swapped with another or mocked • Can be shared and reused in other projects
  • 9. Enterprise Web Application Architecture • Distributed architecture – Pros • Far more scalable • More collaborative • Easier to release • Higher code quality and test coverage • Easier to maintain, as smaller repository • Faster builds • Better performance as modules are loaded on request – Cons • More builds to setup in Jenkins, TeamCity… • More Server to maintain, Server app and CDN • More modules to keep track of • More repositories to maintain and work on
  • 10. The XVA Platform • A distributed architecture composed of the following – NodeJs application called CVAPlatform – CDN • xva-packages-conf • xva-app-explorer • xva-counterPartyViewer • xva-workflowViewer • xva-chart • xva-grid • xva-event-emitter • xva-socket • xva-utils • … – A REST Api – built with WebApi 2.0
  • 11. The XVA Platform • CVAPlatform • Load the index page • The index page loads requireJs and the app-bootstrap file • And when ready, call the xva-app-explorer
  • 12. The XVA Platform • On load, the app-bootstrap – gets the environment config from the xva-packages- conf module – then, the require paths are transformed, ie: • "xva-app-explorer":"{cdnUrl}xva-app-explorer/{version}/xva-app-explorer{debugOrMin}" • "xva-app-explorer": “http://dev/xva-app-explorer/1.0.2/xva-app-explorer.debug” – and the xva-app-explorer module is called. • Page loaded, the app is ready to use – The xva-app-explorer can LAZY loads all other apps.
  • 13. The XVA Platform • How it works for all our environments? – xva-packages-conf • Set the module version used on each environments • Assets are released on the CDN in CDN/xva-packages-conf/latest • Latest is the only version of this module! – xva-applications-conf • Choose which applications is accessible per environments "uat":{ "xva-event-emitter" : "1.0.0", "xva-utils": "1.0", "xva-grid": "1.0.0", "xva-chart": "1.0.1", "xva-socket": "1.0.6", "xva-identity": "1.0.0", "xva-router": "1.0.8", "xva-app-explorer": "1.0.9", "xva-libraries": "1.0.0", "xva-counterPartyViewer": "1.0.5", "xva-workflowViewer": "1.0.2", … }, "development":{ "xva-event-emitter" : "latest", "xva-utils": "latest", "xva-grid": "latest", "xva-chart": "latest", "xva-socket": "latest", "xva-identity": "latest", "xva-router": "latest", "xva-app-explorer": "latest", "xva-libraries": "latest", "xva-counterPartyViewer": "latest", "xva-workflowViewer": "latest", … },
  • 14. The XVA Platform CDN Xva-packages-conf Latest Xva-app-explorer Latest 1.0.1 Xva-counterPartyViewer Latest 1.0.1 1.0 Xva-workflowViewer Latest 1.0.1 1.0 Xva-grid Latest 0.0.8 0.0.7 Xva-chart Latest 0.0.5 0.0.4 DEV Server CVAPlatform Require Paths WebApi Workflow Services Database UAT Server CVAPlatform Require Paths WebApi Workflow Services Database Production Server CVAPlatform Require Paths WebApi Workflow Services Database
  • 15. The XVA Platform • Continuous Integration & Delivery – Grunt • Runs JsHint on each JS files • Runs Less compilation • Runs the r.js optimizer to build a debug and a minified version of each module • Runs the Karma, jasmine, unit tests • Runs grunt-bump to release a new version of the package (ONLY the publish Job on our integration server runs it) – Assets (debug, min, and map files) are copied to the CDN (CDN/Module/version/), either in latest or in the specified version – Once the package is released, just change the xva-packages-conf, to update the version and see the changes on the desired environment
  • 16. The XVA Platform • On our local environment – Pull the nodeJs module (CVAPlatform) – Load every modules from the CDN – Except for the ones in our override file, dependencies.json
  • 17. The XVA Platform • Pros – Very scalable – What you see is what is loaded – Sharable – Fast and easy to release – Developers have limited access to the code • Cons – Common library version for every modules • ie one module can’t load angular 1.3 and another, angular 1.1
  • 18. Our Vision of Tomorrow Organisation TEAM 1 TEAM 3TEAM 2 TEAM 4 T1-greatComponent T4-module T2-utilsComponent T3-ReactApp T4-App T3-module T2-AppT1-superApp T1-superApp2 Common Server Application Contribute Own Use