1. BusinessOperations ManagementElegir el mejor proveedor de servicios en la nube, características y herramientas para DevOps

Por Emily Freeman

El éxito de su iniciativa DevOps depende en gran medida de seguir el proceso, pero también es importante utilizar las herramientas adecuadas. Seleccionar un proveedor de servicios en la nube no es una opción fácil, especialmente cuando DevOps es su motivación para conducir. GCP (Google Cloud Platform), AWS (Amazon Web Services) y Azure tienen más en común que lo que hacen aparte.

A menudo, su decisión depende más del nivel de comodidad de su equipo DevOps con un proveedor de la nube en particular o su pila actual más que el proveedor de la nube en sí. Después de que haya decidido pasar a la nube, la siguiente decisión es elegir un proveedor de nube que se ajuste a sus necesidades de DevOps. Aquí hay algunas cosas a tener en cuenta al evaluar los proveedores de la nube con los principios de DevOps en mente:

  • Historial sólido. La nube que elija debe tener un historial de decisiones financieras responsables y suficiente capital para operar y expandir grandes centros de datos durante décadas. Cumplimiento y gestión de riesgos. La estructura formal y las políticas de cumplimiento establecidas son vitales para garantizar que sus datos estén seguros y protegidos. Idealmente, revise las auditorías antes de firmar contratos. Reputación positiva La confianza del cliente es absolutamente clave. ¿Confía en que puede confiar en este proveedor de la nube para seguir creciendo y respaldar sus necesidades de DevOps en evolución? Acuerdos de nivel de servicio (SLA). ¿Qué nivel de servicio requiere? Por lo general, los proveedores de la nube ofrecen varios niveles de confiabilidad del tiempo de actividad en función del costo. Por ejemplo, el tiempo de actividad del 99.9% será significativamente más barato que el tiempo de actividad del 99.999%. Métrica y seguimiento. ¿Qué tipos de información de aplicaciones, monitoreo y telemetría proporciona el proveedor? Asegúrese de que puede obtener un nivel adecuado de información sobre sus sistemas lo más cerca posible en tiempo real.

Finalmente, asegúrese de que el proveedor de la nube que elija tenga excelentes capacidades técnicas que brinden servicios que satisfagan sus necesidades específicas de DevOps. En general, busque

  • Capacidades de cómputo Soluciones de almacenamiento Características de implementación Registro y monitoreo Interfaces de usuario amigables

También debe confirmar la capacidad de implementar una solución de nube híbrida en caso de que lo necesite en algún momento, así como realizar llamadas HTTP a otras API y servicios.

Los tres principales proveedores de la nube son Google Cloud Platform (GCP), Microsoft Azure y Amazon web Services (AWS). También puede encontrar proveedores de nube más pequeños y, ciertamente, varios proveedores de nube privada, pero la mayor parte de lo que necesita saber proviene de comparar los proveedores de nube pública.

Servicios web de Amazon (AWS)

Al igual que los otros proveedores principales de nube pública, AWS proporciona computación a pedido a través de una suscripción de pago por uso. Los usuarios de AWS pueden suscribirse a cualquier cantidad de servicios y recursos informáticos. Amazon es el líder actual del mercado entre los proveedores de la nube y posee la mayoría de los suscriptores de la nube.

Ofrece un conjunto robusto de características y servicios en regiones de todo el mundo. Dos de los servicios más conocidos son Amazon Elastic Compute Cloud (EC2) y Amazon Simple Storage Service (Amazon S3). Al igual que con otros proveedores de la nube, se accede a los servicios y se aprovisiona la infraestructura a través de API.

Microsoft Azure

Antes de que Microsoft lanzara este proveedor de la nube como Microsoft Azure, se llamaba Windows Azure. Microsoft lo diseñó para hacer exactamente lo que el nombre implica: servir como proveedor de la nube para las organizaciones de TI de Windows tradicionalmente. Pero a medida que el mercado se volvió más competitivo y Microsoft comenzó a comprender mejor el panorama de la ingeniería, Azure se adaptó, creció y evolucionó.

Aunque todavía podría decirse que es menos robusto que AWS, Azure es un proveedor de nube completo que se centra en la experiencia del usuario. A través de varios lanzamientos y adquisiciones de productos, especialmente GitHub, Microsoft ha invertido mucho en infraestructura de Linux, lo que le ha permitido proporcionar servicios más sólidos a un público más amplio.

Google Cloud Platform (GCP)

Google Cloud Platform (GCP) tiene la menor cuota de mercado de los tres principales proveedores de nube pública, pero ofrece un conjunto sustancial de servicios en la nube en casi dos docenas de regiones geográficas.

Quizás el aspecto más atractivo de GCP es que ofrece a los usuarios la misma infraestructura que Google usa internamente. Esta infraestructura incluye servicios de computación, almacenamiento, análisis y aprendizaje automático extremadamente potentes. Dependiendo de su producto específico, GCP puede tener herramientas especializadas que faltan (o son menos maduras) en AWS y Azure.

Encontrar herramientas y servicios de DevOps en la nube

Literalmente, cientos de herramientas y servicios están a su disposición a través de los principales proveedores de la nube. Esas herramientas y servicios generalmente se dividen en las siguientes categorías:

  • Calcular Almacenamiento Redes Administracion de recursos Inteligencia Artificial en la Nube (AI) Identidad Seguridad Sin servidor IoT

A continuación se incluye una lista de los servicios más utilizados en los tres principales proveedores de la nube. Estos servicios incluyen implementación de aplicaciones, administración de máquinas virtuales (VM), orquestación de contenedores, funciones sin servidor, almacenamiento y bases de datos.

Se incluyen servicios adicionales, como gestión de identidad, almacenamiento en bloque, nube privada, almacenamiento de secretos y más. Está lejos de ser una lista exhaustiva, pero puede servirle como una base sólida para usted cuando comience a investigar sus opciones y tenga una idea de lo que diferencia a los proveedores de la nube.

  • Implementación de aplicaciones: solución de plataforma como servicio (PaaS) para implementar aplicaciones en una variedad de idiomas, incluidos Java, .NET, Python, Node.js, C #, Ruby y Go Azure: Servicios en la nube de Azure AWS: AWS Elastic Beanstalk GCP: Google App Engine
  • Administración de máquinas virtuales (VM): opción de infraestructura como servicio (IaaS) para ejecutar máquinas virtuales (VM) con Linux o Windows Azure: máquinas virtuales de Azure AWS: Amazon EC2 GCP: Google Compute Engine
  • Kubernetes gestionados: permite una mejor gestión de contenedores a través del popular orquestador Kubernetes Azure: Servicio Azure Kubernetes (AKS) AWS: Amazon Elastic Container Service (ECS) para Kubernetes GCP: motor de Google Kubernetes
  • Sin servidor: permite a los usuarios crear flujos de trabajo lógicos de funciones sin servidor Azure: funciones de Azure AWS: AWS Lambda GCP: Funciones de Google Cloud
  • Almacenamiento en la nube: almacenamiento de objetos no estructurados con almacenamiento en caché Azure: Azure Blob Storage AWS: Amazon S3 GCP: Google Cloud Storage
  • Bases de datos: bases de datos SQL y NoSQL, bajo demanda Azure: Azure Cosmos DB AWS: Amazon Relational Database Service (RDS) y Amazon DynamoDB (NoSQL) GCP: Google Cloud SQL y Google Cloud BigTable (NoSQL)

A medida que explora los tres principales proveedores de la nube, observa una larga lista de servicios. Puede sentirse abrumado por los cientos de opciones a su disposición. Si, por casualidad, no puede encontrar lo que necesita, el mercado probablemente le proporcionará algo similar. El mercado es donde los desarrolladores independientes ofrecen servicios que se conectan a la nube, alojados por Azure, AWS o GCP.

La siguiente tabla enumera los servicios adicionales proporcionados por la mayoría, si no todos, los proveedores de la nube.

  1. BusinessOperations ManagementPor qué importa DevOps: 11 maneras en que DevOps beneficia a su organización

Por Emily Freeman

Cuando se hace correctamente, DevOps ofrece ventajas significativas para su organización. Este artículo presenta los puntos clave para saber cómo DevOps beneficia a su organización. Úselo como referencia para ayudarlo a persuadir a sus colegas o para reforzar su comprensión de por qué eligió ir a la ruta DevOps cuando el camino se llena de baches.

Beneficios de DevOps

DevOps te ayuda a aceptar cambios constantes

El panorama tecnológico es un entorno en constante cambio. Algunos idiomas evolucionan y se crean otros nuevos. Los marcos van y vienen. Las herramientas de infraestructura cambian para satisfacer las demandas cada vez mayores de alojar aplicaciones de manera más eficiente y brindar servicios más rápidamente. Las herramientas continúan abstrayendo la informática de bajo nivel para reducir la sobrecarga de ingeniería.

Lo único constante es el cambio. Su capacidad de adaptarse a ese cambio determinará su éxito como colaborador individual, gerente o ejecutivo. Independientemente del papel que desempeña actualmente en su empresa o que espera desempeñar eventualmente, es vital adaptarse rápidamente y eliminar la mayor fricción posible del crecimiento. DevOps le permite adaptarse y crecer mejorando la comunicación y la colaboración.

DevOps abraza la nube

La nube no es el futuro; Nieva. Aunque todavía puede estar en transición o aún no está listo para moverse, tenga en cuenta que la nube es el camino a seguir para todas las empresas, excepto algunas. Le brinda más flexibilidad que la infraestructura tradicional, reduce el estrés de las operaciones y (generalmente) cuesta significativamente menos debido a una estructura de precios de pago por uso.

Las nubes públicas, privadas e híbridas le brindan infinitas posibilidades para administrar mejor su negocio. La capacidad de aumentar (lanzar) recursos en cuestión de minutos es algo que la mayoría de las empresas nunca han experimentado antes de la nube.

Esta agilidad proporcionada por la nube va de la mano con DevOps. Omri Gazitt de Puppet, una compañía enfocada en la automatización y la gestión de la configuración, lo expresó mejor: "A medida que las organizaciones se trasladan a la nube, están revisando sus suposiciones centrales sobre cómo entregan el software".

Con la nube, las API conectan todos los servicios, plataformas y herramientas de infraestructura para que pueda administrar sus recursos y aplicaciones sin problemas. A medida que migra a la nube, puede reevaluar las decisiones de arquitectura pasadas y hacer una transición lenta de su aplicación y sistema para que sea nativo de la nube o esté diseñado teniendo en cuenta la nube.

DevOps te ayuda a contratar a los mejores

Debido al aumento de la demanda, los grandes ingenieros son escasos. Simplemente no hay suficientes ingenieros para cubrir todos los trabajos actualmente abiertos o para satisfacer la demanda del mercado durante la próxima década y más allá. Aunque encontrar ingenieros puede ser difícil, no es imposible, especialmente si te enfocas en descubrir ingenieros que abrazan la curiosidad y no temen fallar. Si implementa DevOps en su cultura general de ingeniería, puede subir de nivel a los ingenieros y capacitarlos en la metodología y la tecnología que respaldan la mejora continua.

Es difícil medir el potencial en una entrevista. Por lo general, el talento susurra. Los ingenieros más talentosos generalmente no son gregarios ni fanfarrones; Dejan que su trabajo hable por ellos. DevOps le permite escuchar más de cerca los intereses personales y profesionales de los ingenieros que entrevista.

Intente elegir candidatos según su nivel de curiosidad, habilidades de comunicación y entusiasmo. Esas cualidades pueden ver a su equipo a través de los canales de miedo, incertidumbre y duda. Pueden llevar al equipo a través de decisiones difíciles, hechas dentro de las limitaciones, en su intento de resolver problemas difíciles.

Puedes enseñarle a alguien una habilidad, pero enseñarle a alguien cómo aprender es un asunto completamente diferente. La cultura de aprendizaje que crea en su organización DevOps le permite priorizar una mentalidad de crecimiento sobre la destreza técnica. En DevOps, la contratación del equipo es crítica. Cada individuo es una pieza de un todo, y el equipo debe tener un equilibrio integral. Lograr este equilibrio significa que a veces no contratas al "mejor" ingeniero, contratas al mejor ingeniero para el equipo.

Cuando contrata para el equipo de DevOps, puede, como los caballos de tiro unidos, juntar más peso del que podría individualmente. Con DevOps, puede multiplicar los componentes individuales de su equipo y, como un todo, crear una potencia de un equipo.

DevOps te mantiene competitivo

El Informe anual sobre el estado de DevOps publicado por DevOps Research and Assessment (DORA) deja en claro: las empresas de todo el mundo están utilizando DevOps para ajustar sus prácticas de ingeniería y están cosechando los beneficios. Ven aumentos en la producción de ingeniería y reducciones en los costos. Con DevOps, estas compañías están cambiando de procesos y sistemas torpes a una forma simplificada de desarrollar software enfocado en el usuario final.

DevOps permite a las empresas crear una infraestructura confiable y utilizar esa infraestructura para lanzar software de manera más rápida y confiable. La conclusión es esta: las organizaciones de alto rendimiento usan DevOps, y están aplastando a su competencia al aumentar su frecuencia de implementación y disminuir significativamente las fallas que ocurren debido a cambios en el sistema.

Si desea competir, debe adoptar las metodologías sólidas de DevOps. Quizás no todos, y definitivamente no todos a la vez, pero ha pasado el tiempo de esperar y ver si DevOps vale la pena.

DevOps ayuda a resolver problemas humanos

Los humanos han alcanzado un punto en nuestra evolución en el que la tecnología evoluciona más rápido que nuestros cerebros. Por lo tanto, los mayores desafíos que enfrentan los humanos se deben a las limitaciones humanas, no a las limitaciones del software o la infraestructura. A diferencia de otras metodologías de desarrollo de software, DevOps se enfoca holísticamente en su sistema sociotécnico.

Adoptar DevOps requiere un cambio en la cultura y la mentalidad. Pero si logra una cultura y mentalidad de DevOps, usted y su organización obtienen beneficios casi ilimitados. Cuando los ingenieros tienen el poder de explorar, libres de la presión y el miedo al fracaso, suceden cosas sorprendentes.

Los ingenieros descubren nuevas formas de resolver problemas. Abordan proyectos y problemas con una mentalidad saludable y trabajan juntos de manera más fluida, sin competencia innecesaria y negativa.

DevOps desafía a los empleados

DevOps acelera el crecimiento de los ingenieros individuales, así como el del equipo de ingeniería en su conjunto. Los ingenieros son personas inteligentes. También son naturalmente curiosos. Un gran ingeniero que adopta una mentalidad de crecimiento necesita nuevos desafíos después de dominar una tecnología, herramienta o metodología en particular o, a menudo, se siente estancado.

Necesitan sentir que su cerebro y sus habilidades se están estirando, no hasta el punto de sentirse abrumados o estresados, sino lo suficiente como para sentir que están creciendo. Esa es la tensión descrita por Dan Pink en Drive. Si puede lograr ese equilibrio, sus ingenieros prosperarán, como individuos y como equipo.

La metodología de DevOps promueve habilidades en forma de T, lo que significa que los ingenieros se especializan en un área con un conocimiento profundo y tienen un amplio conocimiento de muchas otras áreas. Este enfoque permite a los ingenieros explorar otras áreas de interés.

Quizás un ingeniero de Python tenga interés en la infraestructura de la nube, por ejemplo. Ninguna otra metodología de ingeniería permite y alienta a los ingenieros a explorar tanto como lo hace DevOps, y es un gran contribuyente para contratar y retener talento.

Brechas de puentes DevOps

Uno de los desafíos de las empresas de tecnología moderna es esta brecha entre las necesidades del negocio y las necesidades de la ingeniería. En una empresa tradicional, con estrategias de gestión tradicionales, existe una fricción natural entre la ingeniería y los departamentos como marketing, ventas y desarrollo comercial. Esta fricción proviene de una falta de alineación. Cada departamento se mide por diferentes indicadores de éxito.

DevOps busca unificar cada departamento de un negocio y crear una comprensión y respeto compartidos. Ese respeto por los trabajos y contribuciones de cada uno es lo que permite que cada persona de la empresa prospere. Elimina la fricción y mejora la aceleración.

Piensa en un equipo de perros de trineo. Si cada perro se mueve en direcciones separadas, el trineo no va a ninguna parte. Ahora imagine a los perros trabajando juntos, enfocados en avanzar, juntos. Cuando carece de fricción internamente, los únicos desafíos que enfrenta son externos, y los desafíos externos son casi siempre más manejables que las luchas internas.

DevOps te permite fallar bien

El fracaso es inevitable. Es simplemente inevitable. Predecir todas las formas en que su sistema puede fallar es imposible debido a todas las incógnitas. (Y puede fallar espectacularmente, ¿no es así?) En lugar de evitar el fracaso a toda costa y sentirse abrumado cuando ocurre el fracaso, puede prepararse para ello. DevOps prepara a las organizaciones para responder a las fallas, pero no de una manera inducida por el pánico y el estrés.

Los incidentes siempre implicarán cierto nivel de estrés. En algún momento a lo largo de su estructura de comando, es probable que un ejecutivo grite ante la pérdida de dinero durante una interrupción del servicio. Pero puede reducir el estrés que experimenta su equipo utilizando el fracaso como una forma de aprender y adaptando su sistema para ser más resistente.

Cada incidente es una oportunidad para mejorar y crecer, como individuos y como equipo.

DevOps abraza kaizen, el arte de la mejora continua. Cuando las experiencias de su equipo fluyen en su trabajo, pueden tomar pequeñas decisiones todos los días que contribuyen al crecimiento a largo plazo y, en última instancia, a un mejor producto.

DevOps te permite mejorar continuamente

La mejora continua es un ingrediente clave en DevOps. Use la visualización de un ciclo interminable cuando aplique DevOps a su organización. El ciclo no debería invocar miedos a través de los pensamientos de Sísifo, empujando una roca cuesta arriba por toda la eternidad. En cambio, piense en este ciclo como movimiento, como una bola de nieve rodando cuesta abajo, acumulando impulso y masa.

A medida que adopte DevOps e integre más y más de sus principios básicos en su flujo de trabajo diario, será testigo de esta aceleración de primera mano. El ciclo de mejora continua siempre debe centrarse en el cliente. Debe pensar continuamente en el usuario final e integrar los comentarios en su ciclo de vida de entrega de software.

Fundamental para este ciclo es CI / CD. La adopción de CI / CD no es un requisito de todo o nada de DevOps; en cambio, es un proceso lento de implementación. Debería centrarse en dominar la integración continua primero. Aliente a los ingenieros a compartir código libremente y combinar código con frecuencia. Este enfoque evita que el aislamiento y los silos se conviertan en bloqueadores en su organización de ingeniería.

Después de que su organización domine la integración continua, pase a la entrega continua, la práctica de automatizar la entrega de software. Este paso requiere automatización porque el código se moverá a través de múltiples comprobaciones para garantizar la calidad. Después de que todo su código sea seguro y accesible en un repositorio de código fuente, puede comenzar a implementar pequeños cambios continuamente. Su objetivo es eliminar las barreras manuales y mejorar la capacidad de su equipo para descubrir y corregir errores sin impacto en el cliente.

DevOps automatiza el trabajo

La aceleración y la mayor eficacia son el núcleo de la metodología DevOps. Al automatizar procesos manuales intensivos en mano de obra, DevOps libera a los ingenieros para trabajar en proyectos que hacen que el software y los sistemas sean más confiables y fáciles de mantener, sin el caos de interrupciones inesperadas del servicio.

La ingeniería de confiabilidad del sitio (SRE) se ocupa del trabajo duro, que es el trabajo requerido para mantener los servicios en funcionamiento, pero es manual y repetitivo. El trabajo puede ser automatizado y carece de valor a largo plazo. Quizás lo más importante de todo es que el trabajo se escala linealmente, lo que limita el crecimiento. Tenga en cuenta que el trabajo no se refiere a los gastos generales de las necesidades administrativas, como las reuniones y la planificación. Este tipo de trabajo, si se implementa con una mentalidad DevOps, es beneficioso para la aceleración a largo plazo de su equipo.

Uno de los principios básicos de las herramientas de su práctica de DevOps es la automatización. Puede automatizar su canalización de implementación para incluir un conjunto de pruebas detallado, así como otras puertas a través de las cuales debe pasar el código para ser liberado. En muchos sentidos, SRE es el siguiente paso lógico en la evolución de DevOps y debería ser su próximo paso después de que usted y su organización dominen los conceptos centrales de DevOps e implementen la práctica en su equipo.

DevOps acelera la entrega

El ciclo de vida de la entrega de software ha evolucionado desde el lento y lineal proceso de Cascada a un ciclo ágil y continuo de DevOps. Ya no piensa en un producto, lo desarrolla completamente y luego lo lanza a los clientes, esperando su éxito.

En cambio, crea un ciclo de retroalimentación alrededor del cliente y entrega continuamente cambios iterativos a sus productos. Este circuito conectado le permite mejorar continuamente sus funciones y garantizar que el cliente esté satisfecho con lo que está entregando.

Cuando conecta todos los puntos y adopta completamente DevOps en su organización, observa cómo su equipo puede ofrecer un mejor software más rápido. Los cambios serán pequeños al principio, al igual que los cambios que publica. Pero con el tiempo, esos cambios aparentemente insignificantes se suman y crean un equipo que acelera la entrega de software de calidad.

  1. BusinessOperations Management Aproveche más sus herramientas en la nube: Automatizando DevOps en la nube

Por Emily Freeman

Unir la nube con su práctica de DevOps puede acelerar el trabajo que ya ha realizado. Cuando se usan juntos, tanto DevOps como la nube pueden impulsar la transformación digital de su empresa.

Verá resultados siempre y cuando enfatice las prioridades de DevOps: personas, procesos y tecnología. La nube, junto con otras herramientas, cae directamente en la parte técnica de su implementación de DevOps.

DevOps y computación en la nube

La computación en la nube permite la automatización para sus desarrolladores y personas de operaciones de una manera que simplemente no es posible cuando administra su propia infraestructura física. El aprovisionamiento de infraestructura a través del código en la nube, que es un sistema denominado Infraestructura como Código (IaC), le permite crear plantillas y procesos repetibles.

Cuando realiza un seguimiento de los cambios en su código de infraestructura a través del control de código fuente, permite que su equipo funcione sin problemas y realiza un seguimiento de los cambios. IaC es mucho más repetible y automatizado, por no mencionar más rápido, que hacer que los ingenieros hagan clic en un portal.

Incluso las instrucciones en el portal no son infalibles. Se arriesga a realizar cambios pequeños, pero significativos, en la configuración de la infraestructura si construye constantemente la misma configuración a través del portal en lugar de un archivo YAML.

Llevando tu cultura DevOps a la nube

La gente suele hablar sobre DevOps y la computación en la nube como si estuvieran entrelazados y, en muchos sentidos, lo están. Sin embargo, tenga en cuenta que puede adoptar DevOps, o comenzar a transformar su organización de ingeniería, sin tener que entrar en la nube. Es perfectamente razonable que establezca primero los estándares, las prácticas y los procesos para su equipo antes de cambiar su infraestructura a un proveedor de la nube.

Aunque la gente habla como si todos ya estuvieran en la nube, usted todavía está a la vanguardia del cambio a la nube. Los proveedores de la nube se están volviendo cada vez más sólidos, y las compañías de ingeniería están haciendo una transición lenta de sus servicios autohospedados a la nube. Con eso en mente, una organización que busque adoptar DevOps sería prudente considerar la posibilidad de utilizar los servicios de un importante proveedor de servicios en la nube.

Cualquier persona con experiencia en DevOps probablemente no llamaría a la nube una solución NoOps, pero podría llamarla OpsLite. Los servicios en la nube a menudo abstraen la arquitectura de operaciones complejas de una manera que hace que esa arquitectura sea más amigable para los desarrolladores y les permite tomar más posesión de sus componentes.

Si alguna vez se ha quejado de que los desarrolladores deberían estar incluidos en una rotación de guardia, tiene razón, deberían estarlo. La inclusión de desarrolladores en la rotación de guardia es una excelente manera de aumentar su conocimiento sobre la implementación de código, así como la administración y aprovisionamiento de la infraestructura en la que se ejecutan sus servicios. Esto reduce la sobrecarga operativa y libera el tiempo de los especialistas en operaciones para trabajar en soluciones proactivas.

Aprendizaje a través de la adopción de DevOps

Si su equipo es capaz de adoptar DevOps y cambiar al uso de la computación en la nube al mismo tiempo, puede usar estos cambios como oportunidades de aprendizaje tanto para desarrolladores como para personas de operaciones.

Mientras su equipo se traslada a la nube, los desarrolladores tienen la oportunidad de familiarizar a los especialistas en operaciones con el código, tal vez incluso con lenguajes específicos, y el control de la fuente, y la gente de operaciones puede enseñarles a los desarrolladores sobre infraestructura. Cuando ambos grupos son tanto los expertos como los novatos, ninguno de los grupos tiene que lidiar con una gran transferencia de conocimiento que daña el ego.

La confianza, la relación y la dinámica saludable que surgen de estas interacciones impulsarán a su equipo y durarán mucho más de lo que tomó el trabajo inmediato. De muchas maneras, estás reforzando tu cultura de DevOps a través del uso de herramientas en tu práctica de DevOps.

Beneficiarse de los servicios en la nube en su iniciativa DevOps

Las operaciones modernas están cambiando y evolucionando. Sus competidores ya están adoptando nuevas formas de innovar más rápido y acelerar sus ciclos de vida de entrega de software.

La computación en la nube representa un gran cambio de la forma tradicional en que las empresas piensan acerca de los recursos de TI. Al externalizar gran parte de sus requisitos de infraestructura y operaciones a un proveedor de la nube, reduce los gastos generales y libera a su equipo para centrarse en ofrecer un mejor software a sus usuarios.

Aquí hay seis razones comunes por las cuales las organizaciones están recurriendo a los servicios de computación en la nube:

  • Mejora de la asequibilidad. Los proveedores de la nube le permiten seleccionar solo los servicios que necesita, cuando los necesita. Imagina si pudieras acceder a la televisión por cable pero pagas solo por los canales que miras. Te encantaría eso, ¿no? ¡La mayoría de los miembros del equipo DevOps lo harían! Los proveedores de la nube hacen exactamente eso al tiempo que le proporcionan el hardware informático más actualizado alojado en centros de datos físicamente seguros. Implementaciones automatizadas. Los cambios en el sistema, las implementaciones, son los contribuyentes más comunes de interrupciones o interrupciones del servicio. Los proveedores de la nube convierten el lanzamiento de código en un proceso automatizado y repetible, lo que disminuye significativamente la probabilidad de cometer errores en los lanzamientos manuales e introducir errores. Las implementaciones automatizadas también permiten a los desarrolladores lanzar su propio código. En última instancia, las implementaciones automatizadas simplifican el proceso al tiempo que reducen el tiempo de inactividad del sitio y el triaje reaccionario en la producción. Acelerando la entrega. La nube reduce la fricción en casi todas las fases del ciclo de vida de entrega del software. Si bien la configuración es obligatoria, a menudo no se necesita más del doble del tiempo necesario para realizar el proceso manualmente, y debe configurar un servicio o proceso solo una vez. La entrega acelerada le brinda mucha flexibilidad. Aumento de la seguridad. Los proveedores de la nube hacen que la seguridad sea parte de su oferta. Microsoft Azure, Amazon web Services (AWS) y Google Cloud Platform (GCP) cumplen con diferentes estándares de cumplimiento y proporcionan políticas, servicios y controles que lo ayudarán a reforzar la seguridad de su sistema. Además, si utiliza una herramienta de canalización de implementación dentro de la nube, puede agregar comprobaciones de seguridad antes de lanzar un nuevo código en un entorno, reduciendo así la posibilidad de vulnerabilidades de seguridad. Disminución decreciente. A través de las tuberías de compilación y lanzamiento en la nube, su equipo es capaz de crear pruebas automatizadas para confirmar la funcionalidad, la calidad del código, la seguridad y el cumplimiento de cualquier código introducido en sus sistemas. Esta capacidad disminuye la posibilidad de errores al tiempo que reduce el riesgo de implementaciones problemáticas. Construcción de sistemas más resistentes y escalables. La nube permite a las organizaciones escalar, escalar y aumentar la capacidad en segundos. Esta escala elástica permite aumentar los recursos informáticos y de almacenamiento según sea necesario, sin importar en qué parte del mundo sus usuarios interactúen con su producto. Este enfoque le permite servir mejor a sus clientes y administrar de manera más eficiente los costos de infraestructura.

El enfoque de DevOps consiste en crear un método cíclico en el que se beneficie y aprenda del proceso cada vez que lo realice.

  1. Consejos de gestión de operaciones comerciales para mejorar el rendimiento de ingeniería con DevOps

Por Emily Freeman

Mejorar el rendimiento de la ingeniería como parte del proceso DevOps puede tener un impacto radical en todo el negocio. Agilizar el ciclo de vida del desarrollo y eliminar los cuellos de botella servirá para acelerar el rendimiento general de la empresa, lo que en última instancia aumentará el resultado final. Y si piensa, como ingeniero de DevOps, que no debería preocuparse por el rendimiento del negocio, está equivocado.

Según DevOps Research and Assessment (DORA), los equipos DevOps de alto rendimiento superan constantemente a sus competidores en cuatro áreas clave:

  • Frecuencia de implementación: este término se refiere a la frecuencia con que sus ingenieros pueden implementar el código. Mejorar el rendimiento se alinea con la implementación varias veces al día, según lo deseado. Tiempo de entrega: el tiempo de entrega es el tiempo que lleva pasar desde la confirmación del nuevo código hasta la ejecución de ese código en un entorno de producción. Según DORA, los que tienen el mejor desempeño tienen un tiempo de espera de menos de una hora, mientras que los que tienen un desempeño promedio necesitan hasta un mes. MTTR (Tiempo medio de recuperación): MTTR se refiere a cuánto tiempo lleva restaurar un servicio después de que ocurra un incidente o una interrupción. Idealmente, desea apuntar por menos de una hora. Una interrupción cuesta mucho dinero, especialmente cuando afecta los centros de beneficio de la aplicación. Las interrupciones prolongadas destruyen la confianza, disminuyen la moral e implican desafíos organizativos adicionales. Error de cambio: este término se refiere a la velocidad a la que los cambios en su sistema afectan negativamente el rendimiento. Aunque nunca alcanzará una tasa de falla de cambio del cero por ciento, puede acercarse absolutamente a cero aumentando sus pruebas automatizadas y confiando en una tubería de implementación con controles y compuertas de integración continua, todo lo cual garantiza la calidad.

Eliminar la perfección como medida del éxito de DevOps

DevOps se basa en el mantra "Hecho es mejor que perfecto". Parece ser una de estas citas imposibles de atribuir, pero las palabras dicen la verdad. Intentar alcanzar la perfección es enemigo de la efectividad y la productividad.

La mayoría de los ingenieros, incluidos los de la variedad DevOps, padecen alguna versión de parálisis de análisis, una afección mental que limita su productividad en un intento de analizar en exceso su trabajo y evitar cualquier posible accidente.

Entrenar la imperfección en tu trabajo requiere que aceptes la posibilidad del fracaso y la inevitabilidad de la refactorización. Crear bucles de retroalimentación alrededor del cliente y regresar a varias etapas de la tubería son los principales inquilinos de DevOps. En DevOps, estás conectando los extremos para doblar la línea en un círculo.

Cuando piensas de forma iterativa y circular, eliminar el código que no es perfecto parece mucho menos aterrador porque el código no está tallado en piedra. En cambio, es en un estado temporal que los ingenieros de DevOps mejoran con frecuencia a medida que recopila más datos y comentarios.

Diseñando pequeños equipos para DevOps

Probablemente hayas oído hablar de los equipos de "dos pizzas" de Amazon. El concepto habla ampliamente de la importancia de los equipos pequeños. Ahora, el número exacto de personas que componen un equipo de dos pizzas varía según sus apetitos.

Es una buena idea mantener equipos de menos de 12 personas. Cuando un grupo se acerca a 9, 10 u 11 personas, intente dividirlo en dos. El punto ideal para el tamaño del grupo es de 4 a 6 personas. Su número exacto puede variar según las personas involucradas, pero el punto es este: cuando los grupos se hacen demasiado grandes, la comunicación se vuelve desafiante, se forman camarillas y el trabajo en equipo sufre.

Aquí hay otro objetivo adicional al formar equipos de DevOps: números pares. Es una buena idea darles a las personas un "amigo" en el trabajo, alguien en quien puedan confiar por encima de todos los demás. En los grupos pares, todos tienen un amigo y nadie se queda fuera. Puede emparejarse de manera uniforme y tiende a funcionar bien. No siempre es posible formar grupos pares debido a los números de personal, pero es algo a tener en cuenta.

Una fórmula para medir los canales de comunicación es n (n - 1) / 2, donde n representa el número de personas. Puede calcular qué tan compleja será la comunicación de su equipo haciendo un cálculo simple. Por ejemplo, la fórmula para un equipo de 10 de dos pizzas sería 10 (10 - 1) / 2 = 45 canales de comunicación. Puedes imaginar lo complejos que pueden llegar a ser los equipos más grandes.

Seguimiento de su trabajo DevOps

Si puede superar la pequeña sobrecarga de anotar lo que hace todos los días, los resultados le proporcionarán un valor excepcional. Tener datos reales sobre cómo usa su tiempo lo ayuda a rastrear su eficacia y la de su equipo. Como Peter Drucker dijo: "Si no puedes medirlo, no puedes mejorarlo".

¿Cuántos días dejas el trabajo sintiendo que no hiciste nada? Acaba de tener una reunión tras otra o interrupciones aleatorias durante todo el día. No estás solo. Muchos trabajadores tienen el mismo problema. Puede ser difícil seguir su progreso y, por lo tanto, su productividad. La divergencia entre nuestros sentimientos de eficacia y la realidad de nuestra eficacia es un territorio peligroso para cualquier equipo de DevOps.

Intente usar lápiz y papel en lugar de alguna herramienta automatizada para esto. Sí, puede usar software para rastrear cómo usa su tiempo en su computadora. Puede decirle cuándo está leyendo el correo electrónico, cuándo está aflojando y cuándo está codificando, pero carece de matices y, a menudo, pierde o clasifica incorrectamente largos períodos de tiempo.

Después de tener una idea de lo que está haciendo y cuándo, puede comenzar a identificar qué actividades corresponden a qué cuadrantes de la Matriz de Decisión de Eisenhower. ¿Qué trabajo ocupado haces rutinariamente que no te da valor a ti ni a la organización?

Reducción de la fricción en proyectos DevOps

Una de las mejores cosas que un gerente puede hacer por un equipo de ingeniería de DevOps es dejarlos en paz. Contrata ingenieros curiosos que sean capaces de resolver problemas de forma independiente y luego déjalos hacer su trabajo. Cuanto más pueda reducir la fricción que ralentiza su trabajo de ingeniería, más efectivo será su equipo.

La reducción de la fricción incluye la fricción que existe entre los equipos, especialmente las operaciones y el desarrollo. No olvides a especialistas como la seguridad también.

Alinear objetivos e incentivos aumenta la velocidad. Si todos están enfocados en lograr las mismas cosas, pueden unirse como equipo y avanzar metódicamente hacia esos objetivos.

Humanización de alertas para el éxito de DevOps

Cada equipo de ingeniería tiene alertas sobre acciones o eventos que no importan. Tener todas esas alertas desensibiliza a los ingenieros a las alertas verdaderamente importantes. Muchos ingenieros se han condicionado a ignorar las alertas por correo electrónico debido a una sobreabundancia de mensajes.

La fatiga de alerta afecta a muchas organizaciones de ingeniería y tiene un alto costo. Si te inundan a diario, es imposible elegir lo importante de un mar sin importancia. Incluso podría decir que estos mensajes son urgentes pero no importantes. . . .

El correo electrónico no es un vehículo ideal para alertas porque no es sensible al tiempo (muchas personas revisan el correo electrónico solo unas pocas veces al día) y se oculta fácilmente en otras minucias.

Aplicando lo que aprendió sobre la iteración rápida, reevalúe sus umbrales de alerta regularmente para garantizar una cobertura adecuada sin demasiados falsos positivos. Identificar qué alertas no son necesarias lleva tiempo y trabajo. Y probablemente sea un poco aterrador, ¿verdad? Eliminar una alerta o aumentar un umbral siempre conlleva un poco de riesgo.

¿Qué pasa si la alerta es realmente importante? Si es así, lo descubrirás. Recuerde, no puede temer el fracaso en una organización DevOps. Debe abrazarlo para poder avanzar y mejorar continuamente. Si deja que el miedo guíe sus decisiones, se estanca, como ingeniero y como organización.

  1. BusinessOperations ManagementCómo formar equipos de DevOps en su organización

Por Emily Freeman

DevOps no tiene una estructura organizativa ideal. Como todo en tecnología, la respuesta "correcta" con respecto a la estructura de su empresa depende de su situación única: su equipo actual, sus planes de crecimiento, el tamaño de su equipo, los conjuntos de habilidades disponibles de su equipo, su producto, y así sucesivamente.

Alinear la visión de su equipo DevOps debería ser su primera misión. Solo después de haber eliminado el fruto de la fricción obvia entre las personas, debería comenzar a reorganizar los equipos. Incluso entonces, permita cierta flexibilidad.

Si se acerca a una reorganización con apertura y flexibilidad, envía el mensaje de que está dispuesto a escuchar y le da autonomía a su equipo, un principio básico de DevOps.

Es posible que ya tenga un desarrollador de Python o Go apasionado y curioso sobre la administración de infraestructura y configuración. Tal vez esa persona pueda cambiar a un rol más centrado en las operaciones en su nueva organización. Ponte en los zapatos de esa persona. ¿No serías leal a una organización que se arriesgó contigo? ¿No te gustaría trabajar duro? Y esa emoción es contagiosa.

Aquí, aprenderá a alinear los equipos que ya tiene, dedicar un equipo a las prácticas de DevOps y crear equipos multifuncionales, todos los enfoques desde los cuales puede elegir orientar sus equipos hacia DevOps.

Puede elegir un enfoque y permitir que evolucione a partir de ahí. No sienta que esta decisión es permanente e inamovible. DevOps se centra en la iteración rápida y la mejora continua y ese es el principal beneficio de esta metodología. Esa filosofía también se aplica a los equipos.

Alinear equipos funcionales para DevOps

En este enfoque, crea una fuerte colaboración entre sus equipos tradicionales de desarrollo y operaciones. Los equipos siguen siendo funcionales por naturaleza: uno enfocado en operaciones, otro enfocado en código. Pero sus incentivos están alineados. Crecerán para confiar el uno en el otro y trabajarán como dos equipos unidos.

Para organizaciones de ingeniería más pequeñas, alinear equipos funcionales es una opción sólida. Incluso como primer paso, esta alineación puede reforzar los cambios positivos que ha realizado hasta ahora. Por lo general, comienza la alineación tomándose el tiempo para establecer una buena relación. Asegúrese de que cada persona en ambos equipos no solo comprenda intelectualmente el rol y las limitaciones del otro equipo, sino que también se identifique con los puntos débiles.

Para este enfoque, es una buena idea promover una política de "Usted lo construye, lo respalda". Esta política significa que todos, tanto el desarrollador como la persona de operaciones, participan en su rotación de guardia.

Esta participación permite a los desarrolladores comenzar a comprender las frustraciones de ser llamado en medio de la noche y luchar mientras están con los ojos nublados y privados de cafeína para corregir un error que está afectando a los clientes. Las personas de operaciones también comienzan a confiar en el compromiso de sus desarrolladores con su trabajo. Incluso este pequeño cambio genera una extraordinaria cantidad de confianza.

Una palabra de precaución: si los desarrolladores luchan duro contra estar de guardia, hay un problema mayor en su organización. El rechazo no es infrecuente porque estar de guardia es muy diferente de sus responsabilidades normales del día a día. El retroceso a menudo proviene de un lugar de incomodidad y miedo. Puede ayudar a mitigar esta reacción abordando el hecho de que sus desarrolladores pueden no saber qué hacer las primeras veces que están de guardia.

Es posible que no estén familiarizados con la infraestructura, y eso está bien. Anímalos a escalar el incidente y llamar a alguien con más experiencia. Finalmente, cree un runbook con alertas comunes y qué acciones tomar. Proporcionar este recurso ayudará a calmar el miedo hasta que comiencen a acostumbrarse.

Otra táctica para ayudar a estimular la colaboración para formar un equipo DevOps más coherente es introducir un día de observación, con cada equipo "intercambiando" un colega. La persona intercambiada simplemente sigue a otra persona en el equipo, se sienta en su escritorio (o en su área) y asiste en sus responsabilidades cotidianas. Pueden ayudar con el trabajo, discutir problemas en equipo (programación en pareja) y aprender más sobre el sistema desde un punto de vista diferente. Este estilo de enseñanza no es prescriptivo.

En cambio, se presta a la curiosidad y a generar confianza. Los colegas deben sentirse libres de hacer preguntas, incluso la variedad "estúpida", y aprender libremente. No existen expectativas de rendimiento. El tiempo debe dedicarse simplemente a conocerse y apreciar el trabajo del otro. ¡Cualquier salida productiva es una bonificación!

En este enfoque de alineación, ambos equipos deben estar absolutamente involucrados en los procesos de planificación, arquitectura y desarrollo. Deben compartir responsabilidades y rendición de cuentas durante todo el ciclo de vida del desarrollo.

Dedicando un equipo DevOps

Un equipo dedicado de DevOps es más una evolución del administrador de sistemas que un verdadero equipo de DevOps. Es un equipo de operaciones con una mezcla de conjuntos de habilidades. Quizás algunos ingenieros estén familiarizados con la administración de la configuración, otros IaC (infraestructura como código) y quizás otros sean expertos en contenedores o infraestructura nativa de la nube o CI / CD (integración continua y entrega / desarrollo continuo).

Si crees que poner un grupo de humanos en un equipo oficial es suficiente para romper los silos, estás equivocado. Los humanos son más complejos que las hojas de cálculo. La jerarquía no significa nada si sus silos han entrado en una fase en la que son insalubres y tribales. En las culturas tóxicas, puede surgir un estilo de liderazgo fuerte que casi siempre es seguido por personas que toman partido. Si ve esto en su propio equipo, tiene trabajo que hacer.

Aunque cualquier enfoque puede funcionar para su equipo, este enfoque de equipo dedicado es el que debe pensar más. La mayor desventaja de un equipo dedicado de DevOps es que se convierte fácilmente en una continuación de los equipos de ingeniería tradicionales sin reconocer la necesidad de alinear equipos, reducir los silos y eliminar la fricción. Los riesgos de continuar la fricción (o crear más) son altos en este enfoque. Sigue con cuidado para asegurarte de que eliges esta organización de equipo por un motivo específico.

Los beneficios de este enfoque de DevOps es tener un equipo dedicado para abordar los principales cambios o ajustes de infraestructura. Si está luchando con problemas centrados en las operaciones que están ralentizando sus implementaciones o causando problemas de confiabilidad del sitio, este podría ser un buen enfoque, incluso temporalmente.

Un equipo dedicado si planea mover una aplicación heredada a la nube. Pero en lugar de llamar a este equipo un equipo DevOps, puede intentar etiquetarlo como un equipo de automatización.

Este grupo dedicado de ingenieros puede centrarse por completo en garantizar que haya configurado la infraestructura correcta y las herramientas de automatización. Luego puede proceder con la confianza de que su aplicación aterrizará en la nube sin mayores interrupciones. Aún así, este enfoque es temporal. Si mantiene al equipo aislado durante demasiado tiempo, corre el riesgo de descender por una pendiente resbaladiza desde un crecimiento rápido hasta un silo incrustado.

Crear equipos de productos multifuncionales para DevOps

Un equipo multifuncional es un equipo formado en torno a un único enfoque de producto. En lugar de tener equipos separados para desarrollo, interfaz de usuario y experiencia de usuario (UI / UX), garantía de calidad (QA) y operaciones, combina personas de cada uno de estos equipos.

Un equipo multifuncional funciona mejor en organizaciones medianas y grandes. Necesita suficientes desarrolladores y personal de operaciones para ocupar los puestos de cada equipo de producto. Cada equipo multifuncional se ve un poco diferente.

Es una buena idea tener, como mínimo, una persona de operaciones por equipo. No le pida a una persona de operaciones que divida sus responsabilidades entre dos equipos. Este escenario es injusto para ellos y creará rápidamente fricción entre los dos equipos de producto. Dé a sus ingenieros el privilegio de poder concentrarse y profundizar en su trabajo.

Si su organización aún es pequeña o está en la fase de inicio, puede pensar en toda su organización de ingeniería como un equipo multifuncional. Mantenlo pequeño y enfocado. Cuando comience a acercarse a tener 10–12 personas, comience a pensar en cómo puede reorganizar a los ingenieros.

La imagen a continuación muestra cómo se verían sus equipos multifuncionales. Pero tenga en cuenta que su composición varía de un equipo a otro y de una organización a otra. Algunos productos tienen un fuerte enfoque de diseño, lo que significa que puede tener múltiples diseñadores en cada equipo. Otros productos son técnicos diseñados para ingenieros a los que no les importa mucho la estética. Los equipos para ese tipo de producto pueden tener un diseñador, o ninguno.

Equipo de producto DevOps

Si su organización es lo suficientemente grande, ciertamente puede crear múltiples equipos utilizando diferentes ideas y enfoques de DevOps. Recuerda que tu organización es única. Siéntase facultado para tomar decisiones basadas en sus circunstancias actuales y ajústese desde allí. Aquí hay algunas combinaciones posibles de varios tipos de equipos de productos.

  • Equipo de productos heredados: Project Manager (PM), Front-end Developer, Back-end Developer, Back-end Developer, Site Reliability Engineer (SRE), Automation Engineer, QA Tester Equipo de transformación en la nube: SRE, SRE, ingeniero de operaciones, ingeniero de automatización, desarrollador de back-end Equipo MVP: PM, diseñador, ingeniero de UX, desarrollador front-end, desarrollador de backend, ingeniero de operaciones

La desventaja de un equipo de productos multifuncionales es que los ingenieros pierden la camaradería de los ingenieros con sus mismas habilidades y pasiones. Tener un grupo de personas de ideas afines con las que puede socializar y de las que puede aprender es un aspecto importante de la satisfacción laboral. Vea una solución a este problema a continuación.

Como se muestra a continuación, puede dar a sus ingenieros tiempo de trabajo dedicado para pasar con sus tribus. Puede hacer algo tan generoso como pagar el almuerzo una vez por semana para que puedan reunirse y hablar. O puede proporcionarles entre el 10 y el 20 por ciento del tiempo de trabajo para que trabajen en proyectos como tribu. De cualquier manera, necesita que sus ingenieros se mantengan alerta.

Las tribus comparten el conocimiento de la industria, brindan comentarios sólidos y apoyan el crecimiento profesional. Proporcione tiempo para que sus ingenieros aprendan de las personas con quienes comparten educación, experiencia y objetivos. Esta vez proporciona un lugar seguro donde pueden relajarse y sentirse como en casa.

Tribus DevOps

Ninguna cantidad de planificación perfecta superará las deficiencias de una mala cultura organizacional. Pero si ha prestado atención hasta ahora y ha dado los pasos apropiados, el siguiente paso es formar equipos que refuercen los ideales culturales que ya ha establecido.

  1. BusinessOperations ManagementMoving to DevOps Processes: From a Line to a Circuit

Por Emily Freeman

El enfoque DevOps implica un ciclo en lugar de una línea. Permite la integración continua y la entrega continua, obteniendo comentarios consistentes durante todo el proceso. La metodología DevOps es solo un ejemplo de cómo han evolucionado los procesos.

Los procesos de desarrollo han cambiado radicalmente en las últimas décadas, y por buenas razones. En la década de 1960, Margaret Hamilton dirigió el equipo de ingeniería que desarrolló el software para la misión Apollo 11. No lanzas humanos al espacio de forma iterativa, al menos no lo hicieron en la década de 1960. No es un área de software en la que "fallar rápido" se sienta como un enfoque particularmente bueno. Las vidas están en juego, sin mencionar millones de dólares.

Hamilton y sus compañeros tuvieron que desarrollar software utilizando la metodología de cascada. La imagen a continuación muestra un ejemplo de un proceso de desarrollo en cascada (que ocurre en línea recta).

proceso en cascada

La siguiente imagen agrega las fases. Observe cómo las flechas van en una dirección. Muestran un comienzo claro y un final claro. Cuando haya terminado, habrá terminado. ¿Derecho?

No Por mucho que a muchas personas les gustaría alejarse de partes de sus bases de código para siempre (o matarlas con fuego), generalmente no obtienen el privilegio.

El software desarrollado por Hamilton y su equipo fue un gran éxito (es alucinante pensar que se desarrollaron en la Asamblea con cero ayudantes como mensajes de error). Sin embargo, no todos los proyectos tuvieron el mismo éxito.

Más tarde, donde falló la cascada, Agile tuvo éxito. (DevOps nació del movimiento ágil). Agile busca tomar la línea recta de la cascada y doblarla en un círculo, creando un circuito interminable a través del cual su equipo de ingeniería puede mejorar de forma iterativa y continua.

tubería de desarrollo en cascada

La siguiente imagen muestra cómo pensar en el ciclo de vida del desarrollo circular.

Circuito DevOps

A menudo, los diversos bucles prescritos por diferentes organizaciones están influenciados por los productos que venden esos proveedores. Por ejemplo, si el proveedor vende herramientas y software de infraestructura, probablemente enfatizará esa parte del ciclo de vida del desarrollo, quizás centrándose más en la implementación, el monitoreo y el soporte de su software.

No hay nada en venta aquí. Las etapas centradas aquí son las más críticas para los desarrolladores, junto con aquellas con las que las personas luchan más cuando aprenden a administrar mejor su desarrollo de software y a adoptar DevOps.

Las cinco etapas del ciclo de vida del desarrollo de software son

  • Planificación: la fase de planificación de su proceso de desarrollo DevOps es quizás la clave para su misión DevOps. Te prepara para el éxito o el fracaso en el futuro. También es el momento más fértil para unir a todos. Para todos, esto significa partes interesadas del negocio, ventas y marketing, ingeniería, producto y otros. Diseño: en la mayoría de las empresas, la fase de diseño se fusiona con la fase de codificación. Esta monstruosa amalgama de diseño y código no permite separar la estrategia arquitectónica de la implementación. Sin embargo, si deja cosas como el diseño de la base de datos, la logística de la API y las opciones de infraestructura clave al final de la canalización de desarrollo, o, lo que es peor, para los desarrolladores individuales que trabajan en características separadas, rápidamente encontrará que su base de código está tan aislada como tu equipo de ingeniería. Codificación: el desarrollo real de las características es la cara del proceso DevOps y obtiene toda la gloria. Pero este es uno de los pasos menos importantes en su ciclo de vida de desarrollo. En muchos sentidos, es simplemente la ejecución de las áreas anteriores de su canalización. Si se hace bien, la codificación debería ser un proceso relativamente simple y directo.

Ahora, si usted es un desarrollador y se quedó sin aliento en esa última oración porque ha lidiado con cientos de errores aleatorios y difíciles de resolver, es fácil entender cómo se siente. La codificación es difícil. Nada sobre el desarrollo de software es fácil. Pero al dominar la planificación, el diseño y la arquitectura (y separarlos de la implementación real del código), se asegura de que las decisiones más difíciles del desarrollo de software se eliminen.

  • Pruebas: las pruebas son un área de su cartera en la que los ingenieros de todas las áreas de experiencia pueden sumergirse e involucrarse, lo que brinda una oportunidad única para aprender sobre las pruebas, el mantenimiento y la seguridad. Hay muchas de las seis etapas del desarrollo de software que ofrecen diferentes tipos de pruebas para garantizar que su software funcione como se espera. Implementación: la implementación es la etapa que quizás sea la más relacionada con las operaciones. Tradicionalmente, su equipo de operaciones tomaba el código desarrollado por sus desarrolladores y probado por su equipo de control de calidad (QA) y luego lo entregaba a los clientes, haciéndolos responsables del proceso de lanzamiento. DevOps ha tenido un enorme impacto en esta fase del proceso de desarrollo. Además, la implementación es una de las áreas desde las cuales se puede encontrar la mayor cantidad de herramientas de automatización. Desde la perspectiva de DevOps, su prioridad es simplificar el proceso de implementación para que cada ingeniero de su equipo sea capaz de implementar su código. Esto no quiere decir que las operaciones no tengan un conocimiento único, o que los equipos de operaciones puedan ser disueltos.

La gente de operaciones siempre tendrá un conocimiento único sobre infraestructura, equilibrio de carga y similares. De hecho, eliminar la tarea manual de implementar software de su equipo de operaciones les permitirá ahorrar tiempo y dinero en otros lugares. Tendrán tiempo para trabajar en mejorar la confiabilidad y mantenibilidad de su aplicación.

El aspecto más importante de un ciclo de vida de entrega dentro del marco de DevOps es que es un verdadero bucle. Cuando llegas al final, regresas al principio. Además, si recibe comentarios de soporte de los clientes en cualquier punto del camino, vuelva a una fase posterior (o la etapa de planificación) para que pueda desarrollar el software de la manera que mejor sirva a sus clientes.

La primera parte de la construcción de una tubería es tratarla linealmente. Está construyendo una línea recta con etapas y puntos de control establecidos en el camino. Dentro de este marco, puede ver el ciclo de vida del desarrollo de software como algo que comienza y termina. Los amantes de las cascadas estarían orgullosos.

Pero la realidad no te permite trabajar en línea recta. No puedes comenzar a producir código, terminar y alejarte. En cambio, se ve obligado a construir sobre el software fundamental que lanzó en su primer ciclo iterativo y mejorarlo durante el segundo ciclo. Y así sucesivamente y así sucesivamente. El proceso nunca termina y nunca dejarás de mejorar.

El proceso DevOps lo ayuda a conectar el inicio y el final de esa tubería recta para que comience a entenderlo como un circuito completo o bucle, para que pueda desarrollarlo y mejorarlo continuamente.

  1. BusinessOperations ManagementTécnicas de entrevista para crear un equipo DevOps: obtener las habilidades técnicas adecuadas

Por Emily Freeman

Puede ser difícil evaluar a los candidatos para el conjunto de habilidades correcto al contratar para trabajos de DevOps ... pero no imposible. Con un poco de creatividad y disposición para salir de la caja, puede usar técnicas de entrevista para ayudar a encontrar candidatos con las habilidades técnicas adecuadas para sus iniciativas DevOps.

Entrevistas de DevOps

La edad de los acertijos obtusos y las entrevistas de pizarra que inducen el sudor está disminuyendo, y por una buena razón. Si un ingeniero facilita una entrevista en la pizarra y se preocupa más por engañar al candidato que por discutir una conversación técnica, no irá a ninguna parte rápidamente.

Las entrevistas en pizarrón han tenido mucho calor recientemente por poner en desventaja a los grupos marginados y subrepresentados, que incluyen a mujeres y personas de color. En esta era, es absolutamente vital que las compañías tecnológicas contraten fuerzas laborales diversas, por lo que esta situación es inaceptable. Sin embargo, tienes que medir de alguna manera la capacidad técnica de una persona.

¿Cuál es la respuesta? Bueno, la buena noticia es que tienes opciones. (La mala noticia es ... tienes opciones).

La forma en que contrates determinará quién eres.

Vuelva a la entrevista de la pizarra para los candidatos de DevOps

La entrevista de la pizarra nunca tuvo la intención de ser lo que se ha convertido. En una entrevista de pizarra, el candidato de DevOps recibió un programa de computadora impreso en ocho hojas de papel. ¿Las instrucciones? "Depurar el programa". Umm. . . ¿Perdóneme?

La entrevista de la pizarra se ha convertido en una situación en la que le da a un candidato un problema aparentemente imposible, lo envía a la pizarra con un marcador y lo observa sudar profusamente mientras cuatro o cinco personas observan su pánico. Este tipo de entrevista no proporciona a nadie información de calidad sobre si el empleador o el entrevistado son adecuados para la otra parte.

Aunque otros han pedido que se elimine la entrevista de la pizarra, aquí hay una sugerencia más matizada: cámbiela para que se ajuste a sus necesidades de DevOps. Haga una discusión entre dos personas sobre un código o un problema en particular. No convierta el problema en algo loco, como equilibrar un árbol de búsqueda binario. A menos que el trabajo para el que esté entrevistando sea, literalmente, escribir código en la Asamblea, no necesita evaluar la capacidad del candidato para escribir la Asamblea.

Conozca el trabajo de DevOps que desea completar, los conjuntos de habilidades requeridos y la mejor manera de medir esas habilidades en un candidato. Haga que un solo ingeniero de su equipo se siente con el candidato y hable sobre el problema. ¿Cómo comenzarías la conversación? ¿Qué problemas te encuentras en el camino? ¿Cómo adaptarían sus soluciones a los desafíos que enfrentan?

Este enfoque conversacional logra dos cosas para los candidatos de DevOps:

  • Reduce el pánico. La mayoría de la gente no piensa bien bajo presión. Además, no haces tu trabajo todos los días mientras alguien te mira por encima del hombro y critica cada error tipográfico. Renunciarías a ese trabajo en un instante. Así que no obligue a las personas a entrevistar de esa manera. En su lugar, brinde a sus candidatos la oportunidad de mostrar lo que pueden hacer. Obtendrá información sobre cómo piensan y se comunican. Imita el trabajo real. La entrevista conversacional le da una idea de cómo sería trabajar con esta persona. No resuelven problemas difíciles en el trabajo al verse luchando entre ellos. (Al menos, no deberías. Realmente. Eso no es muy colaborativo o DevOps-y, dejando que tus colegas sufran en su silo.) En cambio, trabajas juntos, intercambias ideas, piensas las cosas, cometes errores, te recuperas y encuentras Una solución: juntos.

Las mejores entrevistas de pizarra son colaborativas, comunicativas y centradas en la curiosidad, todas las cosas que los profesionales adoran de DevOps.

Ofrecer pruebas para llevar a casa a los candidatos de DevOps

Una alternativa a una entrevista de pizarra más tradicional es la prueba para llevar a casa. Este tipo de prueba es particularmente amigable para las personas que tienen algún tipo de ansiedad o discapacidad invisible que afecta su capacidad de participar en una entrevista de pizarra. Este estilo de entrevista también es amigable para los ingenieros que luchan intensamente con el síndrome del impostor.

El síndrome de Imposter describe a personas de alto rendimiento que luchan por internalizar sus éxitos y experimentan una sensación persistente de exponerse como un fraude.

Una prueba para llevar a casa consiste en algún tipo de problema que un candidato de DevOps puede resolver en casa en su propio tiempo. Las pruebas para llevar a casa a menudo se configuran como un conjunto de pruebas para el cual el candidato debe escribir el código para que las pruebas pasen.

Alternativamente, el problema podría ser algo relativamente pequeño, como: "Cree un programa en [su idioma de elección] que tome una entrada y revierta los caracteres". Las opciones son infinitas y puede adaptar la prueba a su pila de tecnología como te parece bien.

Incluso puede pedirles a los candidatos de DevOps que implementen su aplicación. Asegúrese de permitir que los candidatos usen herramientas de código abierto o de proporcionarles las suscripciones necesarias para usar tecnologías particulares.

El principal inconveniente de las pruebas para llevar a casa es que le estás pidiendo a las personas que tomen tiempo durante sus tardes o fines de semana para hacer lo que es esencialmente trabajo libre. Incluso si les paga por su trabajo en la prueba para llevar a casa, este estilo de entrevista puede afectar injustamente a un candidato de DevOps que tiene otras responsabilidades fuera del trabajo, incluido el cuidado de niños, una pareja o padres enfermos.

No todos los grandes ingenieros tienen tiempo ilimitado para comprometerse con su oficio. Pero si limita su grupo de candidatos DevOps a personas que pueden permitirse dedicar de 5 a 10 horas a una prueba para llevar a casa, rápidamente encontrará que su equipo se está volviendo homogéneo y estancado.

Revise el código con los candidatos de DevOps

Una técnica de entrevista que puede ser realmente reveladora es cuando te sientas con un ingeniero, o un grupo de ingenieros, para resolver errores reales en código real juntos. Puede tomar algunos enfoques para una entrevista de código en tiempo real.

Puede imitar una prueba para llevar a casa y darle al candidato una hora más o menos para crear un programa o escribir una función para aprobar una serie de pruebas. También puede organizar la entrevista como una revisión de código en la que obtiene un PR real y profundiza en lo que está haciendo el código y en lo que podría mejorarse.

En muchos sentidos, la naturaleza de programación de pares de una revisión de código combina las mejores partes de una entrevista de pizarra y una prueba para llevar a casa, pero sin algunos de sus principales inconvenientes.

La programación en pareja es una práctica de ingeniería en la que dos ingenieros se sientan y trabajan juntos para resolver un problema. Por lo general, una persona "maneja" al poseer el teclado, pero en colaboración deciden qué enfoque es mejor, qué código agregar y qué quitar.

Si la posición de DevOps implica un rol centrado en las operaciones, usar este enfoque de codificación en tiempo real es aún mejor. Aunque muchas personas de operaciones están aprendiendo a implementar infraestructura como código o administrar configuraciones, no tienen la misma experiencia que los desarrolladores.

Revisar qué hace algo y cómo podría funcionar es una forma fantástica de confirmar que el candidato tiene experiencia en la lista de herramientas y tecnologías en su currículum, así como garantizar que el candidato pueda comunicarse con un equipo.

Construir su equipo DevOps es una búsqueda individual. Su equipo DevOps no necesita coincidir con otros que haya visto. Evalúe sus objetivos y seleccione el candidato adecuado para cada trabajo DevOps.

  1. BusinessOperations Management Integración continua y entrega continua: implementación y beneficio de CI / CD

Por Emily Freeman

El crecimiento de la cultura DevOps ha cambiado la forma en que los desarrolladores crean y envían software. Antes de que surgiera la mentalidad ágil, a los equipos de desarrollo se les asignó una característica, la construyeron y luego se olvidaron de ella. Lanzaron el código al equipo de control de calidad, que luego lo devolvió por errores o lo trasladó al equipo de operaciones. Operaciones fue responsable de desplegar y mantener el código en producción.

Este proceso fue torpe, por decir lo menos, y causó bastante conflicto. Debido a que los equipos existían en silos, tenían poca o ninguna idea de cómo operaban otros equipos, incluidos sus procesos y motivaciones.

CI / CD, que significa integración continua y entrega (o implementación) continua, tiene como objetivo derribar los muros que históricamente han existido entre los equipos y, en cambio, instituir un proceso de desarrollo más fluido.

Beneficios de la integración continua y la entrega continua

CI / CD ofrece muchos beneficios. Sin embargo, el proceso de construcción de una tubería de CI / CD puede llevar mucho tiempo, además requiere la aceptación del equipo y el liderazgo ejecutivo.

Algunos beneficios de CI / CD incluyen:

  • Pruebas automatizadas exhaustivas: incluso la implementación más simple de CI / CD requiere un conjunto de pruebas robusto que se puede ejecutar contra el código cada vez que un desarrollador confirma sus cambios en la rama principal. Bucle de retroalimentación acelerado: los desarrolladores reciben retroalimentación inmediata con CI / CD. Las pruebas automatizadas y las integraciones de eventos fallarán antes de fusionar el nuevo código. Esto significa que los desarrolladores pueden acortar el ciclo de desarrollo e implementar funciones más rápido. Disminución del conflicto interpersonal: la automatización de procesos y la reducción de la fricción entre los equipos fomenta un entorno de trabajo más colaborativo en el que los desarrolladores hacen lo que hacen mejor: soluciones de ingeniería. Proceso de implementación confiable: cualquier persona que haya revertido una implementación un viernes por la tarde puede decirle lo importante que es que las implementaciones se realicen sin problemas. La integración continua asegura que el código esté bien probado y funcione de manera confiable en un entorno similar a la producción antes de que llegue a un usuario final.

Implementación de integración continua y entrega continua

CI / CD se basa en metodologías ágiles. Debe pensar en implementar CI / CD como un proceso iterativo. Cada equipo puede beneficiarse de una versión de CI / CD, pero la personalización de la filosofía general dependerá en gran medida de su pila tecnológica actual (los idiomas, los marcos, las herramientas y la tecnología que utiliza) y la cultura.

Integración continua

Los equipos que practican la integración continua (CI) fusionan los cambios de código en la rama maestra o de desarrollo con la mayor frecuencia posible. CI generalmente utiliza una herramienta de integración para validar la compilación y ejecutar pruebas automatizadas contra el nuevo código.

El proceso de CI permite a los desarrolladores de un equipo trabajar en la misma área de la base de código, manteniendo los cambios mínimos y evitando conflictos de fusión masivos.

Para implementar la integración continua:

  • Escriba pruebas automatizadas para cada característica. Esto evita que se implementen errores en el entorno de producción. Configure un servidor de CI. El servidor monitorea los cambios en el repositorio principal y activa las pruebas automatizadas cuando se envían nuevas confirmaciones. Su servidor de CI debe poder ejecutar pruebas rápidamente. Actualiza los hábitos del desarrollador. Los desarrolladores deben fusionar los cambios nuevamente en la base de código principal con frecuencia. Como mínimo, esta fusión debería ocurrir una vez al día.

Entrega continua

La entrega continua es un paso adelante desde CI en que los desarrolladores tratan cada cambio en el código como entregable. Sin embargo, en contraste con la implementación continua, un lanzamiento debe ser activado por un humano, y el cambio puede no entregarse inmediatamente a un usuario final.

En cambio, las implementaciones son automáticas y los desarrolladores pueden fusionar e implementar su código con un solo botón. Al realizar iteraciones pequeñas y entregadas con frecuencia, el equipo se asegura de que puedan solucionar fácilmente los cambios.

Después de que el código pasa las pruebas automatizadas y se crea, el equipo puede implementar el código en cualquier entorno que especifique, como QA o puesta en escena. A menudo, un par revisa manualmente el código antes de que un ingeniero lo fusione en una rama de lanzamiento de producción.

Para implementar la entrega continua:

  • Tener una base sólida en CI. El conjunto de pruebas automatizadas debe crecer en correlación con el desarrollo de funciones, y debe agregar pruebas cada vez que se informa un error. Automatizar lanzamientos. Un humano aún inicia los despliegues, pero el lanzamiento debe ser un proceso de un solo paso: un simple clic de un botón. Considere las banderas de características. Las banderas de características ocultan características incompletas de usuarios específicos, asegurando que sus pares y clientes vean solo la funcionalidad que desea.

Despliegue continuo

La implementación continua lleva la entrega continua incluso un paso más allá de la entrega continua. Se implementa cada cambio que pasa la tubería de lanzamiento de producción completa. Así es: el código se pone directamente en producción.

La implementación continua elimina la intervención humana del proceso de implementación y requiere un conjunto de pruebas completamente automatizado.

Para implementar la implementación continua:

  • Mantener una fuerte cultura de prueba. Debe considerar que las pruebas sean una parte central del proceso de desarrollo. Documentar nuevas características. Las versiones automatizadas no deberían superar la documentación de la API. Coordinar con otros departamentos. Involucre a departamentos como marketing y éxito del cliente para garantizar un proceso de implementación sin problemas.
  1. BusinessOperations ManagementTop 10 trampas de DevOps: por qué fallan sus proyectos de software

Por Emily Freeman

Fomentar una cultura DevOps y seleccionar herramientas para apoyar su enfoque DevOps beneficiará a su organización. El enfoque DevOps galvaniza a su equipo de ingeniería y enfoca el desarrollo de su producto en su cliente.

Sin embargo, cada vez que intenta hacer un cambio masivo en la corriente subterránea de su organización, enfrenta desafíos y tiene que lidiar con reveses. A medida que se transforma en DevOps, descubrirá obstáculos de velocidad únicos para que usted y su equipo lo superen.

Aunque no puede predecir todos los obstáculos que enfrentará, este artículo puede prepararlo para los diez escollos más comunes de DevOps. Recuerde que, independientemente de cómo aborde su práctica de DevOps, sus prioridades deben permanecer centradas en las personas, los procesos y la tecnología, en ese orden.

No dar prioridad a la cultura en su proyecto DevOps

Más que cualquier otra cosa, DevOps es un movimiento cultural. La cultura que desarrolle en su organización hará que su práctica de DevOps se vea afectada. Su cultura DevOps debe enfatizar la colaboración, la confianza y el empoderamiento de la ingeniería. Si logras la automatización de las uñas pero te pierdes esos componentes culturales, es probable que fracases.

En verdad, las herramientas no importan tanto. Las herramientas que tiene a su disposición son más similares que no. Aunque los problemas que resuelven son importantes, ninguno de esos problemas puede compararse con la frustración casi interminable de tratar de unir a los desarrolladores y las personas de operaciones, así como a otros equipos, como la seguridad, en una organización de ingeniería tradicional.

DevOps busca galvanizar a los ingenieros (así como a los grupos empresariales). Crea una base sobre la cual todos pueden aprender, compartir y crecer. Esa aceleración personal impulsará a toda su organización de ingeniería para crear un mejor software DevOps, más rápido. Los ingenieros que tiene en su equipo son el activo más valioso que tiene. Trátelos bien dándoles respeto y espacio para hacer lo que mejor saben hacer: soluciones de ingeniería.

Dejando a otros atrás mientras avanzas con DevOps

Hacer el caso internamente para DevOps determinará el tipo de base que construirá para su cultura. Busca suelo fértil. Si se mueve demasiado rápido y no convence a las personas clave de la importancia de una transformación de DevOps, la gente observará sus movimientos con escepticismo y saltará a la primera oportunidad para mostrarles a todos que está equivocado. No es una posición divertida para estar, y nunca querrás comenzar este viaje con personas esperando que fracases.

Para tener éxito, necesitas a todos a bordo del barco DevOps, incluso los detractores y escépticos. Los ingenieros pueden ser escépticos. Después de una década o dos en esta industria, han visto muchas ideas y nuevos enfoques ir y venir. Pueden ignorar fácilmente DevOps como "simplemente otro enfoque fallido" a los mismos viejos problemas. Y si lo implementa mal, DevOps será de hecho otro enfoque fallido. Usted y su equipo deben persuadir a otros del potencial y tomar medidas de manera que inviten a todos a la mesa.

Intente convencer a los ejecutivos con datos y el potencial para la entrega acelerada de software. Pero los ingenieros necesitan saber cómo DevOps hará que sus trabajos sean más agradables. Muéstreles cómo DevOps se alinea con las necesidades comerciales y reduce la fricción a lo largo de la tubería de entrega de software.

Solo asegúrese de no sobre vender el concepto. Los desafíos de DevOps sucederán. DevOps no es una bala de plata y requiere un trabajo intenso al principio para garantizar que el equipo cree una cultura de aprendizaje en la que los ingenieros sean libres de cometer errores y crecer.

Después de llegar a un horizonte de eventos en el que suficientes personas creen en DevOps, puede continuar sabiendo que cuenta con el apoyo de su organización y de las personas que la integran.

Olvidarse de alinear incentivos en su proyecto DevOps

Si no se propone alinear los incentivos con lo que espera de ciertos equipos o ingenieros específicos, surgen más desafíos. La verdadera herramienta de DevOps, si puedes dominarla, es el empoderamiento. Desea capacitar a sus ingenieros para que hagan bien su trabajo, sin interferencias. Contrató ingenieros talentosos, así que confíe en su capacidad para cumplir con sus responsabilidades.

Por ejemplo, cuando los desarrolladores sirven en una rotación de guardia, algunas organizaciones lo enmarcan como un castigo. "Lo construiste, lo apoyas", no llena exactamente a las personas con sentimientos felices. En cambio, se siente como una forma más de responsabilidad encubierta. Pero una rotación de llamadas humana y uniformemente distribuida no solo permite a los desarrolladores tomar posesión de su trabajo, sino que también crea oportunidades de aprendizaje para todo el equipo.

En DevOps, no castigas a los ingenieros por un trabajo imperfecto; en cambio, comparte la responsabilidad y cultiva una organización que valora el aprendizaje y permite a todos tener curiosidad y participar en áreas tecnológicas en las que están menos familiarizados.

La alineación de incentivos y la creación de oportunidades de colaboración impulsa su objetivo de mejorar sus productos y servir mejor a sus clientes. Si todos están alineados con el objetivo de crear servicios increíbles para sus clientes a través de DevOps, verá que el grupo comienza a galvanizarse.

Guardar silencio sobre su proyecto DevOps

DevOps es la antítesis de secretos y negociaciones internas. En cambio, expone todo sobre la mesa y lo obliga a confiar en la integridad de las personas de su organización. Cuando introduce la comunicación abierta por primera vez, puede parecer que el conflicto aumenta. No lo hace En cambio, simplemente estás viendo los puntos de fricción por primera vez. En lugar de dejar que el conflicto se desarrolle debajo de la superficie, las personas se sienten lo suficientemente seguras como para expresar sus preocupaciones y expresar sus opiniones.

Un aspecto importante de la comunicación abierta es mantenerla en funcionamiento durante todo el ciclo de vida del producto, desde la ideación hasta la producción. Debe incluir ingenieros en las discusiones de planificación, decisiones de arquitectura, actualizaciones del progreso del desarrollo e implementaciones.

Aunque este énfasis en la comunicación crea debates más detallados, también permite a los ingenieros tener visibilidad fuera de su área central de experiencia, lo que a su vez les permite asesorar a otros mientras están equipados con el contexto necesario para tomar decisiones acertadas.

Mantenga al cliente, y lo que esperan del producto que está creando, en el centro de cada discusión y decisión. Si te mantienes alineado con ese objetivo, estás seguro de avanzar juntos como una unidad.

Olvidarse de medir su progreso DevOps

Medir su progreso es crucial para el éxito de DevOps. Le presta validación cuando defiende a DevOps ante las partes interesadas que dudan, lo ayuda a convencer a los ejecutivos que se quedan atrás y le recuerda a su equipo de ingeniería cuánto han logrado.

Antes de hacer un solo cambio, cree una línea base. Elija un pequeño conjunto de datos que desea rastrear a través de todo su proceso. Estos datos informan sus decisiones y sirven como combustible para continuar presionando cuando golpea contratiempos. Las medidas potenciales incluyen:

  • Satisfacción de Emstakeployee: ¿A sus ingenieros les encanta trabajar en su organización? Ingresos recurrentes mensuales (MRR): ¿Cuánto dinero gana de los clientes? Entradas de clientes: ¿Cuántos errores informan sus clientes? Frecuencia de implementación: ¿Cuántas implementaciones tiene cada semana o mes? Tiempo medio de recuperación (MTTR): ¿Cuánto tiempo lleva recuperarse de una interrupción del servicio? Disponibilidad del servicio: ¿Cuál es el tiempo de actividad de su aplicación? ¿Está alcanzando sus acuerdos actuales de nivel de servicio? Implementaciones fallidas: ¿cuántas versiones provocan interrupciones del servicio? ¿Cuántos tienen que ser revertidos?

Micromanageando su proyecto DevOps

Una de las formas más rápidas de socavar a sus ingenieros es microgestionando su trabajo. Dan Pink, autor del libro Drive, cree que la motivación en el trabajo está impulsada por tres factores:

  • Autonomía Maestría Propósito

Los motivadores extrínsecos, como los altos salarios, los bonos y las opciones sobre acciones, pueden funcionar a corto plazo, pero la satisfacción laboral a largo plazo depende más del crecimiento personal y profesional. Desea que sus ingenieros existan bajo la tensión de sentirse muy desafiados pero no agobiados por el estrés. Ese punto dulce es diferente para cada persona. Es un desafío de DevOps, pero una vez que puede hacer una gran diferencia si se hace correctamente. Si puedes evocar la pasión de alguien, seguramente trabajará con entusiasmo.

La confianza puede ser un desafío de DevOps. Es absolutamente crítico para las organizaciones DevOps. Debe confiar en sus colegas, colegas, ingenieros, gerentes y ejecutivos. También debe confiar en los roles y responsabilidades de los distintos departamentos de su organización, lo que no quiere decir que nunca tendrá conflictos. Por supuesto, pasarán momentos de fricción entre los seres humanos. Pero minimizar esos momentos y permitir una resolución saludable de conflictos es lo que distingue a los equipos de ingeniería centrados en DevOps de sus competidores.

Cambiando demasiado, demasiado rápido

Muchos equipos realizan demasiados cambios demasiado rápido. A los humanos no les gusta el cambio. DevOps es beneficioso a largo plazo, los cambios rápidos en la forma normal de hacer las cosas pueden ser molestos para los ingenieros.

Una falla de DevOps es que implica que todos viven en el greenfield (nuevo software) con arcoiris y unicornios. Puede sonar como, "¡Si solo puedes lograr que tu equipo trabaje junto, el desarrollo de software será fácil!" Eso no es cierto. La ingeniería de software es difícil y siempre lo será. Eso es algo que a la mayoría de los ingenieros les gusta. Disfrutas un desafío. Pero los desafíos deben ser estimulantes, no estresantes.

DevOps no tiene como objetivo eliminar todos los desafíos intelectuales de la ingeniería. En cambio, ofrece minimizar la fricción entre los humanos para que todos puedan concentrarse en su trabajo. Si intentas hacer demasiados cambios demasiado rápido, puedes encontrarte en medio de una revuelta total: Motín en el binario.

Elegir mal las herramientas de DevOps

Aunque está des priorizando las herramientas en DevOps, y con razón, las herramientas siguen siendo un factor. Incluso el aspecto menos importante de DevOps contribuye a su éxito general. Las herramientas que seleccione deben resolver los problemas que experimenta su equipo de ingeniería, pero también deben alinearse con las áreas de estilo, conocimiento y comodidad de su equipo actual.

No tenga miedo de probar varias soluciones y ver cuál se adapta mejor. Vale la pena dedicar unas semanas a un producto mínimo viable (MVP) o prueba de concepto (POC) para probar una herramienta. Incluso si termina tirándola a la basura, es preferible "desperdiciar" los recursos de ingeniería que utilizar una tecnología en particular solo para descubrir un año después que no es una buena opción.

Temor al fracaso de su proyecto DevOps

Fracasar rápido es una forma corta de decir que debe estar constantemente iterando para identificar problemas al principio del proceso sin gastar un montón de tiempo y dinero. Es algo de lo que mucha gente en tecnología habla y pocos implementan realmente porque requiere una iteración rápida en un entorno en el que los errores tienen un pequeño radio de explosión y se corrigen fácilmente. Con demasiada frecuencia, las empresas afirman tener una mentalidad a prueba de fallas y, en cambio, despiden al primer ingeniero que elimina una base de datos de producción. (Como si algún ingeniero nunca hubiera eliminado una base de datos de producción....)

Sin embargo, en el contexto de DevOps, es mejor fallar bien que fallar rápidamente. Fallar bien implica que tiene un monitoreo para alertarlo sobre posibles problemas mucho antes de que la situación afecte a los clientes. Si falla bien, también implica que ha diseñado su sistema de forma segmentada para evitar que un servicio que se está cayendo caiga en cascada en una interrupción sistémica. Pero las organizaciones que fracasan también van un paso más allá: no culpan a las personas. En cambio, buscan fallas en los sistemas y procesos.

Kaizen es la palabra japonesa para la mejora continua. En DevOps, kaizen significa mejorar continuamente sus procesos. No es una transformación sexy que tiene un principio y un final. El objetivo no es ir de cero a perfecto. En cambio, DevOps alienta a trabajar lenta y gradualmente para mejorar una cosa, todos los días. Si sale del trabajo cada noche sabiendo que solo un pequeño aspecto del trabajo es mejor por usted, ¿no se sentiría satisfecho? Muchos ingenieros piensan así.

En lugar de intentar evitar el fracaso a toda costa, DevOps insiste en una mentalidad de crecimiento. El fracaso no es un marcador de estupidez o mala preparación. Es un marcador de crecimiento y un paso necesario en la innovación. La innovación es un resultado que debe estar dispuesto a perseguir, incluso si eso significa que ocasionalmente falla.

Ser demasiado rígido creará problemas de DevOps

DevOps no es prescriptivo, y eso es lo mejor y lo peor. DevOps sería mucho más fácil de implementar si tuviera una lista de diez pasos que podría seguir para lograr el nirvana de DevOps. ¡Si solo fuera así de facil! Pero los humanos no funcionan de esa manera, y los grupos de humanos, como los equipos de ingeniería y las grandes organizaciones, crean aún más complejidades que deben abordarse.

Aunque no existe un plan para construir una organización DevOps, usted está facultado para adaptar la metodología a las prácticas que funcionen para usted y su equipo. Usted conoce su organización y, como experto experto, debe pensar fuera de la caja al aplicar los fundamentos. Algunas de las cosas en DevOps te quedarán perfectamente. Otros tendrán ganas de usar una chaqueta que es solo una talla demasiado pequeña. Esta bien.

Vas a cometer errores. Nadie es perfecto. Pero si suelta un poco, capacita a sus ingenieros y confía en su equipo, verá resultados impresionantes. Solo comienza. Y recuerde: invite a todos a la mesa, mida su progreso, priorice la cultura sobre la tecnología y capacite a sus ingenieros para que hagan lo que mejor saben hacer.

  1. BusinessOperations Management ¿Qué es DevOps?

Por Emily Freeman

¿Qué es DevOps? Es difícil proporcionarle una receta exacta de DevOps, porque no existe ninguna. DevOps es una filosofía que guía el desarrollo de software, una que prioriza a las personas sobre el proceso y el proceso sobre las herramientas. DevOps desarrolla una cultura de confianza, colaboración y mejora continua.

Ciclo DevOps

Como cultura, la filosofía de DevOps considera el proceso de desarrollo de manera integral, teniendo en cuenta a todos los involucrados: desarrolladores, evaluadores, personal de operaciones, ingenieros de seguridad e infraestructura. DevOps no coloca a ninguno de estos grupos por encima de los demás, ni clasifica la importancia de su trabajo. En cambio, una compañía de DevOps trata a todo el equipo de ingenieros como crítico para garantizar que el cliente tenga la mejor experiencia posible.

DevOps evolucionó de Agile

En 2001, 17 ingenieros de software se reunieron y publicaron el "Manifiesto para el desarrollo de software ágil", que explica los 12 principios de la gestión de proyectos ágiles. Este nuevo flujo de trabajo fue una respuesta a la frustración e inflexibilidad de los equipos que trabajan en un proceso en cascada (lineal).

Al trabajar dentro de los principios ágiles, los ingenieros no están obligados a cumplir con los requisitos originales o seguir un flujo de trabajo de desarrollo lineal en el que cada equipo entrega el trabajo al siguiente. En cambio, son capaces de adaptarse a las necesidades siempre cambiantes de la empresa o el mercado, y a veces incluso a la tecnología y las herramientas cambiantes.

Aunque Agile revolucionó el desarrollo de software de muchas maneras, no logró abordar el conflicto entre desarrolladores y especialistas en operaciones. Los silos aún se desarrollaron en torno a conjuntos de habilidades técnicas y especialidades, y los desarrolladores aún entregaron el código a los empleados de operaciones para implementar y brindar soporte.

En 2008, Andrew Clay Shafer habló con Patrick Debois sobre sus frustraciones con el conflicto constante entre desarrolladores y gente de operaciones. Juntos, lanzaron el primer evento DevOpsDays en Bélgica para crear una forma mejor y más ágil de abordar el desarrollo de software. Esta evolución de Agile se apoderó, y desde entonces DevOps ha permitido a las compañías de todo el mundo producir un mejor software más rápido (y generalmente más barato). DevOps no es una moda pasajera. Es una filosofía de ingeniería ampliamente aceptada.

DevOps se enfoca en las personas

Cualquiera que diga que DevOps se trata de herramientas quiere venderte algo. Por encima de todo, DevOps es una filosofía que se centra en los ingenieros y cómo pueden trabajar mejor juntos para producir un excelente software. Podrías gastar millones en cada herramienta DevOps del mundo y aún así no estar más cerca del nirvana de DevOps.

En cambio, concéntrese en su activo de ingeniería más importante: ingenieros. Los ingenieros felices hacen un gran software. ¿Cómo se hacen ingenieros felices? Bueno, usted crea un ambiente de trabajo colaborativo en el que el respeto mutuo, el conocimiento compartido y el reconocimiento del trabajo duro pueden prosperar.

La cultura de la empresa es la base de DevOps

Su empresa tiene una cultura, incluso si se ha dejado desarrollar por inercia. Esa cultura tiene más influencia en su satisfacción laboral, productividad y velocidad del equipo de lo que probablemente cree.

La cultura de la empresa se describe mejor como las expectativas, el comportamiento y los valores no expresados ​​de una organización. La cultura es lo que les dice a sus empleados si el liderazgo de la empresa está abierto a nuevas ideas. Es lo que informa la decisión de un empleado sobre si presenta un problema o lo oculta bajo la alfombra.

La cultura es algo para ser diseñado y refinado, no algo para dejar al azar. Aunque la definición real varía de una compañía a otra y de persona a persona, DevOps es un enfoque cultural de la ingeniería en su núcleo.

Una cultura de empresa tóxica matará su viaje DevOps incluso antes de que comience. Incluso si su equipo de ingeniería adopta una mentalidad DevOps, las actitudes y los desafíos de la empresa más grande se desvanecerán en su entorno.

Con DevOps, evita la culpa, aumenta la confianza y se concentra en el cliente. Le da autonomía a sus ingenieros y les permite hacer lo que mejor saben hacer: soluciones de ingeniería. A medida que comienza a implementar DevOps, brinda a sus ingenieros el tiempo y el espacio para adaptarse, lo que les brinda la oportunidad de conocerse mejor y establecer una buena relación con los ingenieros con diferentes especialidades.

Además, mide el progreso y recompensa los logros. Nunca culpe a las personas por los fracasos. En cambio, el equipo debe mejorar continuamente juntos, y los logros deben ser celebrados y recompensados.

Aprende observando su proceso y recopilando datos

Observar su flujo de trabajo sin expectativas es una técnica poderosa para ver los éxitos y desafíos de su flujo de trabajo de manera realista. Esta observación es la única forma de encontrar la solución correcta para las áreas y los problemas que crean cuellos de botella en sus procesos.

Al igual que con el software, abofetear Kubernetes (u otra herramienta nueva) en un problema no necesariamente lo soluciona. Debe saber dónde están los problemas antes de solucionarlos. A medida que continúa, recopila datos, no para medir el éxito o el fracaso, sino para realizar un seguimiento del rendimiento del equipo. Usted determina qué funciona, qué no funciona y qué probar la próxima vez.

La persuasión es clave para la adopción de DevOps

Vender la idea de DevOps a sus líderes, colegas y empleados no es fácil. El proceso tampoco siempre es intuitivo para los ingenieros. ¿No debería ser una gran idea simplemente venderse? Si solo fuera así de facil. Sin embargo, un concepto clave a tener en cuenta siempre al implementar DevOps es que enfatiza a las personas.

Las llamadas "habilidades blandas" de comunicación y colaboración son fundamentales para su transformación DevOps. Persuadir a otras personas de su equipo y dentro de su empresa para que adopten DevOps requiere practicar buenas habilidades de comunicación. Las primeras conversaciones que tenga con sus colegas sobre DevOps pueden prepararlo para el éxito en el futuro, especialmente cuando golpea un obstáculo de velocidad inesperado.

Los pequeños cambios incrementales no tienen precio en DevOps

El aspecto de DevOps que enfatiza la realización de cambios en formas pequeñas e incrementales tiene sus raíces en la manufactura esbelta, que abarca la retroalimentación acelerada, la mejora continua y el tiempo de comercialización más rápido.

El agua es una buena metáfora para las transformaciones de DevOps. El agua es uno de los elementos más poderosos del mundo. A menos que las personas estén viendo cómo las aguas de la inundación se elevan frente a ellos, lo consideran relativamente inofensivo. El río Colorado talló el Gran Cañón. Lentamente, durante millones de años, el agua atravesó la piedra para exponer casi dos mil millones de años de tierra y roca.

Puedes ser como el agua. Sé el cambio lento e implacable en tu organización. Aquí está esa famosa cita de una entrevista de Bruce Lee para inspirarte:

Ser sin forma, sin forma, como el agua. Ahora que pones agua en una taza, se convierte en la taza. Pones agua en una botella, se convierte en la botella. Lo pones en una tetera, se convierte en la tetera. Ahora el agua puede fluir o puede golpear. Sé agua, amigo mío.

Hacer cambios incrementales significa, por ejemplo, que encuentra un problema y lo soluciona. Luego arreglas el siguiente. No te enfrentas demasiado rápido y no eliges todas las batallas para luchar. Entiendes que algunas peleas no valen la energía o el capital social que te pueden costar.

En última instancia, DevOps no es una lista de pasos que puede tomar, sino un enfoque que debe guiar las decisiones que toma a medida que se desarrolla.

  1. BusinessOperations ManagementDevOps For Dummies Cheat Sheet
  2. BusinessOperations ManagementBase Transfer Price on Full Cost

Por Mark P. Holtzman

Una empresa puede establecer el precio de transferencia al costo total (también conocido como costo de absorción), que es la suma de los costos variables y fijos por unidad. Para garantizar que la división de ventas obtenga ganancias, también pueden agregar un margen de beneficio.

Suponga que HOO Water Company produce agua de manantial y refrescos. La división Clor produce agua de manantial, y la división Shpritz produce refrescos. Los gerentes de HOO alientan a Clor y Shpritz a trabajar juntos para que la división Shpritz use el agua de manantial de la división Clor para hacer sus refrescos.

Sin embargo, la división Clor también vende su agua a clientes externos por $ 0.75 por galón. Para minimizar los costos, Shpritz también puede comprar agua de proveedores que no sean Spring.

Este año, la división Clor planea producir 100,000 galones de agua de manantial, pero tiene la capacidad de producir más agua si puede venderla. El agua de Clor tiene un costo variable de $ 0.30 por galón y debe cubrir costos fijos de $ 40,000.

La división Shpritz planea hacer 60,000 galones de refrescos; Puede comprar el agua de Shpritz o de un vendedor externo. Además del costo del agua, Shpritz debe pagar $ 0.40 por galón por saborizantes y otros aditivos para producir cada galón de refresco. Shpritz también paga costos fijos de $ 30,000 por año. El refresco de Shpritz se vende a $ 2 por galón.

Primero, calcule el costo total de Clor. Los costos fijos ascienden a $ 40,000 necesarios para producir 100,000 galones de agua de manantial. El costo fijo por unidad, entonces, llega a $ 0.40 por galón ($ 40,000 ÷ 100,000 galones). Los costos variables de Clor equivalen a $ 0.30 por galón; agregue eso al costo fijo por unidad para obtener un costo total de $ 0.70 por galón, el precio de transferencia.

La siguiente figura explica lo que sucede cuando Clor le suministra a Shpritz 60,000 de agua de manantial por un precio de transferencia de $ 0.70 por galón y el resto a clientes externos por $ 0.75 por galón.

image0.jpg

Aquí, Clor recibe $ 30,000 en ingresos de clientes externos y $ 42,000 en ingresos de Shpritz. Restando los costos variables de Clor de $ 30,000 y los costos fijos de $ 40,000 resulta en un ingreso neto de $ 2,000. Shpritz obtiene ingresos de $ 120,000 de sus refrescos.

De esta cantidad, debe pagar $ 42,000 a Clor y $ 24,000 en otros costos variables. Shpritz también debe pagar $ 30,000 en costos fijos, lo que resulta en un ingreso neto de $ 24,000 para Shpritz. HOO Water, que posee ambas divisiones, genera un ingreso total de $ 26,000 de ambos productos.

Las decisiones de basar el precio de transferencia en el costo total pueden engañar a los gerentes de división para que tomen malas decisiones que perjudiquen la rentabilidad general de la empresa. Supongamos que otra compañía, Malcolm Water, vende agua por $ 0.65 por galón. (En caso de que se pregunte, Malcolm Water puede cobrar menos dinero por su agua porque su agua es de peor calidad). La división Shpritz debe elegir entre pagar $ 0.70 por galón a la división Clor o $ 0.65 por galón a Malcolm.

Por un lado, Shpritz puede preferir hacer negocios con Clor solo porque ambas compañías tienen la misma matriz. Sin embargo, si HOO paga $ 0.70 por galón para hacer agua, pero solo $ 0.65 para comprarlo en Malcolm, ¿no debería HOO simplemente comprar el agua del proveedor externo más barato y ahorrar $ 0.05 por galón?

No necesariamente. La siguiente figura ilustra el fiasco que ocurre cuando Shpritz intenta ahorrar dinero comprando su agua a Malcolm.

image1.jpg

La decisión de Shpritz de intentar reducir los costos reduce la rentabilidad general de HOO Water en $ 21,000. No hay duda al respecto: la rentabilidad de Shpritz aumenta. Debido a que la decisión de externalizar reduce el costo variable de comprar agua de $ 42,000 a $ 39,000, el ingreso neto de Shpritz aumenta a $ 27,000.

Sin embargo, la decisión de Shpritz perjudica a Clor y, en última instancia, reduce la rentabilidad total de HOO Water. Las ventas de Clor a Shpritz de $ 42,000 se agotaron por completo. Sus costos variables también caen de $ 30,000 a $ 12,000.

Sin embargo, los costos fijos de Clor de $ 40,000 siguen siendo los mismos, lo que obliga a Clor a sufrir una pérdida de $ 22,000. Las ganancias generales de HOO Water caen de $ 26,000 a solo $ 5,000. Basar el precio de transferencia en el costo total ha llevado a Shpritz a tomar decisiones que perjudican la rentabilidad general de la empresa.

  1. NegociosMarketingMarketing de redes socialesCómo encontrar sus contactos en Instagram
Instagram para negocios para tontos

Por Jennifer Herman, Eric Butow, Corey Walker

Si eres nuevo en Instagram, te preguntarás por dónde empezar. Instagram (y su papá, Facebook) se complace en ayudarlo a hacer conexiones. Puedes encontrar personas de diferentes maneras.

Encontrar a tus amigos de Facebook

Facebook tiene un interés personal en hacer que Instagram crezca, por lo que trata de alentarlo a reunir a sus amigos de Facebook y llevarlos a Instagram. Es una manera fácil de encontrar personas.

Para encontrar amigos en Facebook, sigue estos pasos:

  1. Vaya a su página de perfil de Instagram tocando su foto en la parte inferior derecha de la pantalla de su teléfono. Toca a la persona con un signo más (y posiblemente un número rojo) en la esquina superior izquierda. Toque el enlace de Facebook en la parte superior de su pantalla. Confirme su inicio de sesión en Facebook tocando OK. La pantalla muestra cuántos amigos de Facebook tienes en Instagram. Toque Seguir todo o Seguir. Para seguir a cada uno de tus amigos de Facebook en Instagram, toca Seguir a todos. Si prefiere ser más selectivo, especialmente porque probablemente promocionará su producto o servicio, puede seguir a sus amigos uno por uno. ¡Simplemente toca Seguir junto a cada amigo con el que te gustaría conectarte y sigue desplazándote y siguiéndolo!
encontrar amigos de Facebook Instagram

Es posible que algunos de tus amigos hayan configurado sus cuentas como privadas. En este caso, verá Solicitado después de tocar Seguir. Deben aprobarlo antes de que pueda ver su perfil y sus publicaciones.

Sincronizando tu lista de contactos

Instagram también puede conectarte con los contactos almacenados en tu teléfono o tableta. Después de activar esta función, sus contactos se sincronizan periódicamente con los servidores de Instagram. Instagram no sigue a nadie en tu nombre, y puedes desconectar tus contactos en cualquier momento para que Instagram no pueda acceder a ellos.

Esta característica puede ser mejor como un hecho en el principio frente a una conexión constante para fines de privacidad.

Para conectar sus contactos, siga estos pasos:

  1. Vaya a su página de perfil de Instagram tocando su foto en la parte inferior derecha de la pantalla de su teléfono. Toque la persona pequeña con un signo más (y posiblemente un número rojo) en la parte superior izquierda. Toque el enlace Contactos. La siguiente pantalla te dice que Instagram encontrará personas que conoces y que tienes la opción de seguirlas. Para continuar, toca Conectar contactos. Otra ventana emergente pregunta si Instagram puede acceder a sus contactos. Toque Permitir acceso. Aparece una ventana emergente pidiéndole que permita el acceso de Instagram a sus Contactos. Esta es su última oportunidad para cancelar su decisión de permitir que Instagram acceda a sus contactos. Toca Aceptar. La ventana emergente desaparece y aparece la pantalla Contactos. Siga a todos sus contactos en Instagram tocando Seguir a todos, o elija qué contactos seguir presionando Seguir al lado de cada uno.
contactos de instagram

Si en algún momento cambia de opinión y no desea permitir el acceso de Instagram a sus contactos, toque el icono de la rueda en su página de perfil, desplácese hacia abajo hasta Configuración y luego toque Contactos. Toca el botón Conectar contactos para devolverlo a blanco, lo que finaliza el acceso de Instagram.

  1. BusinessOperations ManagementElegir el mejor proveedor de servicios en la nube, características y herramientas para DevOps

Por Emily Freeman

El éxito de su iniciativa DevOps depende en gran medida de seguir el proceso, pero también es importante utilizar las herramientas adecuadas. Seleccionar un proveedor de servicios en la nube no es una opción fácil, especialmente cuando DevOps es su motivación para conducir. GCP (Google Cloud Platform), AWS (Amazon Web Services) y Azure tienen más en común que lo que hacen aparte.

A menudo, su decisión depende más del nivel de comodidad de su equipo DevOps con un proveedor de la nube en particular o su pila actual más que el proveedor de la nube en sí. Después de que haya decidido pasar a la nube, la siguiente decisión es elegir un proveedor de nube que se ajuste a sus necesidades de DevOps. Aquí hay algunas cosas a tener en cuenta al evaluar los proveedores de la nube con los principios de DevOps en mente:

  • Historial sólido. La nube que elija debe tener un historial de decisiones financieras responsables y suficiente capital para operar y expandir grandes centros de datos durante décadas. Cumplimiento y gestión de riesgos. La estructura formal y las políticas de cumplimiento establecidas son vitales para garantizar que sus datos estén seguros y protegidos. Idealmente, revise las auditorías antes de firmar contratos. Reputación positiva La confianza del cliente es absolutamente clave. ¿Confía en que puede confiar en este proveedor de la nube para seguir creciendo y respaldar sus necesidades de DevOps en evolución? Acuerdos de nivel de servicio (SLA). ¿Qué nivel de servicio requiere? Por lo general, los proveedores de la nube ofrecen varios niveles de confiabilidad del tiempo de actividad en función del costo. Por ejemplo, el tiempo de actividad del 99.9% será significativamente más barato que el tiempo de actividad del 99.999%. Métrica y seguimiento. ¿Qué tipos de información de aplicaciones, monitoreo y telemetría proporciona el proveedor? Asegúrese de que puede obtener un nivel adecuado de información sobre sus sistemas lo más cerca posible en tiempo real.

Finalmente, asegúrese de que el proveedor de la nube que elija tenga excelentes capacidades técnicas que brinden servicios que satisfagan sus necesidades específicas de DevOps. En general, busque

  • Capacidades de cómputo Soluciones de almacenamiento Características de implementación Registro y monitoreo Interfaces de usuario amigables

También debe confirmar la capacidad de implementar una solución de nube híbrida en caso de que lo necesite en algún momento, así como realizar llamadas HTTP a otras API y servicios.

Los tres principales proveedores de la nube son Google Cloud Platform (GCP), Microsoft Azure y Amazon web Services (AWS). También puede encontrar proveedores de nube más pequeños y, ciertamente, varios proveedores de nube privada, pero la mayor parte de lo que necesita saber proviene de comparar los proveedores de nube pública.

Servicios web de Amazon (AWS)

Al igual que los otros proveedores principales de nube pública, AWS proporciona computación a pedido a través de una suscripción de pago por uso. Los usuarios de AWS pueden suscribirse a cualquier cantidad de servicios y recursos informáticos. Amazon es el líder actual del mercado entre los proveedores de la nube y posee la mayoría de los suscriptores de la nube.

Ofrece un conjunto robusto de características y servicios en regiones de todo el mundo. Dos de los servicios más conocidos son Amazon Elastic Compute Cloud (EC2) y Amazon Simple Storage Service (Amazon S3). Al igual que con otros proveedores de la nube, se accede a los servicios y se aprovisiona la infraestructura a través de API.

Microsoft Azure

Antes de que Microsoft lanzara este proveedor de la nube como Microsoft Azure, se llamaba Windows Azure. Microsoft lo diseñó para hacer exactamente lo que el nombre implica: servir como proveedor de la nube para las organizaciones de TI de Windows tradicionalmente. Pero a medida que el mercado se volvió más competitivo y Microsoft comenzó a comprender mejor el panorama de la ingeniería, Azure se adaptó, creció y evolucionó.

Aunque todavía podría decirse que es menos robusto que AWS, Azure es un proveedor de nube completo que se centra en la experiencia del usuario. A través de varios lanzamientos y adquisiciones de productos, especialmente GitHub, Microsoft ha invertido mucho en infraestructura de Linux, lo que le ha permitido proporcionar servicios más sólidos a un público más amplio.

Google Cloud Platform (GCP)

Google Cloud Platform (GCP) tiene la menor cuota de mercado de los tres principales proveedores de nube pública, pero ofrece un conjunto sustancial de servicios en la nube en casi dos docenas de regiones geográficas.

Quizás el aspecto más atractivo de GCP es que ofrece a los usuarios la misma infraestructura que Google usa internamente. Esta infraestructura incluye servicios de computación, almacenamiento, análisis y aprendizaje automático extremadamente potentes. Dependiendo de su producto específico, GCP puede tener herramientas especializadas que faltan (o son menos maduras) en AWS y Azure.

Encontrar herramientas y servicios de DevOps en la nube

Literalmente, cientos de herramientas y servicios están a su disposición a través de los principales proveedores de la nube. Esas herramientas y servicios generalmente se dividen en las siguientes categorías:

  • Calcular Almacenamiento Redes Administracion de recursos Inteligencia Artificial en la Nube (AI) Identidad Seguridad Sin servidor IoT

A continuación se incluye una lista de los servicios más utilizados en los tres principales proveedores de la nube. Estos servicios incluyen implementación de aplicaciones, administración de máquinas virtuales (VM), orquestación de contenedores, funciones sin servidor, almacenamiento y bases de datos.

Se incluyen servicios adicionales, como gestión de identidad, almacenamiento en bloque, nube privada, almacenamiento de secretos y más. Está lejos de ser una lista exhaustiva, pero puede servirle como una base sólida para usted cuando comience a investigar sus opciones y tenga una idea de lo que diferencia a los proveedores de la nube.

  • Implementación de aplicaciones: solución de plataforma como servicio (PaaS) para implementar aplicaciones en una variedad de idiomas, incluidos Java, .NET, Python, Node.js, C #, Ruby y Go Azure: Servicios en la nube de Azure AWS: AWS Elastic Beanstalk GCP: Google App Engine
  • Administración de máquinas virtuales (VM): opción de infraestructura como servicio (IaaS) para ejecutar máquinas virtuales (VM) con Linux o Windows Azure: máquinas virtuales de Azure AWS: Amazon EC2 GCP: Google Compute Engine
  • Kubernetes gestionados: permite una mejor gestión de contenedores a través del popular orquestador Kubernetes Azure: Servicio Azure Kubernetes (AKS) AWS: Amazon Elastic Container Service (ECS) para Kubernetes GCP: motor de Google Kubernetes
  • Sin servidor: permite a los usuarios crear flujos de trabajo lógicos de funciones sin servidor Azure: funciones de Azure AWS: AWS Lambda GCP: Funciones de Google Cloud
  • Almacenamiento en la nube: almacenamiento de objetos no estructurados con almacenamiento en caché Azure: Azure Blob Storage AWS: Amazon S3 GCP: Google Cloud Storage
  • Bases de datos: bases de datos SQL y NoSQL, bajo demanda Azure: Azure Cosmos DB AWS: Amazon Relational Database Service (RDS) y Amazon DynamoDB (NoSQL) GCP: Google Cloud SQL y Google Cloud BigTable (NoSQL)

A medida que explora los tres principales proveedores de la nube, observa una larga lista de servicios. Puede sentirse abrumado por los cientos de opciones a su disposición. Si, por casualidad, no puede encontrar lo que necesita, el mercado probablemente le proporcionará algo similar. El mercado es donde los desarrolladores independientes ofrecen servicios que se conectan a la nube, alojados por Azure, AWS o GCP.

La siguiente tabla enumera los servicios adicionales proporcionados por la mayoría, si no todos, los proveedores de la nube.

Categoría de servicioFuncionalidad
Bloque de almacenamientoAlmacenamiento de datos utilizado en entornos de red de área de almacenamiento (SAN). El almacenamiento en bloque es similar al almacenamiento de datos en un disco duro.
Nube privada virtual (VPC)Recursos informáticos compartidos, lógicamente aislados.
CortafuegosSeguridad de red que controla el tráfico.
Red de entrega de contenido (CDN)Entrega de contenido en función de la ubicación del usuario. Por lo general, utiliza almacenamiento en caché, equilibrio de carga y análisis.
Sistema de nombres de dominio (DNS)Traductor de nombres de dominio a direcciones IP para navegadores.
Inicio de sesión único (SSO)Control de acceso a múltiples sistemas o aplicaciones utilizando las mismas credenciales. Si ha iniciado sesión en una aplicación independiente con sus credenciales de Google, Twitter o GitHub, ha utilizado SSO.
Gestión de identidad y acceso (IAM)Gestión de acceso de usuarios basada en roles. Los roles predeterminados tienen acceso a un grupo establecido de características; los usuarios tienen roles asignados.
Telemetría, monitoreo y registro.Herramientas para proporcionar información de la aplicación sobre rendimiento, carga del servidor, consumo de memoria y más.
ImplementacionesHerramientas de configuración, infraestructura y gestión de canalizaciones de lanzamiento.
Caparazón de nubeAcceso al shell desde una interfaz de línea de comandos (CLI) dentro del navegador.
Almacenamiento de secretosAlmacenamiento seguro de claves, tokens, contraseñas, certificados y otros secretos.
Colas de mensajesCorredores de mensajes escalados dinámicamente.
Aprendizaje automático (ML)Marcos y herramientas de aprendizaje profundo para científicos de datos.
IoTConexión y gestión de dispositivos.