Azure y el desarrollo en la nube

Posted on Leave a commentPosted in ALM, Apps, Arquitectura, Cloud, Desarrollo de Aplicaciones

Fue tan sólo hace unos años, cuando empezamos a escuchar términos como la Nube y poco después términos como Azure. Hoy en día es casi imposible encontrar gente del medio de las tecnologías de la información dígase Ingenieros, Desarrolladores, Arquitectos, Project Managers, etc.,  que no esté familiarizado  o incluso especializado en esta área.

Pero ¿A qué se debe este auge y que cada vez Azure esté tomando más y más importancia?

Ya que Azure y el tema de la nube es un universo de conocimientos, en este blog, hablaremos un poco sobre el  impacto y las ventajas que ofrece Azure desde el punto de vista del desarrollo de aplicaciones.  Sin embargo primero trataremos de definir y aclarar algunos conceptos relacionados con la nube y en especial con Azure.

Uno de los primeros pensamientos que pueden venir a la mente es pensar en la nube como una cuestión de infraestructura, miles y miles de servidores interconectados entre sí, con grandes capacidades de almacenamiento con enlaces de alta velocidad que permiten compartir información a través del mundo. Pero… ¿Que no es esto lo que se conoce como Internet? Entonces ¿Cuál es la diferencia? Es a nivel conceptual; la nube funciona “sobre” internet, efectivamente utiliza todos esos recursos; la forma  de gestionarlos y aprovecharlos es lo que hace la diferencia.

azure (1)

Enfocándose en el Negocio y Desarrollo de oportunidades

Bajo este concepto, al utilizar la nube tenemos como ventajas que, primero, permite eliminar la necesidad de tener la infraestructura on-premises (1); segundo, permite pagar únicamente por el número de recursos que se utilicen; tercero, se tiene una distribución de estos recursos en diferentes partes del mundo, obteniendo una mayor disponibilidad, alta escalabilidad, mayor rapidez y reducción de costos.

Para ejemplificar lo anterior, hagamos una analogía con el servicio de energía eléctrica,  imaginemos lo que costaría proveernos a nosotros mismos el suministro de luz, esto implicaría tener un generador propio, instalarlo y darle mantenimiento ¿Suena como una locura? Pues esto es muy parecido a lo que se tenía que hacer hace algunos años antes de Azure y la Nube. De esta forma podemos apreciar las ventajas de tener un servicio que cubra una necesidad y pagar según su consumo ¿Cierto?

“El uso de la nube, nos permite enfocarnos en el negocio y las oportunidades, y en el caso del desarrollo de aplicaciones, enfocarse en la solución.”

Azure16

Ambientes, Roles, e Instancias

Ahora bien, que se puede hacer en la nube y específicamente que se puede hacer en Azure?  Azure  permite implementar nuestras aplicaciones en la Web!  De acuerdo, probablemente esto tampoco suena como algo novedoso. Sin embargo como mencionamos anteriormente, es la forma de organizar y aprovechar los recursos lo que hacen la diferencia.

Recordemos la manera tradicional de hacer el paso de un ambiente pre-productivo a un ambiente productivo, básicamente consistía en tener dos ambientes y una vez que se tenía una versión estable, copiar archivos de un sitio a otro, o en el mejor de los casos generar un instalador que hiciera el deploy de nuestra aplicación. Gracias a Azure, es posible contar con un ambiente productivo, al mismo tiempo que se tiene un ambiente pre-productivo conocido como stagin con las mismas características que producción, de esta forma es posible la integración continua de cambios en stagin y una vez que se ha validado, hacer el paso a producción haciendo un sencillo cambio o switch de direccionamiento desde la interfaz de administración.

Azure18

Cuando se trata de una aplicación Web, Azure introduce dos conceptos, Web Roles y Worker Roles, la principal diferencia radica en que los Web roles ejecutan IIS, mientras que los Worker Roles  o rol de trabajo no.  Esta es una forma muy útil de separar las cargas de trabajo dejando las funcionalidades de presentación a los Web Roles y el procesamiento de tareas complejas a los Worker Roles mejorando considerablemente el performance de nuestra aplicación.

Por otro lado, hablando de escalabilidad, las aplicaciones en Windows Azure, pueden ser configuradas para agregar más instancias según la demanda o carga de procesamiento que requiera la aplicación. Una instancia, es básicamente una máquina virtual, Azure permite a  un sitio web en ejecución agregar o quitar máquinas virtuales de forma dinámica equilibrando las solicitudes de carga entre ellas, al mismo tiempo Azure supervisa estas máquinas virtuales  y las reinicia en caso de error.

Como podemos ver, estas son sólo algunas de las características y ventajas que Azure ofrece. El poder crear entornos de prueba de una manera fácil y rápida agiliza la creación de prototipos. El ambiente de stagin, provee un entorno pre-productivo facilitando los despliegues o pasos a producción. El uso de roles es un cambio en el paradigma que permite abstraer las funcionalidades y utilizar los recursos de una manera eficiente. El uso de instancias permite asignar  recursos según la demanda.   Más adelante hablaremos de las herramientas de desarrollo en Azure.

(1) En las instalaciones del cliente o la organización.

Si quieres conocer un poco mas o tienes algún proyecto de negocio en puerta

Contactanos: contacto@extend.com.mx

Mas acerca de Computo en la Nube

Imagen de perfil de Romeo Alvarez
Romeo es ingeniero de formacion, con una Maestria en Telecomunicaciones, cuenta con amplia experiencia en Soluciones desarrolladas en plataformas Microsoft. SharePoint y Azure como sus tecnologias predilectas. Actualmente Romeo es Lider de desarrollo dentro del equipo de Operaciones en Extend

Creando un estrategia de vinculación en la organización

Posted on Leave a commentPosted in Cloud, Enterprise Social, Yammer

Vincular una organización a través del uso de una red social corporativa, es hoy algo mas allá que una estrategia, es una obligación en cualquier organización.

Yammer es una red social en la que el acceso está restringido a miembros que comparten el mismo dominio, es decir, sólo aquellos que poseen una cuenta de correo dentro de una misma organización. Como ya se ha hablado en anteriores entradas de este blog, las redes sociales corporativas cada vez adquieren más importancia dentro de las organizaciones, llegando a ser, con el enfoque y uso adecuado, una herramienta de trabajo poderosa.

Sin embargo, al igual que con todas las herramientas o soluciones tecnológicas, no basta con adquirir una plataforma y gestionarla. El éxito y los beneficios obtenidos dependen en gran medida de la planificación de los objetivos y de la definición de las metas que se desean alcanzar, es decir, de establecer la estrategia a seguir.

Al utilizar Yammer como red social corporativa dos de los objetivos que se persiguen son:

  • Crear relaciones entre los integrantes
  • Afianzar estas relaciones de tal manera que se cree un vínculo con la organización.

Esto se lleva a cabo generando un sentido de pertenencia, donde los integrantes pueden formar parte de una comunidad virtual con intereses en común.

 

maspersonas-659x289

 

Engagement: participación y reconocimiento

Se puede pensar que el objetivo de una red social como Yammer, consiste en compartir información de interés corporativo y así poder obtener seguidores o likes, y que a mayor número de contenidos o posts, mejor uso se le está dando; sin embargo es preferible que la información que se comparte tenga sentido y calidad, pero sobre todo, que las aportaciones estén alineadas con la filosofía interna de la empresa u organización.

Una vez que se hayan definido los objetivos que se persiguen al hacer uso de Yammer y se tenga claridad de los principios y la visión que forma parte de la organización, es posible iniciar una dinámica de reconocimientos.

 

El reconocimiento fideliza y motiva la participación, mejora la calidad de las publicaciones y conversaciones, generando una verdadera cultura colaborativa dentro de la organización”.

 

Dar un like debería implicar reconocer aquellos contenidos con conocimientos o experiencias que estén apegados a la visión y misión de la empresa y que aporten valor a otros miembros de la red social, de esta manera se motiva la participación y al mismo tiempo se afianzan los principios que forman parte de la ideología de la organización.

Finalmente, la motivación generará confianza que a su vez promoverá la participación continua de los integrantes reafirmando el sentido de pertenencia. Al mismo tiempo, al sentirse valorados, los integrantes aumentarán su aprecio y lealtad por la institución.

 

Si quieres conocer un poco mas o tienes algún proyecto de negocio en puerta

Contactanos: contacto@extend.com.mx

Visita y conoce mas acerca de Enterprise Social

Imagen de perfil de Romeo Alvarez
Romeo es ingeniero de formacion, con una Maestria en Telecomunicaciones, cuenta con amplia experiencia en Soluciones desarrolladas en plataformas Microsoft. SharePoint y Azure como sus tecnologias predilectas. Actualmente Romeo es Lider de desarrollo dentro del equipo de Operaciones en Extend

Aplicando una estrategia Agil en el Desarrollo

Posted on Leave a commentPosted in ALM, Arquitectura, Cloud, Consultoría, Desarrollo de Aplicaciones, Servicios

¡Piensa Ágil!

Cuando se trata de proyectos de desarrollo, uno de los primeros  aspectos que se debe de tomar en cuenta es la metodología que se empleará para su gestión. En está ocasión hablaremos de los conceptos básicos de la filosofía Scrum  y de algunos puntos a los que recomendamos prestar cierta atención al momento de adoptarla.

Por mucho tiempo  los desarrollos de software han seguido el enfoque tradicional  conocido como waterfall, el cual se lleva a cabo en una serie de etapas estrictamente secuenciales. Este enfoque define una serie de fases que van desde el análisis y diseño, hasta la fase de pruebas y verificación. Si bien este enfoque define claramente  las tareas a ejecutar en cada etapa, tiene la desventaja que se presenta mayormente  cuando no se tiene una idea clara o completa de funcionalidad que se requiere desde un inicio,  ocasionando que la integración de cambios en algún requerimiento impacte dramáticamente en la entrega del proyecto.

Las metodologías agiles como Scrum, por otro lado, son un enfoque de desarrollo iterativo e incremental, donde esencialmente los requerimientos son revisados periódicamente (iteración)  con el objetivo de crear pequeñas piezas de software funcionales (incremento).

Los primeros conceptos de Scrum datan de inicios de los 90, siendo Ken SchwaberJeff Sutherland los principales autores de la guía de Scrum. La gran aportación de esta guía, radica en definir  los artefactos, tiempos y roles que se utilizan en Scrum.

 

Artefactos, Flujos y Roles.

Resumiendo un poco los principales roles, tenemos el Product Owner, encargado de representar a todos los interesados por parte del negocio, el Development Team, responsables de la creación y entrega del producto y finalmente el Scrum Master quien será el que facilite la comunicación, remueva impedimentos, y asegure que los procesos estén apegados a Scrum.  En su conjunto estos tres roles forman lo que se conoce como Scrum Team.

ScrumStragtegy

Dentro de los Flujos o iteraciones, Scrum define una serie de reuniones de coordinación y tiempos de entrega, tales como los Sprint, Daily scrum, y Sprint reviews.  Es común que el Daily Scrum se inicie haciendo con gran entusiasmo, y con el paso del tiempo se vaya dejando en segundo plano, para finalmente en ocasiones prescindir de esta reunión. Hay que tomar en cuenta que el objetivo de esta pequeña reunión es el tener conocimiento de las tareas que cada miembro del equipo pretende realizar y conocer si existe algún impedimento para cumplirlas, y no un reporte o evaluación de actividades. Llevar a cabo las reuniones diarias de Scrum, permitirá avanzar más rápidamente y  evitará que dos miembros del equipo trabajen en una misma tarea,  con lo que se evita la duplicidad de trabajo.

Dos de los artefactos a los que se debe prestar atención, son  el Sprint backlog y el concepto de Done (hecho o finalizado), el Sprint backlog es la lista de tareas o trabajo que el Development Team debe completar en una entrega  o Sprint.  El concepto de Done,  es la definición o criterio de aceptación que determina que una tarea, interfaz, o funcionalidad esté finalizada. Esto último es muy importante ya que generalmente el concepto de finalizado es un tema muy subjetivo, por lo que es recomendable definir para cada caso las consideraciones a tomar para dar por completado un requerimiento.

sprint_backlog

‘Valorar más el software que funciona que la documentación exhaustiva’.

Finalmente, una característica importante y muchas veces mal entendida, es dejar en último término la elaboración de documentación o incluso prescindir de ella. Si bien las metodologías como Scrum dan prioridad a la interacción entre usuarios y desarrolladores con la finalidad de obtener una retroalimentación frecuente, no debe descartarse generar al menos una documentación básica que describa el funcionamiento y los componentes de la solución.

Nuestros equipos de desarrollo en Extend asi como nuestros clientes, han encontrado en Team Foundation Server, la plataforma por excelencia que sin duda te ayudara “Aplicando una estrategia Agil en el Desarrollo”, pregunta a nuestros expertos

Si quieres conocer un poco más o tienes algún proyecto de negocio en puerta, contáctanos:contacto@extend.com.mx

Te invito a conocer Nuestro enfoque en ALM!!

Imagen de perfil de Romeo Alvarez
Romeo es ingeniero de formacion, con una Maestria en Telecomunicaciones, cuenta con amplia experiencia en Soluciones desarrolladas en plataformas Microsoft. SharePoint y Azure como sus tecnologias predilectas. Actualmente Romeo es Lider de desarrollo dentro del equipo de Operaciones en Extend

Un gran año en Extend

Posted on Leave a commentPosted in Cloud, Hello 365

Bien dicen que un Líder no lo es por sí solo, si no, a través de un gran equipo, por esta razón quiero iniciar este mensaje agradeciendo a cada uno de los integrantes de nuestro EXTRAORDINARIO equipo, a toda la “Gente Extend” que nos hace posible conquistar grandes cimas y alcanzar más retos… gracias! porque con gusto puedo decir que hemos construido una GRAN empresa.

Sin duda son muchas las bendiciones por las cuales estar agradecido durante este 2015 que ha terminado, mismas que nos impulsan a iniciar este 2016 y con más de 11 años como Extend hemos aprendido que cada día nos enfrentamos a un mercado mayormente competitivo y necesitamos estar preparados, en el ámbito personal, comercial y profesional para ser cada vez mejores y capaces  de proveer e innovar cada día mejores soluciones tecnológicas que incrementen el valor de negocio de nuestros clientes.

En los últimos 5 años hemos visto grandes frutos en nuestra alianza con Microsoft México.

  • En el 2011 fuimos nombrados por Microsoft como Socio de Año en la categoría para Windows Azure y Web Development, con el reconocimiento “Partner of the Year 2011”
  • En el 2012 Microsoft nos nombró socio del año en la categoría Services PartnerWindows Azure IntegratorManagement and Virtualization, con el reconocimiento“Partner of the Year 2012”
  • En el 2013 OutstandingApplication DevelopmentALM y Data Plataform, 4 categorias donde alcanzamos el reconocimiento “Partner of the Year LATAM 2013
  • 2014 Small Business y 2015 Open Source on Azure, proveyendo soluciones de clase mundial en código abierto

 

Asi se siente ser Partner of the Year

Asi se siente ser Partner of the Year

Visita WPC 2015

 

Sin lugar a duda nuestra apuesta ha sido correcta a lo largo de 2011, 2012, 2013 y recientemente en 2015 continuamos apostando por el poder de la nube de Microsoft y hoy Azure es líder en Gartner’s Magic Quadrants

  • Cloud Infrastructure as a Service
  • Application Platform as a Service
  • Cloud Storage Services
  • Server Virtualization

Visita Gartner’s Magic Quadrants

En este 2016 integramos con mayor fuerza nuestra oferta de Servicios en “Analítica y Business Intelligence”, alineados a la estrategia global de Microsoft la cual lo posicióna como Líder en los cuadrantes “Datawarehouse and Database Management Solutions for Analytics” “Operational Database Management Systems”

El futuro es prometedor y con grandes retos pero estamos listos.

Iniciamos este 2016 con un Extend renovado, lleno de fuerza y talento con personas extraordinarias en cada uno de nuestros distintos equipos, Servicios Administrados, Analítica y BI, Computo en la nube, Desarrollo de Aplicaciones, Staffing de Personal y Consultoría e Infraestructura.

Gracias a nuestra gente extend, a nuestro socio extraordinario y a Dios que nos llena de fuerza y nos bendice de forma continua… 2016, estamos listos.

 

Imagen de perfil de Daniel Novelo
CEO en Extend Solutions.

Director General de Extend Solutions, Ingeniero en Sistemas Computacionales con más de 25 años de experiencia en el Desarrollo de Aplicaciones y Soluciones Tecnologicas para empresas. Daniel es un líder de influencia cuenta con un Diplomado en Alta dirección por el IPADE.