As we first discussed in the ArcGIS Enterprise in the cloud post, hosting ArcGIS Enterprise in a cloud environment has become a very common deployment pattern for our users. Enterprise administrators have developed architectures that range from focused single-machine deployments to complex multi-machine, multi-region and highly available systems that incorporate a broad array of IaaS and PaaS offerings, while integrating smoothly into the organization’s other cloud infrastructure.
Running ArcGIS Enterprise on Google Cloud
Today, we’re going to walk through some information about how to approach ArcGIS Enterprise deployments in Google Cloud (GCP), a popular public cloud offering. We’ve seen our users deploy to GCP for several years and wanted to take this opportunity to provide some helpful guidance on this topic. As a reminder, you can deploy and run ArcGIS Enterprise with any IaaS provider that offers virtual machines that expose a Linux or Windows operating system supported by ArcGIS Enterprise. This means almost any public cloud provider or private cloud environment is suitable for ArcGIS Enterprise, and we have seen the software successfully deployed to a wide variety of these environments.
GCP provides a variety of IaaS and PaaS offerings that are relevant to ArcGIS Enterprise deployments. You can launch Compute Engine Virtual Machines to host the software on a supported OS, using virtual Disks and deploying these instances in a Virtual Private Cloud or VPC. You may have a Cloud NAT service configured to provide Internet access for the instances or use an HTTPS Load Balancer to route traffic into your environment from the outside.
For some organizations, there may be a broader deployment of GCP resources, including network connectivity solutions, managed SSL Certificates, hosted SQL databases or big data storage and analytics. All of these concepts form the “boundary” of network rules, user workflows, security constraints and performance considerations that the Enterprise software is deployed into.
The architectural concepts that you may be familiar with from other ArcGIS Enterprise deployments are completely relevant to a GCP deployment. Whether you are targeting high availability, connecting to third-party systems for data integrations, or configuring single sign-on authentication with SAML, you will be using the same foundational concepts of storage, compute and networking to build out the right architecture for your organization.
Deployment tools and automation
When deploying ArcGIS Enterprise software, you can deploy using a variety of existing patterns. By following the documentation or using your own experience, you can install and configure the software in GCP from the installer files, just like any virtual or physical machine environment.
If more automation or scripted deployments are of interest, two existing ArcGIS deployment patterns might be of interest: PowerShell DSC and Chef Automation. PowerShell DSC can be used to automate deployment and configuration of software on Windows-based systems, and Chef can be used across both Linux and Windows deployments and includes a variety of recipes and roles that can deploy a wide range of architectures. Each of these toolsets work well in GCP, and can be used to automate the build-up and tear-down of systems depending on your organizational workflows.
Making use of other GCP services
Once you have deployed ArcGIS Enterprise in a GCP environment, you may be interested in accessing other data that your organization has stored in GCP systems or services that you have invested in across the cloud platform. A few example workflows are described below.
If your organization has data stored in Google BigQuery, you can access that data from a Python notebook using the GCP SDK, and then write that data to ArcGIS Enterprise web services through a feature service or use it as inputs to your own geoprocessing workflows. This notebook could be stored in Google CoLab for collaboration with your colleagues, run through ArcGIS Notebook Server, or set up as a triggered task in Google Cloud Functions, based on some event or user input. For a more ETL-style connection, consider using ArcGIS Data Interoperability Extension, available for ArcGIS Pro and ArcGIS Enterprise, which can easily load data directly from BigQuery into other formats.
If you would like to access structured data stored in Google Cloud SQL, you can use ArcGIS Pro to connect directly to supported databases that run a PostgreSQL or SQL Server engine and create query layers, which can be used as inputs to analytical processes, or published as map image and feature layers for visualization in any ArcGIS application.
To access files stored in Google Cloud Storage, you can connect to the storage bucket using .acs files from ArcGIS Pro or using the S3-compatible endpoint to configure a cloud store in ArcGIS Server or as a cloud data store in your ArcGIS Enterprise portal in order to host map, image, and scene caches using cheap, reliable, and performant storage. For Linux-based workloads, you might also look at connections using Google Filestore for NFS-compatible cloud managed storage.
A broad set of options
Whether you’re just starting out with cloud deployments or adding an ArcGIS Enterprise deployment to a robust existing system, ArcGIS Enterprise runs well in Google Cloud, and can connect to your data sources and systems of record to enable integration workflows. If you have other GCP workflows you’d like to discuss, we encourage you to post to the ArcGIS Enterprise space in GeoNet so we can continue the discussion in that forum.
Thank you to Sam Libby from Esri Professional Services for his in helping write this blog post and providing screenshots.