VSTS: Desplegar una app ASP.NET core en Azure

Disponer de un sistema de integración y despliega automatizado es uno de los puntos que considero básico en todo desarrollo de software, el cuál entre otras cosas permite mejorar la calidad de los desarrollos que realizamos y ver el progreso real del mismo.

Durante este post veremos cómo montar una build de integración continua sencilla con ASP.NET core y hacer que ésta se despliegue de manera automatiza a Azure. En este caso únicamente haremos uso del sistema de build de VSTS, aunque en futuros post podremos ver el sistema de Release y ver cuándo aplica cada uno de ellos. Así mismo en algunos puntos simplificaremos un poquito para intentar no complicar en exceso el post.

Leer más

[OT] Developer Bilbao

Por si alguien le interesa, en la oficina de Bilbao de Plain Concepts estamos buscando desarrolladores para incorporar el equipo, tanto desarrollodores más especializados en front-end a los cuáles no les de miedo tocar algo de backend, así como desarrolladores .NET-C# que igualmente disfruten de su trabajo y quieran trabajar un equipo ágil.

En https://plainconcepts.workable.com/jobs/258551 podéis ver la oferta completa para el puesto de Senior Developer en Bilbao…aquí un extracto 🙂

REQUIREMENTS

  • Being a team player.
  • Being able to work constructively criticize your teammates and being open to receive criticism about your work.
  • Having constant desire to learn and the ability to learn quickly.
  • Passion for all activities related to software development.
  • Having communication skills.

Server technologies and languages:

  • C#
  • ASP.NET MVC
  • ASP.NET WebAPI
  • Entity Framework
  • Database knowledge.
  • Any other server side technology will be valuable.

Front-end technologies:

  • Layout HTML5 and CSS3
  • Cross Browser Design
  • Responsive Web Design
  • Preprocessors CSS (LESS or SASS)
  • Javascript patterns
  • Angular, Durandal, Backbone or similar.

[Evento Bilbao] Creando un entorno de DevOps con VSO y Azure para tecnologías no Microsoft.

Después de un breve introducción a algunos de los conceptos más representativos relativos al concepto DevOps, haremos un repaso a alguna de las tecnologías y herramientas que pueden tener cabida cuando se habla de conceptos como entrega continua, código como infraestructura o automatización.

De la teoría pasaremos a la práctica para mostrar un escenario sencillo con VSO y Azure como herramientas de DevOps desde el punto de vista de un programador fuera del stack habitual de Microsoft (Linux, Node, PHP…) con el objetivo de ver las diferentes opciones multiplataforma que ofrecen estas herramientas.

Ponente:

Ibon Landa ( @ibonilm ), Plain Concepts.

Fecha y hora:

6 de octubre, martes, de 19:00 a 21:00h.

Lugar:

Auzo Factory

Matiko Kalea, 6, 48007 Bilbao, Bizkaia

https://www.google.es/maps/place/Auzo+Factory+Irazabal+Matiko/@43.2648138,-2.9227592,15z/data=!4m2!3m1!1s0xd4e4fc476ca645d:0x8527a25d79badd9

Registro Meetup

http://www.meetup.com/es/elcomite/events/225393454/

 

elComiteartalde

AuzoFactory[4]

Global Azure BootCamp – Madrid

La comunidad de MVP y profesionales en el Cloud Computing está organizando el Global Azure BootCamp en España, un evento global que realizará en más de 196 localizaciones de forma simultánea, 53 paises diferentes y más de 10.000 particpantes!!

Este evento sobre Microsoft Azure está programado para el sábado 25 de Abril en las oficinas de Microsoft Ibérica, en Madrid.

 

Durante la jornada tendremos 2 tracks y uno adicional de "Azk the expert" donde podrás conocer todas las novedades de Windows Azure de mano de los mejores profesionales de España.

Debido a las características de este evento el número de plazas es limitado. Te recomendamos que te registres ahora para no quedarte sin plaza:

Toda la información del evento, agenda y registro lo podéis encontrar en http://azurebootcamp.es/ 

Espero veros allí!!

 

image

 

 

image

Configurar el desktop en una máquina Linux en Azure

En un post anterior os hablaba de cómo poder una máquina Linux en Microsoft Azure para poder hostear una aplicación ASP.NET. Continuando con ese post, después de algunas preguntas, os comentaré como podéis configurar la máquina de Azure para poder tener desktop y convertirla en vuestro entorno de desarrollo Linux/ASP.NET con Sublime por ejemplo

Linux02_thumb

En el post anterior ya habíamos creado la máquina virtual linux a través del portal de Azure, configurando ésta para poder conectarnos por SSH….ahora instalaremos el desktop y lo configuraremos para conectarnos por RDP.

LinuxDesktop02

Lo primero, actualizar apt-get para asegurarnos que tenemos las referencias a las últimas versiones de los paquetes a instalar.

sudo apt-get update

LinuxDesktop03

Si quieres instalar xfce4: (el más ligerito y rápido de instalar)

sudo apt-get install xfce4

Si quieres instalar GNOME:

sudo apt-get install ubuntu-desktop

Si quieres instalar KDE:

sudo apt-get install kubuntu-desktop

Yo en mi caso he instalado GNOME.

LinuxDesktop04

Una vez hecho, ya podemos instalar RDP con…

sudo apt-get install xrdp

Una vez instalado, tenemos que crear un nuevo endpoint en la VM para permitir las conexiones RDP. Puerto 3389.

LinuxDesktop05

Y una vez creado, ya podemos conectarnos poniendo el nombre del servidor y el usuario.

LinuxDesktop06

Nos pedirá el usuario y contraseña.

LinuxDesktop12

Y ya podemos ver el desktop.

LinuxDesktop13

Y por supuesto, podremos seguir trabajando con ASP.NET 5 como veíamos en el post anterior o con herramientas como Sublime/OmniSharp/Kulture.

Linux

Desplegar una app ASP.NET 5 en Linux usando Docker

En un post anterior veíamos cómo podíamos ejecutar aplicaciones ASP.NET 5 en un entorno de desarrollo Linux.

En este post veremos cómo podemos desplegar la aplicacación web ASP.NET 5 en una máquinas virtual Linux hosteada en Microsoft Azure usando Docker.

En este caso los pasos los realizaré desde una máquina Linux, pero estas acciones también serían posibles desde un equipo con Windows como veremos en post futuros, ya que las herramientas que a continuación se describen son multiplataforma.

Para empezar, lo primero que necesitemos es tener instaladas las herramientas de líneas de comandos multiplataforma que nos permite realizar labores administrativas sobre Microsoft Azure. Para ello, si tenemos node.js y npm instalado será tan sencillo como lanzar una única línea de comandos:

npm install –g azure-cli

Una vez instaladas, lanzando el comando “azure” podremos ver las diferentes acciones disponibles.

docker01

El siguiente paso es configurar la subscripción contra la que queramos herramientas las acciones. A través de la herramienta podemos descargarnos el perfil de administración e importarlo.

azure account download
azure account import <publish profile>
azure account list

Si dispusiéramos de varias subscriptiones tendríamos que establecer la subscripción por defecto sobre la cual queremos realizar las acciones.

Además de instalar las herramientas de comandos de azure, es necesario instalar el cliente de Docker, en este caso para Linux.

npm install –g docker.io

Una vez ya tenemos el cliente de docker y las herramientas de azure, lanzando una única línea de comandos podemos crear una máquina Linux en Azure con el host de docker instalado:

azure vm docker create -l "Wesrt Europe" -z Small -e 22 myshuttledocker "b39f27a8b8c64d52b05eac6a62ebad85__Ubuntu-14_04_1-LTS-amd64-server-20140927-en-us-30GB" <user> <password>

A través de este comando estamos diciendo que queremos crear una máquina virtual, indicando el datacenter, el tamaño, la plantilla a usar, el nombre, usuario y contraseña,

Si lanzamos el comando y esperamos unos minutos, podremos tener una nueva máquina en nuestra subscripción.

docker07

docker04

Por defecto, la VM tiene configurado el puerto SSH y el puerto que utiliza el cliente de Docker para conectarse de forma remota al host, cosa que necesitaremos para poder desplegar la aplicación ASP.NET 5.

docker05

A través del comando docker, podemos por ejemplo conectarnos a la VM remota recién creada para ver las imágenes disponibles, que claro está, la primera vez no mostrará ninguna.

docker –tls -H  myshuttledocker.cloudapp.net:4243 images

image

Para evitar tener que poner el servidor en todos los comandos puedes lanzar este comando previamente:

export DOCKER_HOST="tcp://myshuttledocker.cloudapp.net:4243"

Para hacer este post, he descargado la aplicación ASP.NET 5 de MyShuttle, la cuál la podéis encontrar en https://code.msdn.microsoft.com/windowsapps/MyShuttle-demo-applications-1a4b68fe  y está preparada para funcionar con la beta3 de KRE.

El siguiente paso será crear el fichero DOCKERFILE, que será el fichero que contendrá todas las instrucciones para desplegar la aplicación, configurar el entorno y ponerla a funcionar.

En este caso, el script será muy sencillo, tal como éste:

FROM microsoft/aspnet

COPY . /app
WORKDIR /app/MyShuttle.Web
RUN ["kpm", "restore"]

EXPOSE 5004
ENTRYPOINT ["k", "kestrel"]

 

image

En este caso, se usa una plantilla preparada ya para ASP.NET 5. Las diferentes plantillas disponibles se pueden encontrar en https://registry.hub.docker.com 

image

Una vez sabemos la plantilla a utilizar, el fichero DockerFile lo único que indica son los ficheros que deben copiarse y los comandos de ASP.NET 5 necesarios para restaurar las dependencias y arrancar la aplicación, como si lo hiciéramos de forma manual.

Una vez tenemos el fichero, podemos crear la imagen del contenedor en el host de Docker usando este comando:

docker –tls build -t myapp .

Una vez termine este comando (la primera vez tardará porque se descarga la imagen base), podemos ver la imagen ya creada

docker –tls  images

image

Una vez tenemos la imagen del contenedor creada, ya podemos arrancar el contenedor: (5004 es el puerto dónde se arranca la aplicación)

docker –tls run -d -t -p 5004:5004 myapp

Y podemos ver los contenedores que están en ejecución con:

docker –tls ps -a

image

Si queremos comprobar que la aplicación está funcionando, tenemos que crear un nuevo endpoint en la máquina virtual para poder acceder a la aplicación web:

image

Una vez hecho esto, para poder acceder a la aplicación web!

Ubuntu06

Ya para terminar, aunque todavía no está disponible, comentar una cosa muy interesante que Microsoft enseñó el paso Noviembre en el evento Connect y que estamos esperando….desplegar desde Visual Studio aplicaciones ASP.NET 5 con dos clicks en un contenedor de Docker de Linux…desplegar y depurar de forma remota!!

10

21