A Copernican Revolution: DevOps, Kubernetes and Cloud Native

Avanscoperta: Hi Jacopo! One of the latest addition to our team of trainers and experts. A very warm welcome from all of us! 🙂

Jacopo: Thank you very much! It’s amazing to be part of the team 🙂

Avanscoperta: Jacopo, tell us how did you get into computers and programming. And also, what was your favourite videogame as a kid?

Jacopo: Well, let’s start with the videogame: Starcraft, by far. I’m a strategist 😉 I think also the first edition of Monkey Island had a role in shaping me, I wouldn’t explain otherwise my passion for Grog.

How I got into computers and programming is really hard to say, I’ve been into taming machines for as long as I can remember with me sneaking into my dad’s office to play with the terminal and write random code, having the computer doing things as I instructed was pure adrenaline! What a wonderful time!

So many afternoons, so many…

Avanscoperta: Not only a businessman and a developer full time (and very recently a father! Congrats!), Jacopo is also one of the main organisers of Milano DevOps. What are the challenges of having to change hats so frequently, and what’s the coolest thing of the community you’ve helped putting together in Milan?

Jacopo: Well, by far the most challenging aspect of wearing so many hats is how you drive the conversation and how you make it relevant for the person you’re talking to, which more often than not is a professional vertically focused on a single area, with a specific domain language, and more importantly with specific goals and priorities (ie. engineer, software developer, business man, etc…). Learning to deliver the right message is essential, speak different domain languages is challenging.

I don’t mind too much though. After all, my job as a DevOps is to bridge different worlds, isn’t it?

Avanscoperta: A businessman we said. When and why did you decide it was time to do “your own thing”, and how is it going so far?

Jacopo: I’ve started about two years ago as a solo contractor, we are now a small but structured team handling pretty big and critical projects – no better words could describe what we do: if we fail, everything goes down. 🙂  I’m very happy and proud about what we have achieved so far.

The ‘aha!’ moment arrived about 3 years ago when the company I worked for back then (huge shoutout to Spreaker, they are awesome!) decided it was worth investing on Kubernetes and start migrating services on it. After a year working on it, I knew it was going to trigger a copernican revolution on the way we handle infrastructures and develop applications. It was the right call back then and here we are!

Avanscoperta: You’ve lived for quite some time in the UK. Tell us something about your English experience and how did that enrich the way you see things now (in your job but not only).

Who hasn’t seen “The Snatch”? One of the funniest descriptions of the Big SMoke! 🙂

Jacopo: London was a very formative, exciting and tough experience. Technically, it was a unique opportunity where I had a chance to experiment with a broad range of tools and develop software with a strong focus on quality (I’ve been a lot into TDD and XP in the past, so for me it was an absolutely priceless opportunity). This is where I actually started my shift from pure software engineering/code to process automation and devops practices.

Obviously the tech scene in London is on fire and I guess there are few other places in Europe where you have access to such a high level of knowledge, talent and opportunities.

Avanscoperta: DevOps, one of the most overheard (possibly over-used too?) buzz-words in the past 10 years by those within the Tech field, and not only. What’s the real deal behind it?

Jacopo: There’s so much behind the term. Sometimes it’s the 2018 version of the traditional “sysadmin” work, sometimes it’s strictly connected to the tooling (we introduce delivery pipelines, therefore we are doing devops – WRONG!), sometimes it’s just an alias for delivery automation and I could go on.

Truth is, while all these “definitions” are valid, DevOps is more connected to methodologies than it is to tooling itself. To be clear: you can do devops without fancy tools and without paying bazillion licences.

Whenever someone is talking about DevOps, it’s actually talking about many different horizontal concepts: primarily it’s connected to confidence on your code. Nobody wants to ship (automatically or not) broken code, and you can’t simply build confidence without comprehensive tests on your codebase and an iterative development approach.
Then it’s about treating your infrastructure as a codebase (and come to the realization that infrastructure, as code, ages and slowly becomes technical debt – this is why mutable vs immutable infrastructures is a big deal) with deterministic tools (versioning, terraform, configuration management, containers and kubernetes – to name a few).
Then, same applies to delivery mechanisms (pipelines, scripts or whatever else you might want to chose).

This is why talking about “DevOps” is hard: because there’s so much complexity behind it.

You should be skilled enough to horizontally span across different worlds, which most of the times are also completely partitioned, and have enough culture to actually understand what is worth to automate.
Just to let you understand: you need to be a skilled programmer and understand the deal behind maintaining a codebase, you also need to be a skilled sysadmin as you will likely work a lot on servers and integrate a broad set of tools, last but not least you need to have a solid understanding of methodologies.

Avanscoperta: Back to your experience living and working abroad. How do you compare the situation Italy VS rest of Europe and UK when it comes to DevOps adoption?

Jacopo: The biggest difference is probably about general adoption of DevOps methodologies. Abroad they are widely adopted while in Italy we are slowly getting there.

Still, I’m very positive: things are happening in Italy as well, also because it’s a matter of survival. Most companies are now starting to face “change”, failing to do so will undoubtedly result in being outpaced by the market when it comes to release cycles, ability to adapt and business delivery.

Avanscoperta: Another topic which comes into mind is automation. A lot of talking about it, but where are we at with automating things, what are the benefits and what the negative consequences?

Jacopo: When it comes to software, devops and infrastructure, we are at a turning technological point with a copernican revolution currently happening.
Leaving buzz-words aside, we are reaching the point where infrastructure as we know it will disappear. It will become just another bounded context in our business that other services will consume as needed via API.
This is a true enabler for any devops activity as infrastructure can start to embed domain concepts, business knowledge, complex scheduling logic and, in the end, self-operate via software.

Avanscoperta: Gojko Adzic recently wrote a book titled “Humans VS Computer” (which we can’t recommend enough, and we’re not alone in this!). In this book he kind of warns us from the urge to automate all the things, and at all costs.

Talking about his book in the blog post “When automation goes horribly wrong”, Gojko suggests we compromise on this:

If you’re going to automate a process so it works without human oversight, you better be damn sure that the thing you automated isn’t causing chaos in the background. Alternatively, instead of replacing humans, automate the difficult and time-consuming parts of work and assist people in making better decisions. And then, only after enough time has passed and you’re sure that the process actually works well, think about taking humans out of the equation.

What are your thoughts on this?

Jacopo: I do totally agree, and I’ve seen a number of companies fatally wounded by automation at all cost. It’s a huge mistake to automate for the sake of automation.
As I mentioned, I’m deeply convinced that devops is primarily about building up confidence on your codebase. Automation is just a piece of the puzzle when facing “devops transformation”

Most companies are ready to invest whatever money is required in magical tools expecting change to happen overnight. No company wants to hear that change happens iteratively, investing in the people of your team and owning your code. The hard truth 🙂

Don’t get me wrong, tools are important and can be a key factor when it comes to save time (and money), but they are just part of the equation and won’t solve much by themselves if not used wisely.

Avanscoperta: Is there a reason to genuinely be worried about machines and computers “stealing our jobs”? Where is this whole automation thing leading us to in your opinion?

Jacopo: I’ve been an automation freak since I was a kid (no jokes: I started to program with my first C book when I was 10yo to actually automate my own super-little things, then went to study automation engineering during bachelor). I don’t fear change and I think neither should you.

It’s a bit like during the industrial revolution: horse carriage coachmen were not required anymore but how about mechanics and car drivers?
Those who were in serious trouble where the ones not willing to embrace change. For sure a lot of low-throughput tasks will disappear in the near future, so each one of us will need to adapt as new skills are required.

So innocent-looking… will they ever replace us once and for all?

Avanscoperta: In which business sectors do you see automation making the most important contributions and why?

Jacopo: Obviously the cloud and our ability to deliver applications and services. 🙂
It’s not just a rhetorical answer: I think the impact of automation on infrastructures and development will allow us to actually reach unprecedented levels of: services scalability, efficiency on operations management, features velocity and so on.

Avanscoperta: Another piece of the puzzle is the world of Kubernetes… you already mentioned they’re important and they will become even more important in the future. What are they and why should we care about Kubernetes?

Jacopo: Kubernetes is a game changer for a number of reasons. I already mentioned a few of them, let’s elaborate a bit.

When The Cloud™ arrived it actually was a fairly big thing. It introduced two big changes in my opinion:

  • Allowed to consume servers on-demand: suddenly your datacenter could be as big (or as small) as you wanted without huge planning and huge upfront investments;
  • Even more importantly, cloud providers (public and private) introduced APIs for compute/cloud resources so that infrastructural parts could be coded, versioned and everyone started to build delivery pipelines on top of them. One little problem with cloud providers in general: when the business runs at full speed, they are very expensive. Also, they introduce vendor lock-in (the kind of vendor lock-in you will never get rid of).

Just imagine if you could actually mix the benefits of consuming your infrastructure via APIs with some automation and business logic in the middle (such as self-healing strategies) with no vendor lock-in as everything is open source.
Even more awesomely, what if you could run everything on your own machines, turning your static infrastructure into a cloud-ready (cloud-native) one? This is a very big deal especially in the enterprise.

To all this, add the benefits of using containers instead of VMs (which are much more efficient and portable by default) and you then can easily guess why Kubernetes is a big thing.

To add another piece to the puzzle I really like this definition of Kubernetes: The Linux Kernel is the minimum required software to manage a node, Kubernetes is the minimum required software to manage a cluster of machines. The CNCF (the Linux foundation spin-off under which Kubernetes is developed), likes to advertise Kubernetes as the kernel of cloud-based distributed systems.

*No caption needed, just look at those clouds*

Avanscoperta: You’ll be teaching a workshop…. Tell us something we don’t see in the course description and… make us curious to read more! 🙂

Jacopo: I’m super excited to actually deliver this course! We will talk a lot about the stuff I mentioned during this interview. More specifically we will dive deep into the philosophy behind Kubernetes and containers, why they are efficient, what is happening under-the-hood and how to handle the complexity they introduce.

During this interview I mentioned a lot of different pieces of the puzzle, during the workshop we will actually see how they fit together and how they deliver the future of infrastructures, code engineering and developers experience.

Avanscoperta: Entry requirements to fully benefit from this workshop?

Jacopo: This is definitely not an entry level workshop, you are required to have a solid technical background. It is recommended to have prior experience using containers and docker. We will take for granted that you know what a containers are and how to perform basic operations (build, run, push, pull, etc..)

Avanscoperta: Who is the ideal target audience? Who should be attending this workshop?

Jacopo: During the workshop, we will go in-depth on Cloud Native tools, Kubernetes and container-based immutable infrastructures. To be able to fully benefit from the workshop, you need a strong technical background. It is therefore aimed to software/devops engineers looking to accelerate their learning path or to architects/tech-leads looking to evaluate this new infrastructural stack.

Avanscoperta: Recommend us a must-read book, one of those that change the way you see things in programming, and then one that changed the way you do business.

Jacopo:
Technical: Growing Object-Oriented Software, Guided by Tests, by Steve Freeman and Nat Pryce
Business: Extreme Ownership, by Jocko Willink
I can’t recommend enough both these books.

Avanscoperta: What could be a nice and fitting soundtrack to this workshop?

Jacopo: Wild thing from Jaxson Gamble, not famous but has the right mood (and we’re digging it! 🙂 NdA).

Avanscoperta: That was an interview! 🙂 Thanks Jacopo, and see you soon! You can close anyway you like.

Jacopo: Thanks for the awesome interview! I will close with: do not just embrace change, own it.

Cosa si intende con User Research, User Experience e User Interface Design?

Avanscoperta: Ciao Raffaele, ben ritrovato sulle pagine di questo blog! 🙂

Raffaele: Sbagliare una volta è ammissibile. La seconda è un indizio di colpa.

Avanscoperta: Esperto di UX/Design, docente universitario, fondatore di un’azienda di Design, antropologo (o meglio, Hackntropologo!) e, last but not least, trainer Avanscoperta… quale job title descrive meglio ciò che fai?

Raffaele: Quando sento gli altri riferirsi a me con i job title quasi non mi riconosco. Io mi considero un artigiano curioso. Continua la lettura di Cosa si intende con User Research, User Experience e User Interface Design?

Second-generation Agile Methodology: Dan North’s BDD Tales

Interview with Dan North

Writing an introduction to an interview with Dan North is not an easy task, being one of the very first names that come to anyone’s mind when talking about Agile and, as the saying goes, being one of those people who need no introduction.

Originator of BDD aka Behavior-Driven Development, Dan is a frequent conference speaker and a star of the software development world by all means. Dan will also be in Milan on May 15th-16th for his 2-day workshop “Software Faster”.

Among many other interesting things, in this interview we find out why the principles of the Agile Manifesto are aging well (like a good wine we might say!) and what we can do to make the most out of them in an ever changing world, almost 20 years since they were written for the first time.

Continua la lettura di Second-generation Agile Methodology: Dan North’s BDD Tales

Real World Risk Institute – Last day

The 5-days workshop held by Nassim Taleb in NYC on risk modeling and taking is over. It has been a rewarding experience that will take weeks to fully digest. I’ve been writing a personal experience log every day (Feb 5, 6, 7 and 8) on Avanscoperta’s blog: here today is my last one. Enjoy!

Continua la lettura di Real World Risk Institute – Last day

When Man and Machine (Learning) collide

Interview with Mathias Brandewinder

Author of the book “Machine Learning Projects for .NET Developers”Mathias Brandewinder is 360° expert of all the things Microsoft, F# and Machine Learning.
He’s a board member of the F# Software Foundation, and he’s been involved in exploring the correlation between functional programming and machine learning.
Feeling curious? Read on!

Continua la lettura di When Man and Machine (Learning) collide

Real World Risk Institute – Day 2

The second day attending Nassim Taleb’s Real World Risk Institute workshop is now behind us. This got me the RWRI mini-certificate in risk taking. Here you find my personal highlights of the day, waiting for the upcoming 3-days full certification to begin.

Continua la lettura di Real World Risk Institute – Day 2