![Julie Ng](/img/default-banner.jpg)
- Видео 33
- Просмотров 197 037
Julie Ng
Германия
Добавлен 30 окт 2014
👋 I'm an Engineer at Microsoft, Architect, Speaker and Designer. I specialize in cloud architectures and CI/CD automation. I use a Mac, write Node.js, some Ruby and love Open Source Software.
I've been building for the web since 1999 and like many people, I am self taught. I'm making the videos I needed when I was learning these topics. No hello worlds. Here I'll share real world problems with real world solutions, explaining challenges, trade-offs, as well as tips and best practices.
Also I'm starting this because we're in lockdown across the world. I miss the creative energy of conferences and user groups. So until then, I am pouring that energy into these videos, which lets me be creative (and my authentic sassy self), not just a technical expert.
Thoughts and opinions are my own. Videos are not official Microsoft recommendations or reference architectures.
For more about me, visit julie.io
I've been building for the web since 1999 and like many people, I am self taught. I'm making the videos I needed when I was learning these topics. No hello worlds. Here I'll share real world problems with real world solutions, explaining challenges, trade-offs, as well as tips and best practices.
Also I'm starting this because we're in lockdown across the world. I miss the creative energy of conferences and user groups. So until then, I am pouring that energy into these videos, which lets me be creative (and my authentic sassy self), not just a technical expert.
Thoughts and opinions are my own. Videos are not official Microsoft recommendations or reference architectures.
For more about me, visit julie.io
Can AI help me deploy to Kubernetes?
Watch me live code and debug with Copilot… unscripted and unplanned. I hadn't deployed to Kubernetes for months. So I thought Copilot could help refresh my memory. But maybe we were both beyond help 😅 Just kidding. Watch and learn from my mistakes. And see how to debug DevOps and Kubernetes errors - with live coding.
Chapters
00:00 Introduction
02:45 Nuxt and GitHub configuration
04:46 the Dockerfile
05:58 Previous experiences with Copilot
09:21 GitHub Workflows to publish images
12:42 Copy and Paste Mistakes 🤦♀️
29:36 Copilot writes Kubernetes YAMLs
42:47 Fixing permissions with Terraform
01:02:21 Closing
Chapters
00:00 Introduction
02:45 Nuxt and GitHub configuration
04:46 the Dockerfile
05:58 Previous experiences with Copilot
09:21 GitHub Workflows to publish images
12:42 Copy and Paste Mistakes 🤦♀️
29:36 Copilot writes Kubernetes YAMLs
42:47 Fixing permissions with Terraform
01:02:21 Closing
Просмотров: 1 139
Видео
Why you can't impersonate me on GitHub
Просмотров 1,9 тыс.4 месяца назад
In this video, I answer your question about how I use physical keys to store private keys to make "verified" git commits - not just as myself, but also Microsoft Julie. 2 YubiKeys for 2 Julies. Links Read the blog article for a detailed explanation (from a not tired Julie) julie.io/writing/setup-git-multiple-gpg-and-yubikeys/ My terminal customizations github.com/julie-ng/dotfiles Chapters 00:0...
How to do (chunked) cloud uploads
Просмотров 7227 месяцев назад
In 2024 I'm going to try to release more videos by just sharing my work in progress, which is quicker than planning cohesive modules and lessons. In this first episode, I'm showing the work in progress demo of doing chunked and resilient, i.e. restartable uploads. I demo the app and give a super high level whiteboard of the architecture. Let me know what you think of this format.
Git Branching for Docker Image Promotion across Environments 🚀 - Live Coding Walkthrough
Просмотров 1,9 тыс.Год назад
Originally I just wanted to explain why I have git shas in my docker image tags… instead watch me do live debugging and git-fu 🥷 to demo errors to explain fast-forward merges vs merge commits when it comes to promoting code from one environment to another, e.g. from dev to staging. See real world usage of git revert vs git reset, empty commits, branch deleting, renaming and more. 🧪 Repo Source ...
YAML Pipelines Walkthrough - GitHub Actions & Workflows
Просмотров 4,2 тыс.Год назад
Let's look at some _*real orld YAML pipelines*_ for GitHub Actions. For a Nuxt.js application, we have CI/CD pipelines that test code, build and promote docker images and deploy to multiple Kubernetes clusters without passwords! I'll walkthrough various templates, describe the opinionated reasoning and decisions behind the code. We'll also go into the GitHub UI to see how to leverage GitHub Env...
Deploy Feature Branches to Kubernetes
Просмотров 3,4 тыс.Год назад
Let's walkthrough a demo and GitHub Workflows YAML pipeline, where every push to a feat/* branch creates a new deployment with its own URL. We'll also look at strategies for tagging your containers and considerations for Kubernetes namespaces and security. This video is a relatively simple example of how to achieve dynamic environments and is most appropriate for use cases with single tenant Ku...
Deploy from GitHub Actions without Passwords | Watch Me Work
Просмотров 1,2 тыс.2 года назад
Watch me fix a broken GitHub Actions pipeline where I misconfigured federated identity so that I can deploy to Azure without any passwords. Learn conceptually how that works using OpenID Connect (OIDC) and OAuth standards. At the end of the video the login works as expected. The next error is related to me being a security nut and using principle of least privilege (PILP) and Role Based Access ...
Version and Automate ⚡️ Releases like a Pro - Walkthrough and Demo
Просмотров 33 тыс.2 года назад
Experienced #DevOps engineers know when to deviate from a standard. We know how to think for ourselves. Watch me automate a release changelog and explain why this breaking change is NOT a new major version and look at HashiCorp's Terraform example. 00:00 Intro 00:40 Choosing a SemVer number 02:28 Why not 1.0? 03:45 Automated Changelog Demo 09:40 Conventional Commits and Discipline 14:12 Closing...
Too much security? Locked myself out with Pull Requests
Просмотров 7082 года назад
I fell into the trap. I blindly followed all the "best practices" and now I can't deploy. Watch me explain how this happened in an Infrastructure as Code use case and why I use God Mode to bypass the very controls I put in place. No one's perfect, not me either. Important - this video describes a very specific high trust scenario and should not be considered a best practice. It's here to teach ...
Moving, Bad Luck in August and Ask Me Anything
Просмотров 8542 года назад
Still here, just lots going on. So here is a quick video answering some of the questions in the comments from past 2 months. If I missed your question, let me know! As I slowly settle in and Winter approaches, I will try to make videos more often. Links Mentioned in my soundbite answers. Check these out for details: github.com/azure/devops-governance 👆This repo has some pipelines that show a) K...
How I Resolve Git Merge Conflicts with Rebasing (Abort!)
Просмотров 8 тыс.3 года назад
Watch me code and learn how to tame git merge conflicts with the CLI. Watch to the end for a special request! Contents 00:00 Intro 01:35 Discovering Merge Conflict (GitHub) 06:45 Why Abort Rebase 07:02 Git Reset Head 10:08 Now Rebase 13:09 CI Build and Pull Request 16:30 Closing - AMA Request
Managing 3 Kubernetes Clusters with Terraform + Makefiles in 1 Repo
Просмотров 4,5 тыс.3 года назад
Ever wondered how you can managing multiple environments from a single repo? Let me show you how I would do this and make a great developer experience out of it. Why? Because in real life you're managing multiple clusters and juggling multiple projects. Once you've figured out what your infrastructure looks like - this is the next step to production. And of course when I demo it, it doesn't wor...
(Simple?) Real World Azure Pipelines YAML Walkthrough
Просмотров 30 тыс.3 года назад
Real world pipelines for real world applications are more than just unit tests and deployments. They must also handle multiple environments, safeguard production, secure pull requests, version releases, promote Docker images and more. Let's walkthrough a relatively simple example that only has 2 environments and deploys to a managed PaaS. Although I use Azure Pipelines in this video, most of th...
Debugging and Fixing Terraform State - Watch Me Work
Просмотров 2,6 тыс.3 года назад
I just wanted to add some Azure AD groups. But Azure is down. Terraform Providers don't support my m1 Macbook Pro. And of course I have conflicts in Terraform State 🤷♀️ Watch me struggle through and tackle each problem. 00:00 Intro 01:08 Azure AD and SAS tokens don't work 02:40 Resetting Terraform and Provider Errors on m1 Macbook Pro 04:27 Update Terraform Code for new Provider version 08:40 ...
DevOps in Real Life - what an Experienced Architect Looks for
Просмотров 14 тыс.3 года назад
DevOps and CI/CD in practice are a bit messy and all about trade-offs. Most of us are not Netflix. In real life it is all about the thought process, not answers - much like in technical interviews. I want to share with you the interview-style discussion I have with Azure customers when I advise them about Pipelines as Code, Database Migrations, Secrets Management, Release Management and more. Y...
Block User AAD Sign-In takes HOURS…to debug
Просмотров 4553 года назад
Block User AAD Sign-In takes HOURS…to debug
Vlog #2 - Why you'll never see this on official Microsoft Channels
Просмотров 2 тыс.3 года назад
Vlog #2 - Why you'll never see this on official Microsoft Channels
Azure Pipelines - Service Connections in YAML and Naming Conventions
Просмотров 3,8 тыс.3 года назад
Azure Pipelines - Service Connections in YAML and Naming Conventions
Azure Pipelines - Service Connections and Requiring Human Approval for Deployment
Просмотров 3,9 тыс.3 года назад
Azure Pipelines - Service Connections and Requiring Human Approval for Deployment
Azure Pipelines - Sharing Service Connections / Credentials across Projects
Просмотров 3,9 тыс.3 года назад
Azure Pipelines - Sharing Service Connections / Credentials across Projects
Azure DevOps #1 Best Practice - Identity!
Просмотров 12 тыс.3 года назад
Azure DevOps #1 Best Practice - Identity!
Azure Pipelines Variables - Naming, Reuse and Secrets
Просмотров 16 тыс.3 года назад
Azure Pipelines Variables - Naming, Reuse and Secrets
Azure Pipelines - Use YAML not Classic UI
Просмотров 6 тыс.3 года назад
Azure Pipelines - Use YAML not Classic UI
Did you close this CI/CD Security Backdoor? Pull Requests!
Просмотров 1,8 тыс.3 года назад
Did you close this CI/CD Security Backdoor? Pull Requests!
ARM vs Terraform vs Pulumi | Infra as Code in 2021
Просмотров 15 тыс.3 года назад
ARM vs Terraform vs Pulumi | Infra as Code in 2021
Terraform and Azure Pipelines - Avoid these Beginner's Mistakes!
Просмотров 18 тыс.3 года назад
Terraform and Azure Pipelines - Avoid these Beginner's Mistakes!
Watch Me Code #2 - Fixing a Bug and live deploy with CI/CD
Просмотров 1,1 тыс.3 года назад
Watch Me Code #2 - Fixing a Bug and live deploy with CI/CD
Watch Me Code - Debugging a Broken DevOps Pipeline
Просмотров 3,6 тыс.3 года назад
Watch Me Code - Debugging a Broken DevOps Pipeline
Kilimanjaro (Day 4) - The Baranco Wall
Просмотров 2856 лет назад
Kilimanjaro (Day 4) - The Baranco Wall
Hernandez Daniel Lee Jose Garcia Christopher
I'm really sad that you're not bringing out new videos often.
This video is a pure gem!! Thank you o/
How do you only have 6k subscribers?
Unwatchable. You swallow too loudly and too much, you smack loudly and too much, you say 'um' too much.
1. how can developer determine the changes will break things or not? 2. How to force users to follow the commit standards, one thing that makes me confusing is where the commit fits in , its either chores or fix or bla bla, kind of a long list . How do you do this?
I gotta say this is way more useful than I though it would be. Thanks for sharing!
Uptalk, vocal fry and strange back-of-throat inflection - strangle mode. LOL.
Your content is really good. They helped me evolve technically. I hope to see new videos here, even if from time to time.
I'm really glad I found your channel! I have no experience in Cloud Engineering, so seeing someone with real-world experience is fantastic. Thanks a lot for sharing!
Started digging into azure devops for 24 hours, and scrolling through the pipeline at the beginning of the video made me aware a stage condition can be stored on a variable. LAND !
i love your content! You are incredible, keep it up please! Also loved your new post on your blog!
Please use dark theme. White backgrounds make videos unwatchable
Hey Julie, I was wondering, how does one add that zoom-in on selected code for editing in VSCode?
The zoom-ins in the video are from Screenflow - the app I use to record my screen and keyboard shortcuts for these videos. AFAIK there isn't a functionality in VS Code for zooming in a specific section. I only know of making the text larger across the board with cmd + '+'. Hope that answers your question.
Yes, I love these types of videos because you have the opportunity to learn the overall process. Please do more of these types of videos. Bravo!!!! 👏🏾🙌🏾
Thank you Conrad!
Nice. Julie's back with another banger
Thanks Ikechi ♥️ for your support. It means a lot to me :)
Use VS Code extension like Trailing Spaces to highlight and delete whitespaces 🙂
I do. But it only does it for the contents of the files, not in the filenames themselves. And that's the bug that cost me hours 😅
Babe wake up, new Julie Ng video just dropped 👀 AND IT'S OVER AN HOUR LONG SWEET JESUS 🔥🔥🔥🔥
Thank you. If you watch the whole hour, thank you x5 🙌
@@JulieNgTech Just did 👀 Very refreshing to see you "fight" through all sorts of small issues, permission stuff or simply typos. Extremely recognizable. Definitely keep the keyboard shortcuts, made me discover some I did not know about in VS Code. And I am going to need that VS Code theme please 🙏
Hey.. Saving this video for later. But I've glimpsed on it. It really depends what you want. I've been learnings from RUclips for 11 years. If you want a stream of watch time. Always do full tutorials for beginners. Like a mobile dev understanding terraform in 13-21 mins. People love that stuff. Having that check mark in your arsenal, even though so much engineering is happening behind the scene you know? Also reoccurring users like playlists that are published together. E.g. Terraform in 5 - 6 mins videos. Idk I'm a mobile dev. But anyways never base your content on user request if you want watch time. If you don't care about that.. Go deeper. Stuff people don't cover on RUclips. These are job problems that requires some effort. This type of content attracts the best engineers that'll even help you learn. That's my two cents on yt for education. Thanks.
Hey, thanks for your thoughtful comments. Apologies, I didn't get a chance to respond until now. I agree with you and part of me would love to do the "zero to hero" videos. But they take too much time. The smaller 5-6 minute videos work well indeed. The super short ones I have for Azure DevOps are amongst the most viewed on this channel. My biggest challenge is time. Making videos is not my job so this takes time from my personal life. Even short videos, but esp. zero to hero take hours to plan and shoot. The "easiest" videos for me to do are the unplanned and unscripted ones 😅 But I worry that long term that will make this channel disjointed. So thank you for the feedback. I'll see what I can do medium term.
Hi Julie, thanks for showing this. I've been learning TF for the past few months and good to see how an experienced TF engineer struggles and eventually overcomes an issue. Cool mug btw.
You're welcome! Thank you for watching this video. Funnily enough I recorded another Terraform state video last week :) I need to re-watch it to see if it's worth releasing since I already have a debugging Terraform state video.
Very well explained. Thank you for re-starting, I was already wondering what happened to your great content flow! Keep it up and if you want to "pair program" with someone from the AWS side of the fence let me know 🙂
Aaaw, thank you for noticing. The pair programming idea is intriguing. Maybe one day on some OSS if I get back into OSS. If you work for AWS, OSS is probably the only place I can pair program with someone from a competitor without violating my contract… I'm a goodie two-shoes who dots all her Is and crosses all her Ts 🫠
Oh I don’t work for a competitor. I work for FICO. The AWS Hero recognition is similar to the Microsoft MVP program. So we can certainly do something together! 🎉🎉🎉 I run the YT channel @cicdonaws but do non-AWS stuff too!
I am also happy to do something in the k8s or Azure ecosystem as long it’s CI/CD or automation related 😊
Hey, I always enjoy your videos, thank you Julie! Keep on posting. Nice poster btw Alles ist fertig 🤣
Thank you Frank. I am going to try to post more regularly. And thank you for noticing the poster, probably one of my most prized possessions as I got it from Erik Spiekermann himself. I encourage you to check out his work if you want a poster. If you don't know his name, but you like in Germany, you definitely know his work. His typography is why the Bahn and Autobahn are amazing. Okay, end design nerd tangent 😅
@@JulieNgTech Shame on me: didn't no him. Wow really impressive. Didn't know I was so ignorant :D I'll certainly check out his work. I am kind of surrounding by his work everyday. Cheers
Amazing content, thank you!
Glad you enjoyed it! And I am relieved it is still relevant many years later 😅
This is the first time I'm watching one of your videos, but I definitely enjoyed it! I've been using a gpg key to sign my commits for a while now, and I also have had a yubikey for a while, but I didn't know I can store a gpg key on my yubikey 🤯 or that I can protect my yubikey with a pin 😬 I've pretty much been only using it as 2FA for logging into places. I'll definitely look into those other use cases as well! Thank you for the video and I'm looking forward to whatever else you put out in the future 🙂
Thank you for the feedback. 2FA is already awesome and a great step! Means your already more security consciousness than most people. And putting GPG keys on the yubikey will bring you into the elite 🤓
This is really cool! I have now done the same. I didn't buy a physical key tough, do you think that's a must?
I ended up buying a YubiKey as well, haha I love it!
Awesome! Sorry for slow response. But personally yeah, I think a physical key, esp. with PIN is best. I like the physical separateness incl. independent authentication of it all. There is new passkey technology that's similar and will be great for improving the default security levels of the general population. But I still want the separation because biometric authentication is a risk in my opinion. Lots of people turn off phones and laptops before traveling to some countries. And although I find Windows Hello on my work computer useful, it activates accidentally too often and find I need to close it every time I step away from my desk. Anyway, super glad we have more security in the world, one YubiKey at a time :)
Great video! I like the way you explain things, it seems as if a friend was showing me something.
Aaawww, that is one of the most lovely comments I have ever received. Thank you ♥️
I always prefer that kind english, great video
Thank you Josh!
break down complex concepts into easily understandable pieces. 😃
Thank you mohameddridi8020! Because this video is like 3 years old… did you still find it relevant?
I wish there was yaml for release pipelines. I like how deployments are separated in the release pipeline. yaml deployments are good for a couple environments, but when you have 25 environments to deploy to, you need some visual representation what, when and where you have deployed your releases, in yaml it is impossible to track large amount of environments.
There's no good OOTB that I know of to do that, at least not for pipelines. Picking how you slice jobs, stages, etc. will let you leverage some of the tooling UI to do that. But I know what you mean. My honest opinion is that I miss my custom Jenkins dashboards, which did exactly that. And because they are custom, it's possible to configure something useful for 25 environments. Most default OOTB tooling falls flat after 3-5 🤷♀️
@Julie Ng hey love the setup, been trying to do this for Azure DevOps yaml pipeline, how would you approach it for Azure DevOps yaml pipeline, could you do a step by step setup id possible?
That concept would be the same, figure out the branch name, normalize it into something FQDN friendly and dynamically create the shell/sandbox/container for it. If it's k8s, it's YAML. If it's a cloud provider you can do IaC, but even running CLI commands in bash would work. The hard part IMO is not deploying...but cleaning things up. Anyway I don't have any plans to do Azure DevOps in the near future. But if you look at my GitHub, I have a repo julie-ng/azure-nodejs-demo that has some more advanced ADO pipelines that maybe you can draw inspiration from. (Written in a hurry, i.e. answering comments on the subway)
Hey - In a video a while back you showed that you use a hardware solution to manage your gpg keys. Can you make a video on what the hardware device is, you set it up, and how you implemented it into your workflow? Great videos btw :)
Just published a video to answer your question. I was tired or in a rush when I recorded it. But let me know it it's helpful :) ruclips.net/video/LBM_-zPZPpU/видео.htmlsi=267EDleIS59OyG6t
@@JulieNgTech Thank you! it was very helpful. I have had a yubi-key for a while, however I predominantly have been using it for 2FA - It looks like I've been underutilizing it. Out of curiosity why did you opt to authenticate GitHub via HTTP using the .netrc file, rather than using an SSH key pair? Thank you again 😊
Your channel should have more than 100k+ subscriber already. Great work!
Thank you ♥️♥️♥️♥️
Could you please show us Corporate workflow for AKS deployments using Azure DevOps :) and thanks for this vid
For workloads to AKS? I don't have a distinct video teaching. But the latest video is me trying to deploy to AKS using Copilot to write the GitHub workflow pipeline and k8s YAMLs. That might be interesting - or at least entertaining :) For deploying the cluster? Does it have to be Azure DevOps? If it's GitHub Workflows, maybe :) Did you watch the GitHub workflow video? ruclips.net/video/UG4o4lA2eak/видео.htmlsi=V0AFugZT281ORKC9 Asking because I think the pipeline concepts are generally the same. The syntax will be different and GitHub has some extra constructs like the "environment" and federated identities (watch my most recent video about deploying with AI to see).
Welcome back! 🎉
Thank you :)
stinky feet :) thanks Julie. I stumbled across this by accident. I love your candid and unscripted style! Keep going! thanks. Subscribed.
Thank you Felipe ♥️ reading your comment confused me for a second... but then I re-watched and laughed myself. Thank you for the reminder my fast brain is snarky 😅 and that I can be myself 😅
what a great way to start a video "0:07" knowing that you have more important stuff to do and this one is going to be a quickie. Ok, important woman, keep going...
Do you have an actual comment on the information shared in this right to the point video?
It wasn't intentional 😬 I'm actually a lowly individual contributor in a giant corporation just trying to squeeze in some content for the wider world 🤗 - not just the Azure customers who can afford the program I work for.
@@JulieNgTech and you did it again "...customers who can afford the program I work for" reinforcing your self worth. You feel the need to reassure your professionalism and express how proud you are of yourself to be a cog on a giant machine. You did it, you are hooked into the big corporate machine. Slow clap. You have that pro look/vibe so don't worry about people not getting from you anything other than the feel they are talking to a successful profesisonal. But don't be pedantic, no need to point out or make reference to what you already emanate. Your mom and dad must be proud of you, you did it... now let us, humans, listen to you without looking at the Dorian gray painting showing us how little we have accomplished in life.
@bandinopla dude you have some serious issues.
great class! tks!
Thank you Rafael. Glad you found it useful. ❤️
good to see you back, Julie!
Great Julie thanks for that! I always learn something new from you :) Thanks for sharing
yay you’re back!
I'd love to check out the source code for this demo - I've always wanted to chunk and upload direct to blob storage but the examples I've found previously never worked quite right.
Hey Jimmy, sorry for super late reply. I copied and pasted the most relevant parts for you here gist.github.com/julie-ng/bc9e0321a02bfb9ab1676232ad49daca May I ask you what do you mean "never worked quite right"? Like an error message?
Julie's 'simple pipelines' are complicated...
For perhaps it was cool to see how you generated the change log and kept a variables file embedded with various conditions, overall good job.
Real world pipelines are rarely simple 🫠
Can you use a service connection to connect to a file server or share server to access files, perhaps needed in a build pipeline?
Climbing in life and in your spare time, welcome back 🎉
Hey glad to see another video!
Hey, great to see some more content from you. Keep it up!
Thank you M. 🤗
Hi Julie, I think the less formal format is fine as well. The chunked upload is a great pattern, e.g. it's used for upload sessions in Exchange Online in order to upload larger attachments to emails. I was curious about the max blob size and had to look it up, apparently it's about 190.7 TiB (4000 MiB X 50,000 blocks) for a single block blob! And regarding the security, I've never really been a fan of the storage account access keys, since they provide way too much access. As an alternative you could use a user delegation key of an identity with minimal permissions assigned to it, e.g. using a managed identity if running in Azure, and create a user delegation SAS that way.
Managed identities only make sense if you have the context. There is no "user" (in Entra ID context) if the application is acting as a SaaS. It is not possible to do local development with managed identities. There's great reasons to use managed identities. But beware of blanket philosophies and at end of day, security mechanisms are only as good as the people implementing them.
Wowww, happy to see new content! you rock Julie!
Thank you Victorno, that means a lot to get the feedback. Hope the new less polished format is okay.
This is freaking great, love this quick type format packed with info. What are you using for the web app itself, app service? Could you see it being beneficial to leverage azure functions for something like this?
It's a NuxtJS app. Haven't deployed it yet. I'm not an App Service fan. Might give ACA a try for this one. But right now I'm far from deploying. Still building it out in my spare time (which is non-existent at work right now)
Btw, we need to catch up again soon. Seeing you so consistent is inspiring 🥰
We want more videos please!!! your content is gold!