SaaS via a Portal: FutureGateway
Riccardo Bruno INFN
riccardo.bruno@ct.infn.it
Marco Fargetta INFN
marco.fargetta@ct.infn.it
SaaS via a Portal: FutureGateway Riccardo Bruno INFN - - PowerPoint PPT Presentation
SaaS via a Portal: FutureGateway Riccardo Bruno INFN riccardo.bruno@ct.infn.it Marco Fargetta INFN marco.fargetta@ct.infn.it Outline FutureGateway Introduction Implementation ToscaIDC EI Example New applications 2
Riccardo Bruno INFN
riccardo.bruno@ct.infn.it
Marco Fargetta INFN
marco.fargetta@ct.infn.it
FutureGateway
2
FutureGateway
FutureGateway
FutureGateway
5
FutureGateway
6
FutureGateway
contains the necessary information to allow the application to physically access DCI resources.
include many operations ranging from simple batch executions, up to more sophisticated actions like a PaaS creation and exploitation
FutureGateway
FutureGateway
Liferay Portal APIServer FrontEnd/Daemon APIServer FrontEnd/Daemon Community Portal
Portlet Portlet Portlet/WebApp/Web+Ajax
APIServer FrontEnd/Daemon Final Users Mobile&Desktop Apps
Requires (INDIGO) AAI PrivateNet/Firewall/SSL Protection Used by:
Used by:
https://fgw02.ncg.ingrid.pt Used by: Galaxy portlet Desktop Mobile apps (Under test) The portal manages user access to
9
PT PTV
FutureGateway
– Keeps and maintains:
– Accepts API calls in accordance with the defined specifications – Fill-up a queue table of corresponding commands (producer) – Manage authN/Z (users/groups/roles) – Manage Applications and Infrastuctures and Tasks – More front-ends may exist:
fgAPIServe rver (Actual python implementation for FG specs.)
– Polls over queue table (consumer) – Extract tasks to submit and send them to the proper EI – Check status and consistency of submitted tasks – Retrieve available outputs (if any) – More daemons may be developed to address any possible DCI.
APISer erver erDa Daem emon (Actual java implementation)
GUI
API Server front-end
API Server front-end
FutureGateway DB
API Server API Server
…
…
… …
FutureGateway
11
external AAI mechanisms (See: Indigo-IAM and PTV service)
GUI Command
Front-End
AuthN/Z check Process the command Enqueue command
REST
External AAI systems
Prepare response Response Queue
FutureGateway
12
name
specified action on DCI
Queue Command EI name
EI (Action)
Action
APIServerDaemon/Other daemons
FutureGateway
FutureGateway JSAGA Adaptors Grid and Cloud Engine (GridEngine) TOSCA 2nd EI (ToscaIDC) Other Interfaces … (…) JSAGA SSH EMI/gLite rOCCI TOSCA Distributed Computing Infrastructures TOSCA Orchestrator Mid Layer Components
DB Interface
APIServer DB (fgapiserver)
Queue table (as_queue)
APIServer (APIServerDaemon) APIServer frontend (fgAPIServer)
Executor Interfaces Graphic User Interfaces (Web, Mobile and Desktop applications) REST APIs – APIServer specs. V1.0 rOCCI CLI EMI/gLite APIs ganymed-ssh-2
FutureGateway
with specs defined at: http://docs.csgfapis.apiary.io/#reference
– Standalone service (Normally under a screen section) (Good for development environments or small requests traffic rate) – WSGI application (Suggested for production environments and high requests traffic rate)
– Tasks, Applications and Infrastructure with its related data – Users/Groups/Roles, Log and Access tokens – The task queue
15
FutureGateway
– The Java application was necessary since JSAGA is available only via java language – Initially developed to offer a backward compatibility with existing CSGF portal
– Polling timing and other settings can be configured by a dedicated .properties file – APIServerDaemon reads tasks requests from the queue, book them as ‘to process’ and then instruct the correct executor interface for real processing
– It re-tries failed requests up to a fixed amount of times. FAILED requests can be reported to the administrator – It timely verifies tasks status until their termination; then retrieve task output and updates the DB tables accordingly
16
FutureGateway
FutureGateway
– EM EMI/gL gLite(*), Globus, SSH SSH(*) , OCCI OCCI (*), UNICORE, Bes Genesis II, Arc, Dirac
policies
depending on the kind of used adaptor
cloud-engine/tree/FutureGateway (Dedicated branch for the FutureGateway)
(*)Tested and used with FutureGateway
FutureGateway
PaaSes resources
– Endpoint accessible through the indigo IAM
– A yaml based template file describing the used PaaS resources – A JSON file containing specific values for template variables
{ "parameters": { "param_1": "value_1", "param_2": "value_2”, … } }
resources allocation or use the allocated PaaS to execute software
FutureGateway
FutureGateway
# ToscaIDC properties file # PTV configuration # PTV may be required in case FG uses this AAI mechanism fgapisrv_ptvendpoint= http://localhost:8889 fgapisrv_ptvuser = tokenver_user fgapisrv_ptvpass = *************
21
webapps/APIServerDaemon/WEB-INF/classes/it/infn/ct/ToscaIDC.properties
get-tok
FutureGateway Portal Token Validation (PTV)
verif ifie ies and ge get Tokens
– Base64 encoded username/password to access the service – PTV settings are configurable in API Server Front-end
– Ve Verfiy an an inc ncoming ng token n ‘check-to token en’
configurable mapping file
– Ge Get a new tok
iven subje bject (AAI User) ‘ge get-to token en’
– Liferay7 module available on Git at https://github.com/indigo-dc/LiferayIAM – Another PTV implementation are available such MD use case (python)
FutureGateway
+----------+----------+------------------+--------------------------------------------------------+-------+ | infra_id | param_id | pname | pvalue | pdesc | +----------+----------+------------------+--------------------------------------------------------+-------+ | 7 | 1 | tosca_endpoint | http://localhost:8889/orchestrator/deployments | NULL | | 7 | 2 | tosca_template | tosca_template.yaml | NULL | | 7 | 3 | tosca_parameters | params=parameters.json | NULL | +----------+----------+------------------+--------------------------------------------------------+-------+
Stored infrastructure parameters
23
two input files:
parameter ‘tosca_template’ (yaml)
‘parameters.json’
its REST APIs
‘tosca_endpoint’ parameter
{ "description": "${INFRADESC}", "parameters": [ { "name": "tosca_endpoint", "value": "${TOSCA_ENDPOINT}" }, { "name": "tosca_template", "value": "tosca_template.yaml" }, { "name": "tosca_parameters", "value": "params=parameters.json" } ], "enabled": true, "virtual": false, "name": "${INFRANAME}" }
Infrastructure setup:
FutureGateway
FutureGateway
FutureGateway
FutureGateway
FutureGateway
FutureGateway
FutureGateway
30