Modernize or Die® Conference - Jon Clausen - Containerizing CFML Applications - ITB2020 - Episode 7
Gavin Pickin interviews Jon Clausen, one of the creators of the CommandBox Docker Images, Senior Software Developer for Ortus Solutions, about his Containerizing CFML Applications Workshop at Into the Box 2020 in Houston Texas, May 2020. Find out what the workshop is about, why you should attend, what you need to know before you attend and what you'll learn while you're there. You can support us on Patreon here https://www.patreon.com/ortussolutions For the show notes - visit the website https://conference.modernizeordie.io/episodes/modernize-or-die-conference-jon-clausen-containerizing-cfml-applications-api-itb2020-episode-7 Music from this podcast used under Royalty Free license from SoundDotCom https://www.soundotcom.com/ and BlueTreeAudio https://bluetreeaudio.com
Gavin Pickin interviews Jon Clausen, one of the creators of the CommandBox Docker Images, Senior Software Developer for Ortus Solutions, about his Containerizing CFML Applications Workshop at Into the Box 2020 in Houston Texas, May 2020.
Find out what the workshop is about, why you should attend, what you need to know before you attend and what you'll learn while you're there.
You can support us on Patreon here https://www.patreon.com/ortussolutions
For the show notes - visit the website https://conference.modernizeordie.io/episodes/modernize-or-die-conference-jon-clausen-containerizing-cfml-applications-api-itb2020-episode-7
Music from this podcast used under Royalty Free license from SoundDotCom https://www.soundotcom.com/ and BlueTreeAudio https://bluetreeaudio.com
Gavin Pickin (00:31):
Welcome to the Modernize or Die Podcast, Conference Edition. And today I'm talking with Jon Clausen about his workshop at, Into the Box in May. And so, uh, Jon, thank you for joining me.
Jon Clausen (00:41):
Absolutely. My pleasure.
Gavin Pickin (00:42):
Your workshop is Containerizing CFML application. So do you want to tell us a little more about it?
Jon Clausen (00:49):
Well, it's, I mean, as we all know and are aware at this point, if you're, if you're not aware, you're kind of living in a kind of a tunnel or something, but the container space just continues to expand and blow up. And there are a lot of options available to you now. And even since last year, we've got, you know, more expanded usage of a lot of different containerization strategies. What we want to do is provide one day of giving, users, CFML developers, an opportunity to understand how to containerize their applications, what are the logistics of it, you know, software, you know, hardware, requirements, things like that. How to, actually, deploy your code in those containers. And then how to handle, consistency between multiple tiers of your applications deployment. So from development to staging production. So we'll start off the day by giving you an overview of containers... and then as we go through the day, we'll actually do more and more things with it, to the point where by the end of the session, you will have started the process or possibly even have finished the process of containerizing one of your own applications. With its dependencies in a stacked environment. So it's a very hands on workshop. There's certainly a lot of information, so you know, come prepared to learn. But it's also something that, I think a lot of developers who have taken the workshops in the past have found very useful and has helped to jump start them in their own containerization strategies.
Gavin Pickin (02:18):
So obviously you mentioned earlier on containerization is big these days. Is there anything else that you think people should know? Like why is this workshop really important for CFML developers or developers in general?
Jon Clausen (02:30):
I think for CFML developers in general, I think that there's many of us who've been developing a language for a long time who started on bare metal hardware, big old monolithic servers, where all of our dependencies were packaged as one. And I think, I don't know that, five years from now you're going to have the tools you need to do your job, if, especially if you're a full stack CFML developer without at least understanding containers. So I think that's part of it. I think that it's an important technology to learn. It's an important technology to master. Although there's a, you know, we're not going to build a master of one day, but you should be at least on a path to help you do that. I think that's a big part of it. I think for, developers in general, I think that when you containerize your application stack, it contributes to a lot more worry-free code.
Jon Clausen (03:23):
It contributes to agile development in the sense that small iterations are tested and ready to go and pass all their health checks and they perform the same way and every tier before they, before they're deployed. So I actually think that, I find it to be essential. I mean, I think there's folks that have stinking thinking about it and one way or another, but I find containerization to be essential to keep the, you know, the consistency between deployment tiers, you know, solid, and then also be able to, introduce new features in a way that's much less worry free because I don't have to worry about the environmental aspects.
Gavin Pickin (04:02):
Yeah. I mean, another thing that I mentioned to, you know, just all throw my 2 cents in here, but, with Docker, you know, it really takes away some of the bad baggage that ColdFusion has. Cause a lot of companies these days, they know, they don't know how to maintain it. They don't know how to deploy it. And a lot of feedback we hear anyways that, you know, they've got these apps and they're DevOps people don't want to support them, but once you dockerize it and make it, here it's a container, go deploy it, they know how to do that. They know how to maintain it, they know how to deploy them and Orchestrate them. And so I think you can actually help, you know, companies keep working with ColdFusion when they're getting to this DevOps age where everyone seems to think it's a dinosaur. So, I've noticed a lot of people...
Jon Clausen (04:48):
No, go ahead. I was just saying, I think a lot of people, you know, they're, they're used to these old monolithic installations and I think the days of the, you know, monolithic server are dead if not dying quickly. And I think that, you know, containerization makes that very easy. It makes CFML apps viable again. And with, you know, open source technology like Lucy and some of the containerization licensing like that Adobe has, it's a real option for people to use.
Gavin Pickin (05:21):
Yeah. Especially with the 2020 updates coming out, where they're working on modularity and smaller install sizes and everything, they're definitely moving that way cause they know it's important. And so...
Jon Clausen (05:32):
Not to mention the fact that now in CommandBox and this'll be, by the time we do Into the Box, there'll be a release on this, in CommandBox, you can actually generate a bash script that bypasses the need to actually even use CommandBox in your containers. It's a straight script. So previously, you know, if you wanted to start a server with CommandBox, it was Java in Java. Right? That's no longer necessary because we're actually able to, to generate a script, wipe CommandBox completely from the container and then actually use that one script to run that job a process. And it's slick
Gavin Pickin (06:04):
Very cool. Yeah. So I guess that leads right into the next question. So why are you the right person to lead this workshop?
Jon Clausen (06:11):
Ah, well I guess it's probably just cause I got on the containerization bandwagon At Ortus earlier than everybody. I guess I think that, you know, I'm not going to honk my own horn here toot my own horn. But I think that, you know, I've spent quite a bit of time in this space, from the earliest development of the Docker CommandBox images. I've done extensive use of Docker, you know, personally and also professionally and day in and day out. I work with it. I mean, I don't use any other development environments when I code the CFML anymore. All of my database servers, caching servers, elastic search, everything is all containerized. So, I think I've got a fair amount of knowledge to bring to the subject and, I also have some tremendous, you know, team members who will be helping out during the day to help with some of the more environmental specific things. So I think it's a team effort, but I'm uh, I'm happy to lead it.
Gavin Pickin (07:10):
Yeah. I mean you've done some great work on the Docker images and we've compared to Lucee images and Adobe's images and everything. And I mean obviously we use them all the time. So as we come up against some hurdle, you guys update these Docker images for CommandBox to handle everything we want and need. I mean it's like secrets are built in and it just, it's a such a smooth workflow and yeah, you guys are a lot of great work on that and keeping up on date. as new stuff rolls out too.
Jon Clausen (07:37):
Well, and I think there's a couple of tools now that we've had of it. We have now that we didn't even have when we started with the Docker images and we've got CFConfig, which basically allows you to pre-configure an entire server. There's no need to like move files into the file system and deal with XML files and stuff like that where like with the Lucee containers, you can just, BOOM you know, have your production config and then use environment variables in that. So you can use a combination of hard coded settings and environment variables. and it just, you know, it just works. And then there's also, you know, between that and dotEnv, which allows you to source in environment variables. You know, we've just got a ton of tools that are available with the CommandBox image and, you know, we use it right now, we're using it in so many different places in production with both Adobe engines and Lucee engines. Then some people are even using it for like old, like Blue dragon images. So I mean, cause you're gonna run any, basically any war file, any, you know, any jar file from the CommandBox. So, it works pretty well.
Gavin Pickin (08:45):
Very cool. So if someone's wanting to take your workshop, what type of expectations or prerequisite knowledge does someone have or need to have before they come to really get most value out of this?
Jon Clausen (08:59):
There are prerequisites there? And one of the things that we need, to come with so, that you can come prepared to actually do your work on your own computer with your own stack, is you're going to have a machine that's got at least 16 gb of Ram. Just so you can start a stack. 8gb, will probably do it for you. but if you, you know, you want to be able to work and be speedy, probably 16 gigs of Ram. You need to make sure that you have Docker installed, the latest version of the Docker engine installed along with the Docker compose binary as well. So you'll need to come, come prepared with some tools. Also some code and maybe, if you, if you're going to have a database dependency or, or any kind of dependency that requires data, bring at least a sample of that data that you can load into a containerized database.
Gavin Pickin (09:42):
Okay. So we'll obviously send out some requirement emails to remind people of those things.
Jon Clausen (09:47):
Gavin Pickin (09:47):
But what about knowledge? So do they need to know a Docker is or you know, like do they need to have any history or...
Jon Clausen (09:53):
Nope, not at all. You can come to, you can come there and we go through that. Uh, you know, obviously as the years have gone by, more and more people are at least familiar with the basics of it. So, we would customize that a little bit. But yeah, we're gonna, we're gonna talk to you about containers and what they are and how they work and where you can use them and all sorts of information from the get go. So it's not really necessary other than what's necessary to run the installer to install Docker on your machine.
Gavin Pickin (10:17):
Okay. Sounds good. Now, I know that you just did a webinar last week, on containerizing CFML applications. Would that be a good thing to them to watch beforehand to get an idea?
Jon Clausen (10:28):
Yeah, absolutely. There's about probably 15 minutes of stuff that we cover in that. and, and there's a bunch of stuff that we kind of go through fast to show people how to do it. So we'll actually have, the nice thing about the workshop is we'll have our time to dig into some of those things and what's going on and what's happening with ports and allocation and crosstalk and all that. So there's, there's benefits of the workshop in that, but definitely, you know, please take a look at that. There may be a little bit of review during the day of the workshop, but it's probably 15, 20 minutes review at the most.
Gavin Pickin (10:59):
Okay. Well that sounds good. I just thought I'd give them a good taste of what they might get out of the workshop.
Jon Clausen (11:04):
Absolutely. Without a question.
Gavin Pickin (11:05):
Okay. So you mentioned a lot of things. Do you want to sort of give us a rundown of what will people learn in the workshop? What should they get? You know, when they leave, what should they be able to do?
Jon Clausen (11:16):
Well, by the time you're done, you're going to be able to understand how to take one of your applications, your own personal applications and containerize it. And you know, you may get all the way there during the course of the workshop or you may get part of the way there, but you'll at least understand the basics and the fundamentals of how to do it. You''ll understand how to, uh, you know, how to start and stop a container, how to poke around on the file system of the container, how to configure that container. How to, you know, Mount your, your code into a like a running Docker container, but also how to package your code in building a custom image that's got everything ready to go. So there's a lot of different, a lot of different information we'll cover. We'll also can cover, cover some, some of the basics of deploying stacks and creating stacks with Docker Compose so that you can see how to, how to package your dependencies for a particular tier like development or environment. We'll talk about stack deployments. We'll talk about Docker swarm. We'll, we'll touch on Kubernetes, although this really isn't the Kubernetes presentation, but we'll spend some time talking about that. And spend some time talking about the different ways in which you can deploy your application and different vehicles to allow you to do that out there.
Gavin Pickin (12:32):
Okay. Sounds good. So what do you think your favorite part about teaching this workshop is?
Jon Clausen (12:38):
You know, I think my favorite part is actually usually, it comes to maybe three days later and sometimes a year later, which is when people have adopted the technology. We've got some of the, some of our biggest contributors to that project. Now, some of the people who are most active in the containerization community are people that were in that containerization workshop two years ago. And they've now, they've now gone from, from learning it to becoming experts. And they're invaluable members of our community. And so it's really, the workshop is, was wonderful seeing the light bulbs come on and people and yes, there's some frustration and it's nice to be able to help people, you know, kind of overcome some of the things that frustrate them. But that the biggest benefit that I've seen is being able to see people, you know, take the technology and just run with it in their own projects and become adopters and raving fans. And you know, we've got a lot of, a lot of community leaders in this container space, in the CFML community that are, you know, that that started out learning about Docker and that workshop.
Gavin Pickin (13:40):
Very cool. Yeah. And that's the other thing too I really like about the workshops is you have like a cohort, you know, you've got a group of people and so they can help each other. And a lot of the times we set up a Slack group for the workshop as well, so people can ask questions later and you know, touch base. And I always find the best thing when I'm teaching a workshop is that later on when someone asks a question, other people in the group help answer and they help guide and you know, you get that teamwork and some comradery. So even if you're, you know, this is your job and you're on your own to figure it out. You're not on your own when you've made some friends that Into the Box in a workshop or, or whatnot. So it's a very cool, so this is a a one day workshop like you mentioned, but we're offering on two different days. So the beauty of this is, is if there's something like the elastic search one that you want to take on one day, you can still take Jon's on the other day and vice versa. So some of the two day workshops, you don't get a choice. There are two days full of content, but the one day workshops like this, you can basically pick and choose two. And, Jon is repeating the workshop. So that way, no matter what you choose on one day, you can always pick Jon's on the other. So
Jon Clausen (14:48):
Let's pick somebody from the first day and let them teach the second day.
Gavin Pickin (14:52):
Maybe. Yeah, if you're dumb enough to sign up for two days, you might be teaching it the second day. How about that? It sounds like a great workshop. I know this is the most popular workshop over the last couple of years. We're always in sell out. So I know that you're getting a couple extra helpers to make sure we don't, you know, we have a little more room cause it's definitely an in demand workshop. So
Jon Clausen (15:13):
Yeah, it'll be good to have two days. with small, little smaller groups and then we'll be able to spend a little more time, a little more one on one time with people. So I think breaking into two days is a good strategy.
Gavin Pickin (15:23):
Yeah. Okay. Well, I really appreciate your time, Jon and talking to us about your workshop. I know it's going to be great and hopefully this podcast will give someone, you know, a little more information so they can go sign up IntoTheBox.org. Go get your tickets. And, yeah, we look forward to seeing everybody in Houston in May.
Jon Clausen (15:42):
Absolutely. My Pleasure.
Gavin Pickin (15:43):
Okay. Thanks very much Jon
Jon Clausen (15:52):
Switch to Modernize or Die ® Podcast - SoapBox Edition - Switch to Modernize or Die ® Podcast - CFML News Edition
Music from this podcast used under Royalty Free license from SoundDotCom and BlueTreeAudio© 2020 Ortus Solutions