This article brought to you by ROK Technologies.
ArcGIS Enterprise on Kubernetes is a game changer - it can significantly enhance your ability to scale, deploy, and manage your software.
There are many ways Kubernetes can be transformational to your organization:
- Lightning fast deployment.
- Hassle-free upgrades
- Consistent system performance in the face of unpredictable demand
- Cost savings in infrastructure costs, downtime costs, and management overhead costs.
What is Kubernetes (K8s)?
Before we talk about the benefits, let's talk about the basics of this technology. Kubernetes is a container orchestration service. It serves as a platform to deploy and manage containerized applications. K8s maintains the cluster of machines necessary to maintain those containers and applications and automatically handles load balancing, scaling, fail over and many other services related to keeping your application stable and running. With many web services built using K8s, it’s a critical tool for Cloud-native development that can have a major impact on how your GIS performs.
Why is Kubernetes such an impactful technology?
Containerization. Containerization is a way of packaging an application with its dependencies. It makes it portable and platform agnostic. Kubernetes ensures that containerized software is highly available and resilient. This will make things easier for your team and your users will benefit from decreased downtime.
"Customers tell us that they’re amazed how fast ArcGIS Enterprise deploys onto a Kubernetes environment.” Trevor Seaton, Product Manager for ArcGIS Enterprise, Esri
Kubernetes has a lot going for it, in addition to being very flexible. From the simple to the complex, here are examples of ways that K8s can be utilized:
- A lightweight web server serving up a static web page with one container.
- A Python runtime container loaded with dependencies and have it trigger a script, whether it be run on demand or scheduled
- Layered containers replicating a traditional three- tiered application with a web tier as the entry point.
One of the most powerful things that K8s does other than run containers on a local system, is allow the user to develop complex collections of containerized microservices services. It’s possible to configure your resource and scalability requirements of each microservice. There are tools available to secure the communication between the services, and you can integrate comprehensive metric and log monitoring.
Using K8s for ArcGIS Enterprise
The unique benefits of K8s includes autoscaling of services, fine-grade turning, built-in stability and high availability, but how do users of ArcGIS Enterprise benefit from these unique features?
Kubernetes can easily handle fluctuating workloads.
We’ve all been there at some point - one of your applications got a huge and unexpected traffic spike.
- Were you able to recognize that huge traffic spike in time?
- If you were, did you have the ability to scale your resources quickly enough to meet that demand?
ArcGIS Enterprise on Kubernetes allows you to easily scale these map services automatically or even assign resource limits to specific services.
With Kubernetes, your Critical application infrastructure is configured to be highly available.
K8s allows for greatly improved reliability and available through self-healing mechanisms.
Ask yourself: Have you ever had an Enterprise component like a data store or portal fail? Imagine if your new stack was aware that there was this failure and it was able to heal itself.
What happens when those services are improved on or services are added? Previously we would schedule downtime or set aside weekends to do major upgrades. Utilizing Kubernetes and container based architecture allows for faster and more streamlined deployment of the system. Most of the time you can switch to read only mode and avoid significant downtime.
What is the result of utilizing ArcGIS Enterprise on Kubernetes? The easy management of a very complex multicomponent ArcGIS Enterprise system through containerization.
Now that ArcGIS on Kubernetes is available to all customers, many organizations and partners are exploring whether or not it’s a good idea to make the change to this operating system. As transformational as Kubernetes is for DevOps, as an emerging technology, not everyone can reap the benefits of immediate adoption.
Deciding whether ArcGIS Enterprise on Kubernetes is a fit for your organization will depend on several things: The functionality currently available, your organization’s ability to stay current with the ArcGIS Enterprise software, and your team’s familiarity with Kubernetes itself. An organization looking to move from having a Minimum Viable cloud infrastructure that is using containers to power production workloads to something more stable is an ideal candidate for the shift. By harnessing the power of Kubernetes, you don’t have to worry about your infrastructure or periodic downtines due to resource mismanagement or overworked servers.
K8s and Your Organization: Making the Decision
If you are interested in ArcGIS on Kubernetes, but aren’t sure about whether your organization should invest the time and resources there are a few things to consider.
Having a clear understanding of your team’s abilities, current architecture, and organizational goals is the first step in determining whether or not ArcGIS on Kubernetes is something you want to adopt.
Here are some questions to think about:
- Are we using containers to deploy our applications?
- Does Kubernetes solve the problems we are currently facing?
- Will our architecture need to change?
- Is our application architecture conducive to utilizing the benefits of Kubernetes?
- How much time/resources do we have to invest?
Finally, consider partnering with a team of experts to help answer some of the questions surrounding this exciting technology. It is vital to have both GIS and IT knowledge, training and know-how to architect a solid GIS solution in the Cloud.
Exclusive Bonus Content: Webinar Q&A
Want to know more about Kubernetes? Watch our recorded webinar on best practices for getting started with Kubernetes; key considerations for adopting Kubernetes to orchestrate your containerized applications at scale; and when, where and why you should use it.
We collected some questions during our most recent webinar with Directions Magazine - you can find the answers from CTO, Jason Harris and Cloud Engineer Brian Palus below.
Q: If you're running in AWS, do you run a Kubernetes cluster on an EC2 server that you would still need to run Windows updates on? Or is there a specific AWS tool for running Kubernetes?
A: Kubernetes nodes run as Linux instances. The patching needs are managed by the cloud provider Kubernetes service (EKS for AWS, AKS for Azure)
Containerization essentially detaches the application from the OS and Esri would release any security patches for the containers. Those patches can be updated in the ArcGIS Enterprise application itself.
Q: I would love to containerize some Python specifically with the ArcPy library but have had tons of issues with containerizing due to the licensing and authorization for libraries needing ArcGIS Pro licenses via ArcGIS online. Is there a workflow around the licensing issues for Python?
A: The proprietary nature of ArcPy library does make it difficult to containerize applications that utilize it. Workarounds would be to utilize comparable open source Python libraries or the ‘arcgis’ Python library, which is suited to manage portal and web GIS content. For testing, Esri provides a container running Jupyter Notebook loaded with the ‘arcgis’ library on their Docker Hub page (arcgis-api-python-notebook). If ArcPy is needed, at this time the best solution would be to use ArcGIS Notebook Server.
Q:Does ArcGIS Enterprise perform better on Kubernetes?
A: ArcGIS Enterprise on Kubernetes provides more opportunities for fine tuning of resources allocated to services and offers built-in redundancies that may allow for better performance, depending on your benchmarks.
Check out our full webinar: Kubernetes and ArcGIS: Staying Ahead of Evolving Tech.
Why Listen to Us?
We are Cloud, GIS, and IT experts. ROK Technologies is the First Partner in the Esri Partner Network to Earn the ArcGIS Enterprise on Kubernetes Specialty Designation. At ROK Technologies we focus solely on architecting, deploying, and managing ArcGIS in the Cloud. We take the day to day management of your Esri Enterprise software and its supporting infrastructure off your plate; so you can focus on what you do best, GIS.
As a longtime Esri business partner and Esri Cloud Specialty partner, our certified implementation experts work with the best cloud providers - AWS, Azure and GCP; and most importantly, we work with YOU and your organization to develop the right fit solution for your needs. We take your GIS to the Cloud.
PRO TIP: Want to know if ArcGIS Enterprise on Kubernetes is right for your organization? Contact us at firstname.lastname@example.org.