El trabajo misterioso de un desarrollador de Kernel: una entrevista con un SiteGrounder

Hay mucho trabajo alrededor de la creación de un gran producto de hosting. Parte de nuestro esfuerzo es garantizar un rendimiento superior de las páginas de nuestros clientes en cualquier circunstancia, y esto ocurre gracias a nuestra propia tecnología en infraestructura de hosting, construida completamente en contenedores Linux. El mantenimiento de las especificaciones de estas instalaciones personalizadas requieren de un talento y habilidades especiales; de un desarrollador del Kernel de Linux. Dado que no hay mucha gente programando a dicho nivel, la descripción de su puesto resulta un tanto misteriosa. La verdad es que estamos muy orgullosos de contar con un talento tan especial en nuestro equipo de SiteGround, y creímos que podría ser interesante contaros más acerca de su trabajo y cómo ayudan a que tu página funcione mejor y de forma más segura - desde nuestras soluciones StartUp hasta el nivel Enterprise. Te presentamos a Angel Shtilianov, nuestro especialista de alto nivel, responsable del desarrollo del kernel de Linux en nuestros servidores.

Angel, ocupas un puesto interesante aquí en SiteGround: Desarrollador del Kernel de Linux. ¿Podrías explicar qué es la programación del kernel y sus diferencias respecto al desarrollo standard de software?

Angel: generalmente el kernel es el núcleo de tu sistema operativo, ya sea Linux, Windows o cualquier otro. Se encarga de tareas esenciales como: gestión del hardware, uso de memoria, alineación de datos a diferentes dispositivos de almacenamiento y mucho más. Aquí reside el misterio y la gran importancia del desarrollo del kernel. Hace que todas estas tareas trabajen a la vez y lo hagan sin complicaciones.

Los desarrolladores de kernel viven en un mundo no tan fácil de imaginar por la mayoría de personas ya que no dispone de interfaz de usuario. Este es el mundo entre las apps que usamos cada día, y el hardware (o como lo llamamos, el metal al desnudo). Todo ahí tiene un propósito, y siempre asegurando una base estable para un funcionamiento fluido de todas las apps. Por otra parte, está el software de espacio de usuario que implementa todas las apps, sirviendo las necesidades específicas del usuario final.

¿Por qué decidiste comenzar una carrera profesional en ingeniería de kernel?

Angel: comencé a trabajar con ordenadores hace muchos años cuando aún tenían algunos KB de memoria y sin potencia de computación virtual (en términos actuales de rendimiento computacional). Los discos duros eran del tamaño de una lavadora y no había una interfaz gráfica de usuario. En aquella época, salvo escribir texto, no había nada más que hacer frente a esa máquina. No había juegos, ni internet y mayoritariamente - nada que te distrajera. Por aquél entonces, la mejor inversión de tiempo era invertir en ti mismo intentando crear un programa de ordenador. Estaba ansioso por aprender cómo utilizar los recursos limitados de los que disponía para crear cosas que un ordenador pudiera hacer más rápido y mejor que un humano.

Comencé a utilizar Linux a finales de los 90 porque era un proyecto completo en código abierto. Esto significa que, cuando tienes algo que resolver, puedes bucear por todo el código del cual depende tu funcionalidad, revisarlo, y, eventualmente, optimizar el código. Puedes compartir, preguntar y mejorar tu trabajo y a ti mismo ayudando a otros también. Hay mucha gente alrededor del mundo utilizando y escribiendo tecnologías de código abierto. Ya sea escribiendo código abierto o utilizándolo, todos ayudan a que todo siga hacia delante.

¿Qué diferencia el kernel en los servidores de SiteGround frente a uno estándar?

Angel: Bueno, nuestro kernel no es completamente diferente como base de código. Es diferente en la forma en que evoluciona, y en la forma de su mantenimiento. No está personalizado solo para los casos de uso de nuestros clientes, sino que está optimizado para el mejor rendimiento en nuestra infraestructura. Para los clientes de SiteGround, esto significa seguridad de alto nivel y mejor manejo de los recursos en sus páginas web. Es la magia que hace posible alcanzar las necesidades de todos los clientes en referencia al rendimiento de servidor. Cada unidad individual encapsula sus recursos en un “paquete” que contiene su memoria, CPU, red, almacenamiento y otros recursos.

También nos esforzamos en encontrar cualquier vulnerabilidad de seguridad y regularmente mejoramos las características de seguridad. Para ofrecer los últimos parches de seguridad en nuestros servidores, también contamos con un sistema de parcheo en caliente, el cual nos permite realizar actualizaciones de seguridad en el kernel sin necesidad de reiniciar nuestros servidores, maximizando el tiempo de actividad y ofreciendo un espacio altamente protegido sin cortes en el servicio. A menudo tenemos conversaciones con otros desarrolladores de Linux, intentamos contribuir siempre que podemos y hasta ahora nuestro equipo ha escrito más de 400 parches de kernel, donde docenas de ellos, son parte del código kernel base de Linux.

En SiteGround utilizamos contenedores Linux al contrario al uso de la tradicional virtualización. ¿Puedes explicarnos cuáles son los beneficios?

Angel: la tecnología de contenedores Linux es un ecosistema completo funcionando en nuestros servidores. Su propósito es garantizar la privacidad de los datos y recursos de los clientes. También, dependiendo en las necesidades del cliente, podemos extender sus recursos y ofrecer servicios de alta fiabilidad sin interrupción. Hace posible escalar y proteger el crecimiento del negocio de nuestro cliente permitiendo más flexibilidad. Por otra parte, la virtualización tradicional, causa un alto uso de recursos al tener que emular cada recurso dentro de cada máquina virtual. Cuando eres capaz de evitar este consumo extra, el cliente utiliza el total de los recursos que está contratando, la diferencia en el rendimiento y la optimización de recursos es muy clara.

¿Por qué no está tan extendido en las empresas de hosting el trabajo de desarrollador de kernel?

Angel: dado lo específico que es este trabajo, muchas empresas no tienen la necesidad de disponer de su propio kernel. Cuando una empresa construye un producto propio que requiera de ajustes adicionales, alguien debería hacerse cargo de ello. En SiteGround creamos nuestros propios servicios y optimizamos el software en toda nuestra plataforma de hosting, comenzando por el kernel de Linux.

Nuestro sistema gestiona sin pausa cientos de peticiones que se realizan en nuestros servidores desde el software de los usuarios, ya que no queremos que nuestros clientes tengan que esperar a que el servidor “les preste atención”. Es otra de las razones por las que creamos tecnología personalizada, con el inconveniente de que requiere muchas modificaciones, optimizaciones y la necesidad de que alguien se adentre en el código del kernel de Linux. Como podéis ver, esa persona es una pieza importante dentro del global del producto, el desarrollador de kernel.

¿Hay pronto algo nuevo y excitante que nuestros clientes pueden esperar de nuestro equipo de kernel?

Angel: bueno, esa es una pregunta difícil dada la naturaleza del software de kernel. Puedo revelar que en estos momentos estamos probando la versión 4.14 del kernel de Linux. También estamos perfilando el lanzamiento del último mecanismo de seguridad que debatimos con la comunidad durante el Open Source Summit NA 2017. Mientras tanto nos hacemos cargo de la seguridad, funcionalidad y rendimiento de nuestros servidores. También estamos mejorando nuestra infraestructura interna para estar preparados para cualquier tipo de reto que pueda surgir. Es un servicio que nuestros clientes reciben en todo momento, es parte de nuestra filosofía como artesanos.

Desarrollo de producto - Técnico

Entusiasta de todas las aplicaciones Open Source que te puedas imaginar, pero en WordPress más que ninguna. Añade una pizca de amor por el diseño web, nuevas tecnologías, SEO ¡y ya lo tendrás!

Contestar

* (Requerido)