👋 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.
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'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 !
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!!!! 👏🏾🙌🏾
@@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 RU-vid 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 RU-vid. 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!
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
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 🤓
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 :)
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 :) ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-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 😊
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? ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-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).
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...
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.
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?
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.