SlideShare a Scribd company logo
1 of 17
CLOUD-ENABLING A COLLABORATIVE
RESEARCH PLATFORM
THE GABBS STORY
Rajesh Kalyanam, Robert Campbell, Derrick Kearney, Leif Delgass, Larry
Biehl, Lan Zhao, Carolyn Ellis, Carol Song
Purdue University
I have historical
data on sub-
Saharan maize
yields
I’d love to use that
historical data in my
model predicting the
effect of climate
change on yields
I used the maize
yield data in my
thesis, how do I
cite it?
RESEARCH COLLABORATION LANDSCAPE
SCIENCE GATEWAYS
• Website for a scientific research community
• User, data, & content management
 Data sharing, access control
 Data processing, visualization, publication
 Wiki, static web pages, ticketing system
• Research tools
 Tool creation and web deployment
 Optional HPC resource availability
and more…
GEOSPATIAL DATA ANALYSIS BUILDING BLOCKS
Data Management
 Data sharing
 Geospatial
metadata
extraction
 Geospatial data
discovery (search)
 Data publication
Visualization
 Geospatial preview
 Diverse data format
overlays
 Visualization library
and control widgets
 Hardware and
software rendering
Computation
 Geospatial data
transformation
 Subset extraction
 Extended metadata
capture
 GIS-enabled
workflows
GABBs provides these domain-specific capabilities for
geospatial science gateways
GABBS SYSTEM ARCHITECTURE
• Based on HUBzero
cyberinfrastructure framework
• Containerized tools are web-
accessible via VNC
• Scalable, external
compute/render servers
 Support tool sessions
 Provide hardware and
software rendering
• represent
GABBs enhancements to
HUBzero
Blue blocks
WHY CLOUD ENABLE ?
Easily scalable
Increasingly adopted
by academia and
industry
Automatable,
repeatable solutions
even for lay-users
Offload physical
resource
maintenance,
provisioning to cloud
service provider
Software packages as
a byproduct, enabling
manual installation
MOVING GABBS TO THE CLOUD
GPU Render Server
• OSGEarth
rendering software
• Default base maps
Data Storage Server
• iRODS server software
• PostgreSQL database
• iRODS microservices
 Metadata
extraction
 Hub search
indexing
 Geospatial
preview
• GeoServer map server
HUBzero Web Host
• GABBs-HUBzero
integration software
• GABBs hub tools/libraries
and dependencies
 MultiSpec
 pyMapLib
 GeoBuilder
• iRODS FUSE mount
Hub server DNS/IP
iRODS server
DNS/IP
MOVING GABBS TO THE CLOUD
• Utilize Amazon Web Services (AWS)
 Vanilla HUBzero already available on AWS
• Provision other compute/storage servers
 iRODS + GeoServer
 Render server with appropriate hardware
• Setup installation/configuration of necessary
software and server interconnects
SOME AWS CONSIDERATIONS
• Each server (EC2 instance) requires a base machine
image (AMI)
• AMIs cannot contain hardcoded administrator
usernames, passwords
• Network security considerations
 Servers require unrestricted traffic between them
• Fully automated software installation at boot-up
rather than requiring user interaction
AWS CLOUDFORMATION
• Simplifies provisioning of AWS resources
• Automatable software installation &
configuration on boot-up
• User-specified parameters enable dynamic
configuration
• Resource reference enables DNS/IP queries
• Declarative template via JSON/YAML files
AWS CLOUDFORMATION TEMPLATE
Parameters: { gabbsUser: {
Default: gabbs,
Description: Username for iRODS connection,
Type: String,
MinLength: 1,
MaxLength: 41,
AllowedPattern : [a-zA-Z0-9]*
},
Resources: {
HUBZERO: {
Type: AWS::EC2::Instance,
Properties: {
ImageId: <ami-hubzero>,
InstanceType: <instance-type>,
SecurityGroups: [gabbsSG]}
},
UserData: {
#!/bin/bash
yum –y install irods-client
/tmp/update-irods-connection.sh
{Fn::GetAtt:[IRODS,PublicDnsName
]}
{Ref: gabbsUser}
…
}
Metadata: {
AWS::CloudFormation::Init: {
config: {
packages: {
rpm: {
repo: <gabbs-repo-url>}}}}
IRODS: {
Type: AWS::EC2::Instance,
Properties: {
ImageId: <ami-centos>
…
Reference user
parameter
Required
properties
Software
installation/configuration
shell script run on
boot-up
Automatic package
installation
via cloud-init
Reference
resource
property
CLOUDFORMATION ISSUES
INTERLEAVED DEPLOYMENT AND CONFIGURATION
HUBZERO: {
UserData: {
#!/bin/bash
/tmp/update-irods-connection.sh
{Fn::GetAtt:[IRODS,PublicDnsName]}
IRODS: {
UserData: {
#!/bin/bash
/tmp/update-hub-solr-connection.sh
{Fn::GetAtt:[HUBZERO,PublicDnsName]
}
• Resource reference forces deployment ordering
• UserData, cloud-init not separable from actual resource
provisioning
• Gives rise to cyclic dependency above
• Resource considered “created” before UserData is done
 HUBzero UserData may begin execution before iRODS server user setup is
done
CLOUDFORMATION ISSUES
INTERLEAVED DEPLOYMENT AND CONFIGURATION
• Solving cyclic dependency
 Decide on an ordering (iRODS before HUBzero)
 Configure HUBzero DNS in iRODS later via HUBzero
UserData
• Ensuring UserData completion before next resource
deployment
 Utilize AWS WaitCondition to force resource dependencies
 WaitCondition considered “created” only when signalled
 Signal WaitCondition at end of UserData script
CLOUDFORMATION ISSUES
SHARED PARAMETERS
HUBZERO: {
UserData: {
#!/bin/bash
/tmp/update-irods-connection.sh
{Fn::GetAtt:[IRODS,PublicDnsName]}
{"Ref": "gabbsUser"}
IRODS: {
UserData: {
#!/bin/bash
/tmp/add-irods-user.sh
{"Ref": "gabbsUser"}
• HUBzero needs to setup connection to iRODS server, after
iRODS has created a new service user
 Username required during deployment of both servers
• Cannot be hardcoded into AMIs
CLOUDFORMATION ISSUES
SHARED PARAMETERS
• Solving shared (dynamic) parameter requirement
 Use CloudFormation parameters
 User prompted to fill in value
 Cannot default to random value (only hardcoded defaults
supported)
 Necessitates explaining (ideally behind-the-scenes)
parameters
CONCLUSION & FUTURE WORK
• Current CloudFormation Template:
https://mygeohub.org/groups/gabbs/release
• Employ AutoScaling to scale up render servers and
tool execution servers on demand
• Provide configuration flexibility in CloudFormation
template
• Utilize configuration management tools like Chef,
Puppet to streamline server types and software
installation
ACKNOWLEDGEMENTS
This work was supported by the NSF Award ACI - 1261727
CIF21 DIBBs : Integrating Geospatial Capabilities into
HUBzero

More Related Content

What's hot

Puppetpreso
PuppetpresoPuppetpreso
Puppetpreso
ke4qqq
 

What's hot (20)

Automating Your Microsoft Azure Environment (DevLink 2014)
Automating Your Microsoft Azure Environment (DevLink 2014)Automating Your Microsoft Azure Environment (DevLink 2014)
Automating Your Microsoft Azure Environment (DevLink 2014)
 
Inside Azure Diagnostics (DevLink 2014)
Inside Azure Diagnostics (DevLink 2014)Inside Azure Diagnostics (DevLink 2014)
Inside Azure Diagnostics (DevLink 2014)
 
Azure Hd insigth news
Azure Hd insigth newsAzure Hd insigth news
Azure Hd insigth news
 
Azure Data Storage
Azure Data StorageAzure Data Storage
Azure Data Storage
 
The Essentials of Building Cloud-Based Web Apps with Azure
The Essentials of Building Cloud-Based Web Apps with AzureThe Essentials of Building Cloud-Based Web Apps with Azure
The Essentials of Building Cloud-Based Web Apps with Azure
 
Puppetpreso
PuppetpresoPuppetpreso
Puppetpreso
 
More Cache for Less Cash (DevLink 2014)
More Cache for Less Cash (DevLink 2014)More Cache for Less Cash (DevLink 2014)
More Cache for Less Cash (DevLink 2014)
 
From SQL to MongoDB
From SQL to MongoDBFrom SQL to MongoDB
From SQL to MongoDB
 
Windows Azure Storage – Architecture View
Windows Azure Storage – Architecture ViewWindows Azure Storage – Architecture View
Windows Azure Storage – Architecture View
 
Cloud Storage in Azure, AWS and Google Cloud
Cloud  Storage in Azure, AWS and Google CloudCloud  Storage in Azure, AWS and Google Cloud
Cloud Storage in Azure, AWS and Google Cloud
 
MongoDB in the Middle of a Hybrid Cloud and Polyglot Persistence Architecture
MongoDB in the Middle of a Hybrid Cloud and Polyglot Persistence ArchitectureMongoDB in the Middle of a Hybrid Cloud and Polyglot Persistence Architecture
MongoDB in the Middle of a Hybrid Cloud and Polyglot Persistence Architecture
 
Azure CosmosDB
Azure CosmosDBAzure CosmosDB
Azure CosmosDB
 
Windows Azure Virtual Machines
Windows Azure Virtual MachinesWindows Azure Virtual Machines
Windows Azure Virtual Machines
 
Microsoft Azure Veri Servisleri
Microsoft Azure Veri ServisleriMicrosoft Azure Veri Servisleri
Microsoft Azure Veri Servisleri
 
Clocker and OpenStack
Clocker and OpenStackClocker and OpenStack
Clocker and OpenStack
 
Node.js on Windows Azure
Node.js on Windows AzureNode.js on Windows Azure
Node.js on Windows Azure
 
Jax Cloud 2016 Microsoft Ignite Recap
Jax Cloud 2016 Microsoft Ignite RecapJax Cloud 2016 Microsoft Ignite Recap
Jax Cloud 2016 Microsoft Ignite Recap
 
Deep dive into azure virtual machines
Deep dive into azure virtual machinesDeep dive into azure virtual machines
Deep dive into azure virtual machines
 
Living on the edge at Netflix - Adrian Cole
Living on the edge at Netflix - Adrian ColeLiving on the edge at Netflix - Adrian Cole
Living on the edge at Netflix - Adrian Cole
 
Azure Storage
Azure StorageAzure Storage
Azure Storage
 

Similar to PEARC17: Cloud-enabling a Collaborative Research Platform: The GABBs Story

Similar to PEARC17: Cloud-enabling a Collaborative Research Platform: The GABBs Story (20)

Introduction to Azure SQL DB
Introduction to Azure SQL DBIntroduction to Azure SQL DB
Introduction to Azure SQL DB
 
Best Practices for couchDB developers on Microsoft Azure
Best Practices for couchDB developers on Microsoft AzureBest Practices for couchDB developers on Microsoft Azure
Best Practices for couchDB developers on Microsoft Azure
 
Securing the Hadoop Ecosystem
Securing the Hadoop EcosystemSecuring the Hadoop Ecosystem
Securing the Hadoop Ecosystem
 
Head in the clouds
Head in the cloudsHead in the clouds
Head in the clouds
 
Secure Hadoop clusters on Windows platform
Secure Hadoop clusters on Windows platformSecure Hadoop clusters on Windows platform
Secure Hadoop clusters on Windows platform
 
What are clouds made from
What are clouds made fromWhat are clouds made from
What are clouds made from
 
Azure full
Azure fullAzure full
Azure full
 
Microservices in Azure
Microservices in AzureMicroservices in Azure
Microservices in Azure
 
Deploying Big-Data-as-a-Service (BDaaS) in the Enterprise
Deploying Big-Data-as-a-Service (BDaaS) in the EnterpriseDeploying Big-Data-as-a-Service (BDaaS) in the Enterprise
Deploying Big-Data-as-a-Service (BDaaS) in the Enterprise
 
Microservices in Azure
Microservices in AzureMicroservices in Azure
Microservices in Azure
 
Pieter de Bruin (Microsoft) - Welke technologie gebruiken bij implementatie M...
Pieter de Bruin (Microsoft) - Welke technologie gebruiken bij implementatie M...Pieter de Bruin (Microsoft) - Welke technologie gebruiken bij implementatie M...
Pieter de Bruin (Microsoft) - Welke technologie gebruiken bij implementatie M...
 
Achieving Infrastructure Portability with Chef
Achieving Infrastructure Portability with ChefAchieving Infrastructure Portability with Chef
Achieving Infrastructure Portability with Chef
 
KoprowskiT_session1_SDNEvent_WASDforBeginners
KoprowskiT_session1_SDNEvent_WASDforBeginnersKoprowskiT_session1_SDNEvent_WASDforBeginners
KoprowskiT_session1_SDNEvent_WASDforBeginners
 
Kudu voodoo slideshare
Kudu voodoo   slideshareKudu voodoo   slideshare
Kudu voodoo slideshare
 
Perth Azure Usergroup Build 2018 updates
Perth Azure Usergroup Build 2018 updatesPerth Azure Usergroup Build 2018 updates
Perth Azure Usergroup Build 2018 updates
 
The world with Cloud, Big Data, ML, IoT and AI
The world with Cloud, Big Data, ML, IoT and AIThe world with Cloud, Big Data, ML, IoT and AI
The world with Cloud, Big Data, ML, IoT and AI
 
Hadoop in the Cloud – The What, Why and How from the Experts
Hadoop in the Cloud – The What, Why and How from the ExpertsHadoop in the Cloud – The What, Why and How from the Experts
Hadoop in the Cloud – The What, Why and How from the Experts
 
Migrating On-Premises DBs to Cloud Systems
Migrating On-Premises DBs to Cloud SystemsMigrating On-Premises DBs to Cloud Systems
Migrating On-Premises DBs to Cloud Systems
 
Hadoop Security Architecture
Hadoop Security ArchitectureHadoop Security Architecture
Hadoop Security Architecture
 
Amazon AWS vs Azure Cloud vs Kubernetes
Amazon AWS vs Azure Cloud vs KubernetesAmazon AWS vs Azure Cloud vs Kubernetes
Amazon AWS vs Azure Cloud vs Kubernetes
 

Recently uploaded

Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Recently uploaded (20)

MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
JohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptxJohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptx
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....
TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....
TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....
 
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Simplifying Mobile A11y Presentation.pptx
Simplifying Mobile A11y Presentation.pptxSimplifying Mobile A11y Presentation.pptx
Simplifying Mobile A11y Presentation.pptx
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Less Is More: Utilizing Ballerina to Architect a Cloud Data Platform
Less Is More: Utilizing Ballerina to Architect a Cloud Data PlatformLess Is More: Utilizing Ballerina to Architect a Cloud Data Platform
Less Is More: Utilizing Ballerina to Architect a Cloud Data Platform
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Introduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDMIntroduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDM
 

PEARC17: Cloud-enabling a Collaborative Research Platform: The GABBs Story

  • 1. CLOUD-ENABLING A COLLABORATIVE RESEARCH PLATFORM THE GABBS STORY Rajesh Kalyanam, Robert Campbell, Derrick Kearney, Leif Delgass, Larry Biehl, Lan Zhao, Carolyn Ellis, Carol Song Purdue University
  • 2. I have historical data on sub- Saharan maize yields I’d love to use that historical data in my model predicting the effect of climate change on yields I used the maize yield data in my thesis, how do I cite it? RESEARCH COLLABORATION LANDSCAPE
  • 3. SCIENCE GATEWAYS • Website for a scientific research community • User, data, & content management  Data sharing, access control  Data processing, visualization, publication  Wiki, static web pages, ticketing system • Research tools  Tool creation and web deployment  Optional HPC resource availability and more…
  • 4. GEOSPATIAL DATA ANALYSIS BUILDING BLOCKS Data Management  Data sharing  Geospatial metadata extraction  Geospatial data discovery (search)  Data publication Visualization  Geospatial preview  Diverse data format overlays  Visualization library and control widgets  Hardware and software rendering Computation  Geospatial data transformation  Subset extraction  Extended metadata capture  GIS-enabled workflows GABBs provides these domain-specific capabilities for geospatial science gateways
  • 5. GABBS SYSTEM ARCHITECTURE • Based on HUBzero cyberinfrastructure framework • Containerized tools are web- accessible via VNC • Scalable, external compute/render servers  Support tool sessions  Provide hardware and software rendering • represent GABBs enhancements to HUBzero Blue blocks
  • 6. WHY CLOUD ENABLE ? Easily scalable Increasingly adopted by academia and industry Automatable, repeatable solutions even for lay-users Offload physical resource maintenance, provisioning to cloud service provider Software packages as a byproduct, enabling manual installation
  • 7. MOVING GABBS TO THE CLOUD GPU Render Server • OSGEarth rendering software • Default base maps Data Storage Server • iRODS server software • PostgreSQL database • iRODS microservices  Metadata extraction  Hub search indexing  Geospatial preview • GeoServer map server HUBzero Web Host • GABBs-HUBzero integration software • GABBs hub tools/libraries and dependencies  MultiSpec  pyMapLib  GeoBuilder • iRODS FUSE mount Hub server DNS/IP iRODS server DNS/IP
  • 8. MOVING GABBS TO THE CLOUD • Utilize Amazon Web Services (AWS)  Vanilla HUBzero already available on AWS • Provision other compute/storage servers  iRODS + GeoServer  Render server with appropriate hardware • Setup installation/configuration of necessary software and server interconnects
  • 9. SOME AWS CONSIDERATIONS • Each server (EC2 instance) requires a base machine image (AMI) • AMIs cannot contain hardcoded administrator usernames, passwords • Network security considerations  Servers require unrestricted traffic between them • Fully automated software installation at boot-up rather than requiring user interaction
  • 10. AWS CLOUDFORMATION • Simplifies provisioning of AWS resources • Automatable software installation & configuration on boot-up • User-specified parameters enable dynamic configuration • Resource reference enables DNS/IP queries • Declarative template via JSON/YAML files
  • 11. AWS CLOUDFORMATION TEMPLATE Parameters: { gabbsUser: { Default: gabbs, Description: Username for iRODS connection, Type: String, MinLength: 1, MaxLength: 41, AllowedPattern : [a-zA-Z0-9]* }, Resources: { HUBZERO: { Type: AWS::EC2::Instance, Properties: { ImageId: <ami-hubzero>, InstanceType: <instance-type>, SecurityGroups: [gabbsSG]} }, UserData: { #!/bin/bash yum –y install irods-client /tmp/update-irods-connection.sh {Fn::GetAtt:[IRODS,PublicDnsName ]} {Ref: gabbsUser} … } Metadata: { AWS::CloudFormation::Init: { config: { packages: { rpm: { repo: <gabbs-repo-url>}}}} IRODS: { Type: AWS::EC2::Instance, Properties: { ImageId: <ami-centos> … Reference user parameter Required properties Software installation/configuration shell script run on boot-up Automatic package installation via cloud-init Reference resource property
  • 12. CLOUDFORMATION ISSUES INTERLEAVED DEPLOYMENT AND CONFIGURATION HUBZERO: { UserData: { #!/bin/bash /tmp/update-irods-connection.sh {Fn::GetAtt:[IRODS,PublicDnsName]} IRODS: { UserData: { #!/bin/bash /tmp/update-hub-solr-connection.sh {Fn::GetAtt:[HUBZERO,PublicDnsName] } • Resource reference forces deployment ordering • UserData, cloud-init not separable from actual resource provisioning • Gives rise to cyclic dependency above • Resource considered “created” before UserData is done  HUBzero UserData may begin execution before iRODS server user setup is done
  • 13. CLOUDFORMATION ISSUES INTERLEAVED DEPLOYMENT AND CONFIGURATION • Solving cyclic dependency  Decide on an ordering (iRODS before HUBzero)  Configure HUBzero DNS in iRODS later via HUBzero UserData • Ensuring UserData completion before next resource deployment  Utilize AWS WaitCondition to force resource dependencies  WaitCondition considered “created” only when signalled  Signal WaitCondition at end of UserData script
  • 14. CLOUDFORMATION ISSUES SHARED PARAMETERS HUBZERO: { UserData: { #!/bin/bash /tmp/update-irods-connection.sh {Fn::GetAtt:[IRODS,PublicDnsName]} {"Ref": "gabbsUser"} IRODS: { UserData: { #!/bin/bash /tmp/add-irods-user.sh {"Ref": "gabbsUser"} • HUBzero needs to setup connection to iRODS server, after iRODS has created a new service user  Username required during deployment of both servers • Cannot be hardcoded into AMIs
  • 15. CLOUDFORMATION ISSUES SHARED PARAMETERS • Solving shared (dynamic) parameter requirement  Use CloudFormation parameters  User prompted to fill in value  Cannot default to random value (only hardcoded defaults supported)  Necessitates explaining (ideally behind-the-scenes) parameters
  • 16. CONCLUSION & FUTURE WORK • Current CloudFormation Template: https://mygeohub.org/groups/gabbs/release • Employ AutoScaling to scale up render servers and tool execution servers on demand • Provide configuration flexibility in CloudFormation template • Utilize configuration management tools like Chef, Puppet to streamline server types and software installation
  • 17. ACKNOWLEDGEMENTS This work was supported by the NSF Award ACI - 1261727 CIF21 DIBBs : Integrating Geospatial Capabilities into HUBzero