This is Mises Weekends with your host, Jeff Deist. Ladies and gentlemen, welcome to Mises Weekends. Once again, our guest is Jacob Hubert. He is not only an associated scholar with the Mises Institute. He is a lawyer and attorney with the Liberty Justice Center in the state of Illinois. He is an attorney who attended University of Chicago. But more importantly, for our discussion this week, he was one of two main attorneys on the Janus versus AFSCME, the AFSCME case, that the Supreme Court decided this week dealing with labor unions. So Jacob, welcome. It's been an incredible week for you. No question. Yeah, it sure has. We're both lawyers. Unfortunately, I have to pay state bar fees to the state of California every year. And they use those fees to lobby for things I don't like, like gun control. It seems to me that from a libertarian perspective, there's something wrong with this. Yeah, there certainly is. The government shouldn't be able to use benefits, whether it's the benefit of a law license, the benefit of a government job, to get you to give up your constitutional rights and under the First Amendment to get you to subsidize a group that's going to use that to advocate ideas you disagree with. Well, I think we should set the framework here. There's a perception that libertarianism is anti-union. And that's not really true, right? I mean, give us the case for unions and how they would operate in a more libertarian legal or regulatory environment. Yeah, there's nothing inherently wrong with a labor union. That could just be a bunch of workers getting together in a group, voluntarily associating to bargain collectively with their employer, to go together with it to their employer, to get a better deal from them. That's in workers' interest to do that, bargaining separately. They have the problem of kind of undercutting each other. So if they can successfully organize to get more from their employer and the employer wants to deal with them, that's fine. Well, here's the thing. There's the reality of a case and the facts of a case and the legal doctrine that's applied by the court, rightly or wrongly. And then there's the public perception, kind of two different things. Give us your thoughts on what this case was really about. And why are we viewing it as a First Amendment case rather than a labor law case? This case is about whether the government can force its employees to give money to a union as a condition of getting a government job. And that's a First Amendment issue for government employees because when they give money to that government union, even if that union doesn't use it to give money to candidates for office, it uses it to bargain with the government in collective bargaining. And when government unions bargain with the government, they tell the government things like, how much it should pay workers, what kind of benefits it should provide, how it should run its programs, and sometimes even advocate for increased taxes to pay for all the stuff they're demanding. So that's just the purest sort of political speech. If anybody else talked to the government about those things, we recognize that as political speech and we call it lobbying. So what the government is doing with these unionized workers is forcing them to pay for somebody else's lobbying on things they might disagree with the union about. And how did this case come to you? Give us the basics of what it's been like to be involved in such a high-profile case. Well, we've heard from government workers across Illinois that they don't like the union, they don't like being forced to pay for its politics. A lot of people blame the big government unions in Illinois for the disastrous economic shape that Illinois is in where it has over $100 billion in unfunded pension liabilities and billions of dollars in unpaid bills and people fleeing the state to escape the tax burden. There's government workers who, although they work for government, don't think that it's right to make taxpayers pay more and more to them at a time when the private sector is struggling. And so we've heard from these people over the years and then finally we talked to one person who not only was willing to complain about it but also was willing to actually put his name on a case and take it all the way to the Supreme Court, if necessary, which of course is a very brave thing to do because this union on the other side of this case asked me is one of the most politically powerful entities in the country and unions tend not to be nice to people who go against them. Yeah, absolutely. And just as an aside, for people who don't understand conceptually, the notion of public interest law is a little different. This is basically when clients are taken on a pro bono basis by lawyers, many of whom, thank God, are libertarian minded like, of course, Clint Bullock who founded Institute for Justice is now on the Arizona Supreme Court. So people like Jacob Hubert work for organizations that operate by donations so that a client like Mr. Janus can actually prosecute and litigate a lengthy case that would undoubtedly probably bankrupt him. Otherwise, so people don't understand Jacob. I think the loneliness sometimes of libertarian causes attempting to litigate against state or federal or local government in their own courts. It's an uphill battle. Yeah, it does tend to be an uphill battle and we're only able to do it because there are people who care about liberty who are willing to fund this so that we can represent these clients free of charge and do everything you have to do to litigate a case. And as you say, it's often an uphill battle. We inevitably lose a lot of cases, but we do it knowing that sometimes if you win one, it can make a big difference for a lot of people's liberty. Well, I'm curious, was there any back and forth with Gorsuch? Did he play an active role in the oral arguments in this case? No, oddly enough, he didn't say anything at all at oral arguments in this case. And everybody was had their eyes on him because the Supreme Court actually took this issue up in a case in 2016 called Friedrich versus California Teachers Association. And after arguments in that case, Justice Scalia died and the case ended in a 4-4 tie vote, which made everybody think, okay, there's four conservatives on one side, four liberals on the other side. And so whoever comes onto the court is going to be the deciding vote. So then all eyes were on Gorsuch and you didn't give him anything at all argument and kept everybody guessing until this week finally got our decision. Well, it looks like the majority was written mostly by Sam Alito, and I'm going to give you a quote here. He said, this law compelled non-members of the union to subsidize private speech on public matters. Do you think Alito generally got it right? Are you happy with sort of the technical approach of his writing and his decision? Yeah, I mean, given the current doctrine, this is exactly what we wanted. We got everything we wanted in this decision. He recognized that this is compelled support for political speech. He recognized that the union's arguments about, well, these people are maybe free writing off the union's efforts. They might get benefits from the union they're not paying for. That's what the unions argue. And he said, it doesn't matter. Even if they are free writing, which is questionable, it doesn't matter because your right to choose what groups you support comes first under the Constitution. And he said, not only that, but for the government to take fees from people in the future, people have to affirmatively consent to have that money taken out of their paychecks. In some states like California, you've had the government automatically making people union members when they take a government job, whether they want to or not, whether they explicitly agree or not. Alito's decision says that's not okay. Everybody has to affirmatively consent before you take anything from them. So what are the ramifications down the line across states as a result of this case? This case affects at least 5 million government workers across 22 states where you had these forced union fees. Now, all of those people will be free to choose whether they're going to give any money to a union. And as for how people would choose, that remains to be seen. But I'm sure since a lot of people were forced into this situation and the unions haven't had to be responsive to these members in a long time because they've taken money for granted, a lot of people are going to decide not to support the union. But on the other hand, maybe the unions will change their approach a little bit. And since they actually have to persuade people to give them money, maybe they'll make it more attractive that we'll just have to see. Jacob, I remember when I worked for Hertz rental car during my grad school days, I had to join a union. It's a precondition of my employment. I went to the union hall and paid a fee and they took a little bit out of my paycheck every couple of weeks. Does this case have any presidential value or application at all to private sector unions? I don't think so because this case really turns on the fact that these public sector unions are engaging in political advocacy when they bargain with the government. And of course, the Supreme Court treats political speech a little differently than it treats all other speech. It gives that to absolute highest protection. And when a private sector union is bargaining with a private employer, that typically wouldn't involve matters of public policy the way a public sector union's bargaining does. So this case won't affect the private sector and isn't likely to lead to another decision that would affect the private sector. Well, Jacob, we thank you for your time. And we wanted to highlight the fact that you're a former Mises Institute guy, one of our associated scholars, an actual victory in the Supreme Court this week and also highlight that there's nothing libertarian per se that is pro or anti-union. This is a separate case. You can find more about Jacob and his organization at libertyjusticecenter.org. And in addition to being a brilliant lawyer, for those of you who don't know, he's also the author of a brilliant introductory primer called Libertarianism Today, which we sell at Mises.org. We'll post a link to it. Stephen Cancelo thinks it's one of the absolute best introductory libertarian books out there. So he's a busy guy. Jacob, thank you so much for your time. Ladies and gentlemen, have a great weekend. Subscribe to Mises Weekends via iTunes U, Stitcher, and SoundCloud, or listen on Mises.org and YouTube.


Scientist at Lanzhou University in China published a paper in the journal Science Advances describing a prototype for an implantable wireless energy device. The biodegradable device can receive and store energy to power bioelectric systems, things like sensors for monitoring your health or small devices that deliver drugs in particular amounts. The new device uses a magnesium coil to charge when a power transmitter is placed on the skin above the implant. And then the power is stored in a module made of zinc supercapacitors. The amounts of zinc and magnesium are below the daily intake recommendations for people. So when they get reabsorbed in the body, they're just used as nutrients. Tests and rats worked for up to 10 days, and the device fully dissolved into their bodies within two months.


Okay, hi everybody. My name is Mike McGrath. I'm here to talk to you today about containers atomic and best practices There's been a few atomic talks already today. I'm hoping this won't be a lot of repeat Try to go to them but I'll emphasize some of the important pieces for those that aren't that familiar and I'll also try to just emphasize the pieces that are kind of complicated and tricky to to understand. So my background at Red Hat is actually I started as a volunteer in the Fedora community. I was the Fedora infrastructure lead back when dinosaurs still were on the earth. Then Red Hat hired me on to do that full-time because they figured that's probably a good idea and from there I went on to do OpenShift and so I left Fedora to go to OpenShift and then I left OpenShift to come work on atomic and now I'm here to talk to you about OpenShift and Fedora. So you can't really escape your past as it turns out. So the topics today are just to go over the atomic universe You know, we talk about containers and all that stuff and just kind of Red Hat's view of it We've got an exception on just atomic and containers. Just kind of make sure we're all speaking the same language and understanding what this stuff but is And then we're going to go over some deployment models and best practices. These are more high level but kind of help to help you better understand what you can do with containers when you're actually using them in a production environment and before I go on just a quick show of hands who here has ever tried Docker or PCP So let's look at the atomic universe So we've kind of got two communities right now We're looking to better merge them or align them in the beginning of the atomic universe So it's actually OpenShift and we want to create V1 and V2 V3 shipped very recently includes Docker and Kubernetes and all sort of stuff at the same time all that was going on We had this atomic project stuff going on the background. I've got a timeline on that and I typically look at OpenShift is combining a lot of these components together for a full DevOps view of things, but atomic includes several pieces include not just the The containers and things there's a lot of little tools that we'll go into and a big part of the atomic project is of course the atomic host Which today the atomic project or project atomic produces Three different varieties of hosts actually four was kind of our target One of them obviously is out in Fedora. It's produced with the Fedora team. A lot of people work on that We're working on two different releases sort of in the centos world One of them is exactly we'd expect from Centos some sort of downstream build of the rel atomic host We're also looking at one that moves a little bit more quickly something that is a little bit more stable in Fedora but a little bit faster than rel atomic host and You know that we're trying to get that to you because we think that's a you know I think that's a compelling thing to be doing Fedora tends to be a bit more leading it than some people would like and then obviously we've got a rel atomic host That's the thing that puts food on our table. And so it is a fully supported product at this point On the open shift side of that that tends to be our past and it's kind of the reason that there's a lot of confusion at least internally a redhead about these things is because There's not really an apples to oranges comparison between what atomic project atomic is doing and what open shift is doing Sure, there's containers in both and both using Docker. They're both using Kubernetes But they are very different and so open shift is red hats full-on paths and the open shift guys produce Three different varieties right now one is open shift online, which you can actually just go to www.openshift.com If you have an email address, we want to go invent some thinking my address You can it's funny that you just log in you get some apps. You can build them It's great great little service. We have open shift enterprise, which is more of a redhead traditional business model where a Customer can come in download the bits install them on their system and run them all Nice and easy and then there's the upstream community project, which is open shift origin Which mostly exists out of github, but it has all those pieces that you'd expect if you wanted to build this on your own I'm something like Fedora or Santos so at the summit we announced this new project or I guess new product called atomic enterprise platform and it kind of sits and in between these two pieces and The way that I like to describe this is atomic hosts I think most people get it's a containers based operating system and I'll talk more about the details of that But it's got Docker, Kubernetes and a few other things that you need to get going with the deployment Atomic enterprise platform takes those things and automates a lot of pieces of it It allows for a larger deployment of atomic hosts that can be across several different systems Has all the stuff you need to tie stuff in and have a whole bunch of automated pieces The thing is different the thing that goes further with open shift is it adds those development features And so on the developer side if you have developers that are gonna be pushing to prod or if you have want to do a full DevOps model That you know, we recommend you go straight to open shift. It's got all the build tools It's got integrated CI all this other stuff And so over the next level size, I'm gonna kind of dig into each of these more close So atomic hosts as I mentioned all this stuff is very new So, you know, it's understandable why there would be some confusion about this We launched the product is how make back in April of 2014, which is really not that long ago in the grand scheme of things By the following December it had been put into Fedora 21 And then the following March, which was just a few months ago was when we jade the product now a redhead timeline That is that is lightning fast But you know, it's going through it It kind of feels very chaotic at the time. And so the big thing about atomic hosts That's very different from a standard row hosts is that it's it's got this core piece of technology called OS tree And this is Colin the guy that's invented OS tree. Well, I thought it's supposed to be here. Is anybody seen Colin? That's fine So a comment on this tree and I asked him for a quote and he was gracious enough and gave me this quote OS tree was born to help implement a continuous delivery model for operating systems One can be a lot more confident about updating systems if one knows that a reliable rollback system is always available And this is really the core the core feature of atomic hosts And I guess just a quick show of hands who here has installed a booted or tried an atomic host It's okay I'm lost everybody not everybody so I'll go over some of the differences here This slide right here really just outlines it So your boogie or atomic host you log into it if you type yum update you're going to get a command that found Yum is not even on there. It's not because we replaced it with something new or either it's because it's not on it It's largely a read-only file system. You cannot add packages to it very easily There's a lot of things that you just locked in the whole point of the atomic host that you're supposed to be running things in containers and so the containers are the way you'll bring down new features and things and As they will be quick to point out You know a lot of the advanced features you might need from an administrative point of view would be down in SPC's But even with all that you're still not going to be logging in and making a lot of changes to the underlying file system However, there if you do want to do an upgrade and downgrade you use atomic host upgrade Which will pull down all the information you need get the system ready, but then it'll sit there You'll still be on the old version until you reboot into the new version and An atomic host rollback will then let you roll back to the previous version again a reboot is required So this is a very drastically different way of managing the system But as you look at you know your cattle versus pets argument It's a really great cattle argument that you can just boot up these new systems bring them up and down You know that what's state they're in because they're all identical minus the actual configuration pieces So a time again a price platform So a time again a price platform when you want to install this and get several nodes across has from the usability point of view Has an OC client tool and a cockpit tool and both of those go through the API to contact an atomic master And the time master is a Kubernetes host These are typically run on their own so it's got Kubernetes and that's be whatever you would need to have in there Along with sky DNS for service discovery and it also has a few extra API pieces that we use for deployment and some of these other items So you use typically you use cockpit herbs, so you use OC tools to then contact your atomic master to tell it what to do At that point the atomic master go out to your node farm Of the atomic nodes and this would be the bulk of your environment if you're running anything significant You have lots of atomic nodes up there running containers all over the place and on these atomic nodes We actually ship a few containers already that help integrate this environment So in in a time again a price platform environment. We have an HTTP router, which is based on h8 proxy We have a Docker registry that's integrated So obviously you have a large environment You don't want to constantly go out to a red hag registry or a doctor registry to download things You may want a local mirror That's what you can think of as your local mirror that doctor registry and then we have a special deployment config that allows you to Do specialized deployment artifacts, which a lot of this stuff is actually going to emerge back into Kubernetes We try to be good citizens. So that's that will all end up with Kubernetes And you won't need these specialized container for it anymore OpenShift adds a bit to that so there's an integrated UI with OpenShift that adds Application to you of your of what you're trying to do and it also adds some additional API calls to the master and then the two Big ones that really the big differences are we have continuous integration as built in that runs inside the platform itself And there's also a source to image builder So if you're a developer and you have some sort of code of some kind You want to get that stuff all built and tested OpenShift has all the tools that you need to do that out of the box Whereas a time enterprise platform kind of assumed that someone else is doing that already either Your developers have created an image and sent it to you or that you're gonna be building it somehow outside the system And also a lot of people already have CI So, you know, they may not want to move to OpenShift unless it feels becoming too complicated to maintain So before I move on any questions just generally about what OpenShift does is target at DevOps stuff What atomic enterprise is targeted at which is a container orchestration for traditional operators or what an atomic host does in questions Okay So let's move on to atomic and containers. This is some 101 stuff to make sure we're talking about the same thing here It should go pretty quick. So We're gonna containerize something typically take something like an application You throw it into your Docker container and and then you run it and that can be moved around this way or that It's it's very simple We typically talk about this in terms of microservices meaning that it's not generally a good practice to be cramming this whole large stack with your HTTP server and PHP in there and you're also gonna throw my SQL in there and memcache You don't tend to want a large monolithic container because they don't scale very well They're kind of unruly to work with and so the idea is with containers you can break them all out into small pieces Here and there a lot of good best practices. I think most people are familiar with that Would you go into an actual container build? Which is taking what that previous slide wasn't actually doing it in some sort of reproducible fashion You'll do that with a Docker file and this is just a sample Docker file If you have any experience building kickstart files anything like that building a Docker file uses That same part of your brain to build these files One thing some people get confused about is that you can actually boot an image make some changes to it and run docker commit I generally recommend against that you lose the reproducibility The analogy for those of us that are packages would be we just imagine if you could actually log into the build server While it's building and make changes to log out you'd give Dennis a heart attack So generally you just want to use the Docker file to build these these images And so the I'll just point out what you know the basis pulls about basic fedora image in it runs young and slice GP at Ruby I've added some local Files of things. I'm going to expose port 80 nice and easy Then I'm going to build the image which it builds from fedora pulls the pieces down Builds what it needs to and I'm going to tag the image. So that's the basic workflow I'm going to tag it and specify what registry it's going to go to and that will throw it into an actual registry Which brings me to what a registry actually is So if you haven't looked at it, I think most of us probably looked at Docker IO. It's just a registry. There are several of them Red Hat has its own certified registry We're also welcome to run your private registry, which I suspect most people will be doing in any sort of enterprise environment You'll sort of take these images. Hopefully certified images from Red Hat But if you want us to go hungry, you can also use the Docker IO images and then you can try those as well The Red Hat certified images are at least groomed and things like that And I think Fedora is going through a lot of the Fedora. I'm just going to try that too The real trick is that on the upstream Docker images, there's not really any certification process They've got some official images and things, but it's pretty wild west out there, which is great You can upload whatever images you want to up there But at the same time that makes it you've got to be careful while you're consuming from that upstream place And so basically what I've done here is just you can once it's in the registry you can run a Docker run On any one of your atomic hosts and it will pull down the image from your registry and go from there. Now We're writing this process is I've described how to build a Docker container I've described how to upload the Docker container We explained that Dr. Run runs the Docker container. The next problem is what happens if this is highly Successful and you're running tons of Docker containers. That's where Kubernetes comes in And so Kubernetes is an orchestration framework that allows you to describe an application and all of its micro components and Pull it basically orchestrate several Several applications each that could have several different containers It allows you to just tell it what to do and it'll do its best to make sure the environment looks like that And I've got an example in here, but Kubernetes has some built-in routing It has easy ways to expose these images. It has ways to auto recover It's got pretty much all the things you're going to need to run lots of containers in an individual environment and Kubernetes by if you're not familiar it was built by Google Google has their their level seven Google wizards building Kubernetes and go it's under rapid development out of all of the components that we're going to talk about today Kubernetes is the newest and in my opinion the most exciting part of this It's going out of rapid changes, but it's all very good stuff It's been very exciting work with and so just a quick example of what you could expect from Kubernetes after you've described application to it is that it has this whole health check system And so if you have a specific container That goes bad and and in Kubernetes they're called pods a pod could have several containers But generally conceptually if you're not familiar with it, just think of a pod as a container. That's fine So if one of your pods goes bad Kubernetes will notice that try to kill the pod and bring it up in a new location This is exactly what you would expect to have happen from a monitoring system.  You've actually told Kubernetes Through a series of JSON files what your application or several applications are supposed to look like and so you've got this is a Sniff it from a sample service that pulls the WordPress HTTP down you can see that it's got the names up It tells you what ports are going to be in there. It's a very basic language that is really easy to control and manage with something like it It's a it's a really great little interface. So The next step of this before I get too much further is I want to really nail home this link of the container workflow and the atomic workflow how How much they have in common but also in compares compare those workflows to the traditional young workflow And so if you're going to look at an update scenario or deployment scenario, which is what we're going to go for next You know young basically the idea is how do you get from version one to version two? So let's look at these deployment scenarios Like I said version one to version two very simple So let's look at a traditional sort of young update scenario You've got your set of servers often some server farm in the middle of nowhere and everything's running fine And a developer comes up and says hey We want to we've got some new code to deploy and so with the young update in a traditional environment And you may have orchestration doing this but still somehow in here.  This is the way I've done things for over a decade I think most people are familiar with this workflow but the problem is what I call the traditional failure and Many a Christmas Eve's have been had been ruined by these sorts of failures So what the real issue is what happens if you're in the middle of the deployment like this and The one of the systems you're working on young update or whatever your deployed code is going out What if that fails? What do you do? Your options are not very good Rolling back RPMs. I mean they kind of have it, but I've always expressed that to be a pretty shady solution Or what you know, what if you have to get a developer on the horn to say hey, you know We're doing this update for whatever reason this one still had old libraries on it and it's very confused We don't know what to do at this point. You know now we're we're getting Database calls that are bad all this other stuff. You're really in a bad solid You're really in a bad situation when you're if something goes wrong with the traditional update cycle. So Let's take a look at red black deployments. I think these are also basically called green blue I think there may be some argument the difference between two I think they're about the same I first started learning about red black deployments from Netflix. This is how they do things. It's very fancy So let's say you've got your load balancer up and everything's running on version 2 your developer shows up and says hey I've got this great new code to deploy Please deploy it for me. And so this deployment works a lot differently in that When you start bringing up version 2 you bring up an identical side scenario version 2 until it's entirely up and running During this entire time everything on the production side your Deployments your load balancers are also for serving version 1 your users are completely unaware that version 2 is out there anywhere And this allows you to have your QA going in test You can have your developers test you can go through and test a whole lot of scenarios to make sure that version 2 is ready to go And when everybody gives a thumbs up you flip the switch and now Everybody now your users are using version 2 and you shut down version 1 and you're good to go This is a really great way of making sure that the environment is going to function as best as it can But there are still some issues So one of them is for example is I've seen this done with DNS And so you know if you or even a really lazy or poorly managed load balancer So let's just say you do try to do this with DNS you got your version 1 version 2 up You've done all your testing again on version 2 and you say hey we're ready to go So hopefully someone the previous day has said okay Changed will set the TTL to 60 seconds and For a little bit will serve both both of them at the same time and once that 60 seconds is up the theory is that version 1 will no Longer be used because DNS is amazing except it's not DNS is terrible And if anyone's ever been in a scenario where we've done this you you've definitely seen that even after that 60 seconds Version 1 will continue to get served sometimes for hours afterwards And one of the big reasons for that is because the way clients choose to implement DNS and name resolution is not Not as standard as I think we would all like some of them don't bother looking at the TTL They don't look at the DNS entry again very often So if you have you know some sort of mobile app that is contacting your application It may very well not realize that the changes happen So this is just one of the pitfalls of a red-black deployment, but there are good pros and cons, right? So some of the good pros this will catch production users or production issues before the users ever hit it That's always nice There's no rollback required really because if version 2 is having any issues just shut the thing down version 1 was Untouched the entire time. You're not really going to be in an unknown state We have half your servers on version 1 half on version 2 and maybe a few of them that died halfway through better some completely unknown state The cons though are also a lot of this it's expensive, right? At some point time you're going to have to double your infrastructure You can do this during an off-time if you want But you pretty much still have to plan for a peak time or at least downtime because if there's some sort of zero-day or emergency deployment if you're using the bulk of your Environment you either have to choose to take some of it down and and take users off Or you just have to take the whole thing down and do the update that way which it can take a long time to do Monitoring is also very tricky in this scenario depending on how you're doing monitoring You may have temporarily brought up double the amount of environments they have the host names and things and it's how you're going to bring it down You have to remove them depending on your monitoring solution adding or moving house can be tricky especially the removing part The router flipping the whole thing when you're on version one you need to move diversion to Making sure that that actually functions, right? Especially if you want to try to do that with some sort of bleed over where customers aren't getting cut off mid transaction or anything They're gonna need to move and that can be tricky to do depending on the rubber you're using Also depending on what sort of storage you're using if you don't have some sort of shared storage file system And you're using local cash or local storage on those systems that can also be very tricky Especially if these are entirely different environments or entirely different houses and finding scale issues can be tricky You know your Kiwi can do the best job that they can but if you bring that new version up and there's a slow algorithm of some kind or you've Forgotten some sort of index or something It's gonna be painful to to track down because it's everything is there. They're getting the It's getting the load that it's getting the full load of the environment And so your options are kind of like you might be able to flip back for a little bit So let's take a look at rolling deployments, and this is what I have typically done in the past at least before clouds Rolling deployments are basically you have your load balancer up and everything is serving fine Your pesky developer comes in and says hey, I have my version So you release a new version and so you take one of the one of the systems out of your load balancer You update it and now it's on version two and you can move on to investment to version one You can even start going more at a time and do some sort of Increase ever increasing number if you have a huge environment of several thousand hosts You go up to a hundred at a time or two hundred at a time Until eventually everything is on version two Now if you go back and look this is a very odd story because this won't always work with a lot of applications You said you're certainly in an environment. I think in this point in my example Where some users were getting version two some users were getting version one for many types of updates That's totally fine. Especially cosmetic updates and things like that So there there are certainly several good options in terms of doing early deployment. There's a lot of cons as well So let's take a look the pros. This is the cheapest way to do deployments You don't need to have double your capacity at any point time You can also typically find performance issues early because all these systems are getting performant or a production level load So any of those early systems if they start falling over you can halt the deployment to take a look at what's going on instead of continue to move on This is a pretty common workflow I would bet most of us have tried something like this in the past With an update this works really well with local storage if you have storage on the actual system You've got some sort of shared environment. You can basically reuse the hosts that are there This is really great for gigantic environments where you need to do just a few at a time Obviously, I wouldn't expect Google to have a complete copy of their environment at any point in time There's still a lot of cons though. So I mentioned the unknown state concerns. You've got situations where Some users may be serving Getting a code from multiple versions of the environment. You can use sticky sessions for this if you want But you know, it's there's a consideration that you need to look at if you do get through probably through the deployments You decide that this is not working out then obviously you need to do a rollback of some kind And so you're gonna have to go back and find the versions that have been updated and roll them back to version one And this also requires some sort of integrated health check to happen on each one of the individual hosts Which is always a good idea, but you're gonna want to make sure that the health check is working very well So, you know, for example, this is a Jboss application You can't just check to make sure that the TCP connection is open because Jboss will take a little bit longer to actually deploy the application So you actually have to have some sort of health check that can then go in and make sure that the actual node will respond with 200s instead of errors and there's a lot of ways to do it, but it's something you've got to be careful So pros and cons, you know different different applications, but two perfectly valid deployment scenarios So the hard one data migrations So I would say I think the data migration story has always been the hardest part for me Especially with OpenShift Online, so I can give you an example when our team ran OpenShift Online We would do new deployments. I think I think that by the time I left we were doing about a deployment one and a half times a week, which is not the 7 billion times Netflix deploys every day But it's not bad for an enterprise company and The real trick is with data migration is because if you have any sort of update that requires some sort of scheme of change or data Migration or anything like that There's this critical point in the upgrade where once you start doing that migration Unless you have some sort of fallback plan, which is often very expensive to write if you're going to do some sort of de-migration That if you find any errors at that point, you kind of just have to power through and it's rough My recommendation for those of you that are looking at doing the sort of scenario in your environment is to decouple data migration Updates from regular updates. And so and a lot of enterprises do updates once every three months or every three years Whatever it actually is If you have some sort of data migration in that I recommend decoupling that part of the migration and doing it separately There's a lot of reasons for that one of which is that one of which is because data migrations can take a long time But also it's easier to help know when something goes wrong So if you've got you know 25 patches that you're going to deploy and one of them ends up causing a Some sort of performance issue, which one wasn't right? You do typically want to break these up So you can help find things like that. And so the to help illustrate this is In this scenario, let's go back to the rolling update scenario if you have Some of your systems on version 2 and some version 1 you got to shut down Well, which version of the schema is expecting, you know, that just it can be kind of a pain to go through and try to figure out So I just want to I've got a few more things here and I wanted to open up for questions We'll see if there are a lot So just we covered the atomic and ownership ecosystem. I know this is still very confusing I hope I have Eliminated some of it in a word ocean atomic are very coupled to each other because of the common container background I think that over shift is kind of now more considered part of the Product atomic container ecosystem. So that's always good. We've covered a little bit about Docker containers and Kubernetes I wanted to put a demo together, but I know better. So there's also plenty of Options out there. There's a lot of videos and hopefully those of us in this room at least I think want to have the wherewithal to go do that sort of thing and we covered at least two deployment scenarios with red back and rolling Now there's also several others You should go out and see and compare with what your applications look like and see which ones work for you But I do have four challenges for you if you're just getting your feet wet You're not sure where to start and what to do next Challenge number one I would encourage all of you to go back find some critical component of your extra infrastructure just some small micro service But something that's in production Something that's out there and just containerize that thing containerize it try to get it out to production in that environment You can leave both up if you want to get it behind a low balance of what some of them behind containers I'm not that's a good way to get the feet wet and get other people familiar with what's going on there It's also a very not intimidating way to learn how your monitoring is going to work or most cases not work with containers And try to find some of those policy driven items that are going to need to change while you move to a containerized environment Challenge number two once you have that deployment Once you have that small piece deployed try to get enough that you have an actual application deployed onto an atomic host So go out you can run atomic You can run Docker on any sort of red hat operating system atomic host or otherwise, but try atomic host at that way Then once you have enough containers to warrant a full application go try Kubernetes You can actually get a supported version of Kubernetes with the time of course in route, but if you're Feeling up to it. You can always try a community version and go that way and once you have Kubernetes deployed Then go and take that next step and look at atomic the time project time enterprise Linux or OpenShift and so Remember just you know if you're trying to figure out which ones right for you if you have developers that are going to be pushing code to prod or you have developers that you want to Add CI to and all the other stuff integrated builds give open shit to try that may be the first place You want to go look anyway just in case but if you haven't have integrated CI already Elsewhere in your environment and you have a very strong line between your developers and your production people or perhaps You're in the finance industry It would be illegal to free your developers to push abroad take a look at atomic enterprise platform and then do what it needs for you And so with that I'll stop and I'll see if there's any questions from anyone. Yes Open shift online okay, so open shift online is still in v2 And so we're working hard to get v3 out if you're wondering why v3 So in the past we had done over shift online first and that was where everything went We flipped it for v3 because we had a lot of customers and people that wanted to get Docker environments out as fast as they could and Believe it or not. It's the hard parts of v3 After enterprise are things like integrating with our agent like we have single-signal with our agent and the big one is billing So we have a full-on credit card billing provider That takes a lot longer to get ready And so we didn't want to block the enterprise release, but I would expect that you know probably in the next Over months we'll have something out. There would be a beta that you can go out and try The open shift online team does have atomic enterprise hosts out there running the production But they're not supporting the actual open shift installed. They're more on things like the reverse proxy servers and some of those other Dependency pieces. Yes Obviously Yeah, I think so there's not a definitive guide or anything if you're up to writing, you know Riley book or white paper I'm sure they would be amenable to that I think that the issues that we run into are a lot of new or greenfield Deployments are being done in Docker. It's much easier to start from scratch than it is to retrofit Having said that if you're just getting started and you're seriously about using Docker containers And there are actually a lot of really good reasons to move to Docker besides trying to utilize micro surfaces If you're in the environment, I mean, you know monolithic containers not gonna kill you especially if you're in it This has come up several times from customers in the education field where you have a centralized IT department and several other Ancillary groups that are kind of handing applications over. It's a lot easier to just consume that via a container If you can convince them to put it in even if it isn't a model a lot easier to pass that container around that It is a virtual machine, especially since sometimes you won't even have access into the virtual machine But in terms of the best practices, there is a little bit more that you can do if you want to go look at pods I touched on this briefly, but you are going to be in scenarios where for example You may want to have some sort of application server that needs to be co-located or at least very had very fast access to a memcache server Maybe you maybe you have 20 of each With Kubernetes and pods you can have multiple Individual containers that exist on the same system on that same pod. And so there are there really are some exotic application scenarios that you can look at which is How Yeah, so here's a really good example of that so what's what's the difference between Two really big bare metal servers running a quote microservice versus versus You know a hundred tiny ones that are spread across over them in terms of preventing the cluster fuck I think you could look at I think a big part of that is can is properly controlling the application definitions at the Kubernetes layer, so at a minimum you have a you have a history and you have some sort of control point control point there now as in terms of running lots of these little pods I think that if you end up in the trick is This isn't going to solve problems that other environments would have so if you've got a lot of bit rot in your virtual machine environment for example And you don't make any policy changes you may end up with the same situation in containers because it doesn't solve those problems But if you as an operator or as even as a developer if the developers owning these application definitions You should be okay with something like Kubernetes because you can always Destroy the application. You know, it's not like these these pods are going to get left over or you're not going to end up with sort of orphaned virtual machines and So I think that they're there the tools themselves will help alleviate some of that at least I think If you if you want your pops It'll make sure it gets rid of all those Kubernetes does tend to be smart, but like I said, it's also the newest piece of this and so Don't go expecting the world yet, but it is it is at least supportable and Red Hat has put their full GSS support behind it Yeah, so I'll give you an example Zavix was a big monitoring tool that we used an open shift online And so let's just you know, typically you want to let's just say you want to check and make sure that HTTP is running So you've got a pin to check you've got two ports that you want to make sure running You want to make sure that the SSL certificate is not expired You want to make sure it's responding within a certain amount of time and so to do that you can On a traditional virtual machine, that's all very simply just run a single command and you're good to go there Yeah, let's just say though that for example on a Docker system or an atomic host You don't even have HTTP on that post you may not have the tools even do a curl against it They're just tools that might be missing so at that point you have to go into the Docker container to get that information Which is kind of like running everything in suga. Okay, so I can kind of conceptually understand that now I've got the sort of Docker wrapper command that I need to do to monitor things Well, depending on how you do this as an API that you can report back well inside that Docker container It doesn't necessarily know what its host name is and so it's going to report back to that Monitoring system with what it thinks its Docker container host name is Modest is not going to understand what that is at all And so it's just like it's this kind of slew of very practical problems that you can work through But if you if you don't know that they're coming that's going to add a lot of time to first deployment Learn all that stuff Yeah, and I think it's it's it's not going to be surprising but if you if you go into treating Docker containers as though they are virtual machines You're gonna you're gonna get tripped up I actually like them quite a bit. I've worked in environments in the past where I had virtual machines that were getting very old and they had Kernel vulnerabilities and everything else on them But I couldn't log in to see what the heck was going on And it's just a big mess whereas with containers as root on the system. We have full access to all the pins and things I mean your container at any time. It's it's actually From the operation side, you know Some it's less now, but the operators tend to be Nervous about changes like this, but this is a big a big benefit especially in large environments where you've got application code coming from all you can always go in S-trace and see what's in the container you can check out versions of things Any other questions, yes So, okay Okay, so I'm going to ignore the kernel part of that just because I Don't I think that I you may see them if there's demand for them But I think that the best practice is that if you have I think the best practices It's going to be if you have the application created properly that the loss of a host isn't matter very much And so you so the reboot is is an intentional part of that It's sort of a clean slate wipe whereas, you know with something like puppet or regular updates You've got these machines that could be you know The actual operating system may have caught from rail six to seven at some points got all this cruft left over Atomic and both you know if you're using the Docker file scenarios Both of those scenarios basically bring up a clean slate every time. I think that's that's a big feature It's a forcing function to do that. So in terms of actually not needing to reboot an atomic host I'm not aware of anyone looking for that Is that you're in a known state you're either in state one or state two The you're not somewhere in between that if you do online updates you're stuck It's simply the guarantees that And I think one one thing I didn't point out that I meant to In my notes, but then if you go back through all these scenarios where I did the rolling deployments and the Red and black deployments, I didn't actually ever really specify whether or not this was an atomic host or a docker container That was very intentional because this when you're using an atomic host or a docker container You can apply that same policy different commands obviously But the policy can be the same Which is a really powerful unit of containers and operating systems and it's Something I think that a lot of operators will like just because of what John just said You get that you get that good known state both at the operating system layer and at the container layer Okay, any other questions? Yep That's a good question I have had several I would call fireside chats with people that have large container deployments Obviously Google has a whole lot of container deployments. So if you find some Google employee talk to them about it in terms of good Case study actually, you know what I don't know that this is the case But if you go to open shift online, I know that our product managers are real big on getting User success stories for banks and banks. I would bet they're gonna have something there I don't know how technical it would be, but that's a good place to start Were these and this micron Betsy and all them right this is what they do in LXC or I Take a look at what's the right code as a craft Image garbage collection and other stuff Well All right, any others before I hold it out, I'll be around all week. So feel free to I love talking about this stuff academically and Pragmatically, so feel free to run me down calling an idiot or ask me a question. Thanks everybody


Now, as gunshots echo across the windswept snow-covered reaches of the Wild North West, Quaker puffed wheat, and Quaker puffed rice. The breakfast cereals shot from guns present Sergeant Preston of the Yukon. It's Yukon King, swiftest and strongest lead dog of the Northwest, blazing the trail for Sergeant Preston of the Northwest Mounted Police in his relentless pursuit of lawbreakers. On King, on you huskies! Gold, gold discovered in the Yukon, a stampede to the Klondike in the wild race for riches. Back to the days of the gold rush, with Quaker puffed wheat and Quaker puffed rice, bringing you the adventures of Sergeant Preston and his wonder dog, Yukon King, as they meet the challenge of the Yukon. Say, fellas and girls, Christmas goodies come only once a year, but the goodies you can enjoy every morning are those king-sized grains of sun-ripened rice or wheat shot from guns. Yes, I mean delicious Quaker puffed rice and Quaker puffed wheat, topped with lots of milk or thick rich cream and chilled fruit or sliced bananas. Mmm, a treat for your taste every time. Be sure to have a heaping bowl full of delicious Quaker puffed wheat or Quaker puffed rice tomorrow morning. The mother husky lay in the corner of the dog run with her puppies frisking around her. All of them were gray with white markings, with the exception of the tiniest of the litter. He was pure white, and it was he who ran forward to greet Angus McPherson and Sergeant Preston as they stepped inside the run. Well, hello there, young fella. The puppy liked the sound of the sergeant's voice, and he wagged his tail so hard he shook his whole body as he tried to make friends. The sergeant reached down and scooped him up. Angus shook his head. Oh, that one I call the we might. He'll never grow up to be a sled dog, I'm afraid. He's a friendly little rascal. But look at him, nearly a month old and lost in the palm of your hand. Oh, he's not made for the trail. He'd make a fine pet. Aye.  Well, thanks, Angus. I'll remember that. But for the time being, back to go to your mother, little fella. Look at him go. When the we might was three months old, he was only half the size of his brothers and sisters, but he was twice as venturesome. And those two factors determined his whole future. It was the day before Christmas. The we might burrowing in the snow found a small opening between the wire fence of the run and the frozen ground. If he'd been any larger, he wouldn't have been able to squeeze through it and tunnel his way up to the crusted surface of the snow on the far side of the fence. If he had known the meaning of fear, he wouldn't have raced straight into the dense pine forest that surrounded the McPherson cabin. But that's what he did. And once inside the forest, he ran on and on, having a wonderful time investigating the strange sights and sounds and sense of this great new world. Hours passed. The sky clouded over. It grew dark. The wind rose and the heavy snow began to fall. It was not until then that the we might gave a thought to home. And not until then, he realized he had no idea where home was. But the instinct for survival warned him his fluffy white coat wasn't sufficient protection against the driving snow-laden wind that he must find shelter. He floundered on through the deepening drifts until he reached the edge of the forest. But he was miles away from the McPherson cabin, and the two buildings he saw were dark and silent. The door of the smaller building was closed tight in padlock. The door of the larger one was also closed, but there was a broken board near the bottom that provided a means of entrance. The we might crawl through the hole. The building was a barn, and it was even darker inside than out. But here there was protection from the cruel wind, and the might trotted around making a tour of inspection. There was a stove near the door, cold and black, and a row of stalls on either side of the barn. They were unoccupied, but bedded with straw, and the might chose the farthest stall from the door. There he settled down and burrowed into the straw. Warm at last, he soon fell asleep, exhausted from his efforts. It was a light that woke him, a light pouring through the open door at the far end of the barn. The might nosed his way to the surface of the straw and peeked around the stall partition to see what was going on. A young woman holding a lantern was standing in the doorway, and behind her there was a young man. He carried a little boy wrapped in a blanket. There's a stove in here, John, and firewood beside it. Good. We'll stay here instead of breaking into the cabin. Oh, plenty of straw, too. We can make a bed for Davey close to the stove. I'll get a fire going. Let me have him. All right, dear. I shouldn't have insisted on coming along, but I would have worried so much staying at home and wondering. Oh, you were right to come. I'm sorry I couldn't keep up with you. I couldn't have gone on much farther myself, caring Davey. I'm so cold. I know, darling, but you'll be warm in a minute. And I hurt. I know, but Daddy's going on to Dawson and he'll bring back a doctor to make you well. When I saw these buildings, John, I was hoping there'd be someone here. Oh, not at this time of year. It's the way station for the stage line they don't operate during the winter. How far is it to Dawson? Perhaps 10 miles. Oh, dear, perhaps we should have stayed at home. Simply done nothing? No, we had to try and get into a doctor. We'd have made it if it hadn't been for the storm. What a Christmas Eve. Like Jesus. What, Davey? Like Jesus. This is a stable, isn't it? Yes, darling. Is there a manger here? Those are manger in the stalls. They put hay in them for the horses to eat. They're not very big. I couldn't fit into one of those.  Oh, John. If there were only something we could do for him, John... I'm sure it depends a tiny bit. He needs a doctor. Yeah, the fire's going. It should warm up in a minute. I'll get some straw. From far back in the dark recesses of the barn, and with only his little head showing, though we might watch the man pile straw beside the stove, then take the little boy from the woman's arms and place him on it. The puppy liked the boy and would have liked to make friends with him, perhaps even snuggle down on the straw beside him, where loneliness and fear could be forgotten. We might have lost his supreme self-confidence, though. He was afraid the man and woman might object if he came any closer, might even drive him out into the night in the storm, so he nestled back in his burrow and whimpered a little as he watched. Doesn't he? It's soft. Are you feeling any better, son? I'm sleepy. That's good. You try to go to sleep, baby. All right, Mommy. John, I don't like the sound of that wind. I don't think you should try to get to Dawson tonight. Oh, I must, dear. Baby seems to be a little better. By morning, the snow may have stopped, and we can all go on together. You'll have to fight every step of the way, Dawson, if you try to make it tonight. Well, listen, someone call him. See who it is. The travel are heading this way. Anyone we know? No, a rough-looking customer. Perhaps I'd better stay here with you. Yes, by all means. Howdy, partner. You mind if I come in? No, not at all. There's a stove. We have a fire going. That sounds good to me. Why, a woman? Yes, my wife and my boy. I'm John St. Clair. I'm a trapper. Might call me a trapper too. Name is Smith. You're welcome. Are you on your way to Dawson? I've just come from there. How's the trail? There isn't any now. Oh, it's a terrible night. Merry Christmas. Well, at least we have shells. Who's that? I have no idea. Another traveler, perhaps. Stand aside from the door. Why are you drawing your gun? Never mind. Stand aside. The door isn't barred. Come in. I can't. I have a man who's really done for it. I'm holding him up. All right. Open up, St. Clair. Once more, the we might stuck his head out of his burrow and around the stall petition to see what was going on. Two men staggered into the barn. John St. Clair pushed the door shut behind him. One of the men was completely exhausted and would have dropped to the floor if the other hadn't lifted him bodily and carried him toward the stove. Here we are. Do you mind if I put him down here, ma'am? No. Is he hurt? No, not that I know of. But we'll have a look. I found him lying face down on the trail. He might have frozen to death. He might have. But there seems to be nothing seriously wrong with him. Little warmth is all he needs. Are you all right, ma'am? Yes. What is this place? What does it look like to you? It's a barn. I must keep going. Now, there's a brave idea. You take two steps outside and fall on your face again. Did I do that? You did. Who are these people? Since we've just arrived, I'm in no position to make introduction. Oh, I'm John St. Clair, a trapper.  My name is Smith. Is it now? And yours, mister? It, uh... It's Jones. What's yours? Green. Since I'm only competing with a Smith and a Jones, there's no reason why I should tax my imagination. What do you mean by that? Just that my name isn't Green. His name isn't Jones and his name isn't Smith. Now that Mr. Smith realizes he's among friends, he can put up his gun. Yeah. I don't understand. I'm afraid I do. These men are... Three wise men who've come to pay you a visit on Christmas Eve. Three wise men, ma'am, who are a little too wise for their own good. How do you figure you're so wise, Green? Well, when a man is killed and the police start rounding up all suspicious characters, it's their wise thing to get out of town until they find a suspicious character they're looking for, I mean. You've come from Dawson. How did you get? The man who was killed. They have any idea who did it? I didn't wait to find out. You... You men are suspected of murder. I had no love for the dead man. Nor I. I had good reason to hate him. Well, who are you talking about? Luke Devlin. It was he or one of his hired gunmen who killed my best friend, Tim Moriarty. I swore that nothing would stop me from evening the score. I made the mistake of trusting Devlin. My father made the mistake of trusting him. Devlin cheated him out of a fortune and destroyed his will to live. The law may not call it murder, but I do. Each of you hated this man, this Devlin. It seems so, ma'am. But you didn't. Somehow I know you didn't kill him. Oh, it would be hard for you to think evil of any man. What's the matter with the boy? Mommy, it hurts. Davy, darling. We think it's appendicitis. Do you mind if I take a look at him? No, no, no, indeed.  I just want to see you. I'm sorry, Davy. Is it? I think so. My... My guess is that he should be operated on at once. We were trying to get him into Dawson to the hospital. No chance of that tonight. I've heard that the best temporary treatment is a cold compress. Well, now this bandana of mine could be wet with snow. It may help. No sooner said than done. I hear dogs. So do I. There they are. Coming from Dawson. It's a big man driving. Could be Sergeant Preston. Yeah.  There's all these decent people in there, boy. You want to be arrested? Does he know you by sight? No. Then stick to your story. Your name is Smith. For the first time that night, the we might hidden in the straw saw a familiar face. He recognized the sergeant and the great dog that entered the barn with him. The puppy would have run to greet them if King hadn't come straight to his hiding place far back in the barn. But King merely touched the puppy's nose and returned to his master. The might, more than a little bewildered by all of his going on, decided to stay where he was and continue to watch. The sergeant knelt beside the boy and examined him. He talked with Mr. and Mrs. St. Clair for a few minutes. And then he and the three men who called themselves Smith, Jones, and Green left the stove and walked straight toward the stall where the might was hiding. The might burrowed deeper in the straw. There's no need to disturb Mr. and Mrs. St. Clair with our business. You have business with us, sergeant? With one of you and any one of you might fit the description of the man I'm looking for. About six feet tall, about 180 pounds, blackbeard, caribou parka. The description fits all three of us, that's for sure. May I ask what this man you're looking for has done, that he should be wanted by the law? The man I'm looking for knows what he's done. I expect him to identify himself. Oh, do you, Sergeant? You seem very confident. I am. Because the man I'm looking for can save that boy's life. Come along, King. Where are you going? I got some food and some tea for my sled. I'll take it over, men. Think what over? What he said? That one of us can save Davy's life. Would take an operation. In Dawson. In Dawson? Yes. An operation. Tonight. And the one of us who can make that possible is the man the Sergeant is looking for. The one he'll accuse of murder. He said to think it over. The Sergeant returned with supplies and cooking utensils, and Mrs. St. Clair prepared a meal. It was eaten in silence. But we might was hungry, and he would certainly have joined the group around the stove if King hadn't brought him a biscuit. The puppy thanked him hastily and began to devour the hot bread. When he had finished it, he wanted more, and he would certainly have gone after it if his attention hadn't been distracted. The Sergeant was standing only a few feet away from him, once more talking with a man who called himself Smith. I take it you believe the boy has a cute appendicitis, Sergeant. There's no doubt of it. And the only thing that can save him is an operation. Right. An operation costs money, and St. Clair can't afford it. All right, I'm the man who can. You get the boy to Dawson. I'll pay for the operation. I have plenty of money on deposit at the Yukon Trading Company. Under the name of Smith. You don't have to be told who I am. I'm Nick Blaine, Devlin's ex-partner. How are you? I suppose people heard us arguing in his room tonight. When I hit him, I swear I didn't mean to kill him. You didn't, Nick? What? And you're not the man I'm looking for. People heard you quarreling with Devlin, but he was shot an hour after you left. You mean that? It isn't money that can save this boy. It would be impossible for any dog team to get back to Dawson tonight. I heard that. You did? I'm your man. Not if your name is Green. It isn't. It's Mike Mason. Why, sure now I remember. You won the Snowshoe Marathon from White Horse to Dawson last winter. I did indeed. And I can make it to Dawson without any trouble at all. Even carrying the boy in my arms. I'm ready to start this minute, and I'll turn myself over to the police as soon as I deposit Davy at the hospital. But I didn't kill Devlin, Sergeant. I'm telling you the truth. I heard the shot as I was coming up the front stairs. I ran down the hall to his room and opened the door. There he was, lying on the floor. I knew I'd be accused. That's why I ran away. Mike, you might be able to make it to Dawson tonight, but Davy couldn't stand the trip.  Does that mean you're not accusing me of Devlin's murder? It doesn't. Devlin told us who shot him. Sergeant, may I speak to you alone for a minute? What is it, John? Well, there's no reason why I shouldn't say it in front of these men. I'm the man you're looking for. My name isn't Jones. It's Warren. Dr. Henry Warren. Yes. I went to Devlin's room and I leveled a gun at his heart. I told him who I was and why I... why I was going to kill him. And he'd driven my father to suicide. But I couldn't pull the trigger. Devlin took the gun away from me. Then how did that happen? How was he shot? It was afterward when he was pointing the gun at me and laughing. He said he was going to get rid of me and claim self-defense. I jumped at him and it was then... it was then that it happened. Your claiming self-defense? It would be hard to prove, wouldn't it? That doesn't matter. I'm willing to face the music. You're wrong, though, in thinking I can save Davy's life simply because I'm a doctor. How can I operate without instruments, without anesthetic or drugs? The ways of Providence are often strange. Providence. Call it what you like. After Devlin identified you as the man who had shot him, he went to your room in the palace. He'd gone a point. All your personal belongings were loaded on my sled to be taken to Headwater. At that moment we learned you'd been seen leaving town heading south on the stage trail. I took care of it to you at once. The instruments. My medicines. Are still on my sled. Are you ready to operate, Doctor? At once, Sergeant. I'll give you a hand, Warren. All right. Now, the Wee-Mites fly is really opened wide and wonder at the activity that filled the barn.  It seemed to the might that the men were going to hurt Davy. He growled low in his throat. King was the only one who noticed it. The great dog trotted back to the puppy's side, touched his nose, and the might understood that this was some business in which he shouldn't interfere. King dropped the straw beside him, and together they watched the men who hid the little boy from view. It was some time before they stood aside, and the might could see Davy's face. It was so white and still that the puppy was afraid. King reassured him. For the next half hour, everyone in the barn was silent, watching Davy. Then the boy cried out. My right meant the same for her. She's coming out of the anesthetic.  No, no. Davy. Davy, darling. Mommy, I had a bad dream. But it's gone now, isn't it? Yes. And it's been gone too, hasn't it? Yes. I'm sleepy. You go to sleep, darling. Go to sleep. The we might looked up into King's face, as if to ask him if everything was as it should be. King's answer was satisfactory, and the puppy followed Davy's example. Snuggled deep in the straw, he went to sleep. He slept for a long time. When he wakened, the storm was over. Someone had just driven up, and as the sergeant went out to meet the traveler, the might could see the clean white snow sparkling in the sun. But the puppy's first thought was of Davy. The boy was still sleeping. And then whoever had stopped outside the barn drove away, and the sergeant came back inside. That was possible downy, man. He brought good news from Dawson. Devlin's still alive? Yes, and what's more, he'll recover. Oh, thank heavens. But the news is even better than that for you, doctor. The Christmas spirit must have touched Devlin last night. Father Michelle came to the hospital to have a talk with him. During the course of it, Devlin exonerated you completely, doctor. You're a free man. This should be a very merry Christmas. I wish I could make it merry for my patient. You've made him a priceless gift, his life. But when he wakes up, he'll be disappointed. This is Christmas morning, and he'll be expecting a tree and presents. His presents are waiting for him at home. He can't be moved for at least another day. Well, presents may be an impossibility, but there are thousands of Christmas trees in the forest. There's no reason why we can't set one up in here. That's a fine idea. Who wants to give me a hand with it?  We might watch King leave the barn with the man, and Mrs. Sinclair returned to the stove to busy herself with preparations for breakfast. Then the puppy's attention returned to the sleeping boy, and a strange, wonderful feeling filled his heart, a feeling that he would never be lonely or afraid again. Because he had found something he had been searching for, a master to love and follow all his life. More than anything in the world, he wanted to run to Davy's side, and with the desire came the courage to accomplish it. Without a thought of Mrs. Sinclair, he scrambled from his straw bed and started forward. When he was only a foot from Davy, he stopped. The boy's hand was lying on the outside of the blanket, and the might touched it with his little pink tongue. The boy's eyes opened. Oh, are you a mind? Must be. And I must have left you. Quite and soft. Oh, puppy, I love you. Davy took the might in his arms. The puppies settled down in perfect contentment. Together they dozed off to sleep. What's that? It was Mrs. Sinclair's voice that awakened the might. Where did you come from? The tone of her voice and the look of shock surprise on her face filled the might with panic. He turned to his newly adopted master, hoping he would vouch for him. But Davy was sound asleep. The puppy began to tremble, and he lifted his soft brown eyes to Mrs. Sinclair, pleading for permission to stay where he was. You know, I didn't mean to frighten you. They're there, little fella.  The might was grateful for the kindness of Mrs. Sinclair's voice. But just then, the door of the barn opened and the men came drooping in. John, John, come here. Sergeant, please. The might dove underneath the blanket and began to tremble once more. Only a moment later, however, King stuck his nose under the blanket and gently forced the might to raise his head and look at the men gathered around him. At the same time, King made the puppy understand there was no reason to be afraid. And the might took him at his word. At least the big man with the red coat showing beneath his parka was a friend. Look, John, a puppy. Where did he come from? I'm sure he didn't slip in as you went out. I closed the door myself. He must have been here all night, sleeping in one of the stalls. And Davy's made friends with him. Now, could there be a better Christmas present for the boy? But the puppy must belong to someone, Sergeant. Only done. Davy can't keep him. We'll have to give him back. No. Angus calls him the we might.  Even so? And Angus told me three months ago that he was mine. To give to any boy who wanted a pet. Oh. Without opening his eyes, Davy murmured. Why still, Whitey? You're the best Christmas present I ever had. Did you hear that, Sergeant? Yes, ma'am. Last night, when Nick and the doctor and I came here to this table and found the boy, I was reminded of the old, old story. And when Mrs. St. Clair asked us who we were, I said we were three wise men. Well, in a way, we acted just like those other wise men. They brought the babe and the manger gifts. Gold and frankincense and murder. Nick offered gold to Davy and I my strength and the doctor is skilled. But in the end, it turns out to be your gift that needs the most action. I haven't given Davy anything. The puppy. It's the we-might himself who's done the giving. No wonder that his offering is the most accessible. He's proving again what was proved 2,000 years ago. There can be no greater gift than love. Merry Christmas, everyone. Well, sir, fellas and girls, today is the day you look forward to for so long. Yes, and right here is someone who wants to say something to each and every one of you. Here is Sergeant Preston himself. And naturally, I don't have to tell you that King is here to right beside him. Woo-hoo! Fellows and girls, King and I just want to say this. We hope that you and all of your family and friends are having the most wonderful Christmas ever. How about it, King? Woo-hoo! That's King's way of saying for the both of us, Merry Christmas. And Sergeant Preston, that goes for me and for all of us here. And for the Quaker Oats Company, makers of Quaker Popped Wheat, Quaker Popped Rice and Quaker Packo Ten. Yes, from all of us, a Merry Christmas to one and all. In our next adventure, a young couple, Mary Kenyon and Bill Hayden, leave town and head for Green Island Lake. A December blizzard is sweeping the trail. At a painted creek, a band of desperate men are lying in wait. Determine that two young lives shall be sacrificed to their greed. Don't miss this next exciting adventure. These radio dramas, a feature of Sergeant Preston of the Yukon Incorporated, are created by George W. Trendle, produced by Trendle Campbell Enterprises, directed by Fred Flower Day and supervised by Charles D. Livingston. The part of Sergeant Preston is played by Paul Sutton. Sergeant Preston of the Yukon is brought to you every Tuesday and Thursday at this same time by Quaker Popped Wheat and Quaker Popped Rice. The breakfast cereal shot from guns.  Delicious Orange Crush. This is J. Michael wishing you good bye, good luck and good health from Quaker Popped Wheat and Quaker Popped Rice. So long. This is the Mutual Broadcasting System.