Craig Andera - Cognicast Episode 139. I know people do not like the syntax of XML, but going to something where only – anyway, namespaces is a big deal, and the fact that you can't really do them in JSON is a liability, and there are other issues as well. MICHAEL: Or maybe there was corrupted data that cost a lot of money to clean up. I mean everybody has been – maybe not everybody, I guess, but many people have been through the case of, well, we rolled this thing out and it didn't work. But if that fails, I'm going to drop something in a queue. MICHAEL: I definitely see where you're going. MICHAEL: I see what you mean. In this episode, we talk to Michael Nygard about microservices and other things from his current blog series. Now, obviously in a company you need to have a trust boundary somewhere. Thanks for listening! Our guest today was Michael Nygard, on Twitter @MTNygard. You're going to talk back, whatever. MICHAEL: The collected advice of The Cognicast. I guess we even got a little bit of a peak into the stuff you're working on, which is awesome. You can send feedback about the show to podcast@cognitect.com, or leave a comment here on the blog. And so if I have a queue for incoming work, I can multiplex work for many different sources with a single processor, so I have a different way of approaching the workload and maybe I don't need to scale as big for the processor. Something along those lines, I think that kind of visibility is really key for safety as well. Anyway, we should move on. mtnygard. Hopefully you're hearing this before that. Mike is the author of Release It!, and a contributor to Beautiful Architecture. One of the key things about spec or one of the things that kind of jumps out at you when you look at it is the use of namespace keywords. Living with systems in production taught Michael about the importance of operations and writing production-ready software. Michael Nygard. One of the elements that I try to address is the question of risk and risk management. It's always great to talk to you, so no obligation to go through those in detail. But they're all viable ways of saying a failure in my service doesn't need to propagate to the others around me. They do. A component is an entity that belongs to some other entity, and has no independent lifecycle. But I want to make sure that we kind of come back to the middle road where we were talking about this very interesting story that you've been telling around this stuff because I know we didn't get a chance to or we haven't yet completed that arch. It's great to have you back. He shares his passion and energy for improvement with everyone he meets, sometimes even with their permission. In his upcoming talk at this year's DevOps Enterprise Summit ("Tempo, Maneuverability, and Initiative"), Nygard, VP of Customer Solutions at Cognitect, Inc. , will draw several useful parallels … That was the one I happened to use. ... Current interests: DevOps, Systems Thinking, Modeling and Simulation. I am pleased to once again welcome to the show Michael Nygard. … Michael Nygard mtnygard. Michael T. Nygard! I am not a fan, for example, of passing around a raw ID, just a number or an alpha numeric string. Game Development Development. I do listen to a lot of classical music, and pretty much all classical music is recorded live, other than movie scores where the orchestra is in a studio. In the relational database world, outer joins allow you to return a relations even when data is missing from one side of a join. But the problem is if you do just that in isolation, it will fail. Those applications are being accepted until July 29th, 2016. MICHAEL: Okay. 03:11 - Michael Nygard Introduction Twitter GitHub Blog Cognitect @cognitect Michael Nygard: Documenting Architecture Decisions 04:36 -  Release It! MICHAEL: I see where you're going, and I agree on the value of having a global namespace. The one that doesn't break keeps running its software, making assumptions about being able to talk to the first one, and we start having to change our risk model from saying it's all or nothing, either the machine is working or it's not, to a more probabilistic approach. There's some likelihood that all of your machines are running. I already have something better than either one of them for my systems. In fact, most of the books on SOA are about SOA governance. But having gone back and looked at the series again recently, I think I was extremely mistaken to say that it's about microservices per se. But the technical aspect of getting access was probably much easier than the political aspect or the inter-team communication needed to make sure you were going to be allowed to use their service. MICHAEL: No, I think I've said quite a bit, and I'm going to leave it there and save the rest for the next cast. One of the biggest game developers in the world needed a new IDE to build games … We have the ability to do automatic migrations at this point, so some of the techniques that Jez Humble talks about in Continuous Delivery work really well for this too. Actually, if we go down the first path and try to make things – treat continuous partial failure with Java exceptions flowing through the code base and so on, it's a recipe for brittleness. Cool. This is what Part 11 is really going to be about. I'm your host, Craig Andera. That's what I'm doing today. Writing about Datomic in a blog post titled, “The New Normal: Data Leverage,” Cognitect VP Michael Nygard explained how the legacy of object-oriented programming (OOP) poorly serves developers in an era when “the majority of our work is with data.” This is why I like working with Datomic. There's something about live music, and I don't know what it is exactly except maybe that it's got none of the presence. You still have the common mode issues. It is actually pretty important. But, within the unit, they can make the call without having to have a conversation first. I've said before that I think – I'm going to maybe catch flack for this, but I think JSON was really a step backwards from XML. O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers. I might not do it on the level of every key just because of the massive overhead implied there. Cognitect, Inc. You can find Michael coding, writing, speaking, or thinking about how the Universe works. CRAIG: Yeah. Please continue. CRAIG: Well, let me ask you a question. CRAIG: Datomic has this, right? Cognitect, Inc. You can find Michael coding, writing, speaking, or thinking about how the Universe works. That is the question. Mike chose "The Bomb" by Bittersweet to start the show and "Baba Yaga" by Mussorgsky to end the show. Yup. Yeah, legacy systems in Java, really, they can't make changes any more. Michael Nygard. Actually, that's going to let people consume the show in whatever way they like best. But it doesn't act very much like an asset. We think that's pretty cool. Well, I think then we'll do what I usually do, which is definitely want to have you back on, for sure, even maybe more so in this case than is normally the case, although it's always sincerely meant. Sometimes it's hard to say, "Oh, man, I really want to talk about this in general," even though we sometimes have things that are very much an interesting bit of whatever to share, but not commit to anything. Michael Nygard. mtnygard@cognitect.com! All right, another thing I want to mention has to do with the podcast itself. Nygard is the author of Release It! MICHAEL: Well, I think as we go through this series, you know the earlier parts are really about explaining why we need to change or why a certain group of companies are doing things so differently. If you extend your viewpoint out to the organizational scale, if you require outages in order to deploy software, you have to coordinate deployments across teams. Daniel Compton - Cognicast Episode 140. You can continue to listen to it via your podcast application. I think we've talked many times before about music on this show, and there's something about it as an art form that's unique. But I'm not looking to go back to XML. You even have the option of doing that as a fallback. We default to thinking about things in terms of synchronous request response loops, but there are a great many business processes that can be made into a series of messages and queues. This has been The Cognicast. We went all the way down into technical and all the way up into the organizational philosophical. Yeah. Prevent this user from interacting with your repositories and sending you notifications. You know we're getting good feedback. Hear Michael Nygard at QCon San Francisco, Michael Nygard strives to raise the bar and ease the pain for developers around the world. Go there, and you'll see the whole transcript feed. Michael has written and co-authored several books, including "97 Things Every Software Architect Should Know" and the best seller "Release It! Cognitect news, musings and more. It's somewhere in the low–. You can see there's a link to the transcript. MICHAEL: You can do a speculative value of the DB, so there are a couple of other principles to creating safety. In this episode of the O’Reilly Programming Podcast, I talk with Michael Nygard, a software architect at Cognitect.He has spoken about “architecture without an end state” at numerous O’Reilly Software Architecture … on Twitter; on Github; on the Web; on LinkedIn; Music. Maneuverable architecture - Michael Nygard (Cognitect, Inc.) Get The Microservices Video Collection now with O’Reilly online learning. For instance, if you take a group of two people, the odds that they have the same birthday is 1 in 365, roughly, right? You can do any crazy crap you want as long as you have confidence that undo is going to get you back to where you were. MICHAEL: I think that analogy is actually pretty rich source because we can think about other aspects of making that phone call. So before we jump into the reason why we're having you on today, although obviously that's the discussion, let's go ahead with the initial question, which is about art. A year later, and one project manager different, the team room was disbanded. MICHAEL: Or it includes a URN that lets me go and resolve it to a spec on what the commitments are about that message format. CRAIG: I want to drill down on this a little bit. I think a lot of people are really paying close attention to it. While I'm talking to you this way, I can't also be having a conversation with someone else. MICHAEL: Yeah, you kind of grabbed me by the lapels. He has lived with systems in production and learned hard lessons about the importance of operations. Writing about Datomic in a blog post titled, “The New Normal: Data Leverage,” Cognitect VP Michael Nygard explained how the legacy of object-oriented programming (OOP) poorly serves developers in an era when “the majority of our work is with data.” This is why I like working with Datomic. CRAIG: Yeah. We like to work with you on the hard stuff. Even if one country's service is unavailable, other countries continue to function. CRAIG: I was just trying to marry that up, and I think it works very well. CRAIG: Sure. MICHAEL: Then we start getting into factories for making factories and that becomes even harder to visualize. Design and Deploy Production-Ready Software and contributor to Beautiful Architecture (O'Reilly … He has lived with systems in production and learned hard lessons about the importance of operations. Michael Nygard October 17, 2013 Technology 2 650. At one time our approach to risk management in software was essentially to make sure nothing ever breaks, and that was typified by having a single computer–the mainframe era–having all the programs run on there, and strong verification processes. If your assumptions are different and your premises are different then, yeah, the conclusions will look insane. Clojure for a desktop GUI application. CRAIG: Such confidence in authority. Michael Nygard. You can find out more information about everything related to EuroClojure at the website EuroClojure.org. Michael Nygard serves as the VP, Customer Solutions for Cognitect, Inc.. Michael started at Cognitect, Inc. in June of 2011. MICHAEL: That's really hard to achieve in any kind of a home setup. Whenever I build a service, I want to make sure that I'm not just serving one population of consumers, but anyone else in the company can write a new consumer of my service and start making calls without necessarily informing me first. It's just a set of instructions for how to do something when it actually becomes active. CRAIG: But in any event, that idea that that stuff should also have quality attributes that you care about, all of the stuff around the code, like we all care that our code works, is efficient, et cetera. It's hard to believe. Where were we? Being able to undo that is great. CRAIG: Yeah. In this episode of the O’Reilly Programming Podcast, I talk with Michael Nygard, a software architect at Cognitect.He has spoken about “architecture without an end state” at numerous O’Reilly Software Architecture events, and he is the author of the book Release It! Sometimes they're serving different populations, so maybe you split things up geographically. MICHAEL: As you say, an hour is a big commitment already. That's August 5th, so talk proposals need to be in by August 5th, 2016. This was the era of the tandem computer. Nygard has held positions including as the VP of customer solutions at Cognitect, Inc. and technical director at Verizon Business, leading the Innovation Incubator in the Verizon Global Services Division. That presumably delivers value because you're getting features out faster. In their case they're using Avro, which can actually load definitions dynamically and unpack the message according to that definition, so it's not just a documentation thing. It was a Kickstarter for a ClojureScript game. I definitely can. When should we do it? If the conveyor belt is bolted to the floor, then I'm not going to be able to run it past the new paint shed or whatever it is that needs to happen. But that's a great one, and I totally agree with you that it's definitely useful. Cognitect. I don't want to go too far beyond that. The interesting thing is we can respond to continuous partial failure in a couple of different ways. CRAIG: What exactly do you mean by that? CRAIG: Hello, and welcome to Episode 106 of The Cognicast, a podcast by Cognitect, Inc. about software and the people who create it. You can think about it two ways. We have two different aspects to preserving team scale autonomy. @mtnygard. In a way, you can frame it as the birthday problem. And I'll return a response to the user that says he'll get a follow up email in 24 hours or whatever.". I guess I did, but he was talking about a naïve application in a narrow sense. CRAIG: There's often things going on where we can talk about them later that we can't talk now, so I don't need to go into any more of that. If any two pieces of it have a bad day, they have the same birthday, and so that probability very quickly goes rapidly towards 100%, as the number of pieces involved moves above some fairly small number. MICHAEL: Mm-hmm, and there have been some efforts to take the Agile approach and sort of scale it up to the level of the whole organization. The hype around effective DevOps can make it sound like the real value provided by the methodology comes from faster time to deployment. You can say, "Well, what does this button do? MICHAEL: Yeah. If you're looking for a great podcast to listen to, our CTO, Michael Nygard 1 was interviewed recently by Freek Leemhuis over at Devnology 2.Michael and Freek talk about high-reliability teams and stressful situations, architectural patterns and what it … I've been to a number of places where they have these very large monolithic code bases, some of them ten years old or more. He has lived with systems in production and learned hard lessons about the importance of operations. This is why it's taken me so many words to articulate this whole thing because it does spring from some different premises. The title is The New Normal. Michael has been a professional programmer and architect for over 15 years. We always are interested in hearing how people experience or understand art, and so we ask them to tell us a little story or share an idea, an experience, or something centered around the idea of art, whatever that means to them. But I wanted to say that I think I had been referring to it when I was talking to you and said, "Oh, you should come on the show and talk about microservices since you're writing a microservices blog series." Design and Deploy Production-Ready Software This episode is sponsored by Pivotal. I think if you kind of look at the way that TDD or whatever you want to call it, say what you will about any particular manifestation of that philosophy, I do think most people would agree that having developers write tests, think about testing is useful. But I wonder whether it's more like building a factory because, first of all, a program, we write source code to produce a program. In this episode of the O’Reilly Programming Podcast, I talk with Michael Nygard, a software architect at Cognitect. Well, I'll say I've never developed the audio engineering expertise to achieve that in a home setup. Michael Nygard - November 15, 2011 agility architecture. But another kind of breakdown is a technological breakdown. CRAIG: Mm-hmm. MICHAEL: I'd like to have preview. It's just an unsolvable problem. Michael Nygard knows this—which is why he's turned to the language of warfare to describe the ongoing campaign that is the agile workflow. I only need to scale it to catch up within a reasonable SLA. MICHAEL: And that's just the picture when you're only deploying one system. MICHAEL: Yeah, and in fact a lot of the sharp edges in Git are where it allows power users to sort of do actions that have no undo. I think that great music has the ability to transport us, and it touches the human mind and heart in ways that few other things do. We'll go even a step further. Not just understand what the lines are, but be able to understand what they mean behind it and what you can interpret about a company by looking at those things. CRAIG: It gives them semantics without making me take on the burden of saying it every time I express some fact. And it worked. Continue to carry us through the story arch of your series. Of course homes require maintenance. You need to have the same standards for that stuff. When we're horizontally scaling, if you run the probability, the odds of having everything working at any given moment in time are actually not great. The biggest safety factor in a word processor is the undo feature, right? And it's all built on top of an in-memory, transactional graph database. We are a collection of experienced, thoughtful technologists, passionate about helping organizations deploy In this episode of the O’Reilly Programming Podcast, I talk with Michael Nygard, a software architect at Cognitect.He has spoken about “architecture without an end state” at numerous O’Reilly Software Architecture … CRAIG: That's not a bad idea. MICHAEL: This can be routine, or it can be exciting. Well, that network model among the people, it's now possible to match the network model among the people with a network model among the artifacts that the people create. They created problems for other people. MICHAEL: That's not the only kind of system, though. I better not change that firewall rule. I wonder what you would like to tell us today. It embodies old architectures. But another is that I think there's a sense in which what we do is fundamentally different from building a building in that I think it's maybe more like building a factory. You're going to wait for them to pick up. Anyway, do you think that would make sense, or is there a good way to spend a few more minutes kind of wrapping up what's out there so far? Design and Deploy Production-Ready Software This episode is sponsored by Pivotal. He shares his passion and energy for improvement with everyone he meets, sometimes even with their permission. When you're talking about without permission, do you mean like without prior agreement that they are going to be a customer of your service or a consumer of your service? Overall, the idea is once you've created team scale autonomy, there will be social forces trying to tear it down and reconstruct the command and control structure because it's just sort of a natural primate instinct. You can scroll down. 01:42 - Mike’s Background and Career Path Thus Far 02:59 - Complex Systems The Complexity Explorer 06:22 - Continuous Partial … CRAIG: But rather, a URL that scopes that identifier to some particular semantic concept, if that makes sense. I know you and I both got to hear about spec a little bit before that came to light, and sometimes it's hard, right? The series certainly so far has been focused at a different level, but I wonder if you could help us understand some of the particular techniques that one can employ to get this sort of capability. Maybe it's just that you have a separate operations group from your dev group, and so every problem from dev becomes an operations problem. CRAIG: Where you're saying there's a context that flows down through the parts of this, I guess, document in the case of XML. CRAIG: That's all right. CRAIG: Totally agree. He has spoken about “architecture without an end state” at numerous O’Reilly Software Architecture events, and he is the author of the book "Release It! But increasingly, I want people to regard the machinery that you use for building your source code, deploying it, moving it out to production as its own machine worthy of service level agreements and production level attention. You're going to call someone. I'm sure there are many other implementations. A podcast by Cognitect, Inc. about software and the people that create it. One is, of course, that analogies are imperfect and they always get stretched to cover scenarios that are not helpful. Oh, everybody breaks. Follow. You can find us on the Web at Cognitect.com and on Twitter, @Cognitect. Meaning, just like the systems we create for our users inside a company, those are the production systems by which our users do their job. The O’Reilly Programming Podcast: Embracing late changes, plurality, and decentralization. Where are the circuit breakers against someone getting yelled at and deciding to take action to avoid getting yelled at again from doing that sort of thing? :Design and Deploy Production Ready Software“; What DevOps really is; The values of DevOps and its relationship to the Agile Manifesto You can also subscribe to the podcast using our podcast feed. I think your insights are amazing and valuable, and it's really been cool to see the series develop. But the other way is to say, "When I call you, I'm asking for permission to talk to you and, if you don't pick up, you've denied that permission.". The opportunity grants are awarded to people to assist them to attend if they would not otherwise be able to. We mentioned them last time on the show. 0 Likes. Actually, the more of these continuous partial failures we endure, the stronger our systems get. All Topics How We Work Events Customer Stories Technology Testing The New Normal Open Source RSS Feed. MICHAEL: Yes. He shares his passion and energy for improvement with everyone he meets, sometimes even with their permission. The show is available on iTunes! Because deploying software looks like a failure in the service that's being deployed, and so everything is just going to continue functioning happily as you deploy your software. They're building this big data streaming platform on top of Kafka. He decided it would never happen again, so he ordered something like four months' worth of parts. You could also perceive it as being about anti-fragility because that's in there, the economics of software and that's in there. Presented at GOTO Berlin 2013. The teams represent the execution of that strategy, but the strategy doesn't emerge from just what the aggregate of what all of your teams are doing. Cognitect, Inc., 303 S Roxboro St., Suite 20, Durham, NC 27701 919.283.2748 info@cognitect.com With just two machines, maybe we can build them both to be super reliable and have high quality parts and redundancy down to dual back planes and dual buses. Interesting. It's the question about advice. We went both directions today, didn't we? You have to have a strategy. People can create accounts. We were talking about live music earlier. You need to be able to create customers in that database. The business couldn't assimilate change as rapidly as we were creating it. Our theme music for this episode is Thumbs Up (for Rock N' Roll) by killthenoise with Feed Me which was used under a Creative Commons License. Maybe you define that as your business unit, your division, or something like that. This is one that I'm particularly – well, I don't want to put any pressure on you, but I always love to hear your take on this. We are a collection of experienced, thoughtful technologists, passionate about helping organizations deploy technology effectively and humanely to build better futures. Michael Nygard strives to raise the bar and ease the pain for developers around the world. Not to cut it off here, but to leave room for anything else you think makes sense to talk about today, if anything. MICHAEL: Yeah. There's a certain element in which the music being recorded live, you've got all the crowd noise that, to some degree, detracts from the music itself when you're not there, if that makes any sense. I'm not going to go through all of them now or people won't have a reason to read Part 11. But with text I can multiplex it, right? @mtnygard. Unsurprisingly, you and I have already spent most of the really interesting hour talking about this stuff. Follow (Aggregation is alpha and subject to change.) I do like live music. RailsClips is officially launched! In many domains, it is useful to model other timelines, such as the time for which data is known to be valid. Certainly, I think we're going to want to have you back, regardless, to talk about the other things that are coming up. A phone call is synchronous, right? The development pipeline and tooling is the production system by which we do our job. What are the things that would often cause them to make that maneuver and start reining in the chaos and getting people under control? EuroClojure is taking place in Bratislava, Slovakia, October 25th and 26th in 2016. Yeah, you wouldn't. The way to look at this is to keep saying, "What is the coupling between my team and other teams? Well, anyway, so that's awesome advice, but we are wrapping it up here, so I can't forget and I cannot do this enough, but thank you so much for coming on today. MICHAEL: Yeah, so this is going to sound kind of mundane, but from several conversations I've had lately, I would recommend that everyone listening should learn how to read a company's balance sheet and its cash flow statement. I really probably shouldn't put too many words in your mouth. I'm going to go back to my first experience going to an actual concert hall and hearing concert music performed live. But it's actually stopping them from doing things, and they're pouring tons of money into just keeping it running. The problem is your company will do something crazy like acquire another company. Maneuverable architecture - Michael Nygard (Cognitect, Inc.) Get The Microservices Video Collection now with O’Reilly online learning. We're not entering into the horizontal scaling era. Right now I'm talking to you over what's essentially a phone. There's an outfit out there called Confluent.io that did a really cool thing. CRAIG: Usually it's some sort of perceived or actual threat or risk. The problem with that viewpoint is it causes us to write code and keep it around for a lot longer than we should. I don't know where it came from. Mostly it's just mics at an ordinary concert performance, but they tend to be careful to not get the audience sounds into those. Even though you've written this stuff, I really think it's great to get together and have a conversation about it. It behaves a lot more like a liability than an asset, so I really like to have the idea that we need to be refreshing our code, tearing it apart, throwing away piece-by-piece, and rebuilding it piece-by-piece more or less continuously. In this episode, we talk to Michael Nygard about microservices and other things from his current blog series. One of the things that they do is they have a Kafka topic, which is their registry of message definitions. Something that Hystrix implements, in addition to the circuit breakers, is the idea of a fallback strategy. If I have a full URL, then I can always resolve that to something. You've sort of been building a story arch, I think it's fair to say, as you've made these posts. Interesting. Follow. In this episode of the O’Reilly Programming Podcast, I talk with Michael Nygard, a software architect at Cognitect. Well, not a divergence. But this misses the real benefit around maneuverability, argued Michael Nygard, an enterprise architect with Cognitect. CRAIG: Right. MICHAEL: Yeah. He shares his passion and energy for improvement with everyone he meets, sometimes even with their permission. In this episode, we talk to Michael Nygard about swarming Formosan termites, circuit breakers, dog piles and all kinds of other interesting topics from the new edition of his book,