Da dove inizio l'apprendimento di DevOps?


10

Cercare "come iniziare con gli sviluppatori" non è stato di grande aiuto, poiché molti di loro come questo e questo , così come molti altri, non mi indicano davvero nel modo giusto. Nemmeno i video di YouTube che ho visto finora non mi hanno aiutato (dato che non ho bisogno di video che mi spieghino quali sono gli sviluppatori IS), dato che questo video è l'unica vera eccezione finora (che mostra come le cose si integrano l'una con l'altra).

Sono un CCNA e sono anche molto abile con i DBMS (attualmente sto imparando l'esecuzione del parallelismo e altre cose).

Ma non ho idea di cosa dovrei imparare prima (o dove trovare le risorse corrette per quella materia).

Sto per laurearmi, quindi non ho accesso all'esperienza del mondo reale.

Qualche consiglio o aiuto?

Risposte:


5

Gli sviluppatori si riferiscono all'esecuzione di software. È tutto su come eseguire un'applicazione o un servizio. Quindi strumenti di configurazione del server, macchine virtuali e container sono i prossimi passi. Suggerisco di guardare la documentazione di quegli strumenti e di imparare da loro cose come scoperta, osservabilità, scalabilità e ridondanza. Solo per citare alcuni esempi:

Config server:

  • PXE
  • ansible
  • Fantoccio

VM:

  • Vagabondo
  • QEMU

Contenitore:

  • docker
  • kubernetes

EDIT: panoramica delle tecnologie cloud:

Quando la tua architettura software riguarda i microservizi, i container sono una buona scelta. Quando si utilizzano vecchie applicazioni monolitiche, le VM non sono una cattiva opzione. Quindi dipende sempre dal contesto ciò che devi imparare in modo specifico. L'argomento è piuttosto ampio per sintetizzarlo. Un libro potrebbe essere d'aiuto, ma purtroppo non posso suggerirne una buona. "Kubernetes in Action" ti dà comunque un buon inizio in Kubernetes.


Aggiungerebbe anche qualcosa su ci / di, ad esempio bambù, jenkins, teamcity o simili.
ciclico

1
Una cosa che ho dimenticato e che potrebbe aiutare. Una panoramica delle tecnologie cloud: CNCF landscape
jhamfler,

Bene, modifica il tuo post e aggiungi ulteriori informazioni =) In realtà ho fissato questo.
ciclico

@Cyclonecode hai ragione. fatto
jhamfler,

scusate se questa è una domanda stupida, se EC2 è già in esecuzione all'interno di una macchina virtuale, perché ho bisogno di Docker?
PirateApp,

4

Innanzi tutto, vorrei sottolineare che DevOps è una cultura e non un ruolo. A mio avviso, si potrebbe paragonarlo a un team di commando che hanno le loro competenze, ad esempio cecchino, marine, sapper (pensate alla serie commandos). La combinazione di queste competenze, fondamentalmente lavorando insieme, consente di compiere missioni o creare valore aziendale il più presto possibile.

LowOps e NoOps

Da un paio di settimane ho scoperto che dopo molte conversazioni con le persone, oggi parliamo piuttosto di LowOps. Se implemento una soluzione, ciò significa che è completamente automatizzata e che un collega può distribuire le macchine da solo anziché chiedermelo. A volte non è immediatamente possibile automatizzarlo completamente, ma poi mi assicuro che sia automatizzato per me stesso per garantire che devo solo eseguire un comando per portare a termine il lavoro (LowOps), invece di perdere un paio d'ore. Se ho creato tale soluzione, mi assicuro che sia stato creato un biglietto per un collega per automatizzare la mia soluzione personale per tutti. Esempio: un mio collega ha trasformato uno dei miei script bash in un bot che ora viene eseguito ogni notte.

inserisci qui la descrizione dell'immagine

Figura 1: https://www.gslab.com/blog-post/what-is-noops/

"come iniziare con devops"

Assicurati di far parte di un team con competenze contrastanti e che il team debba distribuire il software da solo. Parla con tutti i membri del team e inizia con attività che nessuno vuole svolgere in quanto manca la conoscenza o la volontà. Se inizi con un'attività, ti imbatterai in cose che non conosci. Inizia a guardare video, partecipare a incontri , acquistare e leggere libri, leggere blog e documentazione ufficiale sugli strumenti, chiedere ai colleghi di rivedere le tue richieste pull e comunicare e ascoltare bene le persone, documentare bene le cose e preparare e dimostrare soluzioni ai colleghi (condivisione delle conoscenze) . L'ultimo suggerimento è quello di tenere d'occhio l' equilibrio tra lavoro e vita privata .


2

Altre risposte qui si sono concentrate sugli strumenti. A mio avviso, acquisire competenza in un toolkit è ovviamente una buona cosa, ma non ti farà adattarsi bene in una cultura DevOps. DevOps è innanzitutto un insieme di pratiche o metodi .

Comprendere perché queste pratiche e metodi sono utili arriva con l'esperienza, ma non hai quel lusso. Vorrei quindi indicarti

come testi di base.

Il sito Web di consegna continua ha anche una serie di principi e fondamenti che forniscono le basi pertinenti all'avvio.

A partire da questi, imparerai la pratica e i metodi, che informeranno su come collaborare e utilizzare gli strumenti.


2

Tutto quello che devi imparare è Linux, Docker, Networking, Git, Jenkins ecc. Puoi impararli interattivamente qui

Se stai cercando tutorial video, Pluralsight ha qualcosa di buono per te.


1

Questo è il tipo di domanda che mi sono posto molte volte e che tende a seguirmi (ora che sono appena uscito dal "principiante", mi chiedo dove imparare argomenti più avanzati). Purtroppo, come hai sottolineato, porre quelle domande sul motore di ricerca tende a inondare di siti web rivolti ai dirigenti e cercando di spiegare cos'è lo sviluppo? e perché dovremmo industrializzare il ciclo del software con devops?

Detto questo, per provare a rispondere alla tua domanda, posso solo parlare per esperienza personale: ho iniziato il mio percorso di apprendimento con l'eccellente Docker Guida introduttiva .


1

"Learning DevOps" mi sembra una domanda troppo ampia, come hai scoperto anche tu, ma posso ricordare di dover cercare su Google la stessa cosa.

Per aggiungere alla risposta di @ jhamfler: chiediti, perché vuoi saperne di più? Da quale contesto vieni? DevOps di solito ha a che fare con l'abbattimento di ostacoli manuali o anche di strutture di silos in team (tutti fanno semplicemente il proprio compito e si affidano a qualcun altro per pensare di integrare i risultati). Ci sono "lacune" nel tuo progetto (suppongo tu ne abbia uno)? Quali parti potrebbero trarre vantaggio dall'automazione?

I problemi tipici che potrei suggerire sono:

  • manutenzione manuale del server VS soluzioni basate su script
  • affidabilità e backup
  • automatizzare i test di integrazione
  • automatizzare la distribuzione continua (ad es. di un servizio web)
  • ...

Forse una ricerca di "implementazione continua" e "integrazione continua" (CI / CD) potrebbe anche aiutarti.


1

Le prime cose che devi imparare e familiarizzare con:

  • unix (file system, autorizzazioni, processi, servizi, registri, reti, ecc ...)
  • tunneling ssh e reverse
  • nano / vim
  • pitone
  • idiota

Quindi puoi passare ad argomenti più specifici:

  • containerizzazione (ad es. finestra mobile)
  • gestione della configurazione (es. ansible)
  • distribuzione continua (ad es. jenkins)
  • monitoraggio (es. prometheus / grafana)
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.