Publi

  • Balanceo de carga con Amazon Web Services Elastic Load Balancer. Ejemplos, consejos y trucos.

    AmazonWebservices_Logo.svg
    Cuando montamos un servidor web y los servicios que proporcionamos se hacen mayores (mayor cantidad de usuarios accede a ellos), inevitablemente debemos seguir una maniobra de escalado para dichos servicios. Tenemos muchas opciones, podemos tener servidores dedicados, o como primer paso utilizar servidores VPS como pueden ser DigitalOcean o Amazon AWS. En DigitalOcean, como muchos otros, tendrás que montarte tú todo, es decir, montar tu servidor e instalar HAProxy, Nginx, Apache (o el que quieras) en modo balanceador de carga, de modo que cada petición que entre será desviada a algún nodo web que tengamos conectado.… Leer artículo completo

  • Programas que me han salvado la vida este 2016

    photo-1477244075012-5cc28286e465Otro de los posts típicos de fin de año que me gusta hacer (bueno, el año pasado fue el primero, aunque hace unos años ya empecé con el tema). Sabemos que un navegador, un cliente de correo y tal vez un programa de música son esenciales (y un S.O., pero no quiero ser pesado con ese tema), así como la mensajería instantánea, aunque en este último caso debemos coger el programa que más utilicen nuestros contactos o alguno compatible.… Leer artículo completo

  • Introducción a la escalabilidad de aplicaciones web. Técnicas, opciones, seguridad y consejos.

    photo-1444312645910-ffa973656eba

    Llega un momento en la vida de una web en el que esta crece y lo hace hasta un punto en el que nuestro servidor se nos queda pequeño. Es el momento en el que necesitamos escalar nuestra aplicación web. ¿Cómo lo hacemos?

    Escalando aplicaciones web

    La escalabilidad es la capacidad de nuestra aplicación para crecer en su desempeño. Es decir, normalmente nuestra aplicación funcionaba cuando teníamos 1.000 (mil) usuarios al día, pero debería funcionar de la misma manera con 2.000, 10.000, 100.000 o incluso con 1.000.000 de usuarios por minuto.… Leer artículo completo

  • Cómo hacer un chat punto a punto seguro con openSSL

    photo-1453838956707-38a7aa3cd62d_r

    ¡ Vamos al lío !

    Lo que haremos hoy, será iniciar un chat cifrado vía openssl. Para hacer que el chat sea seguro, utilizaremos un certificado openSSL y los componentes s_client y s_server que vienen con la aplicación.

    Iniciando el servidor

    Dicho chat será entre un cliente y un servidor. Para ello, primero, tenemos que crear un certificado para el servidor. Por si no queréis leer el otro post, dejo aquí unas pequeñas instrucciones:

    1
    $ openssl req -x509 -newkey rsa:2048 -keyout clave.pem -out certificado.pem -days 3650 -nodes

    Nos preguntará una serie de cosas, país, estado, organización, e-mail, y cosas así que debemos rellenar.… Leer artículo completo

  • ¿ Por qué debemos trabajar en la seguridad hasta de un servidor de pruebas ?

    photo-1452782644016-16dd1931b279_r

    Esta historia sucedió a finales de 2014, mientras probaba la estabilidad y configuración de algunos programas en un servidor antes de llevarlos al servidor de producción. Como era un servidor de pruebas, y los datos que manejaba no eran privados, decidí no hacer nada para su seguridad. Es decir, usé contraseñas muy sencillas, firewall desactivado y todo con la configuración por defecto.

    Pruebas antes de utilizar en producción

    En general, esto es lo recomendable.… Leer artículo completo

  • Creando un cliente para un servicio de red con pocas líneas en C++

    neon_open_splitshire_r

    En la era actual, es muy importante que múltiples aplicaciones accedan a servicios online para obtener la información que desean (o incluso enviarla). Es decir, las aplicaciones han perdido su simplicidad de ejecutarse en una sola máquina, y han pasado a ejecutarse en múltiples máquinas conectadas a través de Internet.

    Y, aunque muchos piensan que C++ no es un lenguaje muy indicado para ello, y que no se pueden hacer estas cosas.… Leer artículo completo

  • Certificados de seguridad para nuestra web. Opciones y recomendaciones.

    photo-1431804876478-99c5c9387ccf_r

    Es muy importante proporcionar una navegación segura a nuestros visitantes. De hecho cada día está más de moda hacerlo; más y más webs proporcionan una versión segura, y otras imponen esa seguridad. Por ejemplo, si tenemos una tienda online, es importante que los datos sensibles, como el pago, o los datos de nuestros clientes se transmitan por canales seguros. Incluso si tenemos un sistema de usuarios, es recomendable que la contraseña de ese usuario viaje por un canal seguro.… Leer artículo completo

  • Servidor web seguro (HTTPS) en C usando openSSL (pruebas)

    Hace unos días veíamos un ejemplo de un cliente web SSL con ayuda de openSSL. Ahora vamos a hacer un servidor al que se pueda conectar. Se trata sólo de una prueba de concepto, nada que podamos utilizar en el mundo real, pero está bien para ver cómo funciona la biblioteca.

    Creando un certificado auto-firmado

    Lo primero que vamos a hacer es crear una llave y un certificado para utilizarlos.… Leer artículo completo

  • Conexión segura a un servidor web (HTTPS) en C usando openSSL

    Bueno, el código no tiene mucha más explicación. El objetivo es poder conectar a un servidor web a través de un protocolo seguro y recibir datos, pero también que podamos ver si hay algún problema con el certificado, verificar el algoritmo de cifrado y los datos del certificado, verificar los certificados intermedios, etc.

    Si ignoramos SSL, lo que tenemos que hacer es conectar con un servidor a través de un puerto determinado (como estamos en web, sería el puerto 80, por defecto), y mandarle una serie de datos:

    GET / HTTP/1.1[CRLF]
    Host: openssl.org[CRLF]
    User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:37.0) Gecko/20100101 Firefox/37.0[CRLF]
    [CRLF]

    Por ejemplo.… Leer artículo completo

  • Creando un modelo sencillo en Magento (paso a paso y con ejemplos)

    Anteriormente vimos cómo crear un plugin para Magento y cómo crear un controlador para Magento. Ahora le toca el turno al modelo. Intentaré poner con todo detalle todo el proceso.
    Por eso, vamos a editar app/code/local/NuestraEmpresa/nuestroPlugin/etc/config.xml, en nuestro ejemplo app/code/local/Poesia/HolaMundo/etc/config.xml para indicar que vamos a crear modelos y las conexiones de base de datos que se deben utilizar para el acceso. He pegado el archivo entero, pero indico con un comentario las novedades:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    <?xml version="1.0" encoding="UTF-8"?>
    <!--
    Opcionalmente podemos poner un comentario contando qué hace nuestro módulo, nuestra web,
    información sobre la licencia, etc
    -->
    <config>
        <modules>
            <Poesia_HolaMundo> <!-- namespace_modulo -->

                <!-- Esta es la versión de nuestro módulo -->
                <version>0.0.1</version>

            </Poesia_HolaMundo>
        </modules>

        <frontend>
          <!-- Lo que necesitamos para utilizar los controladores -->
          <routers>
        <holaMundo>
          <use>standard</use>
          <args>
            <module>Poesia_HolaMundo</module>
            <frontName>hm</frontName>
          </args>
        </holaMundo>
          </routers>
          <!-- Lo que necesitamos para utilizar los controladores -->
          <!-- Lo que necesitamos para el layout y las plantillas -->
          <layout>
        <updates>
          <holamundo>
            <file>poesia.xml</file>
          </holamundo>
        </updates>
          </layout>
          <!-- Lo que necesitamos para el layout y las plantillas -->
        </frontend>
        <!-- Necesario para informar a Magento sobre nuestro modelo -->
        <global>
          <models>
        <holamundo>
            <class>Poesia_Holamundo_Model</class>
            <resourceModel>holamundo_resource</resourceModel>
        </holamundo>
        <holamundo_resource>
            <class>Poesia_HolaMundo_Model_Resource</class>
            <entities>
            <pventamod>
                <table>poesia_postvtable</table>
            </pventamod>
            </entities>
        </holamundo_resource>
          </models>
          <resources>
            <holamundo_setup>
              <setup>
                <module>Poesia_HolaMundo</module>
              </setup>
              <connection>
                <use>core_setup</use>
              </connection>
            </holamundo_setup>
            <holamundo_write>
              <connection>
                <use>core_write</use>
              </connection>
            </holamundo_write>
            <holamundo_read>
              <connection>
                <use>core_read</use>
              </connection>
            </holamundo_read>
          </resources>

        </global>
        <!-- Necesario para informar a Magento sobre nuestro modelo -->
    </config>

    Ahora creamos el modelo (le intento dar a todo nombres diferentes para que veamos qué es cada cosa).… Leer artículo completo