¿Cómo acceden los ingenieros de software de las empresas, como Facebook o Twitter, a los archivos para corregir errores o agregar nuevas funciones?

Las grandes empresas generalmente mantienen el código fuente de su sitio web en un Sistema de Control de Código Fuente como Git, Subversion o Mercurial. Estos sistemas a menudo están protegidos detrás de un firewall y son accesibles externamente solo a través de redes privadas virtuales administradas. Los sistemas permiten que muchos desarrolladores trabajen en el mismo código fuente desde diferentes computadoras, sin tener que preocuparse (mucho) sobre si tienen la copia más reciente o si están haciendo cambios conflictivos.

Los desarrolladores realizan cambios, los prueban en sus propias máquinas, luego los implementan para probar o organizar servidores, que difieren de los servidores de “producción” que ejecutan los sitios web en vivo que ven la mayoría de los usuarios. Una vez que el equipo se siente cómodo con los cambios, “empujan” el nuevo software a los servidores de producción mediante procesos de implementación automatizados.

A menudo, solo ciertos miembros del equipo de desarrollo u operaciones pueden empujar a los servidores activos. Esta es una medida de seguridad para evitar que un desarrollador coloque malware en el sitio en vivo o acceda a la información del cliente en el sitio en vivo, y a menudo es un requisito legal de “separación de preocupaciones”.

En general, el departamento de TI mantendrá un servidor que contiene el repositorio principal para cualquier sistema de control de versiones que el equipo haya elegido utilizar. Los repositorios de Git se parecen a las URL, y es posible colocar archivos en la nube, pero prácticamente ninguna compañía real lo hará, porque es inherentemente inseguro y el código fuente de una compañía debe estar fuertemente protegido. Todas las URL apuntan a un servidor local.

Nuestra tienda utiliza Git y también Clearcase. El departamento de TI es responsable de las copias de seguridad y similares.

Seguramente usan repositorios compartidos, tal como lo hacen la mayoría de las compañías de software.

Sin embargo: es muy posible que cada equipo tenga su propio repositorio compartido específico y el principal esté integrado por un equipo selecto. Dudo que todo el mundo pueda comprometerse con el willy-nilly principal.

Lo que hay que tener en cuenta es que este es un modelo de implementación web que difiere del software tradicional.

Los usuarios no están trabajando con ningún archivo en el lado del cliente, ya que interactúan con la aplicación web a través del navegador.

Las actualizaciones de los archivos en el lado del servidor pueden ocurrir de manera transparente para los usuarios en una base de implementación continua.

Para cualquier corrección de errores, los ingenieros de software pueden hacer uso de los registros del servidor para la depuración y sacar una nueva versión de los archivos en cuestión en los servidores web.

Utilizamos varios repositorios, como un código fuente y un repositorio de artefactos.

More Interesting

¿Debo seguir estudiando ingeniería de software o cambiarme a matemáticas?

Recientemente me uní a una empresa de servicios de TI como ingeniero de software para un equipo de desarrollo basado en Java. Me gustaría intentar un examen OCJP para explorar todos los temas de Java. ¿Cómo empiezo con él y cuál es el procedimiento para escribir este examen?

¿Cómo puede un ingeniero de software indio emigrar a Irlanda?

¿Cómo difieren los desarrolladores de software en Nueva York, San Francisco, Londres y Bangalore?

¿Son los ingenieros de software coreanos mejores o peores que los ingenieros alemanes?

Tengo una opción para elegir entre un SDE1 en Amazon y un ingeniero de software 2 en Cisco. ¿Cuál debería elegir? ¿Cuánto tendré en manos de estas dos compañías?

Después de pasar la clase 10, ¿cuánto tiempo lleva ser ingeniero de software?

¿Los ingenieros de software en el oeste se preocupan por la seguridad laboral?

¿Cuál es el salario promedio de un SDE II en Flipkart con 7 años de experiencia?

¿Qué debo hacer para seguir aumentando mis conocimientos y habilidades como ingeniero de software? Específicamente, ¿qué habilidades debería mejorar para trabajar en empresas como Google, Twitter, LinkedIn, etc.?

¿Cómo son los escritorios de ingenieros de software en el trabajo?

¿Qué cosas / actitudes / acciones importan más en la opinión de un gerente de un pasante de ingeniero de software?

¿Debo obtener un doctorado en economía o convertirme en ingeniero de software si quiero tener el máximo impacto y cambiar el mundo?

¿Cuáles son los mejores complementos para las pruebas de software que debe tener cualquier ingeniero de pruebas?

¿Crees que un título de ingeniería de software adecuado debería tomar aproximadamente 6 años de educación para ser un ingeniero de software completamente maduro?