Skip to content

Hivetown LTI-PTR@FCUL - GCP Infrastructure, Graded 20/20

Notifications You must be signed in to change notification settings

hivetown/infrastructure

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Infrastructure

Networking

Rede

Foram criadas novas redes VPC na GCP, a hivetown e a hivetown-external.

hivetown

Esta VPC foi então repartida em sub-redes, para ajudar na organização e reserva de endereços para cada tipo de componente:

  • loadbalancers-eu-west4 (10.0.0.0/22)
  • servicediscovery-eu-west4 (10.0.4.0/22)
  • database-backups-us-east1 (10.0.112.0/20)
  • database-eu-west4 (10.0.128.0/18)
  • webservers-eu-west4 (10.0.192.0/18)

Como os nomes indicam, estão localizadas em eu-west4 (Países Baixos) com a excepção da database-backup-us-east1, em us-east1 (Carolina do Sul)

Linhas de comandos equivalente:
gcloud compute networks create hivetown --project=hivetown --subnet-mode=custom --mtu=1460 --bgp-routing-mode=regional

gcloud compute networks subnets create loadbalancers-eu-west4 --project=hivetown --description=Load\ Balancing\ Network --range=10.0.0.0/22 --stack-type=IPV4_ONLY --network=hivetown --region=europe-west4 --enable-private-ip-google-access

gcloud compute networks subnets create servicediscovery-eu-west4 --project=hivetown --description=Service\ Discovery\ Network --range=10.0.4.0/22 --stack-type=IPV4_ONLY --network=hivetown --region=europe-west4

gcloud compute networks subnets create database-backups-us-east1 --project=hivetown --description=Database\ Backups\ Network --range=10.0.112.0/20 --stack-type=IPV4_ONLY --network=hivetown --region=us-east1

gcloud compute networks subnets create database-eu-west4 --project=hivetown --description=Databases\ Network --range=10.0.128.0/18 --stack-type=IPV4_ONLY --network=hivetown --region=europe-west4 --enable-private-ip-google-access

gcloud compute networks subnets create webservers-eu-west4 --project=hivetown --description=Web\ Servers\ Network --range=10.0.192.0/18 --stack-type=IPV4_ONLY --network=hivetown --region=europe-west4

hivetown-external

Nesta foi criada uma sub-rede a loadbalancer-eu-west4 (10.255.0.0/22).

Linha de comandos equivalente
gcloud compute networks create hivetown-external --project=hivetown --description=External\ Interface\ for\ Hivetown --subnet-mode=custom --mtu=1460 --bgp-routing-mode=regional

gcloud compute networks subnets create loadbalancer-eu-west4 --project=hivetown --description=Load\ balancer\ external\ subnet --range=10.255.0.0/22 --stack-type=IPV4_ONLY --network=hivetown-external --region=europe-west4

Firewall

HTTP(s)

Regra aplicada à tag http-server da rede hivetown-external, que permite à internet de aceder às portas 80 e 433

Linha de comandos equivalente
gcloud compute --project=hivetown firewall-rules create hivetown-external-allow-http --direction=INGRESS --priority=1000 --network=hivetown-external --action=ALLOW --rules=tcp:80,tcp:443 --source-ranges=0.0.0.0/0 --target-tags=http-server

SSH

Regra aplicada à tag ssh, que permite aos administradores do sistema conectarem-se às máquinas em questão.

Para isto foi permitido tcp na porta 22 (porta default ssh).

Linha de comandos equivalente:
gcloud compute --project=hivetown firewall-rules create hivetown-allow-ssh --description="Allow SSH" --direction=INGRESS --priority=65534 --network=hivetown --action=ALLOW --rules=tcp:22 --source-ranges=35.235.240.0/20 --target-tags=ssh

VRRP

Ver Keepalived Loadbalancers e Keepalived Bases de Dados

Linha de comandos equivalente
gcloud compute --project=hivetown firewall-rules create hivetown-allow-vrrp --description="Allow VRRP" --direction=INGRESS --priority=1000 --network=hivetown --action=ALLOW --rules=112 --source-ranges=10.0.0.0/22,10.0.128.0/18 --source-tags=vrrp --target-tags=vrrp

Mais info

Agora, poderá encontrar descrições mais detalhadas de cada componente no seu próprio README.

Como sugestão, pode seguir a estrutura load-balancers -> service-discovery -> web-servers -> databases

Nota: web-servers inclui código aplicacional doutros dois repositórios: hivetown/backend e hivetown/frontend