JSJ 340: JavaScript Docker with Julian Fahrer

Published: Nov. 20, 2018, 11 a.m.

Panel:\xa0

  • Aimee Knight
  • AJ O\u2019Neal
  • Joe Eames
  • Charles Max Wood
  • Chris Ferdinandi
Special Guest: Julian Fahrer In this episode, the panel talks with Julian Fahrer who is an online educator and software engineer in San Francisco, California (USA). The panel and the guest talk about containers, tooling, Docker, Kubernetes, and more. Check out today\u2019s episode!Show Topics:0:00 \u2013 Advertisement: KENDO UI 1:00 \u2013 Chuck: We have today Julian. Julian, please tell us why you are famous?1:10 \u2013 Julian (Guest): I am a software engineer in San Francisco.1:35 \u2013 Chuck: We had you on Elixir Mix before \u2013 so here you are! Give us a brief introduction \u2013 tell us about the1:56 \u2013 Julian: About 11 hours. You can get it done in about 1 week. It\u2019s a lot to learn. It\u2019s a new paradigm, and I think that\u2019s why people like it.2:22 \u2013 Aimee: How did you dive into Docker? I feel that is like backend space?2:35 \u2013 Julian: I am a full stack engineer and I have been in backend, too.3:10 \u2013 Aimee: I know that someone has been in-charge of our Dev Ops process until the first job I\u2019ve had. When there is a problem in the deployment, I want to unblock myself and not wait for someone else. I think it\u2019s a valuable topic. Why Docker over the other options?3:58 \u2013 Julian: Let\u2019s talk about what Docker is first?4:12 \u2013 Chuck.4:23 \u2013 Julian: Containers are a technology for us to run applications in isolation from each other.Julian talks in-detail about what contains are, what they do, he gives examples, and more. Check it out here!5:27 \u2013 Chuck: Makes sense to me. I think it\u2019s interesting that you are talking about the dependencies. Because of the way the Docker works it\u2019s consistent across all of your applications.5:59 \u2013 Julian. Yes, exactly.Julian talks about containers some more!6:56 \u2013 Chuck asks a question about the container, Docker, and others.7:03 \u2013 Guest: You don\u2019t have to worry about your company\u2019s running operating system, and what you want to use \u2013 basically everything runs in the container...7:30 \u2013 Chuck: This short-circuits a lot of it.7:46 \u2013 Guest.8:00 \u2013 Chuck: People will use Docker if your employer mandates it. Is there a learning curve and how do you adapt it within the person\u2019s company?8:25 \u2013 Guest.8:52 \u2013 Aimee: We are using it, too.8:57 \u2013 Guest: Awesome!9:03 \u2013 Aimee: The only downfall is that if you have people who are NOT familiar with it \u2013 then it\u2019s a black box for us. We can\u2019t troubleshoot it ourselves. I want to be able to unblock from our end w/o having to go to someone else. That\u2019s my only issue I\u2019ve been having.10:03 \u2013 Guest: I want to see that tooling to be honest.10:12 \u2013 Aimee: Can you talk about how Civil and Docker work together?10:19 \u2013 Guest: Yes!Julian answers the question.10:56 \u2013 Chuck: How much work it is to get a Docker file to get up and running? How much work would it take?11:18 \u2013 Guest: For the development side in about an hour or two \u2013 this is if you understand it already. Putting it into production that\u2019s a different story b/c there is a million different ways to do it. It\u2019s hard to put a time on that.12:24 \u2013 Chuck: Let\u2019s assume they have the basic knowledge (they get how server setup takes place) is this something you could figure out in a day or so?12:47 \u2013 Guest: If you have touched Docker then you can do it in a day; if never then not really.13:02 \u2013 Guest: There might be some stones you will fall over.13:39 \u2013 Panel: The part of the learning curve would be...13:52 \u2013 Guest: The idea behind the container is that the container should be disposable. You could throw it away and then start a new one and it\u2019s fresh and clean.Guest continues with his answer.15:20 \u2013 Chuck: I have seen people do this with their database engine. If you need to upgrade your database then they grab their container...15:55 \u2013 Guest: You don\u2019t have to worry about setting it up - its provided in the container and...16:09 \u2013 Chuck asks a question. 16:17 \u2013 Guest: For production, I would go with a hosted database like RJS, Azure, or other options.Guest continues.\xa017:13 \u2013 Chuck.17:20 \u2013 Guest: If it dies then you need to...17:30 \u2013 Chuck: We talked about an idea of these containers being something you can hand around in your development team.Chuck asks a question.\xa017:50 \u2013 Guest answers the question. He talks about tooling, containers, web frontend, and more.\xa0 18:48 \u2013 Guest asks Aimee a question: Are you using Compost?18:50 \u2013 Aimee: I don\u2019t know b/c that is a black box for us. I don\u2019t know much about our Docker setup.19:00 \u2013 Guest to Aimee: Can I ask you some questions?19:14 \u2013 Guest is giving Aimee some hypothetical situations and asks what their process is like.\xa0 19:32 \u2013 Aimee answers the question. 20:11 \u2013 Guest: You have customizing tooling to be able to do x, y, and z.20:25 \u2013 Aimee: They have hit a wall, but it\u2019s frustrating. Our frontend and our backend are different. We are getting 500\u2019s and it\u2019s a black box for us. It\u2019s the way that ops have it setup. I hate having to go to them for them to unblock us.21:07 \u2013 Chuck: I have been hearing about Kubernetes. When will you start to see that it pays off to use it?21:20 \u2013 Guest answers the question. 22:17 \u2013 If I have a simple app on a few different machines and front end and job servers I may not need Kubernetes. But if I have a lot of things that it depends on then I will need it?22:35 \u2013 Guest: Yes.22:40 \u2013 Chuck: What are the steps to using it?22:45 \u2013 Guest: Step #1 you install it.The guest goes through the different steps to use Docker.\xa025:23 \u2013 Aimee: It makes sense that your UI and your database don\u2019t live in the same container, but what about your API and your database should that be separate?25:40 \u2013 Guest: Yes they should be separate.26:09 \u2013 Chuck: What has your experience been with Docker \u2013 AJ or Chris?26:17 \u2013 Panel: I have used a little bit at work and so far it\u2019s been a black box for me. I like the IDEA of it, but I probably need to take Julian\u2019s course to learn more about it! (Aimee agrees!)One thing I would love (from your perspective, Julian) \u2013 if I wanted to get started with this (and say I have not worked with containers before) where would I start?28:22 \u2013 Advertisement \u2013 Sentry.io 29:20 \u2013 Guest: Good question. You don\u2019t have to be an expert (to use Docker), but you have to be comfortable with the command line, though.30:17 \u2013 Panel: Is there a dummy practice within your course?30:27 \u2013 Julian: We run our own web server and...30:44 \u2013 Panel: I need to check out your course!31:04 \u2013 Guest: It is some time investment, but it\u2019s saved me so much time already so it makes it really worth it.31:38 \u2013 Panel: You are a version behind on Ruby.31:46 \u2013 Guest: ...I just want to make code and not worry about that.32:04 \u2013 Chuck: Updating your server \u2013 you would update Ruby and reinstall your gems and hope that they were all up-to-date. Now you don\u2019t have to do it that way anymore.32:37 \u2013 Guest: You know it will behave the same way.32:48 \u2013 Guest: I have some experience with Docker. I understand its value. I guess I will share my frustrations. Not in Docker itself, but the fact that there is a need for Docker...35:06 \u2013 Chuck.35:12 \u2013 Panel: We need someone to come up with...35:40 \u2013 Panel: It\u2019s not standard JavaScript.35:51 \u2013 Chuck: One question: How do you setup multiple stages of Docker?36:12 \u2013 Guest: The recommended way is to have the same Docker file used in the development sate and through to production. So that way it\u2019s the same image.37:00 \u2013 Panel: ...you must do your entire configuration via the environmental variables.37:29 \u2013 Chuck asks a question.37:36 \u2013 Panel: If you are using Heroku or Circle CI...there is a page...38:11 \u2013 Guest and Chuck go back-and-forth.39:17 \u2013 Chuck: Gottcha.39:18 \u2013 Guest.39:52 \u2013 Chuck: I have seen systems that have hyberized things like using Chef Solo and...You do your basic setup then use Chef Solo \u2013 that doesn\u2019t\u2019 make sense to me. Have you seen people use this setup before?40:20 \u2013 Guest: I guess I wouldn\u2019t do it.40:30 \u2013 Chuck.40:36 \u2013 Guest: Only reason I would do that is that it works across many different platforms. If it makes your setup easier then go for it.41:14 \u2013 Chuck: Docker Hub \u2013 I want to mention that. How robust is that? Can you put private images up there?41:38 \u2013 Guest: You can go TOTALLY nuts with it. You could have private and public images. Also, your own version. Under the hood it\u2019s called container registry. Yeah, you can change images, too.42:22 \u2013 Chuck: Should I use container registry or a CI system to build the Docker system and use it somewhere else?42:35 \u2013 Guest.43:24 \u2013 Chuck: Where can people find your Docker course?43:30 \u2013 Guest: LEARN DOCKER ONLINE! We are restructuring the prices. Make sure to check it out.44:05 \u2013 Chuck: Picks! Where can people find you online?44:14 \u2013 Guest: Twitter! eBook \u2013 Rails and D

Become a supporter of this podcast: https://www.spreaker.com/podcast/javascript-jabber--6102064/support.