Mostrando entradas con la etiqueta Cloud9. Mostrar todas las entradas
Mostrando entradas con la etiqueta Cloud9. Mostrar todas las entradas

Hola! ¿como están? Espero que se encuentren muy bien, se que he tardado un poco estaba investigando otras opciones que recientemente llegaron a mi inbox relacionado con otros tipos de plataformas estilo PaaS que mas bien son BaaS (backend As Service) que no se tratan de otra cosa mas que un dashboard para gestionar la base de datos y las notificaciones push de una aplicación móvil algo bastante interesante para los desarrolladores enfocados en moviles(Android, IOS y Windows) que no quieran lidiar con las tripas sueltas de un servidor.


Pero no es lo que me ataña este dia si no continuar con la serie, les mostrare la 4 entrega de este tutorial para programar aplicaciones utilizando 100% código en la nube, ya vimos las dos primeras partes importantes(la primera era una parte introductoria de lo que queríamos o pretendíamos hacer con esta idea). Si no saben de que hablo ingresen a los dos primeros tutoriales y síganlos en secuencia, es información bastante reciente y hasta el dia de hoy (19 de Febrero 2015) no hay cambios en la forma de ingreso ni demás cosas. En esta parte veremos ¿Como hacer para que el codigo que escribamos en Cloud9 se actualice en Openshift? Lamentablemente para este tutorial nos tenemos que poner algo técnicos y explicar que sucederá, el flujo-grama del como se hará el deploy(como se cargara el código que escribamos en Cloud9 se cargue a openshift) es similar al siguiente


Flujo del código de Cloud9 a Openshift

Bien es así como el código parte de Cloud9 que no es mas que el editor de texto que actualiza vía Git al servidor de Openshift dependiendo de la selección que hagamos, sea Hot Deploy o Normal Deploy.

¿Que es Hot Deploy?

Es una forma de depositar el código en el servidor de Openshift sin detener los servicios, es decir que escribe en este mientras las instancias están corriendo, es bastante practico para entornos de producción o desarrollo pues no es necesario esperar que se reinicie el servidor, su principal desventaja es que puede ocasionar errores si se estaban haciendo peticiones al servidor porque todas las peticiones get/post se reinician o tratan de seguir con los archivos fuentes mientras se cambian.

Su principal ventaja es que es bastante rapido pues no tiene que esperar que el servidor de openshift le diga "Estoy apagando todo, espera un momento..." , "Ok ya puedo recibir el código ya apague todo" estas dos frases se traduccen en un par de minutos extras y si somos de frágil paciencia podemos romper algo o alguien.

Por defecto viene desactivado, para activarlo solo es necesario buscar la carpeta:

./openshift/markers/

Ahi crear un nuevo archivo de texto sin extension (sin contenido)

./openshift/markers/hot_deploy

Y con esto queda configurado, bastante sencillo en realidad, no olvidar añadirlo al proyecto mediante Git


$ cd /.../openshift/markers
/../opeshift/markers:$ git add hot_deploy 

para que git lo tome encuenta en el proximo commit y push que realizemos, una vez escrito este archivo en openshift no resta mas empezar a hacer "git add . ;  commit ;  push"

¿Que es Normal Deploy?

El normal deploy es el deploy que viene por defecto en openshift esta orientado para entornos de ejecucion donde tengamos que para el servidor por cada cambio para no afectar a los clientes que se encuentren conectados o usando nuestra aplicación, realmente una sana costumbre y habito seria comenzar con hot_deploy y hasta que la aplicación este configurada por completo(o bien casi terminada) y desactivar para cambiar al normal deploy para no tener problemas con los clientes que escriban o utilicen la aplicacion, normal deploy también tiene un estilo o forma de pensar y es realizar la mayor cantidad de cambios antes de subir el código al servidor a diferencia de hot_deploy que con un par de lineas es suficiente esto por el tiempo de espera para apagar todo y reiniciar



Empezando: Como configurar openshift y cloud9


Vamos a hacer 2 cosas la primera sera instalar las herramientas de Openshift en Cloud9 y la segunda sera hacer una llave SSH publica para poder entrar a la aplicación la llave(public key ssh) si es publica es un hash de varios caracteres alfanuméricos, ademas de eso solicitara acceso en el terminal via correo y password asi que tranquilo, la seguridad no esta comprometida.

Esto lo haremos paso a paso con imágenes porque lo considero menos traumatico y mas didáctico:

Lo primero que haremos sera entrar al Workspace en Cloud9 esperaremos que configure todo si el caso fuere que nunca entramos al Workspace.


Luego buscaremos el terminal situado en la parte de abajo (en el caso de que no sea visto solamente hay que activarlo en el menú "View"  y darle en "Console"


Aquí lo que tenemos que hacer es instalar los archivos de configuración para las herramientas de Openshift, estas están escritas en ruby por suerte cloud9 tiene instalado ruby con su gestor de paquetes gem (todo fríamente calculado)

solo basta iniciar este comando:

$ gem install rhc

y a esperar un par de segundos, no tarda mucho recuerden que ni siquiera usamos nuestro ancho de banda es Cloud9 quien usa su ancho de banda por lo tanto es bastante rápido la descarga.




Luego de eso estamos listos para configurar la llave publica y la llave de acceso local, la llave de acceso loca es útil para no ingresar el correo y contraseña cada vez que realicemos un deploy dentro de la terminal, quedan nuestras credenciales dentro de un archivo en Cloud9.

Para configurar la instancia de Openshift basta con iniciar:

$ rhc setup

Como es un asistente (wizard) no tendremos mas que proporcionarle los datos que requiera según el caso, la primera pregunta que nos detalla es en que servidor esta alojado, como Openshift es una plataforma bastante grande esta segmentada por continentes, sin embargo los Gears pequeños y gratis se encuentran en EEUU por lo que presionar Enter es mas que suficiente.


Después de presionar Enter (no se queden viendo la pantalla esperando que suceda algo, esto es un proceso rápido descuiden) ingresamos nuestro correo y contraseña recuerden que son las credenciales de Openshift y no las de Cloud9


Aquí nos preguntan si queremos generar el token del que les hable mas arriba es el token para dejar por default el acceso y las credenciales dentro del servidor para no tener que escribirles, yo en mi caso escribí "yes"

Despues nos preguntara si queremos subir el código de SSH a los servidores de Openshift, la respuesta es "yes" porque le necesitamos para conectarle y poder clonar el repositorio de Git dentro de Cloud9.



Una vez que tenemos esto no queda mas que clonar el repositorio de Git dentro de Cloud9, es decir recoger todos los archivos y código fuente de Openshift y pegarlos en Cloud9 recuerden que ahí en Openshift hicimos y configuramos una instancia de Node.js (en mi caso) y necesitamos todos los fuentes para poder configurar los y modificar los.


Para recuperar el código de git para clonarlo solo tenemos que ingresar a Openshift y buscar nuestro Gear con Node.js (igual con cualquier framework) y pegarlo dentro del terminal de Cloud9.



En rojo se encuentra la clave para clonar el directorio, esta se pegara dentro de la terminal de Cloud9 quedando de esta manera:


$ git clone ssh://<clave del Gear de Openshift>

La parte de color naranja es para usar la consola de forma remota si utilizan alguna consola remota programa al estilo Openssh, PuTTY si no saben de lo que hablo descuiden no le necesitan utilizaremos solo la consola de Cloud9 para realizar gestiones dentro de la consola SSH de Openshift.

Clonando la llave ssh  desde el servidor de Openshift



Les pedirá permiso para clonar por primera vez desde este servidor, justo donde esta la flecha, no continuara hasta que le demos "yes" después copiara los archivos de Openshift dentro de Cloud9
y se actualizara el arbol de archivos, idéntico a como esta estructurado en el servidor.



Y con esto tenemos todo listo ya solo resta hacer mas pequeña la terminal para tener mas espacio arriba y poder editar los archivos fuentes con mayor comodidad. Tambien no hay que olvidar salvar y cambiar los fuentes usando los comandos de git (add . ~ commit ~ push).



y con esto estamos listos para desplegar nuestro código, los comandos de rhc para obtener la llave publica son necesarios en cada Gear que tengan, en su cuenta.
Con esto termino el ultimo tutorial de esta serie, estaré subiendo un par de trucos relacionados con estos dos entornos  para trabajar un poco mas rápido usando un par de filosofías de desarrollo ágil de software útiles para nosotros que somos programadores solos contra el mundo. Saludos!

Hola! Espero se encuentren muy bien, aquí me encuentro publicando la tercera entrega relacionada con la integración de los servicios de Openshift y Cloud9 para poder programar y diseñar aplicaciones 100% en la nube de forma desatendida de un ordenador físico (no es magia igual siempre ocuparan un PC que pueda abrir un navegador)

 Bien ahora que configuramos nuestros servicios en cloud9 el enlace a la segunda entrega esta aquí:
 2# parte Desarrollar aplicaciones web 100% en la Nube
Después de hacer y realizar los pasos del tutorial pasado vamos a integrar nuestro servidor, para esto necesitamos pensar en algo importante y es que estructura usaremos, para fines de este tutorial usare Node.js sin embargo existen otros frameworks probablemente mas maduros o de vuestra preferencia.

Lo primero que haremos sera loguearnos en Openshift y crear una cuenta nueva abriendo este enlace:

www.openshift.com/‎

Pagina principal de Openshift 
En esta pagina nos vamos a loguear dentro de la aplicación haremos una cuenta nueva, estos pasos los detallare de una forma mas gráfica pues necesito asegurarme de que lo hagan de forma correcta.

Aquí colocaremos los datos de nuestro usuario.

En la pagina para crear usuario es bastante simple, un formulario de registro normal y corriente sin mayor dificultad.

El correo recibido en la bandeja de entrada, esto para validar la cuenta.

Nos mandara un aviso a nuestra bandeja de entrada de correo el que previamente llenamos en nuestro formulario, aquí nos vamos a ir al enlace de Verify Your Account, para validar nuestra cuenta.


Aquí aceptamos los términos y condiciones, que en resumidas cuentas son:

  • No pornografía.
  • No Software ilegal.
  • No cualquier cosa que infrinja Copyright.
  • Ninguna cosa que creas que es ilegal, perjudica a alguien o siquiera moleste otra empresa o a RedHat.

Les pido que por favor no violen ningún termino de servicio, la flexibilidad que da la plataforma en un plan gratuito hace sentir que estamos pagando una fuerte cantidad de dinero por estos servicios, y han sido bastante "Buena gente", ademas de esto traten de considerar en algún momento pagar por los servicios son demasiado buenos para ser freemium, así que si sacan una app que genere ingresos consideren ampliar sus servicios escalandola.'

Pagina principal de Openshift, Aquí crearemos cada Gear que necesitemos.
Aquí es donde comienza todo, la magia inicia aqui (es broma sono a comercial de Disney) aquí solo queda irse a "Create Your First Application Now" para seleccionar como queremos cargar nuestro primer Gear.

Los Gear's son la unidad básica de la estructura de servicios dentro de cada Gear puede existir una base de datos(mejor dicho una instancia de base de datos no solo se limita a una) y un servidor de integración continua, ademas de algunas cosas mas.

Regresando a lo que nos interesa (veremos lo de los gears mas tarde) seleccionaremos la instancia de aplicación que queremos:




Como le comente al principio usaremos una instancia de Node.js aunque no importa mucho cual sea igual todas son opensource de alguna u otra manera. El listado es casi infinito, agregando a esto otros frameworks que pudiéramos obtener mediante una clave de Git (algo que este publicado en un repositorio de este tipo o si ya hubiésemos trabajado en Git antes )


Para quienes no sepan que es Git descuiden no tendrán que profundizar mucho de esto, simplemente nos limitaremos a usarlo en sus funciones mas básicas (Git Add, Git Commit y Git push).

Después de seleccionar aparecerá esto:



Es una pagina para configurar el Gear, La sección de color naranja es el nombre de la aplicacion, la sección de color rojo es nueva aquí por default iba el nombre de usuario o el nickname por así decirlo y ahora nos permite configurar un Namespace, es decir que ahora podemos utilizar subNamespace's o eventualmente lo podremos hacer (bravo por esto significa que siguen trabajando agregando características), si no sabes a que me refiero utiliza el nickname que prefieras solo que no le olvides, igual esta sera tu dirección para la aplicación el formato es <nombre>-<Namespace>.rhcloud.com

La dirección que configure es:

nodejs-youcould.rhcloud.com


Ojo con esto, esta dirección es completamente funcional, es decir esto sera abierto al publico
NO, ENSERIO NO INTENTEN HACERME DDoS! esto es de prueba no tengo alojado nada ahí y es una cuenta de prueba solo para ejemplificar este tutorial, no es que sea paranoico ni nada por el estilo pero es para que consideren el alcance real de lo que estamos haciendo en este momento.

El pequeño gear trabajando sobre nuestra aplicacion.
Aquí en este momento tenemos a nuestro feliz Gear trabajando, la pagina dejara de hacer nada por algunos minutos saldrá como si estuviere cargando, no se preocupen para nada, esta instalando las dependencias y configurando el entorno de la aplicación.



Éxito! si ya tienes esta ultima pantalla en el navegador destapa el vino y sirve un par de copas pues ya tienes configurado un Gear con una instancia del framework que elegiste anteriormente, a la pregunta que nos hace, "Will you be charging the code of this application?" si saben algo de ingles la respuesta es totalmente de acuerdo! pero tenemos que calmarnos un poco hay un par de pasos que necesitamos hacer primero recuerden que ingresaremos o mejor dicho vincularemos esta aplicación a la instancia de Cloud9 (¿o ya se les olvido?) por lo tanto necesitamos configurar una clave SSH para poder utilizar la consola, mientras tanto le daremos que no por el momento, "Not now, Continue"

La pagina principal de la Aplicación, con información sobre ella.
Aquí tenemos el dashboard con algo de información sobre el estatus de la aplicación, existen 2 estatus Started e Idle como estamos usando una versión freemium, la aplicación se pondrá en estado Idle si no recibe peticiones al servidor, es decir se dormirá y dejara de ocupar memoria RAM en los servidores de Openshift, esto es para evitar el gasto de memoria de ellos y ademas tiene sentido si lo lo usas no lo gastes.


Con esto terminamos, la tercera entrega en la próxima si conectaremos las dos aplicaciones sin mas preámbulos, en el siguiente tutorial veremos como crear la clave SSH para conectarnos a la aplicación y vincular esta clave a la cuenta de Cloud9 para poder trabajar de forma desatendida sin necesidad de guardar nada en nuestros PC's. Por el momento me despido esperando sus comentarios, y preguntas al respecto. Saludos!




Buen día.


Como vimos anteriormente en la entrada:



Hoy empezaremos a configurar cloud9.

Haremos: 

  • Una cuenta 
  • Veremos un par de configuraciones
  • Veremos los Frameworks disponibles
  • Veremos la IDE y los Workspace's
  • Veremos el Terminal/CMD



Cloud9


Tranquilos aqui no hay "referals" ni nada por el estilo, llenamos nuestros datos lo basico en cualquier suscripcion para una pagina web.






Una vez que hicimos el login dentro de la pagina encontraremos esta ventana es nuestro dashboard donde se encuentran listados nuestros proyectos en el area verde, en el area color naranja se encuentra listadas las acciones sobre nuestra cuenta y en la parte de color rojo se encuentra la parte de ayuda y el boton de salida. 

Quizas en este punto no encuentren ningun proyecto todavia asi que crearemos uno.


Lo primero es encontrar el area de proyecto y crear una nueva area de trabajo (Create a New Workspace) este sera nuestro lugar del proyecto, es costumbre sana tener cada proyecto en una area de trabajo esto facilita una estructura mas organizada, aunque he llegado a contener 3 proyectos dentro de un Workspace no lo recomiendo.


Cuando creemos el Workspace aparecera esta ventana:


El listado de los Frameworks disponibles para esta IDE. (click para ampliar)


Aqui en este punto se vuelve interesante tenemos listado los Frameworks en los cuales podemos trabajar, desde Node.js (en javascript) hasta C/C++ (este ultimo creo que es bastante reciente).

Aunque no seleccionen ningun framework tendremos todos disponibles de alguna manera porque tendremos mas adelante un interprete de bash (una Terminal o un CMD ) asi que esto no es de preocupar, ademas de ello recuerden que esta sera solo la IDE para manejar nuestro codigo, no sera nuestro repositorio de Ejecucion o servidor donde ejecutaremos el codigo.

Haremos uno sin nada preinstalado y ningun esquema, nada  mas que algunos archivos por default,
entonces seleccionaremos Custom que se encuentra mas abaj, tambien recuerden que pueden crear multiples espacios publicos pero solo un privado asi que haganlo de forma Sabia.


Seleccion de proyecto "Custom" (click para Ampliar)

Y dejaremos que empiece a hacer el Workspace (espacio de trabajo) esto tarda un par de minutos no desesperen, en el mejor de los casos al no seleccionar nada y dejarlo en custom la instalacion se realiza mas rapido que instalando por ejemplo Node.js o Django.





Aqui se empieza a instalar todo, las opciones apareceran cuando este todo listo (click para Ampliar)

Despues de esto tendremos justamente esto como resultado:



Ventana de proyectos, proyecto "testing" despues de ser creado (click para ampliar)


Como pueden ver tenemos la descipcion del Workspace, y tenemos un boton interesante Start Editing este boton es el que hace toda la magia. lo presionaremos y nos abrira otra ventana en el navegador muy parecida a esta:


IDE por defecto, los colores y temas puede variar (click para Ampliar)

Si señores y señoritas no abrieron por accidente Eclipse vean que todavia se encuentran en el navegador todavia esta es la pagina principal  de donde saldra su codigo. En el area naranja tendremos el arbol de los archivos, en el area Roja tendremos la foto de nuestro perfil, el uso del CPU y recursos y el boton de configuraciones de la IDE, el boton de color Azul es para regresar al Dashboard.



El mensaje de bienvenida en el Readme.md (click para ampliar)



¿Y la parte verde? Buena pregunta esta es la consola, pueden ver ese hermoso signo de dolar "$" es una consola o terminal de linux y tiene todas sus funcionalidades basicas desde los comandos de CD para accesar a los directorios hasta copiar pegar y demas, esta nos sera muy util pues con ella haremos los comandos para Git (Git add. ;  Git Commit; Git push ) dentro de nuestro servidor en Openshift.


Terminal en Ubuntu, completamente funcional.

Es una consola completa, cabe destacar que el servidor es un Ubuntu una distro de linux bastante famosa.


Les invitaria a que tocaran un poco en algun workspace publico para ver todas las opciones es altamente configurable, ademas tiene autocompletado de codigo, inclusive posee una ventana de inmediato REPL para javascript, ademas de poder correr la aplicacion en una ventana del navegador emulado dentro del mismo IDE (siempre que sea una aplicacion web)


Las opciones de la interfaz, en este caso el menu para ejecutar y la lista de archivos que soporta.(click para ampliar)

En la proxima parte del tutorial configuraremos los servicios de Git, ssh y configuraremos la cuenta de Openshift. les deseo mucha suerte!



Buen día.!


Como leyeron en el titulo es posible desarrollar  una aplicacion web de forma 100% desatendida de un ordenador especifico, pero se preguntaran ¿Que tiene esto de bueno ? bien les dare una breve lista del porque considerar desarrollar por completo en la nube:


Pros:
  • No alojas nada de contenido en tu PC.
  • Esta disponible en cualquier parte Geografica.
  • Puedes hacer retoques rapidos  de tu aplicacion con solo una conexion a internet.
  • Es multiplataforma(depende de un Navegador o Navegadores Web)
  • No necesitas recursos de RAM o Procesador extra mas que el Navegador
  • No necesitas Programas instalados o SDK's en tu Disco duro y registro.

Contras:

  • Necesitas siempre una conexion a internet
  • Necesitas re-clonar cada cierto tiempo en una PC local para tener un BackUp


Bien si seguiste leyendo es porque ya tomaste una desicion y comenzaras a desarrollar codigo en la nube.
Lo primero que tenemos que hacer es suscribirnos a dos servicios, uno de ellos sera nuestro servidor donde ejecutaremos nuestro codigo y el otro sera nuestra interfaz de desarrollo, nuestra bien conocida IDE.

Si se preguntaran porque utilizaremos dos servicios en lugar de uno solo, (que es factible porque nuestro servidor estara alojado en Openshift y podemos dividirlo para tener mitad IDE mitad Servidor de Ejecucion) la razon de esto es bastante simple, no queremos depender de un solo servicio y queremos nivelar la carga para que Openshift destine todos los recursos de nuestros Gears (unidad de procesamiento de Openshift y su PaaS ) al servidor y no a mantener activa la IDE lo que significaria que dedicariamos procesamiento a mostrar la IDE y no queremos saturar esto porque los servicios son gratuitos.


Nuestra IDE sera cloud9 entre los servicios que presta de forma gratuita estan:



Cloud9 Ide

  •  Disk Space
  •  RAM
  • Sudo Shell Access/Terminal
  • 1 Workspace Privado (los demas seran publicos por defecto a menos de que paguemos)`
  • Algunas instancias de ejecucion Preinstaladas como:
    • Node.js
    • Django + Python
    • Wordpress
    • PHP


Bien podriamos usar cloud9 como IDE + Servidor sin embargo es mas practico gestionar bases de datos en OpenShift que en Cloud9 (si leiste bien dije base de datos!), ahora que conocemos que tiene Cloud9 en su version gratis veremos que tiene en la otra esquina Openshift.




  • 3 Gears Pequeños (unidad de procesamiento cada gear es como )
  • 3 Host de aplicaciones (subdominio con terminacion rhcloud.com)
  • Algunos frameworks preinstalados como ser:
    • JAVA
    • Node.js
    • PHP
    • Python
    • Ruby
    • Go (lenguaje de programacion de Google)
  • Algunas aplicaciones preinstaladas (aplicaciones instantaneas)
    • Jenkins Server
    • Drupal
    • Wordpress
    • Moodle
    • Magento
    • Rhocode
    • ownCloud (similar a Google Drive es una implementacion Open Source de este)
  • Base de datos Privadas! (esto es bastante bueno ) Entre ellas:
    • MySQL
    • Progress SQL
    • MongoDB
  • Soporte de RedHat (es RetHat..... ¿tengo que decir algo mas?)
  • Acceso completo a Terminal SSH (privilegios de $ dentro de cada Gear, son Sandbox)
  • Hasta 3 GB de espacio (1 por cada Gear)


Como pueden ver ya hasta aqui tenemos mas que suficiente para poder iniciar una pequeña o mediana aplicacion aclaro que esto sera mas nuestro patio de Juegos recomiendo consultar los precios de Openshift en su version de pago para obtener soporte una vez que nos pongamos serios y si no nos gusta Bajamos todo por medio de Git a nuestro PC con un simple 

Git Clone ssh://<clave del Gear Openshift>

Este es el fin del primer tutorial(explicacion de los servicios) pronto estare subiendo la segunda parte. Saludos!