lunes, 8 de enero de 2018

Configuración de Google Cloud paso a paso


En el presente documento se presenta la configuración del servidor de Google Cloud como manera de respaldo y Documentación del mismo.

Se muestran imágenes los comandos realizados y los datos a saber para que la persona interesada pueda tener una mejor inducción p conocimiento del servidor

Que es un servidor: Hablando más técnicamente un servidor es un proceso que entrega información o sirve a otro proceso. Es muy probable que un ordenador cumpla simultáneamente las funciones de cliente y de servidor al mismo tiempo.

Resumiendo un servidor es el equipo que tiene instalado el software que nos sirve los recursos útiles o información que necesitamos.


Qué es un Cloud Server: La tecnología de Cloud Computing impone un nuevo paradigma enfocado en brindar recursos virtualizados permitiéndole a usted la total independencia de cualquier infraestructura física, proporcionando un ambiente dinámico, escalable y de alta disponibilidad para el funcionamiento de su proyecto.

Un Cloud Server es similar a servidor dedicado solo que el mismo se encuentra funcionando en la nube, esto significa que los recursos como la memoria RAM, procesamiento de CPU, conectividad y almacenamiento en disco que utiliza cada servidor son abastecidos por la nube.


Crear una plantilla de instancia

1. IR A LA PÁGINA DE PLANTILLAS DE INSTANCIA

2.     Haga clic en Nueva plantilla de instancia .

3.    Rellene los campos que desee para la plantilla de ejemplo, o aceptar los valores predeterminados. Los siguientes valores son proporcionados por defecto:



Crear un Grupo de Instancias logrado


1.    Ir a la página Grupos de instancia en la consola de la plataforma de la nube.
2.    Haga clic en Crear un grupo de instancias 

Nombre   tuto
Zona       us-central1-a

3.    Introduzca un nombre para el grupo de instancias administrado, y seleccione la zona en la que desea ubicar el grupo.
Seleccione una plantilla de instancia . Si no dispone de plantillas, crear una plantilla de instancia por primera vez.
4.    Especificar el número de casos que desea crear en el grupo. Opcionalmente, puede activar Autoscaling de manera que el grupo va a añadir o eliminar las instancias de forma automática en función del uso de la CPU ejemplo.
No se activo

Configurar una terminal 

El siguiente paso  es configurar alguna terminal la cual les voy a dar 3 opciones 

1-  Putty (es la que yo utilizo)(RECOMENDADO YA QUE GUARDA TODO Y ES FÁCIL DE USAR)  Dejo el link del blog para configurar y el link del vídeo de youtube


2-  Google Cloud SDK Dejo el link del blog para configurar 


3-  Navegador solo le damos en el servidor abrir ssh en el navegador y listo (no recomendado)

Una vez configurado el Putty o cualquier otra terminal (Recomiendo Putty) continuaremos con los siguientes pasos

Configurar Nuestro Servidor 



  •  Abrimos nuestra terminal en este caso yo abro el Putty configurado anteriormente 
  • Actualizamos nuestro sistema y paquetes:

  • 1
    sudo apt-get update && sudo apt-get upgrade
  • Instalamos el Apache
    1
    sudo apt-get install apache2
    Abrimos nuestro archivo de configuración Main 
1
sudo nano /etc/apache2/apache2.conf


y cambiamos nuestro archivo en la linea lo ponemos en off

1
KeepAlive Off
El módulo de multiproceso predeterminado (MPM) para Apache es el módulo de eventos pero, por defecto, PHP utiliza el módulo prefork. Abra el archivo mpm_prefork.conf ubicado en / etc / apache2 / mods-available y edite la configuración. Debajo están los valores sugeridos para un Linode de 2GB:

1

sudo nano /etc/apache2/mods-available/mpm_prefork.conf
vamos a dejar los siguentes valores
<IfModule mpm_prefork_module>
        StartServers            4
        MinSpareServers         20
        MaxSpareServers         40
        MaxRequestWorkers       200
        MaxConnectionsPerChild  4500
</IfModule>

5.  
vamos a Des habilitar el módulo de evento y habilitar prefork:

1
2
sudo a2dismod mpm_event
sudo a2enmod mpm_prefork
Reiniciamos el Apache 

1
sudo systemctl restart apache2



Nota: el example.com es un ejemplo le pones el que gustes en vez de ese.



Edite el nuevo archivo de configuración de example.com.conf al descomentar ServerName y reemplazar example.com con la IP de su sitio o el nombre de dominio completo (FQDN). Ingrese la ruta raíz del documento y los directorios de registro como se muestra a continuación, y agregue un bloque de Directorio antes de </ VirtualHost>:


1
sudo nano /etc/apache2/sites-available/example.com.conf


<Directory /var/www/example.com/public_html>
    Require all granted
</Directory>
<VirtualHost *:80>
        ServerName example.com
        ServerAlias www.example.com
        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/html/example.com/public_html

        ErrorLog /var/www/html/example.com/logs/error.log
        CustomLog /var/www/html/example.com/logs/access.log combined

</VirtualHost>

El ejemplo de archivo anterior tiene todas las secciones de comentarios eliminadas por brevedad; puede mantener o eliminar las áreas comentadas como mejor le parezca.
La directiva ServerAlias le permite incluir múltiples nombres de dominio o subdominios para un solo host. El ejemplo anterior permite a los visitantes utilizar example.com o www.example.com para navegar a este host virtual.

Creamos los directorios:

1
sudo mkdir -p /var/www/html/example.com/{public_html,logs}
Vincule su archivo de host virtual desde el directorio de sitios disponibles al directorio de sitios habilitados:
sudo a2ensite example.com.conf
  1. Deshabilite el host virtual predeterminado para minimizar los riesgos de seguridad:
1
sudo a2dissite 000-default.conf
reinicia el apache  
1
sudo systemctl restart apache2


MySQL

Instalar el  MySQL

instale el paquete mysql-server y elija una contraseña segura cuando se le solicite:
1
sudo apt-get install mysql-server
Create a MySQL Database
1. Inicie sesión en MySQL:
mysql -u root -p
2. Ingrese la contraseña de root de MySQL, y se le presentará una solicitud de MySQL.
3. Si no se ingresó una contraseña en la sección anterior, o si desea cambiar la contraseña de root, ingrese el siguiente comando. Reemplace la contraseña con una nueva contraseña de root:
ALTER USER 'root'@'localhost' IDENTIFIED WITH 'mysql_native_password' BY 'password';

4. Cree una base de datos y un usuario con permisos para ello. En este ejemplo, la base de datos se llama webdata, el usuario web del usuario y la contraseña

1
2
CREATE DATABASE webdata;
GRANT ALL ON webdata.* TO 'webuser' IDENTIFIED BY 'password';
1.    Salir de MquiySQL:
1
quit

PHP 7

1. Instalar PHP, la extensión de PHP y el repositorio de aplicaciones, soporte de Apache y soporte de MySQL

1
sudo apt-get install php7.0 php-pear libapache2-mod-php7.0 php7.0-mysql

2. Opcionalmente, instale soporte adicional para cURL, JSON y CGI:
sudo apt-get install php7.0-curl php7.0-json php7.0-cgi
3. Una vez que PHP7.0 está instalado, edite el archivo de configuración ubicado en /etc/php/7.0/apache2/php.ini para habilitar más errores descriptivos, logging y un mejor rendimiento. Las siguientes modificaciones proporcionan un buen punto de partida:


1
sudo nano /etc/php/7.0/apache2/php.ini



max_input_time = 30
error_reporting = E_COMPILE_ERROR | E_RECOVERABLE_ERROR | E_ERROR | E_CORE_ERROR
error_log = /var/log/php/error.log

El comienzo del archivo php.ini contiene ejemplos comentados con un punto y coma (;), que deshabilita estas directivas. Asegúrese de que las líneas que modifique en este paso estén después de la sección de ejemplos y no estén comentadas.
4. Cree el directorio de registro para PHP y dele la propiedad al usuario del sistema Apache:
sudo mkdir /var/log/php
sudo chown www-data /var/log/php
5. Reinicia Apache

1
sudo systemctl restart apache2

Cambiar de clave root 
1
sudo passwd

Para instalar Webmin a través de apt-get, primero debe agregar el repositorio de Webmin a su archivo sources.list.
En su servidor, abra el archivo sources.list en su editor de texto favorito. Usaremos nano en este tutorial:

sudo nano /etc/apt/sources.list
Si se le solicita una "contraseña [sudo]", ingrese la contraseña de su usuario.
Ahora presione Ctrl-W luego Ctrl-V para navegar hasta el final del archivo, luego agregue las siguientes líneas al archivo

deb http://download.webmin.com/download/repository sarge contrib
deb http://webmin.mirror.somersettechsolutions.co.uk/repository sarge contrib
Cuando haya terminado de editar, guarde el archivo presionando Ctrl-X, luego y, RETORNO.
Ahora agregue la clave GPG de Webmin a apt, para que el repositorio de origen que agregó sea de confianza. Este comando hará eso:
wget -q http://www.webmin.com/jcameron-key.asc -O- | sudo apt-key add -
Antes de instalar Webmin, debe actualizar las listas de paquetes de apt-get:
sudo apt-get update

Ahora ejecuta este comando apt-get para instalar Webmin:
sudo apt-get install webmin

martes, 19 de diciembre de 2017

GIT con GitKraken y Google Cloud

GIT

Git es un software de control de versiones diseñado por Linus Torvalds, pensando en la eficiencia y la confiabilidad del mantenimiento de versiones de aplicaciones cuando éstas tienen un gran número de archivos de código fuente. Al principio, Git se pensó como un motor de bajo nivel sobre el cual otros pudieran escribir la interfaz de usuario o front end como Cogito o StGIT. 3​ Sin embargo, Git se ha convertido desde entonces en un sistema de control de versiones con funcionalidad plena. 4​ Hay algunos proyectos de mucha relevancia que ya usan Git, en particular, el grupo de programación del núcleo Linux

CARACTERÍSTICAS

El diseño de Git se basó en BitKeeper y en Monotone.

El diseño de Git resulta de la experiencia del diseñador de Linux, Linus Torvalds, manteniendo una enorme cantidad de código distribuida y gestionada por mucha gente, que incide en numerosos detalles de rendimiento, y de la necesidad de rapidez en una primera implementación.

Entre las características más relevantes se encuentran:

Ø  Fuerte apoyo al desarrollo no lineal, por ende, rapidez en la gestión de ramas y mezclado de diferentes versiones. Git incluye herramientas específicas para navegar y visualizar un historial de desarrollo no lineal. Una presunción fundamental en Git es que un cambio será fusionado mucho más frecuentemente de lo que se escribe originalmente, conforme se pasa entre varios programadores que lo revisan.
Ø  Gestión distribuida. Al igual que Darcs, BitKeeper, Mercurial, SVK, Bazaar y Monotone, Git le da a cada programador una copia local del historial del desarrollo entero, y los cambios se propagan entre los repositorios locales. Los cambios se importan como ramas adicionales y pueden ser fusionados en la misma manera que se hace con la rama local.
Ø  Los almacenes de información pueden publicarse por HTTP, FTP, rsync o mediante un protocolo nativo, ya sea a través de una conexión TCP/IP simple o a través de cifrado SSH. Git también puede emular servidores CVS, lo que habilita el uso de clientes CVS pre-existentes y módulos IDE para CVS pre-existentes en el acceso de repositorios Git.
Ø  Los repositorios Subversion y svk se pueden usar directamente con git-svn.
Ø  Gestión eficiente de proyectos grandes, dada la rapidez de gestión de diferencias entre archivos, entre otras mejoras de optimización de velocidad de ejecución.
Ø  Todas las versiones previas a un cambio determinado, implican la notificación de un cambio posterior en cualquiera de ellas a ese cambio (denominado autenticación criptográfica de historial). Esto existía en Monotone.
Ø  Resulta algo más caro trabajar con ficheros concretos frente a proyectos, eso diferencia el trabajo frente a CVS, que trabaja con base en cambios de fichero, pero mejora el trabajo con afectaciones de código que concurren en operaciones similares en varios archivos.
Ø  Los renombrados se trabajan basándose en similitudes entre ficheros, aparte de nombres de ficheros, pero no se hacen marcas explícitas de cambios de nombre con base en supuestos nombres únicos de nodos de sistema de ficheros, lo que evita posibles, y posiblemente desastrosas, coincidencias de ficheros diferentes en un único nombre.
Ø  Realmacenamiento periódico en paquetes (ficheros). Esto es relativamente eficiente para escritura de cambios y relativamente ineficiente para lectura si el reempaquetado (con base en diferencias) no ocurre cada cierto tiempo.

ÓRDENES BÁSICAS

GIT FETCH:

Descarga los cambios realizados en el repositorio remoto.

GIT MERGE <NOMBRE_RAMA>:

Impacta en la rama en la que te encuentras parado, los cambios realizados en la rama “nombre_rama”.

GIT PULL:

Unifica los comandos fetch y merge en un único comando.

GIT COMMIT -AM "<MENSAJE>":

Confirma los cambios realizados. El “mensaje” generalmente se usa para asociar al commit una breve descripción de los cambios realizados.

GIT PUSH ORIGIN <NOMBRE_RAMA>:

Sube la rama “nombre_rama” al servidor remoto.

GIT STATUS:

Muestra el estado actual de la rama, como los cambios que hay sin commitear.

GIT ADD <NOMBRE_ARCHIVO>:

Comienza a trackear el archivo “nombre_archivo”.

GIT CHECKOUT -B <NOMBRE_RAMA_NUEVA>:

Crea una rama a partir de la que te encuentres parado con el nombre “nombre_rama_nueva”, y luego salta sobre la rama nueva, por lo que quedas parado en esta última.

GIT CHECKOUT -T ORIGIN/<NOMBRE_RAMA>:

Si existe una rama remota de nombre “nombre_rama”, al ejecutar este comando se crea una rama local con el nombre “nombre_rama” para hacer un seguimiento de la rama remota con el mismo nombre.

GIT BRANCH:

Lista todas las ramas locales.

GIT BRANCH -A:

Lista todas las ramas locales y remotas.

GIT BRANCH -D <NOMBRE_RAMA>:

Elimina la rama local con el nombre “nombre_rama”.

GIT PUSH ORIGIN <NOMBRE_RAMA>:

Commitea los cambios desde el branch local origin al branch “nombre_rama”.

GIT REMOTE PRUNE ORIGIN:

Actualiza tu repositorio remoto en caso que algún otro desarrollador haya eliminado alguna rama remota.

GIT RESET --HARD HEAD:

Elimina los cambios realizados que aún no se hayan hecho commit.

GIT REVERT <HASH_COMMIT>:

Revierte el commit realizado, identificado por el “hash_commit”.

GITKRAKEN

GitKraken es una potente y elegante interfaz gráfica multiplataforma para Git desarrollada con Electron. De forma muy sencilla podemos llevar el completo seguimiento de nuestros repositorios, ver ramas, tags, crear nuevos, todo el historial de nuestro trabajo, commits etcétera.
Si aún no conoces Git, es un sistema para llevar a cabo el control de versiones de tus desarrollos, imagina que tienes que desarrollar una nueva aplicación y quieres conocer el completo proceso de la misma, marcar puntos importantes y poder trabajar con varios compañeros en un mismo proyecto, ahí entra Git, aquí tienes una guía rápida sobre Git.
GitKraken es multiplataforma, por lo tanto, podemos utilizarlo en windows, linux y mac os.

Este sistema para el control de versiones con git tienes dos planes, uno gratuito para siempre y otro de pago el cual ofrece mucha más funcionalidad, y no es excesivamente caro si te es de ayuda, un plan anual de 5$ al mes, 60$ al año por usuario.

¿PORQUE GITKRAKEN?

Es un interfaz muy bonito y fácil de usar y de entender es una forma interesante de usar Git ya que Git está diseñado para usarlo en terminal lo cual nunca me gusto.
Normalmente vemos tutoriales de Git o de GitKraken de como clonar o administrar un repositorio en GitHub o Gitbucket esta vez vamos a ver como lo configuramos y administramos, pero desde un repositorio privado y fuera de los proveedores comunes, en este caso les voy a mostrar cómo se crea y se administra desde un repositorio de google cloud, que es donde tengo mi servidor y mi repositorio propio.

¿Qué necesitamos o que vamos a ocupar?

Vamos ocupar varias cosas para empezar voy a dejar un link de los sitios oficiales por si quieres descargar la versión más nueva y actualizada, como una opción más. Recordemos que esto funciona para cualquier sistema operativo en mi caso se utiliza en computadoras Apple y computadoras Windows con el mismo proyecto
1.       Un repositorio (en cualquier lugar o proveedor en mi caso va a ser google cloud pero puede ser cualquier otro).

2.       Git el instalador de Git

3.       GitKraken el instalador de GitKraken

INTALACIÓN O PREPARACIÓN

Para esta etapa se explica cómo se instala y prepara todo para el proyecto como lo he mencionado antes se puede con cualquier otro proveedor yo lo voy a hacer con google cloud, entonces si es otro proveedor nada más busca la misma opción, pero un tu proveedor.

PASO 1

Vamos a abrir o crear un repositorio de código fuente. Para ello ingresamos en la cuenta de google cloud o del proveedor si no tienes uno debes crear la cuenta.

Una vez que ingresamos nuestra cuenta nos envía a la ventana de inicio ahí le damos clic en CONSOLA

 Cuando le damos consola nos envía al inicio del servidor de ahí vamos al menú y buscamos la opción Repositorios de Código fuente


Una vez ingresado a nuestra opción nos va a enviar a los repositorios existentes o nos envía una ventana de empezar le damos clic al botón.


Luego seleccionamos un nombre de del repositorio que deseamos crear


Una vez creado el nombre nos abre 3 opciones podemos utilizar cualquiera de las 3 pero en este caso vamos a Enviar código desde un repositorio de Git local a tu repositorio de Cloud.
Seleccionamos SDK de Google Cloud y seleccionamos Clonar el repositorio de Cloud en un repositorio de Git local


Una vez ahí seleccionamos Generar y almacenar tus credenciales de Git 


Ahora debemos ingresar nuestras credenciales de la cuenta donde se encuentra el repositorio 


 Ingresamos la cuenta y la contraseña de la cuenta


Le damos permiso a google para crear las llaves necesarias


Una vez ingresado nos genera las credenciales para poder crear el repositorio en mi computadora 



Estos dos parámetros tanto los nombres de usuario son súper importantes debes guardarlos bien yo normalmente lo pego en un txt o documento de texto.
Con eso estamos listos para clonar nuestro repositorio.

PASO 2

Vamos a instalar Git en la computadora que queremos tener una copia del repositorio el Git recordemos no importa el sistema operativo esta parte es muy fácil empecemos 


En mi caso voy a instalar la versión 2.15.0 de 64 bits podemos instalar la versión actual sin importar la que sea ejecutamos como administrador el instalador.
En este paso solo le damos siguiente, siguiente, siguiente hasta instalar.










PASO 3

En este paso vamos a instalar el GitKraken vamos al instalador y ejecutamos como administrador
Git



Una vez instalado vamos a clonar nuestro repositorio  para eso le damos clic en el icono de la carpeta





Se nos abre esta ventana donde seleccionamos Clone


Ahora pegamos nuestros creenciales los que guardamos en el documento txt la primera es donde queremos pegar la carpeta del repositorio yo lo voy a hacer en el escritorio creo una carpeta nueva y ahí lo clono

Y en la segunda opcion colocamos el link de nuestro respositorio.


Para saber la ruta o URL del repositorio vamos a nuestra consola de google cloud y la copiamos

Para ello nos vamos a repositorios. 



Una vez copiado el link y seleccionada la carpeta clonamos


Una vez termina de cargar le damos Open Now


Listo nuestro repositorio ha sido creado 



Arquitectura del Big Data y Cloud Computing en Azure

Conversatorio: "Arquitectura del Big Data y Cloud Computing en Azure", tenemos como invitado a Victor Vargas Arce y los panelistas...