<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[Just In Time DevOps]]></title><description><![CDATA[A journey to get you started with DevOps]]></description><link>https://www.justintimedevops.com</link><image><url>https://substackcdn.com/image/fetch/$s_!u4oq!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9aefa5bb-d399-40e8-9ee0-16bcd103b2cd_1024x1024.png</url><title>Just In Time DevOps</title><link>https://www.justintimedevops.com</link></image><generator>Substack</generator><lastBuildDate>Tue, 14 Apr 2026 21:53:14 GMT</lastBuildDate><atom:link href="https://www.justintimedevops.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Mark Schlesinger]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[jitdevops@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[jitdevops@substack.com]]></itunes:email><itunes:name><![CDATA[Mark Schlesinger]]></itunes:name></itunes:owner><itunes:author><![CDATA[Mark Schlesinger]]></itunes:author><googleplay:owner><![CDATA[jitdevops@substack.com]]></googleplay:owner><googleplay:email><![CDATA[jitdevops@substack.com]]></googleplay:email><googleplay:author><![CDATA[Mark Schlesinger]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[The Journey Begins]]></title><description><![CDATA[A beginners guide to DevOps]]></description><link>https://www.justintimedevops.com/p/the-journey</link><guid isPermaLink="false">https://www.justintimedevops.com/p/the-journey</guid><dc:creator><![CDATA[Mark Schlesinger]]></dc:creator><pubDate>Sat, 01 Jun 2024 22:48:13 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!u4oq!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9aefa5bb-d399-40e8-9ee0-16bcd103b2cd_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.justintimedevops.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.justintimedevops.com/subscribe?"><span>Subscribe now</span></a></p><h2>What is the purpose of Just In Time Devops?</h2><p>The purpose of this is to show how to start your DevOps journey. While many people know how to write an application and run it locally, getting it onto a server (especially in an automated way) is a whole different experience. We&#8217;re going to go step by step, starting with easy and gradually getting more difficult on how to automate your delivery of code to a cloud environment. Along the way we&#8217;ll touch on logs, metrics, monitoring, etc and show simple (and free if possible) ways to handle those.</p><p>This is meant for startups and solopreneurs who want to spend time delivering code and doing the minimum needed for infrastructure. And we&#8217;ll grow along the way adding more and more until you are ready to have a full infrastructure team deploying Infrastructure as a Service. </p><h2>We will have a point of view</h2><p>This isn&#8217;t just going to be a how to guide. There will also be discussion about what works and doesn&#8217;t work and when you should and shouldn&#8217;t use different tools. I will not be going into every possible toolset or environment, but will be focusing on a few. So, we will likely show how to do AWS deployments, but not Azure or Google Cloud. This is by design. Once you know the basics, you should be able to find how to do specific pieces on your own (or feel free to write it up yourself and I&#8217;d love to link to it).</p><h2>Why didn&#8217;t you talk about X, Y, Z&#8230;</h2><p>Either it&#8217;s too advanced for what I&#8217;m talking about or I&#8217;m not interested in it or I don&#8217;t know/like it. I&#8217;m providing a DevOps journey, but it&#8217;s not the only journey out there. Just the only one on this site.</p><h3></h3><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.justintimedevops.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Just In Time DevOps! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[Starting our Journey]]></title><description><![CDATA[Using Heroku to deploy your app in just a few minutes]]></description><link>https://www.justintimedevops.com/p/coming-soon</link><guid isPermaLink="false">https://www.justintimedevops.com/p/coming-soon</guid><dc:creator><![CDATA[Mark Schlesinger]]></dc:creator><pubDate>Sat, 01 Jun 2024 18:19:57 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!AH1a!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F92cca641-5fbc-4cc7-a4d6-3e4b04e71fd9_2782x1154.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>This journey starts where many startup journeys have started with Heroku (<a href="https://www.heroku.com/">https://www.heroku.com/</a>). All you need for this step is a code base<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-1" href="#footnote-1" target="_self">1</a>, a knowledge of git, a Heroku account. You can start the Heroku account without a credit card, but you will need one added to the account eventually. Optionally, you should have a domain name. Heroku doesn&#8217;t require it, but https://www.mycompany.com/ looks better than https://mycompany-061176ffb876.herokuapp.com/. And many things on Heroku will be easier if you <a href="https://devcenter.heroku.com/articles/heroku-cli">install the Heroku CLI</a>. So, let&#8217;s get started.</p><p>Go to your Heroku dashboard and create a new web app.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!AH1a!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F92cca641-5fbc-4cc7-a4d6-3e4b04e71fd9_2782x1154.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!AH1a!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F92cca641-5fbc-4cc7-a4d6-3e4b04e71fd9_2782x1154.png 424w, https://substackcdn.com/image/fetch/$s_!AH1a!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F92cca641-5fbc-4cc7-a4d6-3e4b04e71fd9_2782x1154.png 848w, https://substackcdn.com/image/fetch/$s_!AH1a!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F92cca641-5fbc-4cc7-a4d6-3e4b04e71fd9_2782x1154.png 1272w, https://substackcdn.com/image/fetch/$s_!AH1a!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F92cca641-5fbc-4cc7-a4d6-3e4b04e71fd9_2782x1154.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!AH1a!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F92cca641-5fbc-4cc7-a4d6-3e4b04e71fd9_2782x1154.png" width="1456" height="604" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/92cca641-5fbc-4cc7-a4d6-3e4b04e71fd9_2782x1154.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:604,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:142367,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!AH1a!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F92cca641-5fbc-4cc7-a4d6-3e4b04e71fd9_2782x1154.png 424w, https://substackcdn.com/image/fetch/$s_!AH1a!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F92cca641-5fbc-4cc7-a4d6-3e4b04e71fd9_2782x1154.png 848w, https://substackcdn.com/image/fetch/$s_!AH1a!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F92cca641-5fbc-4cc7-a4d6-3e4b04e71fd9_2782x1154.png 1272w, https://substackcdn.com/image/fetch/$s_!AH1a!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F92cca641-5fbc-4cc7-a4d6-3e4b04e71fd9_2782x1154.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>One thing to be aware of is that the app name needs to be unique. Not just unique to your account, but to Heroku as a whole. Find your name and press the &#8216;Create app&#8217; button. Don&#8217;t worry about the &#8216;Add to pipeline&#8230;&#8217; button right now, we&#8217;ll get to pipelines in a later lesson And you will be able to switch to a pipeline later.</p><p>Now that you have the Heroku app created, let&#8217;s connect it to your code. Go into your code directory and run the command &#8216;heroku git:remote -a &lt;yourappname&gt;`. This will create a git remote name heroku. So if you already have an origin git remote, then this won&#8217;t overwrite it, but you will need to remember to push to heroku remote, not origin. Push your code to Heroku with the command `git push --set-upstream heroku main` to push the code to a branch main on Heroku.</p><p>Minor digression time. Heroku is not only your server provider, it&#8217;s also your code repository. You push your code, through git, to Heroku and it can take it from there to build and deploy to a server. So you don&#8217;t need to have a GitHub or Gitlab account to store your code, although later on you might want one.</p><p>Now that you&#8217;ve pushed your code to Heroku, it&#8217;s time for Heroku to work it&#8217;s magic. It takes your code and determines what type of code it is builds it and deploys out to a server. If you go to the Overview tab for your app, you&#8217;ll see four items with a verison number next to each of them. &#8216;Initial Release&#8217;, &#8216;Enable Logplex&#8217;, &#8216;Build Succeeded&#8217; and &#8216;Deployed&#8217;. If you click on the &#8216;View Build Log&#8217; below the &#8216;Build Succeeded&#8217; message, then you can see all the steps Heroku took to build and deploy your app. This is important to help you debug if you have something other than a &#8216;Build Succeeded&#8217; message.</p><p>Your app is now live. Congratulations you have an app deployed on a server. </p><div><hr></div><p>What if I don&#8217;t have a natively supported language, then you need to take some additional steps. Go to the Heroku marketplace at <a href="https://elements.heroku.com/buildpacks">https://elements.heroku.com/buildpacks</a> and find a buildpack for your language. For instance the .NET Core buildpack is at <a href="https://elements.heroku.com/buildpacks/jincod/dotnetcore-buildpack">https://elements.heroku.com/buildpacks/jincod/dotnetcore-buildpack</a>. There will be instructions on how to add the buildpack via the Heroku CLI or you can go to the Setting tab on your app and click the &#8216;Add buildpack&#8217; button. You can either add in the shortname of the buildpack (jincod/dotnetcore) or the full URL (https://github.com/jincod/dotnetcore-buildpack). Once you have the new build pack, you will need to push the code to Heroku again to have it build.</p><p>Next time we&#8217;ll take a further look at your Heroku app.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.justintimedevops.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.justintimedevops.com/subscribe?"><span>Subscribe now</span></a></p><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-1" href="#footnote-anchor-1" class="footnote-number" contenteditable="false" target="_self">1</a><div class="footnote-content"><p>Important Info: Heroku only natively supports Ruby, Python, Node.js, PHP, Go, Java, Scala, and Clojure. If you aren&#8217;t using one of those, then we&#8217;ll take a look at what to do below</p><p></p></div></div>]]></content:encoded></item></channel></rss>