Join me as I experiment, tinker, and push the boundaries of what's possible in this ever-evolving digital landscape. From in-depth product reviews and hands-on demonstrations to insightful tutorials and thought-provoking discussions. I'm here to learn and to empower you with the knowledge and tools you need to navigate the exciting world of technology with confidence.
Пікірлер
Thanks again for these videos Sir. I was just wondering how these ec2 Instances in the Target Group are different from Worker Nodes that are scaled in a kubernetes cluster?
Great question... I think the difference is on the granularity that makes up one application instance. In this video, each EC2 instance in the target group is build from an AMI an is a single purpose virtual machine that contains full application stack. So one EC2 instance = one application instance. The kubernetes cluster contains master and worker nodes that can host many individual containers (pods). In this case one pod = one application instance. So each k8 worker node is "general purpose" and can hose many applications or many instances of the same application. Another way to think about this is that the auto-scaling group in this video is scaling at the "infrastructure level" and the k8 is scaling at the "application level". You obviously could add more workers to the k8 cluster to scale the k8 infrastructure. In the end, either way works. I have some videos coming out on orchestration using docker swarm, kubernetes, and their managed versions in AWS (ECS, EKS). Hopefully those will also highlight the differences between the approach in this video and orchestration at the application / service level.
@@thetechnologysandbox Very many thanks again Sir. I will certainly be looking forward to the videos that explain the difference between the 2 approaches
Thank you Sir for these videos
You are welcome! Thanks for watching!
Thank you! Good video and I'll probably make a motorcycle tracker with this in a couple of months :)
Sounds like a nice project!
Help please. I have a site written in Laravel in Vuejs, when I want to update from Github I press the git pull command the site does not update, but when I enter the "npm run build" command everything updates but the Amazon Elastic Compute Cloud time on Free tier increases. Is there any way to bypass this so as not to waste additional time?
I’m away for the next couple of days. My guess is that I forgot to add “npm install” and “npm run build” in the docker file. Take a look near the bottom. As those of you don’t see them. Let me know how it goes and I’ll check when I get back in a few days.
I just pushed an updated Dockerfile that now includes the "npm install" and "npm run build" when creating the image using the "kit prod build" command. If I understand the issue, this should fix it. Please let me know. Thanks again for bringing this to my attention.
Why did you switch to this board?
I wanted to play around with a board with the ESP32 chip.
Thank you for the video.
You're welcome
AWESOME! Then, it will be easier implementing Laravel Reverb/WebSocket on the server?
I have Laravel Reverb in my list for future content. I haven't looked into those details yet. Hopefully it works for you, but let me know if you run into any issues.
@@thetechnologysandbox I have no Laravel Reverb project yet now... I'm beginner in Laravel, but I wonder how to implement Laravel Reverb into something like "YT Studio real-time chart" or "Google Analytics real-time visitor counter", in other case like real-time "transactions chart" of a Point Of Sales app. Ok, then, I'll be waiting for your Laravel Reverb content. And that's why I subscribe to your awesome channel.
Thanks you, i can learn more laravel with docker. I hope custom docker image with postgresql and minio.
Great suggestion!
Is it possible to achieve the installation of PHP, Nginx, Composer, NPM via user data while creating ec2 instance ?
Absolutely! This video is part of a introductory series with all the details on how to do this deployment manually. There is a series of 4 videos that talks about "infrastructure as code". The first video in that 4 part series is: kzread.info/dash/bejne/aayD0tqplK_Jlqw.html. You might also be interested in the follow up videos on CI/CD (kzread.info/dash/bejne/qWeh2rCderOrfJs.html). BTW, the code used for the "devops videos" can be found here: github.com/rcravens/devops-laravel. In this repo, you will find some shell scripts that you can use to provision ubuntu and deploy your application. This is talked about in the above videos. Hope that helps.
@@thetechnologysandbox Appreciate your reply. I managed to get it work after a few days 😅 Out of curiosity, is Nginx and Apache able to sit together under single instances ?
nice
Thanks
Thank you for video
You are welcome
Hey! I know it's been a while, since you've made this video...but would it be possible to reupload this with a higher video quality? I really appreciate the help but it is very hard to follow with 360p quality
Sorry for the lower resolution. That's my bad. I didn't understand some of these things as well as I do now. Unfortunately, it doesn't look like I have any better quality originals.
Thanks for these tutorials. Got to learn a lot from these videos.
Glad to hear it!
Question when I push on my repository the folder code not push
Odd. Just guessing here, but if you are trying to push your code back into the Laravel Github repo then you would not have permissions to do that. What you probably need to do is delete the ".git" directory and go through the process of creating your own git repo. BTW, if you have an existing application you can use your own git repo to clone into the app when you "kit create". You can find more info on that here: github.com/rcravens/docker_starter_for_laravel?tab=readme-ov-file#creating-a-laravel-application. Next week's video also covers these new features. Hope that information helps.
@@thetechnologysandbox tnx again there another problem when I deploy on remote docker server I cannot to access 404 will response
Hello, The settings tab is missing from rcravens/laravel_demo github page?
I had to clone your repo and create my own repo from your files to gain access to the settings tab and that enabled me to move forward. What a great collection of videos you have here. Thank you.
Could we possibly explore scaling in different AWS regions?
Hey Bob, is there an official or common name that is used for the "Four-Tier Deployment" concept?
I think the "generic" term is "multi-tier architecture" or "n-tier architecture".
Thank you Bob for your knowledge and content! Just a quick question that if I opt in for using Laravel Octane, then there's a different optimize strategy that I should perform right?
I have not deployed a Laravel Octane environment before.....but looking at the docs I see this: "Laravel Octane supercharges your application's performance by serving your application using high-powered application servers, including FrankenPHP, Open Swoole, Swoole, and RoadRunner. Octane boots your application once, keeps it in memory, and then feeds it requests at supersonic speeds." When I visited FrankenPHP docs, it looks like the preferred way to deploy is to run this in a container. My guess is that they will have their container already "highly optimized"....so you probably don't have to do much inside their container. Interesting technology....maybe someday I will be able to take a deeper look. Thanks for watching!
@@thetechnologysandbox Thank you for your reply. Love the whole series and looking forward for more content from you!
Hello, Great video. I would like to deploy laravel in production on a digitalocean droplet using docker. The site will be for minimum users. How much would I have to do to this starter kit of yours to use it for production or is this a good idea? Thank you
I will be posting at least one video in the near future on creating a CI/CD pipeline that automates this process. It will be part of the #AWS series but the concepts will be applicable to DO. First, I think you will need to decide between: 1. Deploying Code - In this case, you setup your Docker production environment. To deploy a new release you trigger a "git pull" in the services that leverage the code (nginx, horizon, artisan, ...). 2. Deploying Containers - In this case, you will need to create a CI/CD pipeline that creates a new docker image(s) and deploys those to production. You probably want to use some orchestration tool (swarm, kubernetes, ...) to aid in the provisioning / teardown of these updates. One change you will want to think about is you will probably want to have a "prod" and a "dev" version of the environment. As an example, the environment the starter kit creates is a "full stack" that includes nginx, php, mysql, redis, ...etc. In the "prod" environment, I would lean towards creating an environment where the data storage services (mysql, redis,...) are deployed as separate services (e.g., Amazon RDS, Amazon ElastiCache). So my "prod" docker compose file will not need to create those services / images. Hope those are my initial thoughts...hope that helps!
I thank you for your reply. I am subscribed so I await your next video. I am a bit new to these concepts and have played around with CI/CD. Going to keep reading and trying to understand. Thanky you.
This is a great video . Thank you so much. I was wondering if im still developing the laravel app, how can i change the code in the ec2 instances?
That is a great question and I plan on covering improvements to the CI/CD pipeline that will allow us to push new code. Right now we have “containerized” our code by manually creating an AMI containing the current version. Obviously this is not ideal and I the improvements in future videos will be discussing some options. There are a number of solutions, but I will probably end up building a docker image in the CI/CD pipeline and deploying that image either using ECS or EKS. Hopefully that helps. More details in upcoming videos….
@@thetechnologysandbox Thank you , looking forward to your videos. Best regards
Thank you for the video
You're welcome
Thank you.
You're welcome!
i can not create key @ 9:35, it's showing error: Saving key "/home/larvel_demo/.ssh/github_rsa" failed: No such file or directory
Hopefully you got past this issue. Sounds like either "laravel_demo" is not the user you used or the ".ssh" directory was not created.
you should've provided the commands in the description, it would've been more easier to follow
I do have a Github repo (github.com/rcravens/devops-laravel/tree/master) with the provisioning and deployment code. You can find the ubuntu provisioning scripts in the "provision" directory. Hope that helps.
Maybe a missed it along the way, but do you have a github or something for all the commands/configs you're copy/pasting?
Sorry for the delay. There is a github repo here: github.com/rcravens/devops-laravel. This contains most of the command lines that I manually entered. You can find the "ubuntu provisioning" scripts in the "provision" directory. In the "deploy" directory you will find the scripts to deploy an application. BTW, these deployment scripts are covered in detail in the 4 "Infrastructure As Code" videos. The link to the first one is here: kzread.info/dash/bejne/aayD0tqplK_Jlqw.html.
Perfect video! Waiting for the next one. Thank you
Super
You are very smart))
Everything worked out! Thank you
Great to hear!
Thank you for this video, but I keep getting 400 Bad request when I go to abc_local:44301 on my browser
This video helps me a lot, thanks! How can I deploy my application in cpanel using docker?
Can you please share the GitHub repo link for the GitHub actions?
My bad....here is the repo: github.com/rcravens/laravel_demo. Thanks for watching!
Great series so far! waiting for more including ci/cd gh actions etc.
That is scheduled for Tuesday. Glad you are enjoying.
Thank you! I watch every video on your channel 😊 What is the main benefit of using this way of automation compared to the Docker?
Thanks for watching…I appreciate it! This is a great question. I don’t think it is a either Docker or the provisioning script. When I created the Docker Starter Kit for Laravel (github.com/rcravens/docker_starter_for_laravel) the provisioning code is in the dockerfile for PHP. when you compare these you will find a lot of the same code (e.g., using apt to install PHP…). To write things once and use everywhere, I could imagine the dockerfile git cloning the dev ops repo and running the provisioning script inside the container. That would allow you to maintain a “one code base for ubuntu provisioning”. On the other hand, the provisioning completed in this video is a “monolithic” application where in the docker starter kit, i split that up into multiple services….PHP, nginx, mysql, redis all had their own docker service. That is where we will end up in this “deploy laravel to AWS” series as we start to explore the best options for scaling (coming soon). So eventually, the infrastructure will better match what is in the Docker starter kit. Hope that helps!
Exactly what I was looking for! Will jump into part one. Thanks for taking you time and creating this
Would love to see more projects like these in the future!
Wow. Your tutorial is awesome. Very clear and easy to follow. Thank you!
can we do live stream using this board?
Could you please share a format of how to communicate this estimation? Like the output of using what's described in the video.
The key is to provide some indication of the uncertainty in the estimate. I don't know if there is a "one right answer" on how to do this. Here are a few methods and I am sure there are others: - For slide decks showing project status, provide an appropriate "disclaimer" that indicates the level of uncertainty in the estimates. I could imaging that for timelines out past 6 months the disclaimer is different that if the timeline is discussing tasks completing in the next 1 or 2 sprints. - If you are using using Excel for presenting status, the you could use a formula to automatically color code feature based on their due date. The colors don't have to be "scary" like red for anything completing 6 months or later, but can be subtle as long as "what the color codes mean" is communicated. As mentioned, the goal is to provide some indication of the uncertainty and not to cause a panic....so choose how you present this information wisely ;-))
Thanks for sharing!
Thanks for watching!
Thanks a lot, Bob! Your insights are really helpful and useful. Would you share that py with me please! Wont ya!? 😊 Best wishes 🤞
Wow! Bob, that AI detector is really good. The way you prompted and enhanced the prompts to make the results personalized and humanlike is exceptional. Very impressive 👍
Sry, but font size way to small to watch.
My bad. I usually remember but forgot. Sorry
do you have any idea how long a 1,5 A battery would power the device when you only send data 2 times a day, and use the sleep mode?
Rather unknown feature that the round robin happens over DNS responses. There is one caveat we might run into: if the client caches DNS for faster results, it will connect to just 1 IP until the client does a DNS query again, which is usually after a restart
That is true. The DNS query results typically are cached for the TTL time period. When I was testing the Nginx / Docker configuration it appeared that the default TTL was set to 600s, but when I dynamically scaled the application the new IP addresses were being served up right away. This makes sense as on the resolver line in the nginx conf file there is a "valid=5s;". Thanks for starting this discussion!
Here is a great article on how Nginx handles DNS resolution for a few configuration: www.nginx.com/blog/dns-service-discovery-nginx-plus/.
Thank you so much for your tutorials. Keep up the good work!
Glad you like them!
Do you think that is possible to send video stream via sim module? If not maybe some jpegs...
I think that periodically uploading a JPEG is definitely doable. I would think that streaming should also be possible, but I am a bit more skeptical if this hardware could do that via the SIM module. Probably the best design would be having a "normal" picture rate of every 5-10 minutes, but dynamically increasing that rate if certain events occurred (e.g., GPS position change, or motion detected since the last photo...etc).