Innovación y exploración de la arquitectura de Internet en la nueva era.

Autor: Zen y el arte de la programación informática

1. Introducción

La burbuja de Internet estalló en 1998. En ese momento, Internet evolucionó de una simple red telefónica a la plataforma de servicios en línea más grande del mundo actual. Internet se ha convertido en la infraestructura de facto y desempeña un papel vital. Pero cada vez surgen más problemas, como una explosión del volumen de datos, un aumento del negocio, problemas de seguridad, etc. Estos problemas también plantean desafíos al sistema de Internet. Entonces, ¿cómo construir una arquitectura de sistema más eficiente y confiable para hacer frente a escenarios cada vez más complejos? Con este fin, una serie de exploraciones innovadoras han probado muchos métodos y tecnologías, incluidos microservicios, arquitectura basada en eventos, computación en la nube, tecnología de contenedores, blockchain, aprendizaje automático, etc. Sin embargo, solo comprendiendo la arquitectura técnica y los procesos existentes y realizando una exploración y transformación en profundidad basadas en escenarios de aplicaciones reales podremos crear una arquitectura de sistema que sea más adecuada para las necesidades del usuario. Este artículo presentará algunas direcciones de investigación innovadoras de la arquitectura de Internet en la nueva era y brindará algunos planes y sugerencias específicos.

2. Introducción a los antecedentes

El término "nueva era" se ha vuelto muy popular en los últimos años y generalmente se utiliza para describir nuevas etapas del desarrollo de Internet y la tecnología, como la era financiera de Internet, Internet móvil, la era de Internet de las cosas, etc. pasaron pocos años. Para la arquitectura de Internet, la "nueva era" parece haber traído consigo una revolución. En los últimos diez años, la arquitectura de Internet ha experimentado un proceso de desarrollo desde independiente hasta distribuida, desde simple hasta compleja. Hoy en día, con el desarrollo de la tecnología de la información, la computación en la nube, big data, blockchain, inteligencia artificial y otros campos, la arquitectura de Internet se actualiza constantemente. A diferencia de la arquitectura de sistema cerrado del pasado, la arquitectura de Internet está cambiando de una arquitectura de servicio simple a una arquitectura de sistema compleja que puede satisfacer mejor las necesidades de los usuarios.
La innovación en la arquitectura de Internet se divide principalmente en los siguientes cuatro aspectos:

  • Evolución de la arquitectura: principalmente resumen, análisis y predicción de la evolución de la arquitectura de Internet;
  • Gobernanza del servicio: estudia principalmente cómo mejorar la calidad del servicio, reducir costos y mejorar la disponibilidad del servicio;
  • Gestión de datos: estudia principalmente cómo hacer que el almacenamiento de datos sea más eficiente, más fácil de recuperar y procesar;
  • Modelo de desarrollo: Estudia principalmente los cambios y evolución de los modelos de desarrollo de software en Internet.
    El contenido cubierto en este artículo se centra principalmente en el cuarto aspecto de los modelos de desarrollo, es decir, los cambios y la evolución de los modelos de desarrollo de software. El modelo de desarrollo de software se refiere a la metodología utilizada por los ingenieros de software para diseñar productos de software y refleja los hábitos de trabajo, la estructura de conocimientos y las cualidades profesionales de los desarrolladores de software. Con el desarrollo de Internet, el modelo de desarrollo de software original está cambiando y gradualmente están tomando forma nuevos modelos de desarrollo de software. Los más representativos son Agile Development y DevOps Development Operations. El desarrollo ágil es un método de desarrollo basado en la iteración, la retroalimentación rápida y la planificación dinámica, que se caracteriza por completar proyectos en un corto período de tiempo. DevOps es una expansión de las responsabilidades del equipo de operaciones del lado del servidor (Equipo de Operaciones) bajo un modelo de desarrollo ágil, controla todo el ciclo de vida del software, desde el despliegue del producto hasta el entorno de producción y la automatización de pruebas, el aislamiento del entorno y la gestión de la configuración, el seguimiento del rendimiento. y optimización.

3. Explicación de conceptos y términos básicos

  • Modelo de desarrollo de software: el modelo de desarrollo de software se refiere a la metodología utilizada por los ingenieros de software para diseñar productos de software y refleja los hábitos de trabajo, la estructura de conocimientos y la profesionalidad de los desarrolladores de software.
  • Modelo de desarrollo ágil: el desarrollo ágil (Desarrollo ágil) es un modelo de desarrollo basado en el desarrollo iterativo y la integración continua (Integración continua). Este modelo enfatiza que el análisis de requisitos, el diseño, el desarrollo, las pruebas y el mantenimiento deben entregarse con más frecuencia de lo planeado, por lo que Agile El desarrollo alienta a los clientes a participar en el trabajo de desarrollo, para que los clientes puedan ver inmediatamente los resultados de los comentarios y proporcionar modificaciones oportunas para lograr el objetivo de excelencia.
  • Modelo de desarrollo DevOps: DevOps es un enlace dentro del desarrollo ágil (Desarrollo ágil), cuyo propósito es realizar el proceso automatizado de desarrollo, operación y mantenimiento, incluida la gestión de configuración, gestión de implementación, gestión de pruebas, gestión de lanzamientos, etc., de modo que varios Se pueden realizar roles en todo el proceso de desarrollo de software y todo el personal puede trabajar en estrecha colaboración para lograr un verdadero desarrollo ágil.

4. Explicación de los principios básicos del algoritmo, pasos operativos específicos y fórmulas matemáticas.

4.1 Modelo de desarrollo ágil

(1) ¿Qué es el modelo de desarrollo ágil?

Definición del concepto: Desarrollo ágil (Desarrollo ágil) es un modelo de desarrollo basado en el desarrollo iterativo y la integración continua (Integración continua). Este modelo enfatiza que el análisis de requisitos, el diseño, el desarrollo, las pruebas y el mantenimiento deben entregarse con más frecuencia de lo planeado, por lo que el desarrollo ágil Alienta a los clientes a participar en el trabajo de desarrollo, para que los clientes puedan ver inmediatamente los resultados de los comentarios y proporcionar modificaciones oportunas para lograr el objetivo de excelencia. El desarrollo ágil tiene cuatro valores principales:

  1. Los individuos y las interacciones triunfan sobre los procesos y las herramientas
  2. El software funcional es mejor que la documentación completa
  3. La colaboración con el cliente triunfa sobre la planificación basada en directivas
  4. Responder al cambio en lugar de seguir un plan

(2) ¿Por qué es necesario el modelo de desarrollo ágil?

Para adaptarse mejor al mercado, reducir el desperdicio, ahorrar costos y mejorar la eficiencia, el modelo de desarrollo ágil surgió como los tiempos lo requieren. El modelo de desarrollo ágil impulsa el desarrollo de software a través de un enfoque iterativo para proporcionar actualizaciones funcionales lo más rápido posible, reducir los riesgos, mejorar la calidad del software y satisfacer las necesidades de múltiples usuarios al mismo tiempo. Por lo tanto, el modelo de desarrollo ágil puede responder eficazmente a demandas cambiantes del mercado.

(3) Características del modelo de desarrollo ágil

A continuación se presentan varias características del modelo de desarrollo ágil:

  1. Desarrollo iterativo: el modelo de desarrollo ágil adopta una estrategia de desarrollo iterativo: después de cada iteración, la nueva versión se probará y retroalimentará, y se repetirá nuevamente. Cada iteración tendrá un objetivo o alcance, y se utilizará un determinado mecanismo para garantizar que permanezca ágil una vez completada la iteración. Cada iteración contendrá un producto de software funcional.
  2. Pruebas automatizadas: durante el desarrollo ágil, los desarrolladores deben realizar pruebas automatizadas. Las pruebas automatizadas pueden realizar pruebas unitarias en componentes de software durante el proceso de desarrollo o pueden realizar pruebas de integración en todo el software. Las pruebas se pueden automatizar para mejorar la calidad y la velocidad del software.
  3. Integración continua (CI): la integración continua es un proceso continuo en el que cada integración integra los últimos cambios de todos en la base del código para garantizar que no haya errores. Si hay errores, se pueden descubrir y resolver de inmediato. La integración continua también es un elemento clave del desarrollo ágil.
  4. Ajuste de requisitos: en el modelo de desarrollo ágil, los requisitos siempre cambiarán y el modelo de desarrollo ágil debería poder adaptarse a este cambio. El ajuste de los requisitos se puede lograr mediante la introducción de recursos de desarrollo adicionales, el aumento de los canales de comunicación, la apertura de derechos de toma de decisiones, el desarrollo basado en casos de uso, etc.
  5. Diseño compacto: el modelo de desarrollo ágil requiere que los productos de software puedan iterarse rápidamente, por lo que se debe buscar un diseño compacto durante el diseño para acortar el ciclo de desarrollo tanto como sea posible.
  6. Equipo pequeño: la práctica del modelo de desarrollo ágil a menudo la realiza un equipo pequeño, por lo que la estructura del equipo debe permitir la participación de personas sin experiencia para reducir la confusión.
  7. Diseño simple y fácil de entender: el modelo de desarrollo ágil enfatiza que el diseño del software debe ser fácil de entender, de modo que la retroalimentación se pueda aceptar rápidamente y se puedan realizar ajustes rápidamente.
  8. Poder dominante: el modelo de desarrollo ágil otorga a los desarrolladores un poder dominante, por lo que se debe alentar a los desarrolladores a tener un poder de toma de decisiones centralizado y guiarlos para completar las tareas.

(4) Ventajas y desventajas del modelo de desarrollo ágil

ventaja
  1. Eficiencia a corto plazo: dado que el propósito del modelo de desarrollo ágil es un desarrollo y una entrega rápidos, puede lograr un gran éxito en el corto plazo.
  2. Adaptabilidad: el modelo de desarrollo ágil puede adaptarse a las necesidades del rápido desarrollo del mercado, responder a las necesidades del mercado de manera oportuna y lograr buenos resultados.
  3. Mejorar el proceso: debido a los principios de desarrollo iterativo y la integración continua del modelo de desarrollo ágil, la organización, los procesos, las herramientas y los métodos en el proceso de desarrollo se pueden mejorar significativamente y se puede mejorar la eficiencia y la calidad del desarrollo.
  4. Preste más atención al software que a la documentación: debido al valor insuficiente de la documentación, en el modelo de desarrollo ágil, céntrese únicamente en la codificación y no en la redacción de documentos.
  5. Retroalimentación rápida: debido a las características de desarrollo iterativo del modelo de desarrollo ágil, se puede obtener retroalimentación rápidamente durante el proceso de desarrollo, lo que facilita ajustes rápidos.
  6. Permitir la participación de personas sin experiencia: dado que el modelo de desarrollo ágil tiene requisitos muy bajos para los desarrolladores, permite la participación de personas sin experiencia, lo que aumenta el nivel de competencia del desarrollador.
  7. Ayuda a generar nuevas ideas: los modelos de desarrollo ágiles pueden ayudar a los desarrolladores a pensar en los problemas de nuevas maneras, mejorando así las capacidades de innovación y resolución de problemas.
defecto
  1. El número de iteraciones de desarrollo limita la complejidad del software. En el proceso de desarrollo iterativo, los desarrolladores deben dedicar mucho tiempo al diseño y desarrollo. Por lo tanto, las funciones completadas en una etapa pueden afectar el progreso del desarrollo de otras funciones.
  2. La carga de trabajo de prueba de cada versión es relativamente grande. Dado que todas las funciones deben probarse en cada iteración, la carga de trabajo de prueba es relativamente grande.
  3. Las pruebas llevan más tiempo. Debido a que los desarrolladores necesitan dedicar más tiempo a las pruebas, esto aumenta el ciclo de desarrollo.
  4. También se requieren herramientas y equipos de hardware adicionales. Los desarrolladores necesitan comprar equipos o software adicionales para realizar pruebas.
  5. Los requisitos para los probadores son más altos. Los evaluadores deben comprender la lógica de implementación y los principios del software para poder probarlo.
  6. Es necesario gastar más recursos en la integración. El modelo de desarrollo ágil requiere que los desarrolladores dediquen más tiempo y recursos a la integración, lo que afecta el progreso del desarrollo.

(5) Métodos prácticos del modelo de desarrollo ágil.

El modelo de desarrollo ágil es una metodología de desarrollo muy eficaz que enfatiza el desarrollo iterativo, las pruebas automatizadas, la integración continua, el ajuste de la demanda y otros trabajos que deben entregarse con más frecuencia de lo planeado. Por lo tanto, a través de una serie de medios y métodos prácticos, se puede implementar el modelo de desarrollo ágil y brindar mejores beneficios a la empresa. A continuación se muestran algunos métodos prácticos:

  1. Tablero de trabajo Kanban: el modelo de desarrollo ágil anima a los desarrolladores a dividir el trabajo en diferentes etapas y asignarlas a diferentes miembros del equipo. En el tablero de trabajo Kanban, el progreso y el estado de las tareas se pueden mostrar en tiempo real, para que el trabajo se pueda completar sin problemas.
  2. Priorización de temas: en el modelo de desarrollo ágil, todas las características del producto se clasifican por importancia y urgencia y luego se asignan a diferentes equipos de desarrollo. Esto puede captar mejor el enfoque del trabajo y evitar cuellos de botella.
  3. Descomposición de historias de usuario: la idea central de la descomposición de historias de usuario es dividir las necesidades del usuario en historias pequeñas y simples, y luego refinar el diseño funcional basado en estas historias. Esto permite una estimación más precisa del esfuerzo de desarrollo y una identificación más clara de los obstáculos al desarrollo.
  4. Principio de diseño simple: aunque el objetivo del modelo de desarrollo ágil es entregar software rápidamente, su método práctico requiere que el diseño del software sea simple y fácil de entender. Por lo tanto, se debe evitar el uso de patrones o técnicas de diseño complejos durante el proceso de diseño para mejorar la legibilidad del software.
  5. Preste atención a la integración continua: en el modelo de desarrollo ágil, el software debe entregarse con frecuencia. Por tanto, la integración continua es la piedra angular del desarrollo ágil. A través de la integración continua, los desarrolladores pueden obtener comentarios rápidos y descubrir problemas a tiempo para una corrección temprana.

4.2 modelo de desarrollo DevOps

(1) ¿Cuál es el modelo de desarrollo DevOps?

Definición del concepto: La combinación de desarrollo y operaciones DevOps (Desarrollo y Operaciones) (abreviada como DO) es un método de desarrollo ágil. Enfatiza la comunicación y colaboración entre desarrolladores y operadores, promoviendo el proceso cíclico de entrega y operación de software, logrando así la automatización y estandarización. DevOps fomenta que el desarrollo y las operaciones trabajen juntos como un equipo para avanzar en el proceso de desarrollo y entrega de software. Su concepto central es: integración de desarrollo y operaciones, soporte a desarrolladores, control de calidad, evaluadores, personal de operación y mantenimiento de TI y otro personal relacionado para cooperar, comunicarse y construir y mantener conjuntamente productos de software.
El modelo de desarrollo DevOps incluye tres pilares: desarrollo, pruebas y entrega e implementación. A través del trabajo colaborativo, el proceso de desarrollo se automatiza, acelerando así la entrega e implementación de software y reduciendo la interferencia de los factores humanos. Además, la adopción de este modelo de desarrollo puede satisfacer mejor las necesidades de los usuarios y lograr una mayor calidad del servicio.

(2) ¿Por qué se necesita el modelo de desarrollo DevOps?

Si el desarrollo ágil es un método de desarrollo impulsado por un comportamiento a corto plazo, entonces el modelo de desarrollo DevOps es un método de desarrollo a largo plazo. Enfatiza el flujo bidireccional del desarrollo y las operaciones de software. Los desarrolladores pueden negociar sobre el método de entrega del software, el proceso de entrega y la mejora continua al enviar, crear, probar e implementar código, y ayudar a los operadores en los trabajos de operación y mantenimiento. A través del modelo de desarrollo DevOps, se pueden mejorar las capacidades integrales de los desarrolladores, evaluadores y operadores para mejorar la calidad del software y la eficiencia de la entrega.

(3) Características del modelo de desarrollo DevOps

A continuación se presentan varias características del modelo de desarrollo DevOps:

  1. Proceso de desarrollo automatizado: el modelo de desarrollo DevOps anima a los desarrolladores a mejorar la eficiencia del desarrollo. La clave del modelo de desarrollo DevOps es que, al automatizar el proceso de desarrollo, los desarrolladores no necesitan realizar tareas repetitivas manualmente una y otra vez.
  2. Colaboración entre departamentos: el modelo de desarrollo DevOps fomenta la colaboración entre desarrolladores y personal de operaciones. Facilita el proceso cíclico de desarrollo y operaciones mediante la creación conjunta y el mantenimiento de productos de software.
  3. Pruebas de integración: el modelo de desarrollo DevOps promueve las pruebas de integración, lo que significa que los desarrolladores pueden realizar pruebas de integración durante todo el ciclo de vida del software.
  4. Lanzamiento e implementación automatizados: el modelo de desarrollo DevOps fomenta el arranque, incluida la compilación, las pruebas y la implementación automatizadas. Proporciona procesos y especificaciones estandarizados para la entrega e implementación de software, y puede entregar software automáticamente.
  5. Operación y mantenimiento automatizados basados ​​en la nube: el modelo de desarrollo DevOps adopta un modelo de operación y mantenimiento automatizado basado en la nube, que puede realizar la implementación, las pruebas, la operación y el mantenimiento y las actualizaciones automáticas del software. Los servicios en la nube incluyen infraestructura como servicio (IaaS), plataforma como servicio (PaaS) y software como servicio (SaaS).
  6. Automatización de los procesos de prueba y lanzamiento: el modelo de desarrollo DevOps enfatiza las pruebas y el lanzamiento automatizados para mejorar la calidad del software y la eficiencia de la entrega.
  7. Alta escalabilidad: La alta escalabilidad del modelo de desarrollo DevOps permite que los proyectos de software se adapten a las necesidades de rápido desarrollo de la empresa o negocio.

(4) Ventajas y desventajas del modelo de desarrollo DevOps

ventaja
  1. Acortar el ciclo de desarrollo de software: el modelo de desarrollo DevOps puede acortar el ciclo de desarrollo de software y mejorar la eficiencia de la entrega de software.
  2. Mejorar la eficiencia de la comunicación entre desarrollo y operaciones: el modelo de desarrollo DevOps puede mejorar la eficiencia de la comunicación entre desarrollo y operaciones, reduciendo así los costos de comunicación y mejorando la velocidad y calidad de la entrega de software.
  3. Reducir la interferencia de los factores humanos: el modelo de desarrollo DevOps puede reducir las diferencias personales en el desarrollo y las operaciones, reducir la presión humana y mejorar la calidad del software y la eficiencia de la entrega.
  4. Logre la automatización y la estandarización: el modelo de desarrollo DevOps puede realizar procesos de desarrollo automatizados y estandarizados y admitir múltiples tecnologías, marcos y lenguajes de programación.
  5. Reducir la inversión en operación y mantenimiento: el modelo de desarrollo DevOps puede reducir la inversión en operación y mantenimiento y puede lograr efectivamente una mejor eficiencia operativa.
defecto
  1. Un énfasis excesivo en la automatización conduce a una mayor dificultad de gestión: un énfasis excesivo en la automatización y la estandarización puede conducir a una mayor dificultad de gestión, especialmente los requisitos para el personal de operación y mantenimiento.
  2. Las dependencias de plataforma pueden causar problemas: Las dependencias de plataforma pueden causar problemas de inestabilidad y compatibilidad.
  3. Altos requisitos de habilidades técnicas: el modelo de desarrollo DevOps tiene altos requisitos de habilidades técnicas, especialmente para los ingenieros de software.

(5) Métodos prácticos del modelo de desarrollo DevOps.

El modelo de desarrollo DevOp se puede utilizar como un conjunto de medios y métodos prácticos para practicar el modelo de desarrollo DevOps. A continuación se muestran algunos métodos prácticos:

  1. Canal de entrega continua: el canal de entrega continua es un método de práctica importante del modelo de desarrollo DevOps. En este proceso, los desarrolladores implementan el código desarrollado directamente en el entorno de producción mediante integración y pruebas continuas.
  2. Comunicación y colaboración: en el modelo de desarrollo DevOps, siempre debe haber una buena comunicación y colaboración entre desarrolladores y operadores. La colaboración es la piedra angular del modelo de desarrollo DevOps.
  3. Revisiones de código: la revisión de código es una práctica importante en el modelo de desarrollo DevOps. Es un proceso de comunicación y retroalimentación diseñado para identificar problemas potenciales y hacer que los miembros del equipo tengan más conocimientos sobre el software.
  4. Mejora continua: en el modelo de desarrollo DevOps, se debe cumplir con la mejora continua para promover la mejora continua de la calidad del software.
  5. Desarrollo basado en pruebas: TDD es una metodología de desarrollo que se utiliza en las primeras etapas del proceso de desarrollo de software. En el modelo de desarrollo DevOps, también se deben practicar métodos de desarrollo basados ​​en pruebas. TDD puede mejorar la confiabilidad y solidez del software.

5. Tendencias y desafíos futuros del desarrollo

Este artículo describe brevemente la nueva era de la arquitectura de Internet y las tecnologías relacionadas, y proporciona dos modelos típicos de arquitectura de Internet emergentes: microservicios y arquitectura basada en eventos. A continuación, el autor profundizará en algunas ventajas y desventajas de la arquitectura actual de Internet y propondrá cuatro direcciones principales para la innovación y la exploración.

6. Apéndice Preguntas y respuestas frecuentes

(1) ¿Qué es un modelo de desarrollo de software?
(2) ¿Cuáles son los modelos de desarrollo de software?
(3) ¿Cuáles son las características del desarrollo ágil?
(4) ¿Por qué se necesita el modelo de desarrollo ágil?
(5) ¿Cuáles son las ventajas y desventajas del modelo de desarrollo ágil?
(6) ¿Cuáles son los métodos para implementar el modelo de desarrollo ágil?
(7) ¿Cuál es el modelo de desarrollo DevOps?
(8) ¿Cuáles son las ventajas del modelo de desarrollo DevOps?
(9) ¿Cuáles son las deficiencias del modelo de desarrollo DevOps?
(10) ¿Cuáles son los métodos para implementar el modelo de desarrollo DevOps?
(11) ¿Cuál es la diferencia entre el desarrollo ágil y los modelos de desarrollo DevOps?
(12) ¿Qué es la arquitectura de microservicios?
(13) ¿Qué es la arquitectura basada en eventos?
(14) ¿Cuál es la diferencia entre la arquitectura de microservicios y la arquitectura basada en eventos?

Supongo que te gusta

Origin blog.csdn.net/universsky2015/article/details/132014249
Recomendado
Clasificación