Top Banner
ESGF + DOCKER Luca Cinquini NASA/Jet Propulsion Laboratory + California Ins:tute of Technology ESGF F2F Workshop, Washington, DC, December 2016
11

ESGF + DOCKER · 2018-09-11 · ESGF + DOCKER Luca Cinquini NASA/Jet Propulsion Laboratory + California Ins:tute of Technology ESGF F2F Workshop, Washington, DC, December 2016

Apr 20, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: ESGF + DOCKER · 2018-09-11 · ESGF + DOCKER Luca Cinquini NASA/Jet Propulsion Laboratory + California Ins:tute of Technology ESGF F2F Workshop, Washington, DC, December 2016

ESGF + DOCKER

LucaCinquiniNASA/JetPropulsionLaboratory+CaliforniaIns:tuteofTechnology

ESGFF2FWorkshop,Washington,DC,December2016

Page 2: ESGF + DOCKER · 2018-09-11 · ESGF + DOCKER Luca Cinquini NASA/Jet Propulsion Laboratory + California Ins:tute of Technology ESGF F2F Workshop, Washington, DC, December 2016

DockerinaNutshell

• Dockeristheleading“containeriza:on”technology:runanapplica:onasa“blackbox”onanyDocker-enabledserver‣ Build:imagesarebuiltasbundlesthatincludetheapplica:onitself,allofitsdependencies,and“just-enough-opera:ng-system”‣ Ship:imagesarehostedononlinerepositoriessuchasDockerHub‣ Run:imagesarerunascontainersonanyhostthatincludesaDockerdaemon

•WhyusingDockerforESGF?‣ Promisestogreatlyimproveinstalla:onandmaintenanceofanESGFnode‣ PartofDREAMstrategyformodularizingtheESGFarchitectureandpor:ngittootherdomains

Page 3: ESGF + DOCKER · 2018-09-11 · ESGF + DOCKER Luca Cinquini NASA/Jet Propulsion Laboratory + California Ins:tute of Technology ESGF F2F Workshop, Washington, DC, December 2016

Demo:InstallandRunanESGFNode

• Pre-requisite:installDockerEngineonhost(Linux,MacOSX,Windows)• Instruc:ons:‣ gitcloneh`ps://github.com/ESGF/esgf-docker.git‣ cdesgf-docker‣ exportESGF_HOSTNAME=<hostFQDN>‣ exportESGF_CONFIG=<somedirectory>‣ ./esgf_node_init.sh‣ docker-composeup

h`ps://hub.docker.com/esggub/

h`ps://my-node.esgf.org/

CoG

TDS

Solr

Page 4: ESGF + DOCKER · 2018-09-11 · ESGF + DOCKER Luca Cinquini NASA/Jet Propulsion Laboratory + California Ins:tute of Technology ESGF F2F Workshop, Washington, DC, December 2016

ESGF/DockercompleteNodeArchitecture

• AllESGFservicesarerunasindependent,interac:ngDockercontainers• SpecificNodeconfigura:on(cer:ficates,passwords,XMLfiles)savedin$ESGF_CONFIG• SpecificNodedata(Postgresdb,Solrindexes,TDScatalogs,NetCDFfiles,CoGsitemedia)storedonDockervolumes

• Customnetworksisolateapplica:onsforaddi:onalsecurity(forexample,Postgresdb)

Threads Data Server+ OpenID Relying Party

(Tomcat)

ESGF DATA NODE

ESGF POSTGRES DB

TDS CATALOGS

ESGF CONFIG DATA

ESGF SOLR(Jetty)

SOLR DATA

ESGF CONFIGURATION(site specific)

esgf-search webapp(Tomcat)

ESGF INDEX NODE

ESGF COG

COG DATA

httpd + mod_wsgi

ESGF WEBUI NODE

ESGF IDP NODE

esgf-idp webapp(Tomcat)

ESGF/Docker complete Node Architecture

POSTGRES DATA

ESGF DATA

ESGF FTP

docker-compose-fdocker-compose.ymlup

Page 5: ESGF + DOCKER · 2018-09-11 · ESGF + DOCKER Luca Cinquini NASA/Jet Propulsion Laboratory + California Ins:tute of Technology ESGF F2F Workshop, Washington, DC, December 2016

DockerDetails

Dockerfile:“recipe”forbuildingaDockerimage

docker-compose.yml:configura:onfileforbundlingseveralimages

Page 6: ESGF + DOCKER · 2018-09-11 · ESGF + DOCKER Luca Cinquini NASA/Jet Propulsion Laboratory + California Ins:tute of Technology ESGF F2F Workshop, Washington, DC, December 2016

ESGF/DockerDataNodeArchitecture

docker-compose-fdocker-compose-data-node.ymlup

Threads Data Server+ OpenID Relying Party

(Tomcat)

ESGF DATA NODE

ESGF POSTGRES DB

TDS CATALOGS

ESGF CONFIG DATA

ESGF CONFIGURATION(site specific)

ESGF/Docker Data Node Architecture

POSTGRES DATA

ESGF DATA

ESGF FTP

Page 7: ESGF + DOCKER · 2018-09-11 · ESGF + DOCKER Luca Cinquini NASA/Jet Propulsion Laboratory + California Ins:tute of Technology ESGF F2F Workshop, Washington, DC, December 2016

ESGF/DockerIndexNodeArchitecture

docker-compose-fdocker-compose-index-node.ymlup

UsingstandardSolrreplica:on+distributedsearch

ESGF CONFIG DATA

ESGF SOLR(Jetty)SOLR DATA

ESGF CONFIGURATION(site specific)

esgf-search webapp(Tomcat)

ESGF INDEX NODE

httpd + mod_wsgi

ESGF WEBUI NODE

ESGF/Docker Index Node Architecture

Slave Shard Master Shard

Page 8: ESGF + DOCKER · 2018-09-11 · ESGF + DOCKER Luca Cinquini NASA/Jet Propulsion Laboratory + California Ins:tute of Technology ESGF F2F Workshop, Washington, DC, December 2016

ESGF/DockerIndexNodewithSolrCloud

docker-compose-fdocker-compose-solr-cloud.ymlup

ESGF CONFIG DATA

ESGF SOLR CLOUD(Jetty)SOLR DATA

ESGF CONFIGURATION(site specific)

esgf-search webapp(Tomcat)

ESGF INDEX NODE

httpd + mod_wsgi

ESGF WEBUI NODE

ESGF/Docker Solr Cloud Architecture

Shard 1 Shard 2 Shard 3ESGF SOLR CLOUD

(Jetty)

Shard 1 Shard 2 Shard 3ESGF SOLR CLOUD

(Jetty)

Shard 7 Shard 8 Shard 9

• Solr-Cloudadvantages:‣ Automa:cdistributedindexingandsearching(nocustomconfigura:on)‣ Loadbalancingandhighavailability‣ Faulttolerance‣ Scalability

Page 9: ESGF + DOCKER · 2018-09-11 · ESGF + DOCKER Luca Cinquini NASA/Jet Propulsion Laboratory + California Ins:tute of Technology ESGF F2F Workshop, Washington, DC, December 2016

AdvantagesofusingDockerforESGF

• Installa:on:‣ Installa:onscriptsaremuchmoremodularandmuchsmaller‣ Installa:onprocessismusheasier:simplydownloadtheimages,nocompila:oninvolved‣ Easierupgrades,possiblyonemoduleata:me,andreversible‣ Everybodyrunsexactlythesamesokware

• Architecture:‣ Candefineanddeploynewarchitecturesbysimplywri:ngnewconfigura:onfiles‣ Canintroducenewmodulesbysimplywri:ng&wiringnewimages(solr-cloud,nginx,…)

• Portability:ESGFnodewillrunonanyplanorm(Linux,MacOSx,Windows)includingCloud

• Scalability:modulescanbescaledarbitrarilybyrunningmorecontainers(e.g.TDS,WPS…)‣ Caveat:applica:onmustbewri`entoenabledistributedaccesstodata

• OtherDocker/Swarmadvancedfeatures:‣ Scalabilityontomul:plehostsclusters‣ Highavailability,faulttolerance,rollingupdates,…

Page 10: ESGF + DOCKER · 2018-09-11 · ESGF + DOCKER Luca Cinquini NASA/Jet Propulsion Laboratory + California Ins:tute of Technology ESGF F2F Workshop, Washington, DC, December 2016

DisadvantagesofusingDockerforESGF

•Dockerisanewparadigmforbuildingandrunningapplica:ons:‣ Newknowledgeforapplica:ondevelopers‣ Newtrainingfornodeadministrators‣ Excellentandup-to-datedocumenta:onisamust

•MustporttheremainingESGFmodulestoDocker:‣ ESGFPublisherClient‣ Globus‣MyProxyornewOAuthserver‣ Desktop+Dashboard‣ LAS

•Mustdevelopaprocesstomigrateallapplica:ondata:‣ ESGFPostgresdatabase(usersanddata)‣ TDScatalogs‣ Solrindexes‣ CoGPostgresdatabaseandsitedata

Page 11: ESGF + DOCKER · 2018-09-11 · ESGF + DOCKER Luca Cinquini NASA/Jet Propulsion Laboratory + California Ins:tute of Technology ESGF F2F Workshop, Washington, DC, December 2016

PossibleFutureRoadmap

•Establisha“whaleteam”ofexpertstoworkon:‣ Testthecurrentinfrastructure‣ Porttheremainingmodules‣Workonotheroutstanding:ckets‣ Developates:ngsuite‣ Developdatamigra:ontools‣ Reviseandexpandthedocumenta:on‣ Re-usecurrentesgf-iwtbiweeklymee:ngs?

•Migra:ngtoDockerwouldtake6-12months‣Mustsupportcurrentorupgradedinstalledinthemean:me‣MightwanttoswitchakerCMIP6-lookingintothelong-termlongevityofESGF…