Disclaimer: Even though the DevOne conference is organized by Dynatrace, I am writing this recap from an attendee's point of view, not an employee's. When I say I liked something, it's because I really did. Same is true for the contrary. Opinions are my own.
DevOne is a one day conference targeting DevOps and general software development topics with around 600 attendees (about half of them Dynatrace employees). Same as last year the conference venue was Tabakfabrik Linz, a heritage-protected location in Linz that now serves as an incubator for the local tech and startup scene.
Fortunately, all (Linz-based) Dynatrace employees had the great opportunity to leave daily business behind for one day and attend this conference.
This year the overall arch of the conference was scale ranging from scaling teams and people to scaling software and services.
The conference had only one track, which I really liked as someone being very susceptible to FOMO and bad at making decisions. Actually, there was a series of smaller sessions called chalk talks, which were very specific and highly technical from what I heard, but I had no chance of attending on of these.
Emily Freeman (@editingemily) gave the opening talk about the topic of scaling teams and the question of how can organizations deal with teams growing from 10 to 100 to 1000 and more people?
I'm sorry to say that the historic analogies (Spartans, Mongols, Romans) she used, did not work well for me. It's of course tempting to romanticize and idealize the success of these cultures and want to map their organizational structures on today's organizations, at the same time neglecting the fact that a lot of this success was based on genocide, intimidation and slavery - "values" no company should want to associate itself with.
SPA revolution with WebAssembly and ASP.NET Blazor
Rainer Stropek (@rstropek) is a veteran conference speaker and well-known figure in the .NET universe. His session was very hands-on and code-heavy, which I usually really enjoy in tech conferences - but here at DevOne this felt somehow out of place, especially in comparison with the rest of the talks. What I also gathered from other (non .NET-savvy) attendees was the fact, that they felt completely overwhelmed by this talk.
Tinkertoys, Microservices, and feature management: How to build for the future
Heidi Waterhouse's session was about Microservices or rather the testing aspect of those services and how to do that most efficiently. She advocated strongly for testing end-to-end instead of testing single services and - interestingly - testing in production, which is something I had not really given much thought before. What I found most interesting was this basic test matrix she proposed:
|ALL ON||Status Quo Test|
|ALL OFF||Status Quo Test;
This means that only if there are well-established baselines for everything on/off, features can be tested meaningful in isolation.
Architectures for huge Angular based enterprise applications
Manfred Steyer (@ManfredSteyer) is well-known figure in the world of Angular and he presented some of the experience and practices he had established with customers when it comes to structuring and organizing angular applications. He even came up with a handy decision tree for deciding on that:
It's dangerous to go alone, take this! Navigating the overworld of cloud native and open source
Carmen Andoh (@carmatrocity) won probably most of the audience's hearts by using Zelda references in her talks. She used the metaphor of detail and overworld maps for navigating the vast amount of cloud technologies and offerings available today. Both a basic understanding of fundamentals (the overworld) and deeper knowledge about specific technologies (the details) are necessary to be successful.
Polyglot Builds with Bazel
Ulf Adams (@ulfjack) presented Bazel, a build tool developed at Google which has the unique (AFAIK) trait of being polyglot. This means (at least in theory) that each team of a larger development organization can contribute build modules developed in the language of their choice. I must say I really like this idea and would love to give it a try, but given that fact that we only just switched our build environment to CMake, my hopes are not hight.
Composing the Cloud 2.0
Matheus Fernandes (@matheusfrndes) works at Zeit who develop a couple of great tools and technologies like Next.js, Hyper or Now their serverless deployment tool and environment. Since - as he stated - "there is no serverless", he explained some of the concepts and technolies used behind the frictionless experience of Now, how things work and what they have planned for the future.
A point of criticism I heard about this talk, which is probably valid, is that he never really explained what Now actually is and what it does in the first place. So for someone who hadn't heard about Zeit or Now yet, the whole talk was probably a bit puzzling.
The culture of Site Reliability Engineering
Wolfgang Hennerbichler's talk about SRE (Site Reliability Engineering) was definitely among my favorite talks this day. To be honest I hadn't heard about SRE before, but from what he described, this acronym had been coined at Google, where he had worked as an SRE engineer and built teams around that. The basic idea behind having SRE engineers is having people who are pessimistic about code and products, - as opposed to regular engineers who are usually way to optimistic about it ("what could possible go wrong?") - and prepare and test for scenarios where things go wrong. One could clearly see that he had a lot of practical experience in that area and he had a couple of interesting insights and stories to share.
Resiliency and availability design patterns for the cloud
Adrian Hornsby (@adhorn) shared a couple of really good insights on how resilience and availability is implemented at Amazon and how it is really in the DNA of this company. What I personally found most useful was the issue of timeouts. As assessed by rasing hands in the audience, nobody really knows about their timeouts when it comes to network or database connections. Quite often these timeouts amount to infinite wait times in practice which can quickly result in unwanted failovers and clustered failure scenarios. I also like the blast radius analogy, where systems are designed with regard to minimal impact to other services, should one of them fail or go down.
Performance tuning Twitter services with Graal and machine learning
Chris Thalinger (@christhalinger) works at the #TwitterVMTeam) on the tuning the JVM and its GC. He presented an optimization approach using their AutoTune utility, with which they managed to optimize the Graal JIT using bayesian optimization. This talk was probably a bit heavy for some of the audience but I have to say I thoroughly enjoyed it.
We don't make mistakes
Mathieu Henri's (@p01) last session, was the one I probably had been looking forward to the most. I had seen him speak (rather perform) at ScriptConf 2017 and I have the fondest memories of this session.
This time it was equally amazing. He started his session by talking about his current work at Microsoft, his passion about demo scene projects and some of the educational work he does with kids.
Then he continued with an amazing live coding session producing some impressive visuals, more or less from scratch.
A great ending to a great conference!