Multi-language pipelines with Jenkins, Docker and Kubernetes (slides and code from Oracle Code One 2018 conference)

In this post, I would like to share the slides and code for a recent talk I was honoured to delivered at two conferences – DevOpsDays Riga, and Oracle Code One San Francisco – about “Multi-language pipelines with Jenkins, Docker and Kubernetes”. More information about these events can be found here:

DevOpsDays Riga:

Oracle Code One:

This talk (and the companion code) is the result of working with teams and helping them to move forward into a DevOps journey, balancing the need for decentralised execution and team agility, vs. the need for standardisation, knowledge sharing and best practices adoption across teams.

In DevOpsDays Riga, I delivered the presentation as an ignite session – a format that I never tried before, and resulted to be really challenging and rewarding, specially for a topic as deep and complex as this one.

The slides for the ignite talk are available at Slideshare here:


The session was recorded and is available at YouTube here:

In Oracle Code One San Francisco, the presentation was in a more ‘usual’ conference session fashion, and I joined forces with Julio Palma ( to elaborate on the concept sketched in the ignite talk, present in all due detail “what’s in a pipeline” coming from our own lessons learned, and demonstrated the approach with two exemplar applications, one Maven-based Java/Web applications (Spring Pet Clinic for the win!), and another small application written in Python.

The slides for the Code One session are available at Slideshare here:


The session was recorded as well and is available at YouTube here:

The exemplar code can be found online in these two repositories:

Java version:

Python version:

Thank you very much to both events for giving me the opportunity to share our experiences, to Julio for sharing the stage with me at San Francisco event, to Vicente González for all the help and support to make this presentation a rock solid one as it went, and to everyone attending for their feedback and very good questions.


Open Source Power Tools (slides from Opensouthcode 2018 conference)

In this post I would like to share the slides for my talk at Opensouthcode 2018 conference about “Open Source Code Inspection and Testing Power Tools”.

More information about this conference can be found here:

In this talk, I shared with the audience recommendations on several software engineering practices, not as commonly used as they should, along with some of the best open source tools in the community that can be (should be?) used by all of us:

  • Code inspection.
  • Code coverage.
  • Mutation testing.
  • Mocks, stubs and test doubles.
  • Security testing.

Thank you to the organisation of the conference for having me, and to the audience to the superb turnout.

Slides from JavaOne 2017 sessions

And yet another wonderful JavaOne conference has finished. Five days packed with incredible content and networking opportunities, for which yours truly along with my “partners in crime” Vicente Gonzalez and Julio Palma were a small part.

This post collects the links to the presentation materials for each of the three sessions that we delivered during JavaOne 2017, on an alternative site so they remain available in case the conference site stops allowing to download them. Hope you enjoyed them and find them valuable.

Build your own Application Performance Monitoring (APM) solution with ELK and JMX – part 2

This post is the second (and last) part in this short series about building an Application Performance Monitoring (APM) solution with open source tools.

In part 1, we were able to build a simple solution to collect log statements, business metrics and JVM performance metrics (Logstash, JMX), and to retrieve data out of the store where they are indexed (Elasticsearch).

In part 2, we will configure a rich dashboard to easily visualize the information stored in Elasticsearch.

We will start from what we completed in part 1: Pet Clinic application is ready and exposing logs through logging framework to a text file and publishing metrics out of the JVM through JMX. Logstash is parsing logs and filtering out interesting JVM metrics sending them to Elasticsearch, which is up and running and providing results to queries sent via browser using the REST API.

Continue reading “Build your own Application Performance Monitoring (APM) solution with ELK and JMX – part 2”

Build your own Application Performance Monitoring (APM) solution with ELK and JMX – part 1

Application Performance Monitoring is one key area to implement in projects to ensure proper and smooth operations from day 1. APM solutions provide development and operations team with near real-time insights on how the applications and services are performing in production, allowing for proactive tune of services, as well as for early detection of possible production issues.

There are many APM solutions in the market, with diverse range of capabilities, from the inner workings of the JVM (threads in use, memory pools, garbage collection and what not) to user experience in web and mobile applications.

APM solutions can also be expensive, which causes that many projects, small or short-termed, simply cannot afford one.

In this series of two blog posts we will show how to leverage FOSS tools to build an APM solution, which although more limited in capabilities, may be of use for small projects.

We will be leveraging ELK – Elasticsearch, Logstash, Kibana -, the Java Management Extension library (JMX) and the Spring Framework support for JMX to easily expose application data out of the JVM.

NOTE: The following guide is written on ELK stack 5.2.1. Other versions may need slight adjustments to commands and/or configuration.

Continue reading “Build your own Application Performance Monitoring (APM) solution with ELK and JMX – part 1”

Slides and video recording from Málaga JUG session on “Java and the Internet of Things”

The past day 17th of november I had the great honour to present a session in Málaga JUG about “Java and the Internet of Things”. (If interested in knowing more about the activities organised by the Málaga JUG follow us on Twitter: – stay tuned to new events on Meetup: – and if you are also a Scala enthusiast, don’t hesitate to follow the sibling group Málaga Scala Developers here:

Besides introducing basic concepts about the IoT and the role of Java and the JVM in the architecture of IoT solutions, we showed some demos with practical examples that hopefully will inspire on you fabulous new projects.


Slides (mostly in Spanish) are available on SlideShare:

A video recording of the session can be watched online here:

I hope that you enjoyed the session and wish to meet you all in future Málaga JUG events.

Slides and video recording for my session on “Lightweight Java Architectures” from OpenSlava 2016 conference

With the fond memories from our participation in OpenSlava 2016 conference (Bratislava, Slovak Republic) still fresh in my mind, I wanted to share with you the slides and video recording for my session on “Lightweight Java Architectures”.

Besides that session, I also conducted a hands-on workshop on ADOP, The DevOps Platform ( along with José María Gutiérrez, one of my teammates. Memorable time with the workshop participants. I wish we helped to spread the interest in ADOP and hopefully a few more ‘hackers’ willing to use it, improve it and extend it.

Our time in Bratislava was unforgettable. I am deeply grateful for having participated in such a great event, extremely well organized and hosted by some of the most talented people I’ve met (and have the great luck of working with them). You all rock!

Furthermore, I can only say thank you very, very much to all the people that voted this session as the best one of the conference. I feel honoured by your recognition and hope to meet you again soon.

These are the links:

Session abstract:


Video recording:


Finally, I would like to encourage you all to watch the video recordings for the whole conference which are available, organised by conference track, in the OpenSlava YouTube channel here:

Amazing panel of speakers and unparalleled selection of topics. Enjoy!