Saltar al contenido principal

Infraestrutura para posta en produción

Nun desenvolvemento web, a infraestrutura e os servidores que escolles teñen un impacto directo na seguridade, rendemento, escalabilidade e custo do teu proxecto. Existen diferentes opcións segundo as necesidades do proxecto, o orzamento e a experiencia técnica dispoñible.

Aquí tes unha explicación dos principais tipos de infraestrutura dispoñibles:

  • Infraestrutura tradicional (servidor físico propio). Usas servidores físicos instalados nun centro de datos ou na túa propia oficina. Útil para proxectos con requisitos especiais.

  • Infraestrutura na nube (Cloud). Contratas recursos virtuais (servidores, bases de datos, redes...) que se executan na nube (ex. AWS, Azure, Google Cloud, DigitalOcean). O máis utilizado na actualidade debido a escalabilidade automática, o pago por uso e por un despregue e mantemento máis rápidos.

    Podemos deiferenciar tres tipos de servizos cloud:

    • IaaS: infraestrutura como servizo.
    • PaaS: plataformas como servizo.
    • SaaS: software como infraestrutura.
OpenStack

OpenStack non é un provedor de nube, senón unha plataforma de código aberto que permite construír o teu propio cloud privado.

IaaS

Cando nos referimos a IaaS estamos falando de infraestruturas como servizo. As empresas contratan a infraestrutura hardware a un terceiro a cambio dunha cota. A contratación deste hardware permite elixir a capacidade de procesamento (procesadores), a memoria a utilizar e o espazo de almacenamento. Estes servizos tamén ofrecen servizos de virtualización, firewalls, sistemas de backups, balanceadores de carga, SXBD, etc.

Algúns exemplos son:

  • AWS:

    • Amazon EC2 (servidores virtuais)
    • S3 (almacenamento)
    • RDS (bases de datos).
  • Oracle Cloud Infrastructure:

    • Compute (instancias de máquinas virtuais).
  • OpenStack:

    • Nova / Nova-Compute (xestión de máquinas virtuais)
    • Swift (almacenamento de obxectos como S3).

PaaS

PaaS ofrece plataformas como servizos. Nestas plataformas poden lanzarse aplicacións como base de datos, ferramentas de desenvolvemento, servizos de intelixencia artificial,... Este tipo de servizos é ideal para programadores que so quere centrarse na implantación e administración de aplicacións. Ao non ter que preocuparse por recursos hardware e software, melloran a súa eficacia centrándose só nunha parte que lle interesa. Os servizos PaaS son complicados de entender debido a que o termo plataforma pode confundirse con software. Unha plataforma é un software de por si, que permite desenvolver aplicacións.

Algúns exemplos son:

  • AWS:

    • AWS Elastic Beanstalk (Despregue automático de aplicacións web como Node.js, PHP, Java, Python,... con escalado, balanceo e monitorización integrados).
  • Oracle Cloud Infrastructure:

    • Oracle Application Container Cloud (Executa aplicacións web en linguaxes como Java SE, Node.js, PHP, Python, etc., sen configurar servidores.)
  • OpenStack:

    • Cloud Foundry (Plataforma open source que pode executarse enriba de OpenStack para despregar aplicacións web de forma automática. Compatible con Java, Node.js, Go, PHP, Ruby, etc.)
Vercel e Heroku

Vercel e Heroku son dúas PaaS moi populares que facilitan moito o traballo de desenvolvemento e despregue de aplicacións, aínda que teñen enfoques algo diferentes.

Vercel é unha plataforma de despregue e hospedaxe centrada en aplicacións web frontend modernas, sobre todo creadas con Next.js, React, Vue, Svelte, etc.

Heroku é unha plataforma PaaS clásica que permite despregar aplicacións backend, APIs ou apps web completas en distintos linguaxes: Python, Node.js, Ruby, Java, PHP, Go...

SaaS

SaaS: No modelo SaaS de software como infraestrutura, aloxase o software da empresa, así como os seus datos, en servidores externos a mesma e paga unha cota pola súa utilización. Cando falamos de *software na nube estamos falando de SaaS. As empresas que utilizan SaaS só teñen que preocuparse de como utilizar o software, esquecéndose do resto de recursos.

Todos os usuarios acceder diariamente a aplicacións SaaS, xa que calquera aplicación web pode ser considerada SaaS. Por exemplo: Microsoft Office 365, Google Docs, etc.

Algúns exemplos son:

  • AWS:
    • Amazon CodeCatalyst: (Entorno colaborativo con control de versións, CI/CD, editor web...)
    • Amazon Cognito(Backend-as-a-Service Autenticación e xestión de usuarios para apps web/móbil.)
  • Oracle Cloud Infrastructure:
    • Oracle Visual Builder Studio (VB Studio) (Xestión de proxectos, control de versións, CI/CD, issues, etc.),
  • OpenStack:
    • GitLab SaaS (Control de versións, CI/CD, deploys (podes usar versión SaaS ou autoaloxala en OpenStack).)