geerlingguy / tower-operator

DEPRECATED: This project was moved and renamed to: https://github.com/ansible/awx-operator
82 stars 34 forks source link

Single Tower Deployment vs Deployment Per Component #51

Closed tylerauerbeck closed 4 years ago

tylerauerbeck commented 4 years ago

In the latest release of the operator, it looks like the deployment has gone from each components having its own deployment (task, web, etc.) to all containers being inside a single pod. Was there a technical reason behind this? Seems like this would cause issues if you wanted things to scale independently of each other moving forward (i.e. only scale web due to increased traffic, etc.)

mamercad commented 4 years ago

Wondering the same, up until a few days ago, I was running 0.3.0 and using HPA to scale web and task independently. Since everything's in the same pod now, I'm not sure this is going to work anymore (the HPA will scale the entire pod of course).

geerlingguy commented 4 years ago

@tylerauerbeck / @mamercad - I was discussing the architecture with some of the folks on the Tower team, and two things resulted from that discussion:

  1. Apparently the different services were not meant to be independent of the Tower containers themselves (thus scaling them independently was not a supported use case and they mentioned it could lead to some unexpected behavior), therefore everything was moved into one pod, to match the way Tower is deployed using the official installer.
  2. This project was forked and is moving over to https://github.com/ansible/awx-operator and will be maintained under the Ansible namespace on GitHub in the future. I haven't yet formally archived this repo/project but will be doing so soon, and I'll try to help over in the ansible namespace as I'm one of the operator maintainers there.
mamercad commented 4 years ago

Thanks, Jeff, this helps a bunch (confirmed my thoughts about things). Honestly, I'm not overly pleased with the architecture of AWX. It'd be nice if web and task could scale independently, I don't understand why things aren't going this way (or, are going in the opposite direction). The way forward seems like the exact opposite way we should be designing things in Kubernetes. Correct me if I'm wrong, but, it seems like the direction I need to go is "Container Groups" if I want to scale the tasks...