-
Construyendo una plataforma Big Data open-source desde cero (I): Persistencia
Hay muchos motivos por los que se puede necesitar una plataforma de Big Data: desde analizar y producir conocimiento a partir de datos procedentes del negocio, hasta crear modelos de inteligencia artificial a partir de textos o imágenes. Los datos que se almacenarán, en cada caso, son distintos. Los flujos...
-
¿Deberíamos usar Terraform como herramienta de Despliegue Continuo?
En ARIMA, desde hace unos años, hemos apostado por Kubernetes y el ecosistema cloud native que lo rodea. Nos hemos hecho miembro de la Cloud Native Computing Foundation y hemos promovido el uso de muchos de sus proyectos en nuestros clientes. Desde Helm y kustomize para gestionar los despliegues de...
-
¿Es el fin de la pandemia el fin del trabajo remoto?
Una de las cosas que teníamos claras cuando creamos ARIMA en 2013 era que íbamos a ser una empresa en la que el trabajo remoto iba a estar a la orden del día. No pretendíamos hacer de esto nuestra bandera ni una pose, en el fondo era una decisión egoísta...
-
Testcontainers: contenedores al servicio del testing
Siempre he sido más fan de los test unitarios que de los tests de integración, sobre todo por un motivo: no necesito nada externo para poder pasarlos. No necesito tener una base de datos arrancada, un servicio externo al que conectarme o un Kafka funcionando para poder pasar los tests...
-
Funciones con AWS Lambda
Recientemente, la palabra serverless está más y más presente en posts, foros, o cualquier recurso relacionado con el software. Por si no sabes lo que es, serverless implica despreocuparnos por la máquina donde se ejecuta nuestra aplicación y trivializa su despliegue. Es un concepto que tiene su miga, así que...
-
Mi experiencia con el examen CKA
El pasado lunes 22 de marzo me examiné del certificado CKA de Linux Foundation, y he venido a contaros mi experiencia sobre cómo lo preparé y lo que podemos esperar en este examen. Os recomiendo encarecidamente que leáis también un post que hizo mi compañero Fernando hace unos meses sobre...
-
Lecciones aprendidas sobre Contract Testing
A lo largo de varios posts, hemos ido viendo cómo a consecuencia de la evolución de las arquitecturas de las aplicaciones surgen nuevas necesidades en el ámbito del testing. Nos hemos centrado en una concreta: tan importante como testear las funcionalidades en consumer y producer de forma independiente lo es...
-
Aumentando la calidad de nuestras infraestructuras de Kubernetes: Open Policy Agent
No hay que irse muy lejos para ver que Kubernetes continúa creciendo como la tecnología líder en el ecosistema nativo de la nube. En una reciente encuesta de la CNCF muestra que el 78% de los participantes están usando Kubernetes en producción. Con este panorama donde hay muchos proyectos con...
-
CVE-2020-8554: Man in the Middle - Vulnerabilidad en Kubernetes
Cada día se descubren nuevas vulnerabilidades que afectan a las librerías y productos que utilizamos a diario. Hoy le ha tocado a Kubernetes.
-
Kubernetes ha deprecado Docker
Recientemente se ha anunciado a través del changelog de Kubernetes que se depreca el soporte a Docker en la próxima versión, v1.20, y que en futuras versiones será eliminado.
-
He asistido a una conferencia en tiempos de pandemia: Tarugoconf
Hoy anunciaremos que el próximo 23 de octubre se celebrará la #tarugo5
-
Utilizando Docker dentro de Kubernetes
En un post anterior hablé sobre el problema de otorgar privilegios a un contenedor y los riesgos que esto supone. Hoy quiero presentaros un caso concreto en el que se otorgan privilegios a un contenedor y algunas alternativas.
-
Jugando con Spring Cloud Contract
En un post anterior hemos visto cómo surgen nuevas necesidades en el ámbito del testing derivadas de la evolución de las arquitecturas de las aplicaciones.
-
Exprimiendo tu Data Lake (Parte I, Hudi)
Desde que surgieron las primeras bases de datos en los años 70, siempre se ha buscado la forma de explotar esa información tratando de extraer indicadores que ayuden en la toma de decisiones. Así es como nacieron las herramientas conocidas como Data Warehouse que estaban dirigidas a almacenar y explotar...
-
Estrategia de Contract Testing: Producer driven o Consumer driven
En un post anterior hemos visto cómo surgen nuevas necesidades en el ámbito del testing derivadas de la evolución de las arquitecturas de las aplicaciones. En él, hablamos de cómo con el paso de los años hemos pasado de desarrollar aplicaciones basadas en una arquitectura monolítica a aplicaciones basadas en...
-
¿Deberías utilizar contenedores privilegiados?
Al trabajar con contenedores es importante tener siempre en cuenta la seguridad del contenedor, o más importante, de la máquina que lo ejecuta. Una mala decisión a la hora de desplegar un contenedor puede otorgarle acceso total sobre el host, y esto puede tener consecuencias negativas si este contenedor tiene...
-
Introducción a Contract Testing, estableciendo el contexto
El desarrollo de aplicaciones ha evolucionado, y por tanto han surgido nuevas necesidades a la hora de hacer testing y nuevas herramientas para hacerles frente ¡Vamos a verlo!
-
Descubriendo JUnit 5: Tests Parametrizados
Estaba preparando el ejemplo de tests para el post Mutation testing systems, mejorando la calidad de los tests y me surgió una duda sobre si podría probar de forma más exhaustiva el método under test, ya que era consciente de que me dejaba algunos ejemplos sin probar.
-
Mutation testing systems, mejorando la calidad de los tests
Profesionalmente me etiqueto como desarrolladora, aunque no me gustan mucho las etiquetas y me gusta más decir que la razón de ser de mi trabajo es: crear software de calidad. Pero ¿qué es software de calidad? A mi me gusta definirlo como sigue:
-
Cómo preparé y aprobé el Certified Kubernetes Application Developer (CKAD)
En este post voy a explicar un poco mi experiencia de cómo preparé y aprobé el Certified Kubernetes Application Developer (CKAD).
-
Buenas prácticas para escribir un Dockerfile
A la hora de escribir un Dockerfile, las posibilidades son infinitas. Se pueden crear imágenes con el mismo propósito, que funcionen similar, pero que estén estructuradas de una manera muy diferente. Empezando por elegir una imagen de partida (FROM), pasando por el orden de los comandos que ejecutamos al construir...
-
AWS: Cuentas y Organizaciones
En esta entrada quiero hablar sobre las cuentas de Amazon Web Services y sobre la arquitectura que hay por detrás. La gestión de cuentas de AWS es un poco compleja y puede ralentizar el tiempo necesario para empezar a usar sus servicios (cada vez que pruebo algo nuevo tengo la...
-
¿Es viable ejecutar Java en contenedores Docker?
En nuestro alrededor existen muchas empresas que llevan años trabajando sobre Java utilizando un stack tecnológico tradicional (Spring, Tomcat, Weblogic, JPA, etc). Esta infraestructura ha sido bastante estable en el tiempo y ha sufrido pocos cambios.
-
Utilizando el estándar OAuth2 de forma segura
El estándar OAuth2 es tan conocido como complejo. El hecho de que sea un estándar en evolución y el exceso de información disponible, hace que sea muy fácil encontrar artículos con información contradictoria o que se recomiende el uso de flujos que actualmente se consideran “legacy” por motivos de seguridad....
-
Hemos estado en la Commit Conf 2019
Hace dos semanas asistí a la Commit Conf 2019 en Madrid! en este post os voy a contar un poco mi experiencia allí y qué charlas me llamaron más la atención.
-
Nuestro proceso de selección
Por lo general, los procesos de selección suelen convertirse en situaciones incómodas para los candidatos. A los nervios habituales, se une el hecho de que los entrevistadores recurren cada vez más a técnicas en las que se busca incomodar al entrevistado. Para conseguir este objetivo, es habitual hacer preguntas extrañas...
-
[CSS] Switch off the lights
El “modo oscuro” en las interfaces de usuario se ha puesto de moda el último año. Antes eran pocas las aplicaciones (nativas o webapps) que tenían una interfaz alternativa a la de colores blancos/claros que utilizan la mayoría de UIs por defecto. Y las que lo ofrecían (por ejemplo, Youtube)...
-
Spring Data, JDBC frente a JPA
Spring Data JDBC es una librería para facilitar la creación de repositorios que acceden a bases de datos sin tratar con la complejidad que supone utilizar JPA. El hecho de que JPA ofrezca muchas funcionalidades como caché, carga de relaciones bajo demanda (Lazy), etc. supone que el desarrollador tenga que...
-
Java en contenedores Docker con Jib
Generalmente cuando se quiere empaquetar una aplicación Java en un contenedor Docker, se crea un fichero Dockerfile en el proyecto para especificar las propiedades de la imagen Docker, tales como: en qué imagen se basa, cuál es el entrypoint, qué puerto se expone, etc.