"Arquitectura de Internet" Arquitectura de software-Gestión de versiones continuas del entorno de software (Parte 1)

Esta vez he llegado a la última parada del software, jaja, es decir, el software se lanza y se implementa en el servidor. De hecho, en el proceso de implementación, especialmente la prevalencia de la arquitectura de microservicio, al software en sí le gusta usar lo que el desarrollo ágil, la dificultad del lanzamiento continuo también es bastante grande, resulta que no importa cómo esté organizado el proyecto, siempre que el proyecto finalmente se implemente, se puede acceder normalmente El proyecto está implementado. Pero una vez que se desmantela el proyecto y se desmantelan muchos servicios, realmente no es algo sencillo de implementar en este momento. Necesita utilizar métodos científicos y experiencia para lograrlo.

"Arquitectura de Internet" Arquitectura de software-Gestión de versiones continuas del entorno de software (Parte 1)

Problemas que enfrenta el lanzamiento del sistema a gran escala

Especialmente ahora a muchos líderes les gusta el desarrollo ágil, y el desarrollo ágil conduce a una función que se habría desarrollado en una semana. Él te dice 2 días. ¿Por qué se necesitan 2 días? El desarrollo ágil es rápido. El desarrollo ágil en sí mismo es problemático.

  • Cuántas empresas publican ahora. ¿Con qué frecuencia publicas?

    Varias situaciones alrededor

1. Empaquételo usted mismo y suéltelo directamente después de decirle al líder. Cuando el líder dijo que se dará a conocer.
2. Dígale al personal de operación y mantenimiento la ubicación del git del proyecto, notifique a la operación y mantenimiento para que se conecte y libérelo al entorno de producción. (Si hay cientos o docenas de proyectos, dígale a la operación y mantenimiento, qué tan grande se requiere un equipo para operación y mantenimiento)
3. Hay pequeñas actualizaciones todos los días y se publican todos los días.
4. La versión del proyecto utiliza la herramienta jenkins, que se utiliza para automatizar la creación y la versión.

  • Hable sobre los problemas que existen en las versiones alrededor de
    1. No hay ningún problema y los parámetros son incorrectos.
    2. El proyecto dependiente no se publicó y yo lo
    publiqué primero. 3. La versión dependiente del proyecto en sí no se publica esta vez, y el resultado es que su propio proyecto depende de la función de ese proyecto
    4. El personal de operación y mantenimiento libera el código del entorno de prueba en el entorno de producción

  • Accidentes causados ​​por retrocesos

    La reversión es generalmente difícil de hacer. Si es solo a nivel de código, está bien hacer una copia de seguridad y regresar a la última vez. Si implica actualizar la base de datos, ¿es vergonzoso? La nueva versión de los datos se actualizó, pero el código Revertido, ¿desea actualizar los datos al estado sin lavar? Tal vez haya guiones que haya cepillado en el pasado, pero los guiones que eliminó pueden no serlo. Este es el accidente.

Para desmantelar un proyecto, especialmente proyectos a gran escala, los proyectos de Internet a gran escala están dispersos, decenas de cientos, y esos proyectos están dispersos, todavía tienen dependencias de proyectos antes, realmente lo liberan. Es una cosa muy difícil.

  • El lanzamiento de software es en realidad algo muy, muy difícil: prueba el nivel de los gerentes, cómo controlar la situación general y cómo ejecutarlos en secuencia.

    Con la prevalencia de microservicios y modelos de desarrollo ágiles, la integración de software se vuelve más difícil y la implementación continua se vuelve difícil. ¡Cómo reducir los accidentes causados ​​por la liberación, acortar el ciclo de interacción y lograr una implementación sostenible! De hecho, esto también es un problema mundial. Es demasiado difícil. Solo puede configurarlo de acuerdo con su propio negocio, no lo último y lo mejor, sino el más adecuado.

  • Fase de desarrollo de software

    La etapa correcta del desarrollo de software: Codificación> Compilación> Integración> Pruebas> Entrega> Implementación
    Integración sostenible> Implementación sostenible> Versión sostenible

"Arquitectura de Internet" Arquitectura de software-Gestión de versiones continuas del entorno de software (Parte 1)

  • Integración continua (INTEGRAR)

    Integración: Si es un solo desarrollo, no hay integración, todas las funciones están en un proyecto y se han integrado en el proceso de desarrollo del software, lo que equivale a estar integrado. Cada vez es más común que un proyecto no desarrolle una función, como un centro comercial durante Double 11, cuando se envía información de compras, puede depender del centro de inventario, centro de productos, centro de pagos, centro de miembros y centro de notificaciones. El desarrollo de la función de envío de pedidos se basó en muchos sistemas posteriormente, y agregar el pequeño error de modificar el envío de pedidos puede afectar a más de N proyectos que necesitan ser modificados. Es muy probable que implemente el proyecto de envío de pedidos y que sea necesario implementar varios otros proyectos simultáneamente.

Explicación oficial: La parte personal de I + D del software se entrega a la parte general del software y se lleva a cabo una integración frecuente para encontrar los errores más rápidamente.

  • Interacción continua (ENTREGA)

    Interacción: similar al entorno de ensayo en línea, a veces se lo denomina entorno de escala de grises. Cuando lo probamos, también debemos pasar primero por el entorno de ensayo. Algunos requisitos funcionales no son tan estrictos y pueden probarse directamente sin el entorno de ensayo. Más La empresa puede implementar directamente después de la construcción.

Explicación oficial: sobre la base de la integración continua, implemente el código integrado para estar más cerca del entorno operativo real

  • Integración continua, el mayor problema al que se enfrenta la interacción continua

    El problema de la coordinación y la redacción
    depende del paquete, y se acuerda que los proyectos dependientes se lancen juntos al mismo tiempo, pero si no conoce el motivo, se caerá la cadena. Su propio proyecto no se puede publicar según lo programado, pero su propio proyecto puede depender de otra función La interfaz que puede ser necesaria hace que otras interfaces no se liberen y se forme una cadena, una función no puede ser la esperada y todas las demás no pueden ser las esperadas. Todo colapsó.

1. El mayor problema es la coordinación y la colaboración.
2. Si se acuerda en el momento, si se debe considerar planes de emergencia, informar con anticipación que no se puede proporcionar,

  • Una integración fluida y sostenible requiere los siguientes puntos:
    1. Un proceso de lanzamiento claro y ejecutable
    2. Un coordinador de administración de lanzamiento que esté familiarizado con el proceso (este tipo de persona debe ser bueno en temas de subprocesos múltiples)
    3. Comunicación efectiva y Mecanismo de retroalimentación (confluencia para retroalimentación de información)
    4. Herramientas de integración de sostenibilidad (jenkins)
    5. Herramientas de administración de versiones (no solo herramientas de administración de código, archivos de programa diarios SVN)

Entorno requerido para el proceso de lanzamiento de la versión (confluencia, SVN)

  • Herramienta de coordinación de información (confluencia)
    1. Plan de lanzamiento mensual (aproximadamente aproximado)
    2. Plan de lanzamiento semanal (gerente de producto, envíe esta función de lanzamiento diario)
    3. Los evaluadores envían documentos específicos del plan de la ventana de lanzamiento (los desarrolladores escriben esta vez ellos mismos El sistema responsable, las dependencias y la lista de verificación de secuencias de comandos se pueden modificar en un momento determinado antes de
    conectarse en línea , y los documentos se pueden escribir juntos) 4. Informe de incidentes en línea (plan de reparación de errores)

  • Herramientas de gestión de versiones (archivos de versión, no a nivel de código)

    git (los pasos de git son engorrosos, es necesario agregar, confirmar, enviar)
    nexus
    ftp (archivos compartidos) de la manera más fácil.
    svn

  • confluencia

    Introducción: Confluence es un software profesional de colaboración y gestión del conocimiento empresarial, que también se puede utilizar para crear wikis empresariales. Fácil de usar, pero sus potentes funciones de edición y administración del sitio pueden ayudar a los miembros del equipo a compartir información, colaborar en documentos, discusiones grupales y enviar información. También se puede utilizar como software de colaboración del equipo interno de la empresa para editar word, execel, ppt, etc. en línea. Esta función es similar a la edición de palabras en línea de Tencent, execel. Pero es más poderoso.
    Código fuente: https://github.com/limingios/netFuture/tree/master/confluence

"Arquitectura de Internet" Arquitectura de software-Gestión de versiones continuas del entorno de software (Parte 1)

Sitio web oficial: https://www.atlassian.com/software/confluence/download-archives No se
recomienda usar el último, el software en sí está cargado, te sugiero que descargues 5.6.6, por qué, porque se puede descifrar

Preparación del entorno
1. CentOS 7 2.java
jdk 1.8
3.mysql-server 5.6
4.confluence 6.9.1

"Arquitectura de Internet" Arquitectura de software-Gestión de versiones continuas del entorno de software (Parte 1)

  • Servicio de información

    Generar máquina virtual a través de vagabundo

Tipo de sistema dirección IP Rol de nodo UPC Memoria Nombre de host
Centos7 192.168.68.100 confluencia 2 4G confluencia
vagrant up
su -
#密码 vagrant
vi /etc/resolv.conf
#nameserver 8.8.8.8
reboot
  • instalación de jdk

    Jdk8 debe estar instalado

wget wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u141-b15/336fa29ff2bb4ef291e347e091f7f4a7/jdk-8u141-linux-x64.tar.gz"
#上边的下载比较慢,建议不通过wget的方式,本地下载后上传上去,我下载了3个多小时,当时正好想看电视剧看了几集
tar -zxvf jdk*
cd jdk*
#获取jdk目录填写到下面JAVA_HOME中
pwd
#追加环境变量
echo "export JAVA_HOME=/root/jdk1.8.0_141" >> /etc/profile
echo "export PATH=$""JAVA_HOME/bin:$""PATH" >> /etc/profile
#执行下面这个才能生效
source /etc/profile
java -version
javac -version

"Arquitectura de Internet" Arquitectura de software-Gestión de versiones continuas del entorno de software (Parte 1)

  • instalación de mysql
#下载mysql 源
wget http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
#安装mysql 源
yum -y install mysql57-community-release-el7-11.noarch.rpm
#安装mysql,中间会弹出是与否的选择,选择y即可,然后耐心等待吧。。。。。。。
yum  install mysql-community-server
#启动mysql
systemctl start  mysqld.service
#查看mysql状态
systemctl status mysqld.service
#查看初始密码
grep "password" /var/log/mysqld.log
#登录
mysql -uroot -p
#输入刚才查看的初始密码

#修改密码:我这里修改成:1qaz@WSX
ALTER USER 'root'@'localhost' IDENTIFIED BY '1qaz@WSX';

#授权远程访问
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '1qaz@WSX' WITH GRANT OPTION;

#刷新上边操作,就是提交操作
FLUSH PRIVILEGES;
#退出mysql控制台
exit

#设置自动启动
systemctl enable mysqld
systemctl daemon-reload

"Arquitectura de Internet" Arquitectura de software-Gestión de versiones continuas del entorno de software (Parte 1)

"Arquitectura de Internet" Arquitectura de software-Gestión de versiones continuas del entorno de software (Parte 1)

"Arquitectura de Internet" Arquitectura de software-Gestión de versiones continuas del entorno de software (Parte 1)

"Arquitectura de Internet" Arquitectura de software-Gestión de versiones continuas del entorno de software (Parte 1)

Confluence puede usar la base de datos integrada, pero como entorno de producción, se recomienda que confluence use su propia base de datos.
Al instalar la base de datos, admite una variedad de bases de datos. Yo uso mysql aquí. Ambas versiones 5.6 / 5.7 pueden. También hay un paquete jar mysql-connector que necesita conectarse a mysql.

El primero es el archivo de configuración /etc/my.cnf, agréguelo bajo la etiqueta [mysqld]

vi /etc/my.cnf
[mysqld]
character-set-server=utf8
collation-server=utf8_bin
default-storage-engine=INNODB
max_allowed_packet=256M
innodb_log_file_size=2GB
sql_mode = NO_AUTO_VALUE_ON_ZERO
transaction-isolation=READ-COMMITTED
binlog_format=row

"Arquitectura de Internet" Arquitectura de software-Gestión de versiones continuas del entorno de software (Parte 1)

Finalmente, reinicie mysqld e inicie sesión en mysqld para ver el juego de caracteres. La contraseña establecida al crear la base de datos es: 1qaz @ WSX

service mysqld restart
mysql -uroot -p
mysqld [(none)]> show variables like "%character%";show variables like "%collation%";

"Arquitectura de Internet" Arquitectura de software-Gestión de versiones continuas del entorno de software (Parte 1)

Cree la base de datos, el nombre de usuario y la contraseña correspondientes para Confluence

create database confluence default character set utf8 collate utf8_bin;
grant all on confluence.* to 'root'@'%' identified by '1qaz@WSX';
flush privileges;
  • Instalar Confluence
# 下载安装程序
wget https://product-downloads.atlassian.com/software/confluence/downloads/atlassian-confluence-6.9.1-x64.bin
# 授权安装程序执行权限
chmod a+x atlassian-confluence-6.9.1-x64.bin
# 执行安装程序,进行安装:

./atlassian-confluence-6.9.1-x64.bin
[root@confluence ~]# chmod a+x atlassian-confluence-6.9.1-x64.bin
[root@confluence ~]# ./atlassian-confluence-6.9.1-x64.bin
Unpacking JRE ...
Starting Installer ...

This will install Confluence 6.9.1 on your computer.
OK [o, Enter], Cancel [c]
#选择确定安装
o
Click Next to continue, or Cancel to exit Setup.

Choose the appropriate installation or upgrade option.
Please choose one of the following:
Express Install (uses default settings) [1], 
Custom Install (recommended for advanced users) [2, Enter], 
Upgrade an existing Confluence installation [3]
#目录选择自定义
2

Select the folder where you would like Confluence 6.9.1 to be installed,
then click Next.
Where should Confluence 6.9.1 be installed?
[/opt/atlassian/confluence]
#这里填写自定义目录
/usr/local/atlassian/confluence

Default location for Confluence data
[/var/atlassian/application-data/confluence]

Configure which ports Confluence will use.
Confluence requires two TCP ports that are not being used by any other
applications on this machine. The HTTP port is where you will access
Confluence through your browser. The Control port is used to Startup and
Shutdown Confluence.
Use default ports (HTTP: 8090, Control: 8000) - Recommended [1, Enter], Set custom value for HTTP and Control ports [2]
#端口默认8090
1

Confluence can be run in the background.
You may choose to run Confluence as a service, which means it will start
automatically whenever the computer restarts.
Install Confluence as Service?
Yes [y, Enter], No [n]
#自动启动 选择y
y

Extracting files ...

Please wait a few moments while we configure Confluence.

Installation of Confluence 6.9.1 is complete
Start Confluence now?
Yes [y, Enter], No [n]
#选择y
y

Please wait a few moments while Confluence starts up.
Launching Confluence ...

Installation of Confluence 6.9.1 is complete
Your installation of Confluence 6.9.1 is now ready and can be accessed via
your browser.
Confluence 6.9.1 can be accessed at http://localhost:8090
Finishing installation ...

"Arquitectura de Internet" Arquitectura de software-Gestión de versiones continuas del entorno de software (Parte 1)

https://blog.csdn.net/weixin_41004350/article/details/80590421

Ingrese al navegador para acceder, si es inglés, puede seleccionar [Idioma] Chino, seleccione [Instalación del producto

"Arquitectura de Internet" Arquitectura de software-Gestión de versiones continuas del entorno de software (Parte 1)

No selecciones ningún complemento todavía

"Arquitectura de Internet" Arquitectura de software-Gestión de versiones continuas del entorno de software (Parte 1)

Registre la ID del servidor (B5BE-SJ3C-N42I-XCN0)

"Arquitectura de Internet" Arquitectura de software-Gestión de versiones continuas del entorno de software (Parte 1)

Extraiga el archivo agrietado y cierre Confluence

# 进入你安装的目录
cd /usr/local/atlassian/confluence    
 # 关闭confluence
bin/stop-confluence.sh  
# 将confluence 下面的一个atlassian-extras-decoder-v2-3.3.0.jar包复制一份出来
cp confluence/WEB-INF/lib/atlassian-extras-decoder-v2-3.3.0.jar ~/

# 将其改名为atlassian-extras-2.4.jar
mv ~/atlassian-extras-decoder-v2-3.3.0.jar ~/atlassian-extras-2.4.jar
#安装传输工具
cd ~
yum -y install lszrz

"Arquitectura de Internet" Arquitectura de software-Gestión de versiones continuas del entorno de software (Parte 1)

Archivos crackeados, hay en el código fuente.

"Arquitectura de Internet" Arquitectura de software-Gestión de versiones continuas del entorno de software (Parte 1)
Luego, la operación de la computadora de ventana local:
① Abra la herramienta de craqueo descargada, ejecute confluence_keygen.jar ② Complete
el ID del servidor registrado y complete el Nombre.
③Haga clic en gen, genere clave y grabe.
④ Haga clic en parche y seleccione el archivo atlassian-extras-2.4.jar que se acaba de descargar en el local para crackear.
⑤ No cierre la herramienta de craqueo, deberá copiar la clave en la clave más tarde

"Arquitectura de Internet" Arquitectura de software-Gestión de versiones continuas del entorno de software (Parte 1)

"Arquitectura de Internet" Arquitectura de software-Gestión de versiones continuas del entorno de software (Parte 1)

"Arquitectura de Internet" Arquitectura de software-Gestión de versiones continuas del entorno de software (Parte 1)

OK, después de que se complete el craqueo, envíe el archivo craqueado de vuelta al servidor

cd ~
mkdir bak
cd bak
# 传回服务器后,将名称改回之前的名称
mv atlassian-extras-2.4.jar atlassian-extras-decoder-v2-3.3.0.jar

# 然后覆盖回原路径
mv atlassian-extras-decoder-v2-3.3.0.jar /usr/local/atlassian/confluence/confluence/WEB-INF/lib/

"Arquitectura de Internet" Arquitectura de software-Gestión de versiones continuas del entorno de software (Parte 1)

Confluence en sí no integra el controlador mysql. Debe descargarlo y cargarlo usted mismo. Originalmente, cuando lo instaló, después de ingresar la clave, necesitaría completar la información de conexión de mysql. Habrá un enlace al documento oficial para enseñarle cómo configurar mysql. Sin embargo, es necesario reiniciar después de que se complete la configuración, lo que causará problemas con el craqueo anterior, por lo que debe reiniciarlo después de completarlo juntos. La dirección oficial del documento del tutorial es la siguiente:
https://confluence.atlassian.com/doc/database-setup-for-mysql-128747.html el
código fuente incluye:
Descomprime el controlador mysql y sube mysql-connector-java-5.1.46-bin.jar al servidor , Ponlo bajo el directorio de clase de confluencia:

sz 

cp mysql-connector-java-5.1.46-bin.jar /usr/local/atlassian/confluence/lib/

"Arquitectura de Internet" Arquitectura de software-Gestión de versiones continuas del entorno de software (Parte 1)

  • Una vez completadas las operaciones anteriores, reinicie la confluencia después de que se complete el reinicio,

    No quiero gastar dinero para asegurarme de que no haya problemas

service confluence start

"Arquitectura de Internet" Arquitectura de software-Gestión de versiones continuas del entorno de software (Parte 1)

Regrese a la interfaz para ingresar la clave, ingrese la clave registrada arriba [dije que no cierre el software de craqueo antes] y haga clic en Siguiente

"Arquitectura de Internet" Arquitectura de software-Gestión de versiones continuas del entorno de software (Parte 1)

Elige mi propia base de datos

"Arquitectura de Internet" Arquitectura de software-Gestión de versiones continuas del entorno de software (Parte 1)

"Arquitectura de Internet" Arquitectura de software-Gestión de versiones continuas del entorno de software (Parte 1)

"Arquitectura de Internet" Arquitectura de software-Gestión de versiones continuas del entorno de software (Parte 1)

"Arquitectura de Internet" Arquitectura de software-Gestión de versiones continuas del entorno de software (Parte 1)

"Arquitectura de Internet" Arquitectura de software-Gestión de versiones continuas del entorno de software (Parte 1)

"Arquitectura de Internet" Arquitectura de software-Gestión de versiones continuas del entorno de software (Parte 1)

"Arquitectura de Internet" Arquitectura de software-Gestión de versiones continuas del entorno de software (Parte 1)

"Arquitectura de Internet" Arquitectura de software-Gestión de versiones continuas del entorno de software (Parte 1)

"Arquitectura de Internet" Arquitectura de software-Gestión de versiones continuas del entorno de software (Parte 1)

"Arquitectura de Internet" Arquitectura de software-Gestión de versiones continuas del entorno de software (Parte 1)

Bien, la instalación ya está completa. Con respecto al uso de Confluence, http://www.confluence.cn/pages/viewpage.action?pageId=360467, ¿se utiliza la descripción de la interfaz para el desarrollo de software? Encaja muy bien con la idea de la documentación del proceso de desarrollo de software .

  • Instalación de SVN
    1. Instale svnserve mediante el comando yum
    yum -y install subversion

    "Arquitectura de Internet" Arquitectura de software-Gestión de versiones continuas del entorno de software (Parte 1)

2. Cree un directorio de la biblioteca de versiones (este es solo un directorio y proporcione una ubicación de almacenamiento para la creación posterior de la biblioteca de versiones)

mkdir /var/svnrepos
  1. Crea un directorio de repositorio
    svnadmin create /var/svnrepos/svn

"Arquitectura de Internet" Arquitectura de software-Gestión de versiones continuas del entorno de software (Parte 1)

  1. Configurar svn

    authz: ​​Responsable de la gestión de los permisos de la cuenta, controlando si la cuenta tiene permisos de lectura y escritura
    passwd: Responsable de la gestión de la lista de usuarios de cuentas y contraseñas
    svnserve.conf: archivo de configuración del servidor svn

    cd /var/svnrepos/svn/conf

    "Arquitectura de Internet" Arquitectura de software-Gestión de versiones continuas del entorno de software (Parte 1)

Editar archivo authz
[/]: indica el directorio raíz, es decir, / var / svnrepos
admin = rw: indica que el usuario luo tiene permisos de lectura y escritura en el directorio raíz.

"Arquitectura de Internet" Arquitectura de software-Gestión de versiones continuas del entorno de software (Parte 1)

Editar archivo passwd

"Arquitectura de Internet" Arquitectura de software-Gestión de versiones continuas del entorno de software (Parte 1)

Edite el archivo svnserve.conf (nota: no puede haber espacios delante de la configuración, debe estar escrito en la parte superior)
anon-access = none: significa que los usuarios anónimos tienen prohibido el acceso.
auth-access = write: indica que los usuarios autorizados tienen permisos de lectura y escritura.
password-db = passswd: especifique el archivo de nombre de usuario y contraseña, es decir, el archivo passwd.
authz-db = authz: ​​especifique el perfil de autoridad, es decir, el archivo authz.
realm = / var / svnrepos: especifique el dominio de autenticación, es decir, el directorio / var / svnrepos.

"Arquitectura de Internet" Arquitectura de software-Gestión de versiones continuas del entorno de software (Parte 1)

"Arquitectura de Internet" Arquitectura de software-Gestión de versiones continuas del entorno de software (Parte 1)

PD: Esta vez hablé principalmente sobre los problemas en la gestión de proyectos y cómo solucionarlos. Además, hablé sobre la instalación de confluence y svn, que es un muy buen software. Confluence habló sobre algunos esquemas de craqueo de tecnología negra.

Supongo que te gusta

Origin blog.51cto.com/12040702/2588451
Recomendado
Clasificación