Can someone provide some insight into how AWX works behind the scenes? I installed it locally and got it working, saw the 5 docker containers come up (awx_task, awx_web, postgres, memcached and rabbitmq) but want to understand what each of these containers are doing and how they interact with each other? I understand that docker compose is used to tie them together, but want to know more about each containers functionality and relation to the entire product. Could someone point me in the right direction or be kind enough to share their knowledge?
I need to understand the architecture to defend my graduation project, any help ( tutorials , documents, figures …) will be greatly appreciated, Thanks.
Rabbitmq:- RabbitMQ is an open-source message-broker software that originally implemented the Advanced Message Queuing Protocol. When rabbitmaq is down, jobs are
not executed at that time, scheduled jobs starts its execution when rabbitmq is restarted.
Hi Mohamed, I’m not an expert of awx but I share my knowledge with you.
For start, awx is composed for 5 containers.
awx_web - This container is the most basic of all, to deploy this container in the awx installation, is generated with a web server inside, in this case “Nginx”. This container is responsable of all manage’s tasks that we make in the awx web interface. This container interact with “awx_task” to task’s execution, interact with “awx_postgres” to store data on a database, and interact with “awx_memcached” to store very relevant data in cache memory for fast access.
awx_task - This container is responsable of all tasks that we execute over diferent servers. This container interact with awx_web to sent them the task’s execution display, i don’t know if interact with awx_postgres, i suppose that yes, interact too with memcached to store very relevant data in cache memory for fast access.
awx_memcached - This container is responsable to store very relevant data in cache memory for following fast access. Interact with awx_web and awx_task.
awx_rabbitmq - I don’t know it much, but I know that is a message boker that communicate diferent services of diferent containers. For example to communicate Nginx in the “awx_web” container and PostgreSQL in the awx_postgres container.
awx_postgres - This container has a database, in this case PostgreSQL that store data of awx_web container and i soppose that store data of awx_task too.