Como elegir un servidor/hosting para un negocio online

shellshock-bash-bug-affects-apache-web-server-software
Estándar

Llevo desarrollando aplicaciones y páginas web cerca de 10 años, primero como Analista-Programador, y luego siendo IT Manager en algunas empresas, actualmente ocupo esa posición en el ecommerce Portobellostreet.es, una de las tiendas online de muebles mas valoradas en España.

En el puesto de CTO o IT Manager una de las decisiones que debes de tomar y que resultan mas críticas para el negocio es el tipo de hosting en el que vas a desarrollar y poner en producción tu aplicacion y base de datos. Como primera aclaración comentar que un negocio online no tiene que ser un ecommerce, puede ser un buscador tipo Idealista, una app móvil como Parkfy o un servicio de consulta como el de Sepín Editorial Jurídica (del que forme parte hace algunos años).

Mis criterios para contratar un servidor siempre han sido estos:

  • flexibilidad de Sistema Operativo: yo trabajo casi todos los proyectos en entornos Microsoft y muchos ISP directamente solo trabajan con Linux
  • Control Remoto: Al contrario que en un simple hosting, necesito tener acceso a todas las funcionalidades del servidor, es por ello que el control remoto (ya sea para Windows o Linux) es imprescindible.
  • Caracteristicas vs Precio: Espacio en disco, RAM, Plesk, Coste de transferencia, etc.
  • Escalabilidad: Aquí esta una de las diferencias fundamentales que separan los distintos tipos de servidor.
  • Confianza en el proveedor: Cuanto mas se trabaja en este ámbito mas se conocen las empresas que prestan un buen servicio de atención al cliente y las que no.

Ahora explicare los tipos de servidor que conozco en base a la escalabilidad (se que existirán mas pero me ciño a mi propia experiencia, los comentarios están abiertos para añadir información extra)

Hosting: Un hosting no es mas que un espacio de almacenamiento web en el cual el precio varia según el espacio contratado, el tamaño de base de datos y los extras (marketing online, email, etc.). Este tipo de servicio es el más básico y personalmente solo lo contrataría si fuese una empresa que solo necesita una web corporativa y poco mas. Salvo excepciones las empresas que lo ofrecen, no disponen de la posibilidad de cambiar automáticamente las características, en caso de necesitar ampliar alguna de las especificaciones contratadas, normalmente porque ese hosting es uno mas de las decenas de compartimentos que ocupan en un servidor mas grande. Esto hace que no sea recomendable para una aplicación que pueda ir creciendo en numero de usuarios o requerimientos técnicos. La gestión se realiza desde un panel web dentro del sistema del proveedor del servicio y no se tiene acceso a la gestión del propio servidor.

VPS (del inglés virtual private server): Esto es el siguiente nivel al hosting, solo que en este caso ya tenemos acceso a un sistema operativo completo, no solo a un panel de control. Al contratarlo, al igual que el hosting, tenemos que decidir que tamaño de disco, RAM, SO, etc…queremos tener en el servidor, los proveedores suelen ofrecer “paquetes” ya configurados a un precio especifico. Este es el servidor que recomendaria a alguien que,por ejemplo, prestase servicios de desarrollo web, ya que permite configurar cuentas de usuario de hosting para pequeñas aplicaciones o ecommerce a un precio ajustado.

Además al tener acceso al propio SO, si alguna de esas aplicaciones necesita escalarse, se puede migrar de una manera mas sencilla a un servidor mas grande.

Como contrapartida tiene el mismo problema que el hosting, no es escalable, ni se pueden modificar las especificaciones contratadas, ademas de que la CPU y la RAM son compartidas con otras tantas VPS en un servidor mas grande con sistema de virtualizacion. Si necesitas ampliar, tu mismo tienes que hacer la migración.

Servidor dedicado: Como su propio nombre indica es una maquina fisica que tienes en exclusiva para tus aplicaciones y webs, con su SO, disco, RAM, etc en exclusividad para ti. Las ventajas de ese tipo de servidor son sobre todo la disponibilidad de los recursos del servidor, ya que no se comparten con ningún otro cliente de la empresa de hosting. Como desventaja tenemos que son escalables “a medias”, ya que se pueden ampliar algunos recursos (como RAM y disco duro) pero a un precio bastante prohibitivo en ocasiones.

Cloud: Los servidores cloud pueden ofrecer varios servicios, siendo el mas comunmente usado el de servidor web, aunque tambien los hay solo de almacenamiento o base de datos. Un servidor cloud es lo mismo que un VPS pero usando una tecnologia que permite hacerlo completamente escalable (CPU, RAM, disco, load balancing, VPN´s, etc). En los 2 últimos años los precios de la tecnología cloud se han estabilizado bastante, siendo bastante razonables para empresas que buscan flexibilidad y escalabilidad en su servicios web, aunque tienen el handicap de que al ser virtualizado puede sufrir los mismos problemas que un VPS, al compartir los recursos físicos de un servidor entre varios servidores virtuales.

Como IT Manager de Portobellostreet.es tome la decision hace 2 años de pasar todas las aplicaciones y servicios web públicos a Cloud, ya que necesitaba cierta flexibilidad debido al aumento de visitas y carga en la base de datos. En la oficina central el ERP tiene un servidor dedicado ya que tenemos separados los datos de la web y del ERP, de tal forma que aseguramos el funcionamiento del ERP aunque se produzca una caída de la web y viceversa. Para empresas con un negocio online potente que necesite de servicios web siempre recomendaría un servidor cloud, ya que la flexibilidad compensa el ratio de fallos que puedan ocurrir en la plataforma, ademas de permitir ciertas técnicas con el load balancing (varios servidores respondiendo a peticiones web o de base de datos)

 

La porra del congreso 2016 ¿otra idea loca?

Estándar

Os presento un proyecto personal que se ha hecho realidad, Laporradelcongreso.com, no es una startup ni pretende serlo, es una idea que, gracias a mis conocimientos de programación, he podido llevar a cabo.

Es otra mas de mis locas ideas, ninguna de las cuales llego a tener éxito, quizás la que más se acerco fue TweetContentSharer, un servicio online de programación de mensajes para twitter, en el que llegue a tener 3.000 usuarios registrados….hasta que Twitter cambió su API, cosas que pasan.

Laporradelcongreso.com es mi nueva ida de olla. Es un servicio para rellenar una porra con los diputados que van a sacar los distintos partidos el 26J, y que muestra estadísticas medias de los resultados totales y diarios. La idea es usar este sistema no solo para estas elecciones sino para cualquier evento político, por supuesto totalmente gratuito y que solo tiene una finalidad lúdica. ¿Funcionara?…no lo se. ¿Era necesario?….no me importa.

Simplemente entra, rellena la porra y juegate unas cervezas con tus amigos.

La porra del congreso

La porra del congreso

Google presenta Spaces, una herramienta para compartir contenido a grupos

google-spaces
Estándar

Google presenta Spaces, una aplicación con la que aspira a llenar un vacio en su portfolio de servicios, las redes sociales.  Con Google + en punto muerto, la empresa creada por Larry Page y Sergei Brin busca meter la cabeza en el único sitio en el que, hasta el momento, Google no ha conseguido situarse en posiciones top de la industria.

Según Google “….Queríamos construir una mejor experiencia de compartir en grupo, así que hicimos una nueva aplicación llamada Spaces que permite a las personas obtener al instante gente para compartir en torno a cualquier tema, con Spaces , es muy sencillo encontrar y compartir artículos, vídeos e imágenes sin salir de la aplicación, ya que la búsqueda de Google, YouTube y Chrome vienen incorporadas.”

Cuando alguien comparte algo nuevo a un espacio, la vista de conversación le permite ver lo que el grupo está hablando sin perder ritmo.

Y si alguna vez quiere encontrar algo que fue compartido anteriormente (artículos, vídeos, comentarios o incluso imágenes) con una búsqueda rápida le permite usarlo en un instante.

Spaces permite crear un espacio con un solo toque para cualquier tema e invitar a cualquiera a través de mensajería, correo electrónico, una red social, o de otras formas.

En Google estan experimentando con Spaces de esta semana en el Google I / O.

Han creado un espacio para cada sesión en el que los desarrolladores pueden conectar entre sí y con los empleados de Google en torno a temas del evento.

Spaces será lanzando hoy en Android, iOS, escritorio y web móvil para todas las cuentas de Gmail.

Ver página de Google Spaces

Fotos, copyright Google: https://googleblog.blogspot.com.es/2016/05/introducing-spaces-tool-for-small-group.html

Solucionado: la página que solicita no se puede atender debido a la configuración de lista ISAPI y CGI

Estándar

Este es un error que aparece de vez en cuando cuando hacemos un deploy de aplicación en algún servidor nuevo, en el que la aplicación use la versión 4 de .NET.

La solucion estandar, que es la que muestro aquí, es bastante rápida y sencilla.

Debemos revisar si en la configuracion del IIS > Restricciones de ISAPI y CGI , tenemos permitidas las rutas de acceso de la version 4 de ASP.NET. Os dejo unos pantallazos.

Seleccionamos el nombre del servidor en el IIS, luego vamos a la seccion “IIS” de la configuración y abrimos “Restricciones de ISAPI y CGI”.

iis1En la siguiente pantalla debemos seleccionar las extensiones de ASP.NET v4 y pulsar “Permitir”

iis2

Esta es la causa principal del error “la página que solicita no se puede atender debido a la configuración de lista ISAPI y CGI”.

Si conoces otra solución a esta incidencia escribelo en los comentarios.

 

Como extraer todo el codigo VBA de una aplicación Access

migracion_access_sql_server-(1)
Estándar

En mas de una ocasión los que trabajamos con Access nos hemos tenido que remangar para tratar de migrar una aplicación Access con VBA a un sistema mejor, como puede ser .NET.

Para ello existen ciertas herramientas (de las cuales todavía no he encontrado ninguna que funcione) en internet, pero sin duda la manera “manual” siempre existe y muchas veces es la indicada para hacer este tipo de operaciones. Lo peliagudo del asunto es extraer todo el código de la aplicación, que en mi caso y dado que prácticamente es un ERP es bastante extenso y con muchos formularios.

Para ello tenemos esta maravillosa función que nos permitirá extraer el código VBA de cada formulario a archivos txt, que luego podemos a su vez intentar migrar con alguna de las herramientas online que existen en el mercado

Esta función se ejecuta desde otro archivo access o VB, y es necesaria la referencia Microsoft Visual Basic for Applications Extensibility (en mi caso la 5.3) que hay que añadir al proyecto.

Private Sub Comando33_Click()
‘Make sure a root directory was specified
Dim RootDirectory As String
RootDirectory = “ruta donde quiero guardar los txt”

Dim appAccess As New Access.Application
Dim objProj As VBProject
Dim objComponent As VBComponent
Dim intFile As Integer
Dim strModule As String
ExportText = True

Set appAccess = CreateObject(“Access.Application”)
appAccess.OpenCurrentDatabase (“rutademiarchivo.mdb”)

Set objProj = appAccess.VBE.ActiveVBProject

For Each objComponent In objProj.VBComponents

‘Export the modules as *.txt files
If ExportText Then
intFile = FreeFile
Open RootDirectory & “\” & objComponent.Name & “.txt” For Output As #intFile
strModule = objComponent.CodeModule.Lines(1, objComponent.CodeModule.CountOfLines)
Print #intFile, strModule
Close #intFile
End If
Next objComponent
‘Clean up
Set objComponent = Nothing
Set objProj = Nothing
appAccess.CloseCurrentDatabase
Set appAccess = Nothing

End Sub

Si os da algun fallo es posible que este leyendo un report, pasais de linea y seguis con la ejecución