Pregunta

Como casi cualquier persona que ha sido de programación por un tiempo, estoy familiarizado con el término "código de la producción" y tienen una vaga idea de lo que significa.Sin embargo, alguien puede ofrecer un semi-definición rigurosa, ya que parece Wikipedia y Google no puede?Parece que hay un montón de zonas grises en lo que cuenta como producción, como las herramientas que son utilizadas por un pequeño grupo de personas y por lo tanto no se "formalizó" en términos de interfaz de usuario, documentación, etc.de código abierto y aplicaciones de la función completa, razonablemente libre de errores y de trabajo, pero falta pulir la interfaz de usuario y pruebas exhaustivas.

¿Fue útil?

Solución

Producción significa todo lo que necesita para trabajar de manera confiable y consistente.

Si se trata de un script de compilación o de un servidor web público.

Cuando otros confían en su código, particularmente las personas que pueden no entenderlo (es decir, incluso & "; desarrolladores inteligentes &", pero quizás no en su grupo, pero usando una biblioteca que escribió), ese código es código de producción.

Es producción porque " el trabajo se detiene " y " el dinero se pierde " cuando falla el código de producción.

Otros consejos

Cuando su código se ejecuta en un sistema de producción, eso significa que está siendo utilizado por la audiencia prevista en una situación del mundo real.

El código de producción, sin embargo, no significa necesariamente un código robusto, confiable o estable. El Daily WTF proporciona muchas pruebas a este respecto.

La definición, según tengo entendido, es que el código de producción es cualquier código que esté instalado o en uso en un sistema vivo, sin banco de pruebas. Un servidor utilizado internamente para una empresa es un sistema de producción si es el sistema en vivo utilizado por los empleados de la empresa. El punto aquí es que el código que se ejecuta en un servidor interno de la compañía que escribe el código puede ser código de producción.

Por lo general, una buena distinción cuando se mira el código interno es si el grupo que mantiene el código está separado del grupo que usa el código. Si los grupos están separados, lo más probable es que el código sea de producción. Si la gestión de la empresa depende del código, entonces es sin duda un código de producción, incluso si se desarrolla y mantiene internamente.

EDITAR: La respuesta corta: si estás " apostando la granja en ella " ;, es " producción " .

Esta es una gran pregunta: una distinción absolutamente crítica que rutinariamente pone a todos en problemas debido a malentendidos. La pregunta de qué es & Quot; production & Quot; es un subconjunto de la pregunta relacionada de qué es un " ambiente " ;.

  

Entonces, parte de la respuesta es que " producción " es EL " entorno " eso es lo más    importante y más confiable como THE " real " cosa.

Entonces ahora debemos definir " ambiente " (y luego vuelva a visitar " production "). Todavía estamos lejos de ser una respuesta satisfactoria.

Los programadores usamos el término " medio ambiente " constantemente para referirse a sistemas informáticos que consisten en hardware que está ejecutando software. Ese software es el código que escribimos más el software del que depende, que fue escrito por otros. Escribimos nuestro código y lo integramos con el otro software, luego normalmente ejecutamos el software integrado a través de una serie de pruebas en aumento (pruebas unitarias, pruebas de integración, pruebas funcionales, pruebas de aceptación, pruebas de regresión, etc.), hasta que finalmente ejecutamos el software integrado de la manera completa en la que estaba destinado.

Por supuesto, no todo está completamente automatizado. Generalmente hay muchas personas involucradas y tienen procesos manuales que realizar. Los programadores buscamos formas de automatizar tantos procesos como sea posible, pero siempre hay un & "; Límite hombre / máquina &"; en los sistemas en los que trabajamos. A menudo, existen muchos límites de este tipo en cualquier caso particular.

Por otro lado, puede que no haya ninguna automatización significativa en absoluto. Por ejemplo, hablamos de & Quot; producción & Quot; Hace mucho tiempo, cuando teníamos una sala llena de personas que realizaban trabajos manuales que producían un producto . Por lo tanto, no tiene que haber ninguna automatización presente en nuestra & Quot; production & Quot; " entorno " ;. También hay un término medio, donde la automatización involucrada no incluye software, como en el caso de una persona que ejecuta un telar para tejer tela.

Además, puede que no haya un producto , ya que hemos adaptado nuestro lenguaje de " producción " " entorno " para incluir proveedores de servicios sin productos.

Del mismo modo, las pruebas pueden no involucrar software, ya que podemos estar probando una máquina no basada en software (por ejemplo, el telar) o incluso las personas (capacitación y evaluación).

Ahora hemos tocado todos los elementos cruciales de un "environment":

  • hay un propósito, un intent , perseguido
  • un sponsor requiere un asistente, por lo que debe haber un processes (una persona o grupo, pero no una máquina) que especifica el actors
  • que environment se persigue a través de varios sponsor's que son realizados por varios product
  • esos service pueden ser personas, pueden estar ejecutando software en hardware o pueden ser máquinas no controladas por software, por lo que puede haber o no presencia de automatización

Ahora podemos definir de manera adecuada y completa nuestros términos originales.

  

Un production consiste en todos los test y sus integration que   colaborar para perseguir un training particular en nombre de su actor . Ese   significa que el software se ejecuta en hardware, eso significa máquinas que no funcionan con software, y que   significa personas que realizan sus diferentes duties. Es el environments que principalmente   define un intents , no su process o su development .

Además ...

  

Si el testing perseguido en un tests particular es el   <=> objetivo final, que generalmente implica producir un <=> o   proporcionando un <=> a cambio de dinero, entonces nos referimos a eso   <=> como <=> .

Ahora podemos ir un poco más lejos.

  

Si el <=> perseguido en un <=> es la verificación de   <=> y sus <=> en preparación para <=> , llamamos   que un <=> <=> .

     

Además lo llamamos un <=> <=> si esa prueba involucra el   unión inicial de individuos o grupos significativos de <=> y   sus <=> .

     

Si esa preparación implica la " programación " de humanos <=> para realizar nuevos   <=> , o la verificación posterior (evaluación), entonces lo llamamos un   <=> <=> .

Armados con estas distinciones y definiciones, ahora podemos entender varios escenarios comunes.

Un <=> puede estar mal etiquetado con un nombre que no coincide con su <=> , como cuando un <=> El entorno se utiliza como <=> .

Un <=> puede ser mal utilizado, como cuando <=> o <=> se realiza en < => .

Un <=> puede ser tergiversado, como cuando las teclas <=> o <=> no se identifican (p. ej., manual reconciliaciones, o incluso ignorando a las personas por completo).

Un <=> se puede volver a asignar, reutilizando sus <=> y <=> en un nuevo <= > . Una técnica muy exitosa para algunas organizaciones es rutinariamente & Quot; voltear & Quot; varios conjuntos de <=> (software de alojamiento de servidores) entre <=> , <=> , <=> y <=> en cada lanzamiento.

En la mayoría de los casos, una sola <=> (persona o hardware) puede ejecutar múltiples <=> que pueden participar en múltiples <=> . Por ejemplo, un solo servidor de computadora puede alojar software que realiza <=> transacciones mientras que también aloja otro software que realiza <=> o <=> funciones.

Normalmente, una sola instancia de un <=> debe participar en un solo <=> a la vez. En muy raras ocasiones, se puede compartir una sola <=> entre <=> si las <=> son compatibles entre sí. La mayoría de las veces, es muy imprudente intentar compartirlo porque los <=> no son realmente compatibles. Un ejemplo perfecto es ejecutar un <=> <=> en un servidor que también sea compatible con <=> <=> , lo que resulta en tiempo de inactividad porque <=> causó la falla de todo el servidor.

Por lo tanto, la <=> de una <=> debe interpretarse con una latitud muy amplia, para incluir conceptos como disponibilidad , fiabilidad , rendimiento , recuperación ante desastres , precisión , precisión , repetibilidad , longevidad , etc. Esto significa que los <=> y <=> a menudo deben interpretarse para incluir cosas como < em> proporcionando energía , enfriamiento , copias de seguridad y redundancia .

Finalmente, tenga en cuenta que la situación puede ser bastante compleja. Por ejemplo, una computadora de escritorio ( <=> ) puede ser encargada por el equipo de desarrollo ( <=> ) para alojar su control de origen ( <=> ), del cual depende el equipo para sus trabajos principales ( <=> ). Sin embargo, el personal de TI ve esa misma computadora de escritorio como simplemente una estación de trabajo de desarrollador ( <=> , no <=> ) y la trata con desprecio y despreocupación cuando desarrolla un problema de hardware Pero los desarrolladores están produciendo <=> código, entonces, ¿no son también parte de <=> ? La perspectiva importa.

EDITAR: Calidad de producción

Una metodología de verificación sólida ( <=> ) debe tomar el código empaquetado de <=> y ejecutarlo a través de una serie de <=> (integración, TQA, funcional, regresión, aceptación, etc.) hasta que salga por el otro lado & "; estampado &"; para <=> uso. Sin embargo, eso hace que el paquete sea <=> calidad , pero en realidad no <=> . El paquete solo se convierte en <=> cuando un <=> realmente lo implementa en un <=> con ese nivel final de < => .

Sin embargo, si su organización simplemente produce ese paquete (su <=> para el consumo de otros, entonces tal lanzamiento se acerca tanto a <=> como esa organización experimentará con respecto a ese <=> , por lo que es común extender el término <=> para aplicar en lugar de aclarar que es <= > calidad . En realidad, el entorno <=> de esa organización consiste en <=> y <=> involucrados en sus esfuerzos de desarrollo / lanzamiento que resultan en que <=> .

Dije que podría ser bastante complejo ...

Cualquier código que será utilizado por su base de usuarios prevista encajaría en mi definición de 'código de producción'.

Por supuesto, el área gris en esa definición definiría claramente quién es su base de usuarios.

G-Man

  • El software de producción puede funcionar con la carga de trabajo necesaria sin interrupción o degradación del servicio
  • El software ha sido probado con éxito en diferentes escenarios de producción
  • Transformando el prototipo de trabajo en software de producción que se ejecuta en una arquitectura redundante a prueba de fallas que puede funcionar en negocios reales, es decir, entorno de producción, necesita tiempo, refactorización de código y atención a los detalles
  • El código de producción tiene un nivel aceptable de mantenimiento y está razonablemente bien comentado
  • El manual de documentación explica la funcionalidad, todas las características y facilita el mantenimiento
  • Si el software de producción es un servicio o aplicación internacional, debe estar localizado
  • El código de producción es utilizado por los usuarios finales, a menudo clientes en las condiciones descritas en el Acuerdo de Términos de Servicio
  • El software de producción no necesariamente significa software confiable de misión crítica
  • El software funciona bien, lo que estaba destinado a hacer
  • Los archivos de registro proporcionan una descripción precisa del rendimiento en tiempo de ejecución y las métricas e informes de confiabilidad del software que facilitan la depuración y el mantenimiento del software

Creo que la mejor manera de describirlo es como cualquier código que " lleva a " despliegue y " seguimiento " despliegue. La implementación en sí se define como todas las actividades que hacen que un sistema de software esté disponible para su uso. Si su código está listo para ser utilizado por personas, internamente o de otra manera, entonces es código de producción.

En palabras simples " Código de producción que está en vivo y en uso por su audiencia destinataria "

El término "código de la producción" mezcla dos conceptos diferentes.Uno es la implementación de la gestión, y la otra es la liberación del ciclo de vida.

En el sentido estricto de la palabra, un sistema está en producción cuando se utiliza como parte del negocio o de la operación de servicio.Lo que no es en producción, desarrollo, pruebas, control de calidad, de demostración, y el sistema de estadificación.Sistema de producción no inmediatamente implica calidad.

A partir de la liberación del ciclo de vida punto de vista, una "producción" de la generación es la generación que se lanzó al público en general o a los clientes.Es la etapa después de la pre-alfa, alfa, beta, (función completa, código completo, etc.) y release candidate.Para la envoltura de productos que no son fáciles de implementar actualizaciones, llegando a la etapa de producción probablemente implica una serie de pruebas y correcciones de errores.

alt text

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top