• No se han encontrado resultados

Capítulo 6: Validación

6.1 Plan de transición y despliegue

6.1.1 Transición del sistema ERP

La construcción del sistema ERP se realizó de forma iterativa, poniendo énfasis en cubrir las necesidades de facturación electrónica en las últimas iteraciones, y delegando la construcción de funciones del sistema ERP a iteraciones tempranas. Se designaron 3 iteraciones, las cuales dividen los casos de uso asociados al sistema ERP considerando la anterior premisa.

Cada iteración a desarrollar supone un entregable a otorgar al cliente, el cual podrá evaluar mediante el uso y validar su correctitud. La validación temprana de los casos de uso más simples, permite disminuir los riesgos asociados a dedicar esfuerzos de manera equivoca, los cuales son más costosos de corregir en fases tardías del desarrollo. El hecho que el cliente pueda evaluar cada entregable, permite ajustar la aplicación rápidamente para las siguientes iteraciones.

La capacitación fue realizada acompañando la entrega de cada gran hito, de manera presencial, en las dependencias del cliente. El servicio fue puesto al alcance de la red del cliente, por lo que podían evaluar su uso de manera prolongada.

Para realizar la transición de la información, fue necesario construir pequeñas utilidades que permitieron el traspaso de información entre el sistema viejo y el actual. Estas aplicaciones utilizan algunas de las gemas anteriormente mencionadas en la “Implementación del Sistema ERP”, como roo o axlsx.

Una vez que las tres iteraciones fueron construidas, entregadas y evaluadas por el cliente, se inició una fase correctiva, en la cual el sistema fue adaptando sus funciones para concordar con las expectativas del cliente. Luego de esta fase correctiva y realizando las capacitaciones guiadas a todo usuario que hará uso del sistema en las dependencias del cliente, el sistema fue puesto en marcha.

6.1.2 Despliegue de sistema ERP

El despliegue del sistema ERP fue desarrollado de forma paralela al plan de transición, dado que cada iteración una vez finalizada, fue desplegada en infraestructura de producción. El plan de despliegue necesita permitir la incorporación rápida de nuevas versiones del sistema a producción, teniendo en cuenta la prevención de bajas en el funcionamiento del sistema. Un factor a considerar que se desprende de la toma de requerimientos es la disponibilidad del sistema. Es necesario que la infraestructura selecta asegure un alto grado de disponibilidad. Infraestructura propietaria depende de la disponibilidad de red del cliente, y no garantiza que

89 la aplicación sea accesible desde otras localizaciones geográficas. Por lo que se optó por utilizar infraestructura en la nube.

Por ello, se pensó en una solución PaaS (Platform as a Service), que proveen hardware y herramientas de software, necesarias para levantar aplicaciones en la web a sus usuarios como un servicio52. El usuario no maneja ni controla directamente la infraestructura Cloud (la cual incluye redes, servidores, sistemas operativos o almacenamiento), pero tiene control acerca de las aplicaciones desplegadas y posiblemente opciones de configuración para el ambiente en el cual corre la aplicación53.

Ejemplos de soluciones PaaS existentes son: EngineYard, Google App Engine, Heroku, Microsoft Azure, Amazon AWS, Nitrous.io, OpenShift, entre otros54.

Para el despliegue del sistema ERP, se eligió Amazon AWS, los cuales ofrecen una gran cantidad de soluciones IaaS (Amazon EC2, Amazon RDS, Amazon S3), las cuales son accesibles desde su servicio PaaS, conocido como Amazon Elastic Beanstalk.

Figura 5.1: Ciclo de vida de una aplicación en Amazon Elastic Beanstalk.

Una vez que se sube una versión de la aplicación, la plataforma se encarga de los pasos posteriores de despliegue55. Cada aplicación vive en un ambiente, el cual es el encargado de preocuparse del despliegue, balanceo de carga, escalamiento y monitoreo de la aplicación. La infraestructura a utilizar es configurable dependiendo de las necesidades de cada aplicación, servicios como Amazon EC2 (dedica a prestar hosting de virtual server) otorgan la

52

TechTarget. Platform as a Service (PaaS) [en línea] <http://searchcloudcomputing.techtarget.com/definition/Platform-as-a-Service-PaaS> [consulta: 26 octubre 2016].

53 IBM Cloud. What is platform as a service (PaaS)? [en línea]

<http://www.thoughtsoncloud.com/2014/02/what-is-platform-as-a-service-paas> [consulta: 26 octubre 2016].

54

PaaSfinder. Find your PaaS [en línea] <https://www.paasify.it/filter> [consulta: 26 octubre 2016].

55 Amazon Web Services. AWS Elastic Beanstalk [en línea]

90 posibilidad de pagar precios fijos por una reserva de tiempo, u “on-demand” (solo por la cantidad de horas utilizadas). Este último modelo se puede combinar con la utilidad de escalamiento automatizado provista por Amazon, cubriendo las necesidades de los usuarios que acceden a la aplicación, y pagando solo los recursos necesarios por ello.

Para el levantamiento del sistema ERP, se utilizaron tres servicios de Amazon, en conjunto con Elastic Beanstalk para el despliegue:

− Amazon EC2 para el despliegue del servidor que ejecuta el sistema ERP. Se utilizó una instancia t2.micro, la cual fue configurada con el sistema operativo Amazon Linux 2016.03 v2.1.0 de 64 bits, y con la versión 2.3 de Ruby.

− Amazon RDS para contener la base de datos relacional utilizada por las instancias. Se utilizó una instancia db.t2.micro, con PostgreSQL 9.5.1 como motor de base de datos.

− Amazon S3 para el almacenamiento persistente de archivos de las instancias, utilizado para almacenar los DTE emitidos y recibidos, y los certificados del contribuyente necesarios para firmar los DTE. Se creó un bucket (nombre que da Amazon S3 a unidad de almacenamiento persistente de tamaño variable) para tal propósito. El coste del bucket es dinámico y depende de la cantidad de datos almacenados, las transferencias y el tipo de bucket. Se utilizó un bucket de tipo almacenamiento estándar, el cual promete un alto nivel de disponibilidad (99,99% en un año), baja latencia, alta velocidad y durabilidad alta (99,999999999% de los casos)56.

El despliegue de cada nueva versión fue asistido con la utilidad CLI de Elastic Beanstalk, eb. La utilidad permite integrarse al sistema de versionamiento git, apuntando el despliegue de una branch a una aplicación en Elastic Beanstalk. Para la aplicación, se apuntó que el despliegue de las versiones se realizará desde la branch master. Se utilizó git-flow como estrategia para el desarrollo de cada iteración/casos de uso, y para la fase correctiva del sistema. La utilidad eb se asegura de realizar el deployment de la aplicación, en el estado del último commit de la branch apuntada.

Una vez que la aplicación es subida a Elastic Beanstalk, esta es distribuida a la(s) instancias, las cuales realizan el proceso de actualización correspondiente, reportando su estado a Elastic Beanstalk. Los reportes permiten tener control de la información de despliegue, si este ha finalizado correctamente, o si se presentaron errores.

56 Amazon Web Services. Amazon S3 Storage Classes [en línea] <https://aws.amazon.com/s3/storage-

91

Documento similar