1

La fiebre de los datos

Entre las últimas tendencias de las empresas se encuentra comenzar a sacar mayor provecho de sus almacenes de datos. Explotar todos esos datos que tienen almacenados de los clientes o que se han ido generando a lo largo de los años con la intención de poder generar mayor conocimiento… o eso es lo que intentan.

Y es una ardua tarea la que se plantean. Los costos de diseño e implantación son altos, ya que requiere una migración previa y una estrategia de escalado, ya que si la empresa crece el análisis requerirá de mayores recursos. Como no es de extrañar, muchas de esas empresas comienzan mal desde el principio. Sufren de la fiebre de la moda y no se llegan a plantear para qué quieren un sistema de BI (Business Intelligence). Y no todos los negocios requieren (o pueden disponer) de estas tecnologías debido al esfuerzo e inversión que es necesario realizar, o que el tamaño de la empresa no es suficientemente grande como para necesitar gestionar el conocimiento con este tipo de herramientas automáticas.

El primer paso para comenzar a implantar una solución de este tipo es decidir los requisitos de la empresa, lo que se quiere predecir y obtener como respuesta del sistema. Una vez se tiene el dominio de análisis, hay que realizar una revisión de los datos que ya existen en el sistema: tanto la estructura de estos datos, como el formato que tienen los datos y encontrar patrones en estos datos.

El siguiente paso es decidir qué forma se desea que tengan los datos. Unificarlos para que tengan una misma forma y patrón, de forma que se eviten duplicidades de datos, errores y falta de información. Durante esta fase se elimina toda la “basura” que existe en el sistema y se optimiza la base de datos.

Finalmente, el tercer paso de la migración se trata de localizar fuentes de terceros para completar los datos almacenados en el sistema. Por ejemplo, se pueden emplear repositorios de OpenData para tener datos de una fuente fiable, con datos validados y con libertad de poder usarlos. De esta forma si existen direcciones sin completar o con fallos ortográficos, se puede corregir.

Una vez diseñada la solución de migración se debe realizar el despliegue sobre el nuevo sistema, donde podrá ser explotado con herramientas dotadas de inteligencia artificial para generar predicciones. El conocimiento generado debe ser formateado correctamente para mostrarse en un sencillo panel de mandos. Es importante que el diseño del panel sea sencillo ya que si se distrae la vista con demasiada información puede resultar abrumante. Esto puede provocar que la persona que lo tiene que analizar no reciba correctamente la información.

Un requisito que debiera estudiarse detenidamente es evitar la corrupción de esta nueva base de datos. Como ya he mencionado todo este proceso es realmente costoso tanto en tiempo como en dinero, para ello hay que evitar que los nuevos datos que llegan acaben con la consistencia que se obtiene mediante estos procesos.

Para evitar esto he pasado a realizar varias practicas en los proyectos que realizo. Durante el diseño del esquema de datos, los campos que varían levemente a lo largo del tiempo (país, dirección, títulos de educación, niveles de idiomas…), los añado directamente a la base de datos como fixtures. Después, cuando realizo los formularios que los usuarios deben rellenar, doy opción solo a que se puedan emplear las opciones que existen en la base de datos.

De esta forma se corrigen varios problemas: por un lado la consistencia de la base de datos no va a ser comprometida, y por el otro los formularios pasan a ser mucho más simples. Los usuarios pueden rellenar rápidamente un formulario sin necesidad de perder el tiempo. Como contra, requiere tener una fase de mantenimiento de estos datos, ya que campos como las direcciones o los estudios están cambiando constantemente. Se pueden tener campos de libre edición, pero deben ser monitorizados y purificados de manera que se reduzca el impacto que pueda provocar al resto de conjunto de datos.

Llegar a un punto de equilibrio no es fácil, pero con una buena fase de diseño antes de meterse en harina puede reducir los problemas a largo plazo. Un buen conjunto de datos dará a un negocio la ventaja competitiva que ofrecen las soluciones de BI.




Contratar XaaS y no morir en el camino

Cuando me refiero a XaaS me refiero a todo producto que podemos contratar en la nube, ya sea SaaS (Software as a Service), PaaS (Platform as a Service), IaaS (Infraestructure as a Service), DaaS (Data as a Service)… Voy a acabar esta serie de post sobre la viabilidad de uso de las tecnologías en la nube planteando los riesgos que conlleva emplear estas tecnologías. También he adjuntado soluciones que han surgido para paliar estas situaciones y hacer viable su uso en entornos empresariales.

Lo primero de todo, cuando se va a contratar un servicio en la nube hay que negociar el contrato con el proveedor de servicios y es necesario concretar todos los puntos que sean vagos de manera que no haya forma de haber varias interpretaciones. El proveedor puede poner trabas en según que puntos, alegando por ejemplo que su servicio está en evolución constante. La forma de mitigar este riesgo es añadir cláusulas que rescinda el contrato si el proveedor en algún momento baja el nivel de protección, o hay una peor calidad en el servicio que el contratado.

Hay que estar seguros de estar protegidos mediante contrato ante riesgos de disponibilidad del servicio, como por ejemplo ante la caída de servidores, fallos en las comunicaciones, desastres naturales, denegación del servicio debido a una disputa con el proveedor o que el servicio se finalice repentinamente debido a un crack financiero y que provoque la inaccesibilidad de los datos. Todo esto debe ser previamente acordado con el proveedor.

Las medidas de protección de la información y los procedimientos de mantenimiento deben estar acordados. Es necesario que el proveedor haga copias de seguridad de forma regular y que estas copias sean transmitidas a la empresa cliente.

En caso de estar contratando un servicio crítico, es recomendable pedir al proveedor que haga una réplica del servicio en la empresa contratante. Esto supone aprovisionarse del software y el hardware que la empresa que nos ofrece el servicio tiene, lo cual es un gasto añadido al propio servicio. Añadir este término al contrato es muy raro, y requiere que el servicio tenga unas consecuencias catastróficas a la hora de un fallo. Del mismo modo, el proveedor puede tener varios CPD (Centro de procesamiento de datos) con la información almacenada para garantizar que si una de las redes está caída el cliente va a tener la información disponible. La integridad entre los CPD se mantiene mediante metadatos generados a partir de los datos y las fechas de actualización de datos.

Para poder evaluar la calidad del servicio es necesario acordar con nuestro proveedor unos servicios de niveles. Estos ayudan a identificar cuándo el servicio contratado no se está proveyendo. Algunos de los marcados más comunes que se emplean para estos casos son el tiempo de respuesta, los visitantes simultáneos, problemas en las respuestas… Hay que negociar también un margen de fallo y comunicar las horas de pico de tráficos para poder dar solución a una caída si hay demasiado tráfico (p. ej.: escalando los servicios a horas concretas). Se puede pedir al proveedor que detecte todos estos fallos mediante una monitorización del tráfico a tiempo real para evitar caídas prolongadas del servicio.

Hay que tener cuidado con los modelos de facturación. Existen servicios que pueden escalarse dependiendo del tráfico, lo cual provoca que en las horas de mucho tráfico se facture más. Esto debe ser monitorizado constantemente, ya que si se genera una gran cantidad de tráfico de forma fraudulenta (p. ej.: un ataque DDoS (Denegación de servicio distribuido), sin llegar a tirar el servidor), esto puede suponer una gran facturación a la empresa.

La computación en la nube elimina la capa de red privada que tradicionalmente empleaban las empresas. Esto crea preocupaciones sobre todo cuando se trabaja fuera de las oficinas y no accede a la nube a través de un VPN. Una de las soluciones que han surgido son las nubes privadas gestionadas, las cuales son servicios personalizados a cada empresa donde además de las ventajas que ofrece la nube, se integra una seguridad mejorada: almacenamiento aislado, firewalls de aplicación web, sistemas de detección de intrusos…

Otra de las dudas es si se mantiene la integridad de los datos al realizar transacciones simultáneas sobre los mismos datos. Para ello existen técnicas como “Provable data possession” que se aseguren que las copias guardadas en la nube son las mismas que las locales: abstrayendo un poco la técnica consiste en generar unos metadatos del fichero que va a ser enviado, enviar los datos y los metadatos y cuando la nube va a almacenarlos comprobar que los metadatos que ella genera del fichero son los mismos que ha enviado el usuario.

Para asegurar la seguridad de los datos se han propuesto soluciones donde se hacen una combinación de técnicas:

  1. Cifrado de los datos en el almacén de los datos: todos los datos deben estar cifrados, y debe poder comprobarse la integridad de los datos.
  2. Roles de usuario y permisos a cada rol: de manera que los usuarios accedan únicamente a los datos a los que están autorizados.
  3. Cifrado proxy: es una técnica para evitar tener que volver a cifrar y distribuir nuevas claves a todos los usuarios si un permiso a un usuario es revocado. Se emplea un proxy que se encarga de descifrar los datos almacenados en el almacén de datos, y cifrarlos para enviárselos al usuario que está pidiendo esos datos. De manera que si un usuario se le revoca el acceso, no hay que cifrar todos los datos, tan solo cambiar las claves del proxy.

Como conclusión pienso que los riesgos que entrañan emplear las tecnologías en la nube están siendo mitigadas gracias a las nuevas técnicas que se emplean. Creo que actualmente existen proveedores que ofrecen muy buenos servicios de almacenamiento en la nube  – por ejemplo Rackspace – y su empleo hoy en día es viable. La mejora de las condiciones de seguridad pienso que se encuentra en mentalizar a los usuarios de los riesgos que existen y educarlos para evitar un compromiso en la seguridad. Hoy en día está claro que los malos cada vez atacan menos a la infraestructura y más a los empleados de las compañías, los cuales son más fáciles de engañar que a  los sistemas informáticos.

Actualmente nos encontramos en una situación en la que las empresas están invirtiendo en trasladar lo que antes era software a la nube, y a la gente parece que le duele menos pagar servicios. Estamos pasando de contratar línea de televisión a subscripciones a un catálogo de series y películas, de comprar álbumes musicales a contratar servicios de streaming, de comprar software a contratar suscripciones cuando vamos a darle uso. Donde anteriormente la gente no pagaba por una aplicación y la pirateaba, ahora por narices para usarla tiene que contratar el servicio: esto puede ser una gran oportunidad para acabar con la piratería y las implicaciones en la seguridad que conllevaba

REFERENCIAS

[1] James R. Kalyvas, Michael R. Overly, and Matthew A. Karlyn, “Cloud Computing: A practical framework for managing cloud computing”, Intellectual Property & Technology Law Journal, Apr 2013, Vol.25(4), pp.19-27,1. (Extraido de “Deusto Océano Discovery Library”)

[2] Sanjay K. Madria, “Security and Risk Assesment in the Cloud”, Computer, IEEE, 09.16

[3] Li Liao ; Bixin Li ; Chao Li, ”A Model to Evaluate the Credibility of Service in Cloud Computing Environment”, IEEE, 8-12 Aug. 2016

 

 




Asesinos de ideas

Me gustaría dedicar el post a centrarme a cómo va degenerando a lo largo de los años nuestra capacidad de innovar y lo poco que se hace para evitar esta situación. También me gustaría replantearnos ciertos aspectos en los que podríamos mejorar no solo como personas, sino como sociedad.

Son pocos los visionarios que a partir de los 40 están frescos con nuevas ideas y nos traen nuevos conceptos, ya sea en la rama del arte o en la tecnología. ¿Por qué nos cuesta tanto pensar de forma diferente?

Pienso que este problema comienza a partir de la educación primaria, donde somos catalogados en cada asignatura por una nota, la cual indirectamente nos hace competir entre compañeros. ¿No es más lógico simplemente marcar si tenemos ese conocimiento o no? El modelo donde se marca si tenemos mucho, poco, o ningún conocimiento acerca de una asignatura creo que es más correcto, además el notificar en qué punto es el problema creo que es más constructivo en poner, por ejemplo, un 3. Además, hemos atravesado una educación donde la única solución correcta, y el único modo adecuado de resolución de un problema era el método del profesor. Realizar otro proceso podía ser penalizado negativamente por el maestro.

Hemos sido forzados a dejar de imaginar y pensar de forma mecánica. Cuando tenemos que resolver un problema nuestros mecanismos internos empiezan a aplicar todo el conocimiento y métodos que nos han metido para aplicar a un problema, y aún así tal vez no encontramos la mejor solución. Estos mismos problemas un niño puede resolver con facilidad tan solo imaginando una manera sencilla de realizarlo.

Cuando llegamos a nuestra vida profesional llegamos con una maleta de conocimientos enorme, a partir de aquí tiramos de todos ellos para proponer una solución. Aquí se origina otro problema, la sobreingeniería: se proponen soluciones complejas a cuestiones donde la simpleza puede ser lo mejor. En desarrollo se emplean herramientas con gran potencial para resolver problemas que con otras utilidades más dirigidas podrían ser más eficientes, es necesario un ejercicio más extenso de investigación a la hora de adoptar una solución ¿se podría realizar de forma más simple?.

La falta de imaginación también repercute en cómo nos expresamos. A los profesionales que se sitúan más en la parte operativa se les achaca mucho el hablar con tecnicismos o “en otro idioma”. ¿Hemos perdido la imaginación? Deberíamos recurrir a metáforas sencillas para poder expresarnos y así poder alcanzar una posición mas visible dentro de la empresa. Personalmente creo que me expreso mejor realizando pequeños dibujos para expresarme, sobre todo si es un área compleja.

Nuestros conocimientos técnicos también nos pueden complicar la vida si los empleamos en demasiada cantidad en un momento determinado. Al comienzo de un proyecto, nos comenzamos a plantear cómo lo vamos a hacer en vez de pararnos a pensar qué es lo que necesitamos hacer. Más adelante en mitad del proyecto nos encontramos que para implantar algún módulo hay que hacer malabares para emplear la tecnología que hemos seleccionado.

Creo que deberíamos reeducarnos nosotros mismos para buscar la simpleza y emplear más la imaginación en nuestra vida diaria. Las compañías deberían reducir el estrés, el cual dificulta la generación de nuevas ideas, además de que un entorno más tranquilo mejora la productividad.




Mejores prácticas en la nube

Mejores prácticas

En entregas anteriores hemos visto las características de las tecnologías en la nube y “on premise”, qué políticas deben seguir y en qué fijarnos a la hora de contratar un servicio en áreas de seguridad y privacidad de los datos. En esta publicación voy a resumir algunas de las mejores prácticas que debemos llevar a cabo tanto a la hora de contratar, como a lo largo del servicio.

Cuando una empresa va a contratar un servicio, en primer lugar el proveedor debe tener los términos del servicio de manera clara y bien definidos. Además, estos términos tuenen que poder ser personalizados por el cliente, ya que no todas las empresas son iguales. Cada empresa tiene sus propias políticas y el contrato debe tener definidos los términos sin dar lugar a “vacíos legales”. Si estamos en un ámbito internacional, hay que comprobar si el proveedor sirve a este nivel, éste está obligado en este caso a dar un rato equitativo a empresas de diferentes países, manteniendo la misma calidad del servicio.

Debemos comparar los cifrados de información entre proveedores: para comprobar qué tan seguro van a estar nuestros datos, debemos preguntar a la empresa qué tipo de cifrados se emplean. AES (Advanced Encryption Standard) es uno de los mejores cifrados de datos, contratar servicios de un proveedor que use este tipo de cifrados es muy recomendable.

Durante el tiempo hay que comprobar si se cumplen las políticas de seguridad de la industria. Estas cambian continuamente, por lo que hay que realizar exámenes cada cierto tiempo. No es necesario hacerlo en todos los apartados, se deben centrar en gestión del riesgo, auditorias y análisis de vulnerabilidades.

Comprobar si el servicio de mantenimiento y el soporte técnico es 24×7, y que los centros de operaciones están a cargo de ingenieros certificados. Tanto como si la propia empresa se dedica a ofrecer servicios en la nube, como si vamos a contratarlo hay que comprobar que los profesionales de la empresa están cualificados y al día. Para ello, os presento las certificaciones que más han influido en el entorno empresarial en este año 2016, extraído de un informe de Forbes:

  • CompTIA Cloud+: conocimientos en profundidad del cloud computing, se cumplen las mejores prácticas en seguridad, virtualización y computación en la nube. Demuestra que se es capáz de implementar, mantener y ofrecer infraestructura en la nube.
  • MCSE Private Cloud: certificación de Microsoft para aplicaciones web.
  • VMWare VCP6: automatización y gestión en la nube y nube híbrida.
  • AWS Certified Solutions: certificación de Amazon para profesionales con experiencia en el entorno AWS (Amazon Web Services).
  • EMCCA (EMC Cloud Architect): certificación de arquitecto de la nube. Existen otras certificaciones relacionadas que tratan las categorías de arquitecto de centro de datos (EMCDCA) y administrador de almacenamiento (EMCSA)

Tanto en un sistema distribuido como en local, hay que aplicar las últimas actualizaciones lo antes posible: los crackers tienen como objetivo principal sistemas que no han sido correctamente actualizados. Una actualización más novedosa reduce el riesgo a que se haya encontrado una vulnerabilidad.

Hay que mantener una copia de seguridad de los datos en los servidores de la empresa: está muy bien que la responsabilidad de la pérdida de información sea del proveedor. Pero si esta información es irrecuperable el daño a la empresa puede ser importante si ésta no se dedica a mantener su propia copia de seguridad.

Si hemos contratado un servicio en la nube hay que estar al tanto de las políticas del servicio: los servicios en la nube cambian rápidamente de políticas a lo largo del tiempo. ¿Quién no ha recibido un e-mail de Google, Dropbox u otros servicios anunciándonos que van a aplicarse cambios en las políticas? Por ello hay que estar al tanto si el contrato que tiene nuestra empresa con el servicio va a sufrir cambios, y estudiar si supone algún problema.

No hay que conformarse con las mejores prácticas genéricas que aquí expongo. Cada industria tiene sus propio conjunto de mejores prácticas que están más enfocadas a su dominio, no es lo mismo una empresa que se dedica a ofrecer una plataforma de gestión de proyectos que un servicio de asistencia médica.

Éxitos.

He hablado mucho de los servicios, ¿pero qué ocurre en la realidad? Actualmente los servicios que ofrecen soluciones en la nube están de auge, son malas noticias para el software “on-premise”. Muchos servicios para organizar proyectos, crear presentaciones, documentos que anteriormente eran realizados, por ejemplo, con la suite de Microsoft (Office, Project…) han sido progresivamente sustituidos por soluciones como Google Docs, Redbooth, Todoist… En las empresas al trabajarse más en remoto, y debido al gran número de dispositivos que se emplean, le es mucho más rentable emplear estas herramientas y evitar la instalación y mantenimiento del software en múltiples dispositivos.

Actualmente Microsoft está migrando sus herramientas del escritorio a la nube, aunque un poco tarde ya que una tajada del mercado que antes poseía ha migrado a las soluciones que ofrece Google.

Personalmente, creo que donde antes teníamos software destinado para una tarea instalado en el ordenador ahora usamos un híbrido entre aplicación local y servicio distribuido. Por ejemplo, para planificar mis tareas he pasado de emplear los software de notas que ofrecía tanto Microsoft con OneNote como Apple con su aplicación de notas a un servicio específico en la nube como Todoist. En vez de ser una aplicación que sincroniza los datos en diferentes dispositivos, es un servicio que me permite acceder a mis datos tanto a través del navegador como a la aplicación específica en el escritorio. Esto lo hace especialmente cómodo, por ejemplo si no tengo acceso en un momento específico a mis propios dispositivos y necesito comprobar alguna información.

REFERENCIAS

[1] “Cloud Computing Best Practices”, visitado en 6 de noviembre de 2016, https://www.rit.edu/security/content/cloud-computing-best-practices

[2] “Best Practices for Enterprise Cloud Computing”, visitado en 6 de noviembre de 2016, http://www.itbusinessedge.com/slideshows/best-practices-for-enterprise-cloud-computing-07.html

[3] “Best cloud computing certifications for 2016”, visitado en 6 de noviembre de 2016, http://www.tomsitpro.com/articles/cloud-it-certifications,2-537.html

[4] “An example of success in the cloud”, visitado en 6 de noviembre de 2016, http://talkincloud.com/cloud-computing/example-success-cloud

 

 




¿Dónde y cómo aseguro mi solución?

Cuando vamos a elegir una solución donde alojar nuestras aplicaciones, bien sean aplicaciones empresariales como CRM, ERP… u otro tiempo de herramientas como para desarrollo de aplicaciones (p. ej.: servidor Jenkins), la seguridad de la aplicación como la privacidad de los datos son dos pilares que marcan mucho la decisión. Un diseño cuidadoso de todas las capas de seguridad es clave para aumentar nuestra confianza en la decisión que vayamos a tomar.

Este post va a enfocarse en la seguridad y privacidad dentro de las áreas de soluciones en la nube e híbridas, ya que es donde nuestros datos y seguridad queda relegada en mayor o menor parte a una empresa tercera. Aunque las normativas y medidas que hay que tomar son las mismas, cuando contratamos a un proveedor el proceso que hay que seguir de implantación requiere de un paso previo de negociación, comprobación de sistemas, normativas, etc.

Captura de pantalla 2016-10-30 a las 11.12.45

A todos nos preocupa tener nuestros datos en la nube, porque significa estar expuestos a ataques las 24 horas del día. Sin embargo, la nube puede proveer de soluciones que brinden más privacidad, más seguridad y más fiabilidad que las soluciones que las empresas pueden tomar por sí mismas. Debemos tener en cuenta que estas empresas no pueden permitirse una brecha de seguridad, ya que significaría la pérdida masiva de los clientes. Solo tenemos que observar lo rápido que ha perdido peso plataformas como Yahoo o Ebay durante los últimos años, han pasado de tener la hegemonía a pasar un plano secundario. Por ello, las empresas que ofrecen sus servicios en la nube hacen mayores inversiones en aspectos de seguridad y privacidad que una empresa, seguramente, ni siquiera plantearía o no podría permitírselo. Existen dos aspectos principales en los que una empresa se debe enfocar: Gobernanza y temas legales, y la seguridad técnica.

En el primer punto, hay que contactar con la empresa a la cual vamos a contratar los servicios y trabajar con el área de seguridad antes de firmar un contrato. Para eliminar preocupaciones en caso de que haya algún problema, el contrato debe cubrir las áreas de responsabilidades, jurisdicción, privacidad, leyes sobre seguridad, pedidos de información, cumplimiento de regulaciones y auditorias, acuerdo a nivel de servicio y retención de datos. Este paso es aún más crítico si la empresa a la que se va a contratar es extranjera, ya que las normativas que se van a aplicar van a ser la del país de residencia de la empresa. Por lo tanto, primero hay que firmar un acuerdo que la empresa contratante pueda estar satisfecha.

La privacidad de los datos es un mundo enorme, voy a nombrar los pasos básicos que hay que tomar. En unas publicaciones de Bodlelaw [3] existe información desde niveles básicos a normativa avanzada sobre privacidad de los datos. Lo primero que haremos en la tarea de asegurar la situación de nuestros datos es comprobar si nuestro proveedor recolecta o analiza información del cliente, y si esta es de forma anónima. Si es una empresa situada fuera de la Unión Europea hay que comprobar si está en el pacto de Privacy Shield, y “otear” si lo cumple ya que comprobarlo puede resultar imposible. Servicios como los que ofrece Google, Microsoft o Salesforce hacen recolección de datos de forma anónima para la mejora de sus sistemas, o para el desarrollo de nuevos sistemas que puedan ofrecer a una empresa en el futuro. Por ejemplo, Salesforce acaba de estrenar su sistema Einstein que emplea información de las empresas de forma anónima para que su inteligencia artificial pueda aprender, ofreciendo de esta forma un mejor servicio. Una vez asegurado lo básico, comprobaremos los siguientes puntos:

  • Licencia Software: la licencia de nuestro software tiene que estar en sincronización con la de nuestro proveedor. ¿Qué compañías y terceros tendrán acceso al software, y en qué territorios?
  • Propiedad intelectual: la empresa debe mantener en todo momento la propiedad de los datos y de sus sistemas.
  • Ley aplicada, jurisdicción y lenguaje: establecer las normativas aplicadas y en caso de haber un conflicto entre interpretaciones, cuál es el lenguaje que prevalece en caso de discrepancias.
  • Devolución de los datos: cómo van a ser devueltos los datos, en qué formato, y si se ofrece un servicio de migración de datos a otro proveedor.
  • Protección de datos: llegar a un acuerdo de qué puede hacer el proveedor con nuestros datos.
  • Acuerdo de nivel de servicio: dónde va a estar situado el centro de datos, quién lo va a manipular, procedimientos de seguridad y copias de seguridad, mantenimiento…

Como se puede observar, tanto en la seguridad como en la privacidad existen una inmensidad de puntos a comprobar. Y tan solo hemos rascado la superficie de lo que realmente es, en la siguiente figura se puede observar un modelo de seguridad que toda organización, que requiera un fuerte enfoque en seguridad, debería comprobar:

Captura de pantalla 2016-10-30 a las 11.49.53

¿Aún quieres alojar la solución en tu servidor? Es una cantidad de información abrumadora, pero por tomar un punto de referencia existen las siguientes reconocidas normativas sobre seguridad y privacidad: ISO/IEC 27001/2, PCI, HIPAA, Privacy Shield, ISO 27018, entre muchas otras. Con todos los puntos a comprobar, ahora queda mucho más claro por qué las empresas contratan a auditores de seguridad especializados para comprobar sus sistemas.

Como conclusión personal, creo que en la mayor parte de las ocasiones es una tarea mucho más sencilla y barata el negociar y contratar un servicio en la nube para establecer el sistema de la empresa. Tan solo los casos de infraestructuras muy estratégicas y críticas merecen un desembolso tan enorme como para desplegar en la propia empresa un servicio bajo su responsabilidad y mantenimiento, con la excepción de soluciones tan sencillas como por ejemplo un repositorio Git.

REFERENCIAS

[1] “CIGRAS2014- Seguridad y Privacidad en la Nube”, 30 de octubre de 2016, http://www.isaca.org/chapters8/Montevideo/cigras/Documents/CIGRAS2014-%20Seguridad%20y%20Privacidad%20en%20la%20Nube.pdf

[2 “SaaS Agreements – Data Protection – Customer Privacy Policy”, 30 de octubre de 2016, http://www.bodlelaw.com/saas/saas-agreements-data-protection-customer-privacy-policy]

[3] “Cloud Security KeepingData Safe in the ‘Boundaryless’ World of Cloud Computing“, 30 de octubre de 2016, https://www.knowledgeleader.com/KnowledgeLeader/Resources.nsf/Description/CloudSecurityKeepingDataSafeProtiviti/$FILE/Cloud-Security-Keeping-Data-Safe-Protiviti.pdf




¿Qué solución elijo?

En el anterior publicación introduje ligeramente cuales eran las características que más destacan entre los servicios en la nube y el software “on-premise”. En este artículo voy a explicar las razones de por qué deberíamos elegir una tecnología en vez de la otra.

Como he mostrado anteriormente, los servicios en la nube son esencialmente un acceso a un recurso informático compartido a demanda [1]. Permiten centralizar toda la gestión del software en un entorno virtual, al cual se puede acceder desde diferentes dispositivos en cualquier parte de forma sencilla. Provee de escalabilidad al hardware y el software, la proveedora es la que se encarga de asegurarnos que su servicio es de calidad, seguro y privado. Es la solución perfecta para los negocios que requieran agilidad para adaptarse a los cambios del mercados. Los servicios más demandados hoy en día son Azure, App Engine, Amazon EC2, Salesforce y BlueMix [2].

Captura de pantalla 2016-10-23 a las 11.17.57

Las soluciones en la nube pueden parecer una maravilla y dar solución a todos nuestros problemas. Pero si se necesita personalizar mucho la aplicación, o incluir comunicación con otras herramientas, puede que las soluciones “on-premise” sea lo que la empresa necesita. Además, si la información que se maneja de los clientes es muy crítica y no se puede correr el riesgo de que parte de esa información sea filtrada, el tener la aplicación en el entorno interno de la empresa puede dar una mayor sensación de seguridad. Finalmente, el tener la plataforma externalizada puede dejar a la empresa paralizada si hay una caída de los servicios del proveedor.

Para poder tener las ventajas de ambas tecnologías, existe las aplicaciones híbridas. Como he introducido anteriormente, esta solución se trata de mantener en un servidor externo las aplicaciones, pero que sean mantenidas y gestionadas por la propia empresa. Con esto se elimina el gasto por el hardware y por mantenimiento de la plataforma, se sigue teniendo una sencilla escalabilidad. De esta manera se puede tener un control mayor control sobre la seguridad y control de los datos, ya que es la empresa la que se encarga del desarrollo y mantemiento de la aplicación. En el caso de querer migrar a otro proveedor la migración de la aplicación es sencilla, siendo lo más costoso y sensible la transmisión de los datos de una plataforma a otra.cloud-Security-Risks-1024x768Dependiendo para qué necesidad una solución puede venir mejor o peor a una empresa, no existe una navaja suiza que nos valga para absolutamente todos los casos. Así como si requerimos un servicio puntual, el cual puede ser migrado sin problema la solución podría ser una aplicación en la nube pura. Si necesitamos modificar la solución o amoldarla a nuestras necesidades la solución híbrida es perfecta. Pero si tenemos un sistema crítico, cuyo servicio no puede estar caído y con un alto enfoque en la seguridad, las aplicaciones “on-premise” siguen estando a la cabeza.

En el próximo post nos introduciremos en la privacidad y seguridad de nuestras aplicaciones y nuestros datos. Este factor, en muchos casos, es el decisivo a la hora de decidirnos por una u otra solución.

REFERENCIAS

[1] “Cloud computing: Vision, architecture and characteristics”, Faraz Fatemi Moghaddam, Mahsa Baradaran Rohani,Mohammad Ahmadi, Touraj Khodadadi, Kasra Madadipouya. 2015 IEEE 6th Control and System Graduate Research Colloquium, Aug. 10 – 11, UiTM, Shah Alam, Malaysia.

[2] “Cloud Computing: Characteristics and Deployment Approaches”, Zaigham Mahmood, 2011 11th IEEE International Conference on Computer and Information Technology.

[3] “15 Key Considerations: SassS vs On-Premises Software”, Alex Hobbs, accedido el 23 de Octubre de 2016, https://www.linkedin.com/pulse/20140521094242-259880202-5-key-considerations-saas-vs-on-premise-software.

[4] “Benefits and Drawbacks of Cloud-Based versus Traditional ERP Systems”, Alex Fesak, accedido el 23 de Octubre de 2016, http://www.academia.edu/2777755/Benefits_and_Drawbacks_of_Cloud-Based_versus_Traditional_ERP_Systems.




Presentando a los contendientes… Cloud computing vs On-Premise solutions

Hoy en día no solo ha cambiado el modo con el que usamos el software, la forma en la cual accedemos a él es totalmente diferente. En las siguientes publicaciones voy a analizar desde diferentes perspectivas las soluciones en la nube frente al software “On-Premise” desde un punto de vista empresarial. En este primer post voy a explicar en qué consisten estas tecnologías, sus diferencias y las ventajas que proveen cada una de ellas.

En una esquina tenemos las soluciones en la nube o “cloud computing”. Este es el software que ofrece servicios y/o soluciones a través de Internet (u otra red). Las aplicaciones se encuentran instaladas en los servidores de un proveedor y se accede a través de la red por medio de unas credenciales. El empleo de esta tecnología no requiere de instalaciones previas, ni de infraestructura nueva, tan solo un ordenador personal con potencia suficiente para poder ejecutar una aplicación web. A cambio del servicio, se paga una cuota de subscripción para poder ser usado las cuales varían de pagos mensuales a anuales. Ejemplos varios de esta tecnología puede ser el CRM Salesforce, la herramienta de trabajo en grupo Teamwork o GitHub.

Como ventajas se puede resaltar que la propia compañía se desprende de la responsabilidad del buen funcionamiento del software, ya que el mantenimiento corre a cuenta de un proveedor. De la misma manera, la propia empresa se libra de realizar actualizaciones y resolver los posibles conflictos que surjan. El servicio es fácilmente reemplazable, ya que en cuanto se acabe una suscripción la compañía puede probar otra solución que le convenza mal. Aunque esto último también es un arma de doble filo, ya que habría que cerciorarse que se puede realizar una migración de datos en un formato estándar a otra plataforma. Además nuestros usuarios deben aprender a utilizar la nueva herramienta, algo que puede causar pérdida de tiempo y engorro.

Como mayores desventajas están la falta de personalización de las herramientas, la solución es la misma para todos los clientes no se pueden realizar apenas modificaciones. Otro aspecto a destacar es la situación de los servidores que contratamos, si están en el extranjero puede causar problema las diferentes regulaciones del país. Finalmente los datos de nuestros clientes se encuentran en servidores externos, por lo que habría que revisar fuertemente la privacidad.

El la esquina contraria tenemos al software “on-premise” el cual es instalado y ejecutado de forma nativa en el ordenador del usuario. Esta solución debe ser instalada  y configurada por el servicio informático para poder ser empleado y requiere de múltiples licencias para poder ser usado. Como ventajas se encuentra que es una solución más estable, y requiere de menos formación. No se depende de la red, por lo que si surge alguna caída inesperada la actividad del departamento no se verá obstaculizada. A largo plazo puede ser más rentable, aunque tenga una mayor inversión al principio.

Las soluciones en la nube han demostrado ofrecer un ahorro en el corto plazo, ya que no requiere de servidores, ni de mantenimiento, ni de preocuparse de réplicas… pero a largo plazo las suscripciones pueden ser un gasto mayor que realizar una fuerte inversión inicial. Por el contrario, las soluciones “on-premise” requieren de una mayor inversión y de una flexibilidad menor, pero al largo plazo puede resultar un ahorro.

Como solución a este dilema existen soluciones híbridas: software on-premise instalado en servidores externos. Esto permite flexibilizar el uso del software ya que se puede construir a medida, además de tener los datos más controlados sin necesidad de tener los servidores en la propia compañía. Ejemplos de esta solución son GitLab, OpenERP, Nginx, etc.

REFERENCIAS

[1] “Computación en la nube”, accedido 12 de Octubre de 2016, https://es.wikipedia.org/wiki/Computaci%C3%B3n_en_la_nube

[2] “On-premises software”, accedido 12 de Octubre de 2016, https://en.wikipedia.org/wiki/On-premises_software

[3] “Aplicaciones Cloud versus aplicaciones on premise”, accedido 12 de Octubre de 2016, http://www.aula1.com/aplicaciones-cloud-versus-aplicaciones-on-premise-casa/

[4] “Implementación SasS versus Implementación on premise”, accedido 12 de Octubre de 2016, http://www.evaluandoerp.com/implementacion-saas-versus-implementacion-on-premise/

[5] “Cloud vs Onpremise: ¿Hay algo más entre las nubes y el sótano?, accedido 12 de Octubre de 2016, http://www.magicsoftware.com.ar/ria/white_paper_platforma_cloud.pdf

[6] “6 Benefits of keeping data private”, accedido 12 de Octubre de 2016, http://www.informationweek.com/cloud/cloud-vs-on-premises-6-benefits-of-keeping-data-private/d/d-id/1323089?image_number=2




IT vs DIRECCIÓN

Actualmente se está viviendo una transición de las TI (Tecnologías de la Información) dentro de las empresas. Hasta ahora han sido un departamento que, prácticamente, ni pinchaba ni cortaba en la dirección de la empresa. La necesidad de implementar nuevas herramientas en la empresa a nivel de decisiones, al afectar de forma más directa a los mandos, está creando la necesidad de que los CIO (Chief Information Officer) estén presentes en reuniones de dirección.

A pesar de este gran avance, aún queda mucho peso que quitar de encima. En muchas ocasiones el trabajo que se realiza desde los departamentos de TI no se aprecia de forma física. Esto provoca que cada vez que se quiera implementar un cambio se tope con un grueso muro. Las ventajas de los procesos nuevos que se quieren implementar se perciben como que no otorgan valor de “forma directa” al producto y se toma en cuenta como una pérdida de tiempo, cuando puede añadir valor a la calidad.

Un gran ejemplo de esta problemática son los tests unitarios, funcionales y de integridad. Desde una perspectiva externa se pueden ver como algo sin utilidad, ya que no ofrecen ningún tipo de funcionalidad al producto del cliente, además de estar gastando gran tiempo en el desarrollo de tests. Contrariamente, estos tests deberían ser una práctica obligatoria en cualquier equipo de desarrollo, ya que facilita la detección de errores y la respuesta a ellos. Las principales causas del rechazo son la gran curva de aprendizaje que requiere, una falta de marketing interno (al final estos cambios hay que vendérselos a la empresa) y la falta de tiempo de desarrollo.

Las percepciones de TI no se basan en mediciones que otorguen veracidad de los hechos. Es importante concienciar sobre los resultados y la información que brindan los nuevos procesos logrando iniciar un cambio cultural. Hay que evitar realizar cambios radicales, ya que estos son mucho más susceptibles de provocar el rechazo de la compañía. Otra estrategia para paliar esta situación es relacionar los objetivos del proceso con los objetivos de los roles y puestos del área TI.

Personalmente, los métodos de introducción a cambios que uso en mi empresa suelen ser ajenos al conocimiento de el resto de departamentos a la empresa. Los cortos plazos y la gran carga de trabajo hacen que sea imposible dedicar tiempo para I+D+i en el departamento TI o para realizar un buen proceso de QA (Quality Assurance). Por lo que la estrategia a seguir es implementar estos cambios en los proyectos en un modo ninja y tras desplegar el proyecto “vender” las ventajas que se han implementado.

En mi opinión la empresa debería estar abierta a nuevos procesos que se piden desde TI, de la misma forma debería invertir en educar a sus empleados con formación a medida para reducir la curva de aprendizaje lo máximo posible, a la larga los costes son más bajos que invertir tiempo de un proyecto a experimentos. Aunque esto ya es otra historia…