Aplicación distribuida para la monitorización y diagnosis de ...
Desarrollo de una aplicación de gestión y monitorización ... Behaviour- driven Development (BDD)...
Transcript of Desarrollo de una aplicación de gestión y monitorización ... Behaviour- driven Development (BDD)...
![Page 1: Desarrollo de una aplicación de gestión y monitorización ... Behaviour- driven Development (BDD) Desarrollo de una aplicación de gestión y monitorización de nodos de red Jornadas](https://reader035.fdocumento.com/reader035/viewer/2022081611/5f07ec077e708231d41f6e33/html5/thumbnails/1.jpg)
Desarrollo de una aplicación de gestión
y monitorización de nodos de red
Sergio Gómez Bachiller Operador del Servicio de Informática Área de Apoyo a la Docencia y a la Investigación Universidad de Córdoba
![Page 2: Desarrollo de una aplicación de gestión y monitorización ... Behaviour- driven Development (BDD) Desarrollo de una aplicación de gestión y monitorización de nodos de red Jornadas](https://reader035.fdocumento.com/reader035/viewer/2022081611/5f07ec077e708231d41f6e33/html5/thumbnails/2.jpg)
Desarrollo de una aplicación de gestión y monitorización de nodos de red Jornadas Técnicas de Rediris 2016
2
¿Quién soy y de dónde vengo?
![Page 3: Desarrollo de una aplicación de gestión y monitorización ... Behaviour- driven Development (BDD) Desarrollo de una aplicación de gestión y monitorización de nodos de red Jornadas](https://reader035.fdocumento.com/reader035/viewer/2022081611/5f07ec077e708231d41f6e33/html5/thumbnails/3.jpg)
Desarrollo de una aplicación de gestión y monitorización de nodos de red Jornadas Técnicas de Rediris 2016
3
Área de Sistemas
Área de Apoyo a la Docencia y a la Investigación
Área de Comunicaciones
Área de Aplicaciones
Área de Atención al Usuario
Jefe de Servicio + Administrativo
![Page 4: Desarrollo de una aplicación de gestión y monitorización ... Behaviour- driven Development (BDD) Desarrollo de una aplicación de gestión y monitorización de nodos de red Jornadas](https://reader035.fdocumento.com/reader035/viewer/2022081611/5f07ec077e708231d41f6e33/html5/thumbnails/4.jpg)
Desarrollo de una aplicación de gestión y monitorización de nodos de red Jornadas Técnicas de Rediris 2016
4
Aplicación en Microsoft AccessDesarrollo propio 20 años de antigüedad Problemas inherentes al tiempo y a la arquitectura
Cisco WorksSoftware privativo Sustituido por Cisco Prime en el año 2011 Sin soporte desde el año 2015 Problemas por falta de actualizaciones
Estado del arteHerramientas previas
![Page 5: Desarrollo de una aplicación de gestión y monitorización ... Behaviour- driven Development (BDD) Desarrollo de una aplicación de gestión y monitorización de nodos de red Jornadas](https://reader035.fdocumento.com/reader035/viewer/2022081611/5f07ec077e708231d41f6e33/html5/thumbnails/5.jpg)
Desarrollo de una aplicación de gestión y monitorización de nodos de red Jornadas Técnicas de Rediris 2016
5
Metodologías clásicas¿Qué salió mal?
Diseño
Implementación
Verificación
Mantenimiento
Análisis
Demasiado amplio
No hay suficiente personal
No hay producto hasta el final
![Page 6: Desarrollo de una aplicación de gestión y monitorización ... Behaviour- driven Development (BDD) Desarrollo de una aplicación de gestión y monitorización de nodos de red Jornadas](https://reader035.fdocumento.com/reader035/viewer/2022081611/5f07ec077e708231d41f6e33/html5/thumbnails/6.jpg)
Desarrollo de una aplicación de gestión y monitorización de nodos de red Jornadas Técnicas de Rediris 2016
6
Metodologías ágilesProgramación
#&$
%
"
!
Reducir objetivos
Definir los MVP
Pruebas
![Page 7: Desarrollo de una aplicación de gestión y monitorización ... Behaviour- driven Development (BDD) Desarrollo de una aplicación de gestión y monitorización de nodos de red Jornadas](https://reader035.fdocumento.com/reader035/viewer/2022081611/5f07ec077e708231d41f6e33/html5/thumbnails/7.jpg)
Desarrollo de una aplicación de gestión y monitorización de nodos de red Jornadas Técnicas de Rediris 2016
7
UsuariosGestión e
identificación de usuarios
PermisosGestión de roles y
seguridad
OrganizaciónGestión de unid.
organizativas, edificios y racks
NodosGestión de elementos de
la red
EsquemaGestión de los datos
de la red
AuditoríaRegistro y consulta de
conexiones
MonitorizaciónControl de estados y
envío de alertas
Objetivos
![Page 8: Desarrollo de una aplicación de gestión y monitorización ... Behaviour- driven Development (BDD) Desarrollo de una aplicación de gestión y monitorización de nodos de red Jornadas](https://reader035.fdocumento.com/reader035/viewer/2022081611/5f07ec077e708231d41f6e33/html5/thumbnails/8.jpg)
Desarrollo de una aplicación de gestión y monitorización de nodos de red Jornadas Técnicas de Rediris 2016
8
DesarrolloPlanificación
2016 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
Abril
Mayo
Junio
Julio
Primera iteración Segunda iteración
Tercera iteración Cuarta iteración
Alfa Beta
1.31.0
1.5Tareas sysadmin Documentación
![Page 9: Desarrollo de una aplicación de gestión y monitorización ... Behaviour- driven Development (BDD) Desarrollo de una aplicación de gestión y monitorización de nodos de red Jornadas](https://reader035.fdocumento.com/reader035/viewer/2022081611/5f07ec077e708231d41f6e33/html5/thumbnails/9.jpg)
Desarrollo de una aplicación de gestión y monitorización de nodos de red Jornadas Técnicas de Rediris 2016
9
Metodologías ágilesPruebas
)(
(
(
* * *
* * *
'
'
'
Behaviour-driven Development (BDD)
![Page 10: Desarrollo de una aplicación de gestión y monitorización ... Behaviour- driven Development (BDD) Desarrollo de una aplicación de gestión y monitorización de nodos de red Jornadas](https://reader035.fdocumento.com/reader035/viewer/2022081611/5f07ec077e708231d41f6e33/html5/thumbnails/10.jpg)
Desarrollo de una aplicación de gestión y monitorización de nodos de red Jornadas Técnicas de Rediris 2016
10
Metodologías ágilesPruebas
** *** *** *
Iteración
Iteración
Iteración
![Page 11: Desarrollo de una aplicación de gestión y monitorización ... Behaviour- driven Development (BDD) Desarrollo de una aplicación de gestión y monitorización de nodos de red Jornadas](https://reader035.fdocumento.com/reader035/viewer/2022081611/5f07ec077e708231d41f6e33/html5/thumbnails/11.jpg)
Desarrollo de una aplicación de gestión y monitorización de nodos de red Jornadas Técnicas de Rediris 2016
11
RestriccionesFactores dato
![Page 12: Desarrollo de una aplicación de gestión y monitorización ... Behaviour- driven Development (BDD) Desarrollo de una aplicación de gestión y monitorización de nodos de red Jornadas](https://reader035.fdocumento.com/reader035/viewer/2022081611/5f07ec077e708231d41f6e33/html5/thumbnails/12.jpg)
Desarrollo de una aplicación de gestión y monitorización de nodos de red Jornadas Técnicas de Rediris 2016
12
RestriccionesFactores estratégicos
![Page 13: Desarrollo de una aplicación de gestión y monitorización ... Behaviour- driven Development (BDD) Desarrollo de una aplicación de gestión y monitorización de nodos de red Jornadas](https://reader035.fdocumento.com/reader035/viewer/2022081611/5f07ec077e708231d41f6e33/html5/thumbnails/13.jpg)
Desarrollo de una aplicación de gestión y monitorización de nodos de red Jornadas Técnicas de Rediris 2016
13
![Page 14: Desarrollo de una aplicación de gestión y monitorización ... Behaviour- driven Development (BDD) Desarrollo de una aplicación de gestión y monitorización de nodos de red Jornadas](https://reader035.fdocumento.com/reader035/viewer/2022081611/5f07ec077e708231d41f6e33/html5/thumbnails/14.jpg)
Desarrollo de una aplicación de gestión y monitorización de nodos de red Jornadas Técnicas de Rediris 2016
750450
14
El problemaCatalogar y gestionar
![Page 15: Desarrollo de una aplicación de gestión y monitorización ... Behaviour- driven Development (BDD) Desarrollo de una aplicación de gestión y monitorización de nodos de red Jornadas](https://reader035.fdocumento.com/reader035/viewer/2022081611/5f07ec077e708231d41f6e33/html5/thumbnails/15.jpg)
Desarrollo de una aplicación de gestión y monitorización de nodos de red Jornadas Técnicas de Rediris 2016
15
La soluciónFuncionamiento
LAN
WAP
LAN
WAP
LAN
WAP
LAN
WAP
LAN
WAP
![Page 16: Desarrollo de una aplicación de gestión y monitorización ... Behaviour- driven Development (BDD) Desarrollo de una aplicación de gestión y monitorización de nodos de red Jornadas](https://reader035.fdocumento.com/reader035/viewer/2022081611/5f07ec077e708231d41f6e33/html5/thumbnails/16.jpg)
Desarrollo de una aplicación de gestión y monitorización de nodos de red Jornadas Técnicas de Rediris 2016
16
Gestión de tareas Estadísticas
Control de versiones Documentación
DesarrolloGestión
https://gitlab.uco.es/si/nodos
![Page 17: Desarrollo de una aplicación de gestión y monitorización ... Behaviour- driven Development (BDD) Desarrollo de una aplicación de gestión y monitorización de nodos de red Jornadas](https://reader035.fdocumento.com/reader035/viewer/2022081611/5f07ec077e708231d41f6e33/html5/thumbnails/17.jpg)
Desarrollo de una aplicación de gestión y monitorización de nodos de red Jornadas Técnicas de Rediris 2016
17
Desarrollo orientado a comportamientoPruebas
- -**
*
Desarrollador Cliente
+, ?aA
![Page 18: Desarrollo de una aplicación de gestión y monitorización ... Behaviour- driven Development (BDD) Desarrollo de una aplicación de gestión y monitorización de nodos de red Jornadas](https://reader035.fdocumento.com/reader035/viewer/2022081611/5f07ec077e708231d41f6e33/html5/thumbnails/18.jpg)
Desarrollo de una aplicación de gestión y monitorización de nodos de red Jornadas Técnicas de Rediris 2016
18
class NodeEventLogMailerSpec extends ObjectBehavior{ function let(…) {} function it_is_initializable(…) {} function it_sends_email(…) {} function it_not_sends_email_if_logs_are_empty(…) {}}
Pruebas de unidadPHPSpec
![Page 19: Desarrollo de una aplicación de gestión y monitorización ... Behaviour- driven Development (BDD) Desarrollo de una aplicación de gestión y monitorización de nodos de red Jornadas](https://reader035.fdocumento.com/reader035/viewer/2022081611/5f07ec077e708231d41f6e33/html5/thumbnails/19.jpg)
Desarrollo de una aplicación de gestión y monitorización de nodos de red Jornadas Técnicas de Rediris 2016
19
class NodeEventLogMailerSpec extends ObjectBehavior{ function it_sends_email( \Swift_Mailer $mailer, EngineInterface $engine, NodeEventLog $nodeEventLog ) { $nodeEventLog->getAction()->willReturn(NodeEventLog::UP);
$engine->render('NodeEventLog/email.html.twig', [ 'nodos_down' => [], 'nodos_up' => [$nodeEventLog], ])->shouldBeCalled();
$mailer->send(Argument::type('\Swift_Message'))->shouldBeCalled();
$this->notifyTo(['[email protected]'], [$nodeEventLog]); }}
Pruebas de unidadPHPSpec
![Page 20: Desarrollo de una aplicación de gestión y monitorización ... Behaviour- driven Development (BDD) Desarrollo de una aplicación de gestión y monitorización de nodos de red Jornadas](https://reader035.fdocumento.com/reader035/viewer/2022081611/5f07ec077e708231d41f6e33/html5/thumbnails/20.jpg)
Desarrollo de una aplicación de gestión y monitorización de nodos de red Jornadas Técnicas de Rediris 2016
20
class UserNodeVoterSpec extends ObjectBehavior{ function let(…) {} function it_is_initializable(…) {} function it_is_a_voter(…) {} function it_votes_access_granted_to_edit_to_faculty_staff(…) {} function it_votes_access_denied_to_edit_if_operator_not_belong_to_building(…) function it_votes_access_granted_to_view_to_faculty_staff(…) {} function it_votes_access_denied_to_show_if_operator_not_belong_to_building(…) function it_votes_access_denied_if_operator_have_no_buildings(…) {} function it_votes_access_abstain_to_other_actions(…) {} function it_votes_access_abstain_to_other_objects(…) {} function it_votes_access_granted_to_other_roles(…) {}}
Pruebas de unidadPHPSpec
![Page 21: Desarrollo de una aplicación de gestión y monitorización ... Behaviour- driven Development (BDD) Desarrollo de una aplicación de gestión y monitorización de nodos de red Jornadas](https://reader035.fdocumento.com/reader035/viewer/2022081611/5f07ec077e708231d41f6e33/html5/thumbnails/21.jpg)
Desarrollo de una aplicación de gestión y monitorización de nodos de red Jornadas Técnicas de Rediris 2016
21
class UserNodeVoterSpec extends ObjectBehavior{
function let(…) { $token->getUser()->willReturn($user); $user->hasRole('ROLE_FACULTY')->willReturn(true); $user->getUsername()->willReturn('johndoe'); $networkNode->getBuilding()->willReturn($building); $building->getOperators()->willReturn([$operator])); }
function it_votes_access_denied_to_edit_if_operator_not_belong_to_building(…) { $operator->getUsername()->willReturn('johnnydoe'); $this->vote($token, $networkNode, ['ROLE_APP_ADMIN_USER_NODE_EDIT']) ->shouldReturn(Voter::ACCESS_DENIED) ; }
}
Pruebas de unidadPHPSpec
![Page 22: Desarrollo de una aplicación de gestión y monitorización ... Behaviour- driven Development (BDD) Desarrollo de una aplicación de gestión y monitorización de nodos de red Jornadas](https://reader035.fdocumento.com/reader035/viewer/2022081611/5f07ec077e708231d41f6e33/html5/thumbnails/22.jpg)
Desarrollo de una aplicación de gestión y monitorización de nodos de red Jornadas Técnicas de Rediris 2016
22
DesarrolloCobertura de las pruebas
![Page 23: Desarrollo de una aplicación de gestión y monitorización ... Behaviour- driven Development (BDD) Desarrollo de una aplicación de gestión y monitorización de nodos de red Jornadas](https://reader035.fdocumento.com/reader035/viewer/2022081611/5f07ec077e708231d41f6e33/html5/thumbnails/23.jpg)
Desarrollo de una aplicación de gestión y monitorización de nodos de red Jornadas Técnicas de Rediris 2016
23
Pruebas de integraciónBehat
# login.feature Feature: Managing node connections In order to know the devices connected to our network As a network administrator I want to register all device connections on every network port
![Page 24: Desarrollo de una aplicación de gestión y monitorización ... Behaviour- driven Development (BDD) Desarrollo de una aplicación de gestión y monitorización de nodos de red Jornadas](https://reader035.fdocumento.com/reader035/viewer/2022081611/5f07ec077e708231d41f6e33/html5/thumbnails/24.jpg)
Desarrollo de una aplicación de gestión y monitorización de nodos de red Jornadas Técnicas de Rediris 2016
24
Background: Given the next network nodes: | name | | switch01 | And the next ports on network node "switch01": | index | name | alias | | 1 | Fa0/1 | Port 1 | | 2 | Fa0/2 | Port 2 | And the next entries on the arp table: | mac | ip | | 00:11:22:33:44:55 | 192.168.0.1 | And the next network connections: | node | port | mac | ip | | switch01 | Fa0/1 | 00:11:22:33:44:55 | 192.168.0.1 |
Pruebas de integraciónBehat
![Page 25: Desarrollo de una aplicación de gestión y monitorización ... Behaviour- driven Development (BDD) Desarrollo de una aplicación de gestión y monitorización de nodos de red Jornadas](https://reader035.fdocumento.com/reader035/viewer/2022081611/5f07ec077e708231d41f6e33/html5/thumbnails/25.jpg)
Desarrollo de una aplicación de gestión y monitorización de nodos de red Jornadas Técnicas de Rediris 2016
25
Scenario: Register a new IP in a new port Given the next network connections: | node | port | mac | ip | | switch01| Fa0/2 | 00:11:22:33:44:66 | 192.168.0.2 | Then there are 1 open connection on "switch01" port "Fa0/1" And there are 1 open connection on "switch01" port "Fa0/2"
Pruebas de integraciónBehat
![Page 26: Desarrollo de una aplicación de gestión y monitorización ... Behaviour- driven Development (BDD) Desarrollo de una aplicación de gestión y monitorización de nodos de red Jornadas](https://reader035.fdocumento.com/reader035/viewer/2022081611/5f07ec077e708231d41f6e33/html5/thumbnails/26.jpg)
Desarrollo de una aplicación de gestión y monitorización de nodos de red Jornadas Técnicas de Rediris 2016
26
DemoGestión de Nodos de la Universidad de Córdoba
![Page 27: Desarrollo de una aplicación de gestión y monitorización ... Behaviour- driven Development (BDD) Desarrollo de una aplicación de gestión y monitorización de nodos de red Jornadas](https://reader035.fdocumento.com/reader035/viewer/2022081611/5f07ec077e708231d41f6e33/html5/thumbnails/27.jpg)
Desarrollo de una aplicación de gestión y monitorización de nodos de red Jornadas Técnicas de Rediris 2016
27
10
MIL4
MIL 228
Líneas de código de pruebas CommitsLíneas de código
ConclusionesEstadísticas
![Page 28: Desarrollo de una aplicación de gestión y monitorización ... Behaviour- driven Development (BDD) Desarrollo de una aplicación de gestión y monitorización de nodos de red Jornadas](https://reader035.fdocumento.com/reader035/viewer/2022081611/5f07ec077e708231d41f6e33/html5/thumbnails/28.jpg)
Desarrollo de una aplicación de gestión y monitorización de nodos de red Jornadas Técnicas de Rediris 2016
28
Configuración remota vía SNMP.
Configuración
Mantenimiento y asignación de direcciones IP por subred
y configuración DHCP
Gestión IP (IPAM)Adquisición y actualización
automática de datos.
Actualizaciones
Limpieza de datos obsoletos (sharding o borrado).
MantenimientoDesacoplar elementos propios de la UCO para
liberar código.
Liberar código
ConclusionesFuturas mejoras
![Page 29: Desarrollo de una aplicación de gestión y monitorización ... Behaviour- driven Development (BDD) Desarrollo de una aplicación de gestión y monitorización de nodos de red Jornadas](https://reader035.fdocumento.com/reader035/viewer/2022081611/5f07ec077e708231d41f6e33/html5/thumbnails/29.jpg)
Desarrollo de una aplicación de gestión
y monitorización de nodos de red
Sergio Gómez Bachiller Operador del Servicio de Informática Área de Apoyo a la Docencia y a la Investigación Universidad de Córdoba