Entrar a laboral como DevOps.

Gambetero

Actualmente soy estudiante de redes, tengo unas buenas bases un tanto sólidas en Java, C++ y C# resulta que ahora mismo estoy sacando mi CCNP junto con mi certificado linux. El caso es que ya no me quiero enfocar en el mundo del desarrollo de software, después de varios años he descubierto que mi pasión es en la terminal y especialmente en las redes, aunque me gusta de vez en cuando picar código. Entonces estaba pensando en pasarme totalmente a python(nunca he programado en Python) y tirar hacía la nube, aprender sobre Amazon y microsoft en esta area, algo de docker y quizá otras tecnología más. Cuales requisitos voy a necesitar para poder entrar de lleno como DevOps? Pregunto porque por lo menos en mi area hay mucho empleo en esta área, lo veo muy a menudo y me gustaría algún día entrar a trabajar en esta misma área o similar.

Alguna recomendación?

GaN2

Posible roadmap:

Guias para el roadmap (viene un poco de todo): https://roadmap.sh/guides

Cosillas adicionales:

- Libros:
+ Site Reliability Engineering: How Google Runs Production Systems (no es DevOps pero muchas de las ideas que se aplican en DevOps son comunes con SRE)
+ The Phoenix Project: A Novel about IT, DevOps, and Helping Your Business Win (novela referencia en el mundillo).
+ The Unicorn Project (la continuacion del anterior)
+ The DevOps Handbook: How to Create World-Class Agility, Reliability, and Security in Technology Organizations (el manifiesto)
+ DevOps For Dummies (no te dejes engañar por el titulo).

- Videos:
+ MASTERMND Academy´s DevOps Bootcamp: url=https://www.youtube.com/playlist?list=PLleOCN2eBn8IBa07mO-mfUffUIz9LK6B5

- Lecturas:
+ https://crate.io/a/infrastructure-as-code-part-one/
+ https://aws.amazon.com/devops/what-is-devops/

- Cursos y demas:
+ Katakoda: Tienes miles de cosas relacionadas con DevOps como Docker, Kubernetes, Linux, CDCI, Ansible, Puppet, Terraform, etc.
+ Los cursos de Terraform de HashiCorp suelen ser gratis y estan bastante bien: https://learn.hashicorp.com/terraform
+ De Ansible tienes una introduccion gratis en la web de Redhat: https://www.redhat.com/en/services/training/do007-ansible-essentials-simplicity-automation-technical-overview?extIdCarryOver=true&sc_cid=701f2000001OH7YAAW&section=Outline

Si te gusta la terminal y las redes vas a elegir mal camino. Ahora está la puta manía de llamar devops a todo cuando devops es una serie de prácticas y no un perfil como tal, cualquier equipo puede ser dichas prácticas e intentar automatizar y montar sus CDCI pipelines, no hace falta un perfil concreto. Joder, si hasta un equipo de networking puede aplicar devops sin problema ninguno...

3 2 respuestas
Puni

#2 Está chulo el roadmap, yo sé un poquillo de todo eso pero pero en una empresa grande ahí tienes dibujadados como 4 o 5 equipos: networking, middleware, unix/windows, monitoring/security. Cada uno con sus responsabilidades bien delimitadas.

Quiero decir, que #1, si buscas formarte de todo eso en profundidad tienes para 5 años, y cuando acabes lo primero estará obsoleto. Además, la mayoría de ofertas, sobre todo las que te harán caso al principio serán de empresas grandes, donde no suele haber nadie con un rol tan integral de todo.
Creo que centrarse en networking si es lo tuyo no está mal, y como te dicen, aplicar filosofía devops (para mi es principalmente la parte de Infrastructure as Code). Intentar acostumbrarte a automatizar todo, usar herramientas con APIs para poder orquestar después esas automatizaciones e intentar ir aprendiendo cosas extra, como AWS que te puedan ir abriendo el campo sería lo ideal si quieres acabar en un rol más global, aunque eso, ya te digo que no sé si existe en empresas medianas/grandes.

1 2 respuestas
nerkaid

#2 Eso es absurdo, cualquier empresa en condiciones tiene varios equipos para cubrir esas necesidades, si aprendes de todo lo marcado en morado serás aprendiz de mucho, maestro de nada.

2 respuestas
eisenfaust
#4nerkaid:

si aprendes de todo lo marcado en morado serás aprendiz de mucho, maestro de nada

Le he echado un vistazo a lo morado y a excepción de las diferentes distros de Linux y proveedores cloud (que es un poco tontería y es mucho conocimiento reutilizable) me parecen requisitos básicos.

1 respuesta
nerkaid

#5 Te parecerán requisitos básicos tener unas nociones, solo en firewalls y balanceadores da para especializarse para una carrera profesional completa. Es decir, conocerás la tecnología, sabrás hacer cosas básicas, pero no serás ni de lejos experto.

2 respuestas
HeXaN

#6 Es que un devops es una navaja suiza. Si eres un experto (pero de verdad) lo más probable es que te contraten sólo para eso xD

eisenfaust

#6 Entiendo lo que dices, pero no veo el problema. Es el perfil que se pide ahora mismo. Nadie, o muy pocos, te van a pagar para desarrollar un sistema de ficheros desde cero por ejemplo, pero sí pagan por alguien con las nociones suficientes de todas las partes que componen un sistema para mantener el negocio a flote.

Dicho esto la edad media en entornos DevOps/SRE suele ser mayor que en desarrollo puro y no es raro encontrarte expertos en según que cosas y además con un conocimiento bastante amplio en otras áreas.

s4suk3

un compañero entró en una grande de devops sabiendo scripting y linux, (antes trabajaba de programador backend)

1 respuesta
wdaoajw

Trabajo como "devops" en una empresa grande. Mi día a día es:

  • bash
  • docker
  • kubernetes
  • open shift (es decir, más kubernetes)
  • stack de Prometheus
  • stack de ELK
  • Grafana
  • helm
  • git
  • ansible y terraform no los usamos (por cuestiones propias del proyecto)
  • Jenkins
  • Proveedores cloud ☁️

Y luego, multitud de cosas que van haciendo falta como Gateways, bases de datos, etc. Dicho esto, ahora mismo NO hay gente suficiente para satisfacer todos los perfiles devops que se necesitan y todas las empresas están buscando, así que con que sepas manejar bien la bash, docker, nociones básicas de kubernetes y lo que son el resto de cosas, entras en cualquier sitio y te irán formando

3 1 respuesta
Gambetero

#10 Exacto! Es que de verdad estoy sorprendido actualmente con la cantidad de oferta para esta área en concreto, y en resumidas cuentas es lo que dices, de esa manera es como se están manejando.

#3 Pues si, quizás me quede tirando a tope en Networking, me había llamado la atención, los temas de automatización, trabajar con Docker y AWS que es tendencia a nivel laboral. Ya veré intentare prepararme lo más que pueda. Solo quería ver algunas bases de por donde iniciar y ya he podido observar mediante sus publicaciones!

GaN2

#3 #4 Ya lo han dicho anteriormente, de lo que se trata es de que tengas conceptos básicos que cualquier persona que trabaje en IT debería de tener en mayor o menor medida. No hace falta que sepas la configuración específica de un firewall, como configurar el mantenimiento de sesiones en un load balancer o como montar un honeypot.

Y sobre el tema DevOps, volvemos a lo que puse antes, DevOps son una serie de prácticas y no debería de ser una posición en concreto. En tiendo que pueda haber un perfil que tenga que saber de tecnologías para automatizar y generar las pipelines pero cualquiera puede y debe aplicar DevOps en su campo.

Por ejemplo, #9 ha descrito a un perfil que podría ser fácilmente un administrador Unix. Que lo quieran llamar ahora DevOps entiendo que puede ser por moda más que por otra cosa...

3 respuestas
HeXaN

#12 Lo normal es llamar "Devops" al pobre desarrollador que se traga todo lo de administración de sistemas también jajaja.

4
eisenfaust
#12GaN2:

Y sobre el tema DevOps, volvemos a lo que puse antes, DevOps son una serie de prácticas y no debería de ser una posición en concreto.

Eso son ideas. En el mundo real, DevOps es un puesto de trabajo y tiene sus equipos dedicados.

2 respuestas
wdaoajw

#12 En el fondo un devops es un administrador de sistemas, solo que muy orientado a pipelines de ci/cd, y el mundo cloud, con todo lo que eso conlleva.

Pese a que muchas de las herramientas son las mismas(bash, etc...) el trabajo que realizan es diferente, así como la metodología.

Luego está lo que dice #14, en mi anterior empresa éramos pocos y me encargaba yo tanto de programar como de la infraestructura, ahora que estoy en una empresa grande, te das cuenta de que es insostenible. En los equipos de desarrollo tienen gente que sabe preparar los yml para desplegar sus servicios en kubernetes, pero la gestión, monitorización y demás lo lleva un equipo aparte.

GaN2

#14 Estoy de acuerdo con que deberia de haber un equipo facilitador para que la mentalidad y operativa DevOps se diera en una empresa, no tengo nada contra ello. Nosotros tenemos un equipo horizontal que se llama Enterprise Orchestration que apoya a todas las verticales y que se han "reinventado" en los ultimos años en temas de DevOps y ahora llevan el soporte de GitHub Enterprise, Ansible Tower, Puppet, etc. ayudando a otros equipos en automatizar y desarrollar toda la mentalidad DevOps pero al final la responsabilidad de seguri dicho modelo recae en los equipos. Por ejemplo, con ellos estuvimos trabajando en todo el tema de automatizar builds para que mediante una aplicacion web todo se despliegue automaticamente en Azure y el aplicativo/BBDD se instale y configure solo, al final habia cosas de las que ellos no tenian conocimientos y se tuvieron que ayudar en otros equipos como Networking, Unix, SAP, DBAs, etc.

Por poner un simil bastante malo, a este equipo le pasa como a los equipos que llevan los backups en las empresas. Ellos te ponen las herramientas y te ayudan pero al responsabilidad final recae en los equipos que administran dichas BBDD. Ningun equipo de backup de una gran empresa es DBA de todas y cada una de los diferentes tipos de BBDD que esa empresa usa y delegan muchas de las tareas en dichos equipos.

#1 He ampliado mi primer comentario añadiendo algo de informacion que he ido recopilando estos ultimos meses.

Usuarios habituales

  • GaN2
  • wdaoajw
  • eisenfaust
  • HeXaN
  • Gambetero
  • nerkaid
  • Puni