"Automatizza tutto ciò che deve essere fatto più di due volte."
::: info
DevOps è l'unione di persone, processi e tecnologie per fornire valore continuo agli utenti. Si basa su tre pilastri: Isolamento (Docker), Collaborazione (Git) e Automazione (CI/CD).
:::
Docker permette di impacchettare un'applicazione con tutte le sue dipendenze in un'unità standard chiamata Container.
# Stage 1: Build environment
FROM gcc:13 AS build
WORKDIR /app
COPY . .
RUN g++ -O3 -std=c++20 main.cpp -o my_app
# Stage 2: Runtime environment (minimal)
FROM debian:bookworm-slim
WORKDIR /root/
COPY --from=build /app/my_app .
CMD ["./my_app"]
Il codice deve essere versionato in modo logico. Il workflow consigliato per piccoli team o progetti personali è il GitHub Flow.
feature/add-login).main.Usa uno standard per rendere il log di Git leggibile:
feat: add user authenticationfix: resolve memory leak in parserdocs: update readme with installation stepsLa pipeline è la catena di montaggio automatizzata del tuo software.
push, un server (es. GitHub Actions) avvia automaticamente i test. Se i test falliscono, il codice non viene integrato.name: Python CI
on: [push]
jobs:
build-and-test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: '3.11'
- name: Install dependencies
run: pip install -r requirements.txt
- name: Run Tests
run: pytest
Dato che usi Proxmox, l'evoluzione naturale del DevOps è gestire le VM tramite codice invece di cliccare sulla GUI.
L'automazione ha un costo di manutenzione.
.env).Ultimo aggiornamento: {{UPDATE_DATE}} | Tags: #DevOps #Docker #Git #CICD #Automation