Skip to content
This repository has been archived by the owner on Apr 2, 2024. It is now read-only.
Yuriy Lesyuk edited this page Nov 10, 2020 · 2 revisions

AHR Apigee Hybrid Runtime Control Utility

AHR Logo

We don’t rise to the level of our expectations – we fall to the level of our training.
-- Archilochus

Mission

This wiki and the ahr code repository are a collection of materials developed by GCP/BAP Customer Success team. It reflects team's experience acquired during hybrid engagements.

Its goal is to facilitate knowledge transfer and best practices around installation, operations, and troubleshooting of Apigee Hybrid product.

The AHR utility complements officially provided apigeectl utility and encapsulates additional tasks that optimise operational experience.

The AHR Wiki complements Apigee Hybrid documentation and contains walkthrough tutorials, concept guides, and troubleshooting articles that cover variety of specific scenarios that go outside of scope and remit of an official documentation.

Target audience

The expected target audiences of the ahr and ahr wiki are:

  • users installing Apigee hybrid first time; expediting success rate by following specific end-to-end walkthrough tutorials;

  • users that wish to have a better knowledge of operating hybrid prerequisite components like ASM/Istio ingress gateway;

  • details of private cluster setups;

  • multi-cloud setups, including networking, and VPN connectivity;

  • devops engineers interested in automation of hybrid installations, performance testing, etc.

Use Cases

By introducing a layer of abstraction over apigeectl overrides .yaml config files, we can simplify:

  • DevOps Automation: Create a single-command CD/CD for Performance Test that would a) install Runtime; b) deploy proxies; c) execute tests d) collect outputs e) destroy test environment;

  • Configuration Complexity: non-trivial multi-region, multi-cloud installations;

  • Study tool: Capture best practices, as well as tips and tricks

Design Principles

  • Executable documentation

    The scripts are meant to be read and consulted to observe how to implement required steps. You will need them for your authomation (ie, CI/CD scripts)

  • Be intuitively compatible with a manual installation process

    The collection of ahr-* scripts and their options are tasks that are the high-level process of Hybrid installation process.

  • Templating

    For cluster config and runtime config file we cannot provide generic enough file to cater for all eventualities. Therefore we provide a templating mechanism that lets you create any desired configuration.

Scripting Best Practices

  • Full explicit paths -- removes a current-directory ambiguity

  • Copy-Paste-friendly commands -- via usage of environment variables

How to Start

  • Look at the right-hand contents pane and chose a deployment scenario closest to your environment.

  • Follow the walkthrough.

  • Look under-the-hood: open ahr-*-ctl commands and libraries and see how things are implements; compare and contrast it with hybrid documentation.

  • Explore Troubleshooting and Concept sections to dig deeper.

  • Visit GKE/AKS Multi-cloud installation walkthrough to experience complex deployment scenario requirements.


Colophon

* AHR-the-utility logo alludes to another AHR, Aryl Hydrocarbon Receptor, protein that in humans is encoded by the AHR gene. See "You AhR What You Eat: Linking Diet and Immunity" [1]; 3

There is a number of traits that draw the parallel between ahr the utility and ahr the protein.

  • It is useful during CI/CD Ops development. "In terms of evolution, the oldest physiological role of Ahr is in development."

  • It complements kubectl, istioctl, and apigeectl in its adaptive function. "The adaptive response is manifested as the induction of xenobiotic metabolizing enzymes"

  • It helps dealing with toxic aspects of bugs and errors while troubleshooting and debugging. "Extensions of the adaptive response are the toxic responses elicited by Ahr activation." [2]

Disclaimer

This repository and its contents are not an official Google product, nor are they part of an official Google product.

Contributing

See the contributing instructions to get started.

Status

This is a community supported project. There is no warranty for this code. If you have problems or questions, ask on commmunity.apigee.com..

License

This material is copyright 2020, Google LLC and is licensed under the Apache 2.0 license. See the LICENSE file.


Scenarios



Deep Dives

Archive

Ingress and TLS

DevPortal

Troubleshooting Flows

Clone this wiki locally