The Technology Sandbox
The Technology Sandbox
  • 50
  • 31 513
Docker Kit For Laravel - DEV and PROD Environments
Quickly get your Laravel project up and running with this Docker starter kit for Laravel. If you are looking for a bit more flexibility then this might be your solution.
Why another way to create and develop a Laravel application?
1. Enhanced Environment - I had a need to integrate with SQL Server, Active Directory, and other services. It was easier to have full control over the Dockerfile to facilitate these enhancements.
2. Architecture - I believe "application code" and "infrastructure code" belong in separate git repositories. This provides flexibility to easily create dev / prod environments.
Links:
- Github Repo: github.com/rcravens/docker_starter_for_laravel
- Introducing the Kit Facade: ua-cam.com/video/qbdOO7pnJrU/v-deo.html
- Original Video Covering Kit Code: ua-cam.com/video/GwgwgoWCm8Q/v-deo.html
- Laravel Demo Repo Used In This Video: github.com/rcravens/laravel_demo
- Laravel Github Repo: github.com/laravel/laravel
- Laravel Home Page: laravel.com/
- Docker Desktop Download: www.docker.com/products/docker-desktop/
- Docker Home Page: www.docker.com/
#docker
#laravel
#technologysandbox
Переглядів: 248

Відео

Docker Kit For Laravel (kit facade update) #docker #laravel
Переглядів 10 тис.День тому
Quickly get your Laravel project up and running with this Docker starter kit for Laravel. If you are looking for a bit more flexibility then this might be your solution. Why another way to create and develop a Laravel application? 1. Enhanced Environment - I had a need to integrate with SQL Server, Active Directory, and other services. It was easier to have full control over the Dockerfile to f...
Horizontally Scaling using Amazon Application Load Balancer (ALB) and Auto Scaling Group
Переглядів 5 тис.14 днів тому
In this video I take a look at horizontally scaling within the Amazon cloud infrastructure by using an Application Load Balancer and Auto Scaling Group. This information applies regardless of the web application's language. I happen to be using a Laravel / PHP applicaton, but the same process applies to Node, Python, or any other code base. This is a long video and but provides a lot of informa...
Horizontally Scaling Laravel/PHP In Amazon AWS
Переглядів 13021 день тому
In this video I take a look at horizontally scaling our Laravel / PHP application within the Amazon cloud infrastructure. I cover the following: 1. Horizontal vs Vertical Scaling 2. Using Nginx as a Load Balancer 3. Two Configurations for Horizontal Scaling I compare the performance of the following instance types: * c7i.large (2 vCPU / 4 GiB RAM) X 1 * c7i.large (2 vCPU / 4 GiB RAM) X 2 * c7i....
Vertically Scaling Laravel/PHP In Amazon AWS
Переглядів 88Місяць тому
In this video I take a look at vertically scaling our Laravel / PHP application within the Amazon cloud infrastructure. I cover the following: 1. Nginx configuration options to fine tune performance 2. PHP-FPM configuration options to fine tune performance 3. Performance testing "gotchas" 4. Fixes to some common limits such as file handles, and network session reuse I compare the performance of...
Nginx and PHP-FPM Performance Optimization
Переглядів 144Місяць тому
In this video I take a look at some performance optimizations we can achieve on our web application (Laravel) that is deployed to a single EC2 instance in Amazon AWS. These optimizations are not AWS specific and can be applied to any application where it is hosted on-prem or in the cloude. I take you through the details of the following 5 optimizations: 1. Latest Versions 2. Swap Space 3. Appli...
Scaling Laravel Horizon Workers and Scheduler
Переглядів 63Місяць тому
In this video I carve out workers (Laravel Horizon) and scheduling (php artisan schedule) from our monolithic deployment into a Worker Tier by deploying those feature to their own EC2 instance. Laravel Horizon is a powerful dashboard and queue monitoring tool built specifically for Laravel applications. It provides real-time insights into job queues, allowing developers to monitor queue through...
Amazon AWS ElastiCache Deployment #aws #redis
Переглядів 219Місяць тому
In this video I carve out Redis from our monolithic deployment into a caching tier by setting up Amazon ElastiCache as our managed cache option. I take a look at two options in this video: serverless and custom deployment. Amazon ElastiCache for Redis offers several benefits for businesses looking to enhance their applications and infrastructure. Here are five of the top benefits: 1. High Perfo...
Amazon AWS RDS Fully Managed Database Deployment
Переглядів 752 місяці тому
In this video I convert our monolithic deployment to a two tier deployment by setting up Amazon RDS as our managed database option. I explore both the Amazon RDS MySQL engine and the Aurora engine options. The deployment is a cluster across our two availability zones. This cluster has a single write node and a single read replica node. You could easily scale this further by adding more read-rep...
MySQL Master / Slave Deployment in Amazon AWS
Переглядів 1252 місяці тому
In this video I deploy MySQL to Amazon AWS. I start off simple and deploy a single instance of MySQL in a single AWS Availability Zone (AZ). Then I scale the database by deploying a "master / slave" MySQL replicated server where the master and slave are deployed to two AWS AZs. This configuration allows the application to separate database read operations from writes. With this knowledge you co...
CI/CD - Github 12 Example Workflows #cicd #github
Переглядів 2462 місяці тому
This is a continuation of the previous videos in the series where we are developing our capability to deploy an application to Amazon AWS. The applicaton we are deploying is based on the Laravel framework. Previously we covered: - 7 Steps To Deploy Laravel to AWS (8 videos, start here: ua-cam.com/video/IgJWK4aQ2jQ/v-deo.html) - DevOps and Infrastructure As Code (4 videos, start here: ua-cam.com...
CI/CD - Intro and Project Recap
Переглядів 512 місяці тому
This is a continuation of the previous videos in the series where we are developing our capability to deploy an application to Amazon AWS. The applicaton we are deploying is based on the Laravel framework. Previously we covered: - 7 Steps To Deploy Laravel to AWS (8 videos, start here: ua-cam.com/video/IgJWK4aQ2jQ/v-deo.html) - DevOps and Infrastructure As Code (4 videos, start here: ua-cam.com...
DevOps - Continuous Integration / Continuous Delivery #devops #cicd
Переглядів 492 місяці тому
In this "quick concept" video we take a look at Continuous Integration / Continuous Delivery or CI/CD. This devops concept is an important part of modern software development processes. Continuous Integration and Continuous Delivery (CI/CD) is like a well-oiled machine for building and delivering software. Baking Analogy: Imagine you're baking a cake: with CI/CD, every time you add a new ingred...
Infrastructure as Code: Step 4 - Zero Down Time Deployments
Переглядів 533 місяці тому
This is a continuation of the previous videos in the series that provide all the details that you needed to know to securely deploy your Laravel application to the cloud using Amazon AWS. The previous videos took you through the step-by-step process as we manually completed all the steps required to deploy Laravel to AWS. This series introduces the concept of "Infrastructure as Code". I transfo...
Infrastructure as Code: Step 3 - Application Management Platform
Переглядів 833 місяці тому
This is a continuation of the previous videos in the series that provide all the details that you needed to know to securely deploy your Laravel application to the cloud using Amazon AWS. The previous videos took you through the step-by-step process as we manually completed all the steps required to deploy Laravel to AWS. This series introduces the concept of "Infrastructure as Code". I transfo...
Infrastructure as Code: Step 2 - Shell Script to Provision Ubuntu
Переглядів 653 місяці тому
Infrastructure as Code: Step 2 - Shell Script to Provision Ubuntu
channel trailer
Переглядів 1153 місяці тому
channel trailer
Infrastructure as Code: Step 1 - Amazon AWS CloudFormation
Переглядів 933 місяці тому
Infrastructure as Code: Step 1 - Amazon AWS CloudFormation
Exploring Prompt Engineering with Agents #openai
Переглядів 7 тис.3 місяці тому
Exploring Prompt Engineering with Agents #openai
Step 7 - Setup Your Domain Name by Configuring DNS and Installing TLS/SSL Certs #aws #laravel
Переглядів 943 місяці тому
Step 7 - Setup Your Domain Name by Configuring DNS and Installing TLS/SSL Certs #aws #laravel
Step 6 - Install MySQL and Convert Laravel From SQLite
Переглядів 1583 місяці тому
Step 6 - Install MySQL and Convert Laravel From SQLite
Step 5 - Setup Ubuntu Cron to run Laravel Task Scheduler
Переглядів 1523 місяці тому
Step 5 - Setup Ubuntu Cron to run Laravel Task Scheduler
Step 4 - Setup Ubuntu's Supervisor to run Laravel Horizon #ubuntu #aws #laravel
Переглядів 2433 місяці тому
Step 4 - Setup Ubuntu's Supervisor to run Laravel Horizon #ubuntu #aws #laravel
Step 3 - Bring Laravel Live By Deploying The Web #aws #laravel
Переглядів 2543 місяці тому
Step 3 - Bring Laravel Live By Deploying The Web #aws #laravel
Step 2 - Prepare Ubuntu By Installing Nginx, PHP, Composer, NPM, and more. #aws #ubuntu
Переглядів 2473 місяці тому
Step 2 - Prepare Ubuntu By Installing Nginx, PHP, Composer, NPM, and more. #aws #ubuntu
Step1 - Provision All The Infrastructure You Need In Amazon AWS Cloud #aws
Переглядів 2733 місяці тому
Step1 - Provision All The Infrastructure You Need In Amazon AWS Cloud #aws
2024 - 7 Steps To Deploy Laravel to Amazon AWS #aws #laravel
Переглядів 6623 місяці тому
2024 - 7 Steps To Deploy Laravel to Amazon AWS #aws #laravel
An AI-Powered Job Coach #ai #openai #python #promptengineering
Переглядів 643 місяці тому
An AI-Powered Job Coach #ai #openai #python #promptengineering
Fundamentals of Good Estimates in Software Engineering #softwaredevelopment #agile
Переглядів 1224 місяці тому
Fundamentals of Good Estimates in Software Engineering #softwaredevelopment #agile
An AI-Powered Job Coach #ai #openai #python #promptengineering
Переглядів 684 місяці тому
An AI-Powered Job Coach #ai #openai #python #promptengineering

КОМЕНТАРІ

  • @lyrihkaesa
    @lyrihkaesa День тому

    Thanks you, i can learn more laravel with docker. I hope custom docker image with postgresql and minio.

  • @nizz4m
    @nizz4m 3 дні тому

    Is it possible to achieve the installation of PHP, Nginx, Composer, NPM via user data while creating ec2 instance ?

    • @thetechnologysandbox
      @thetechnologysandbox 3 дні тому

      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: ua-cam.com/video/7xOpxpdLcfI/v-deo.html. You might also be interested in the follow up videos on CI/CD (ua-cam.com/video/w3mxNdJPEL8/v-deo.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.

    • @nizz4m
      @nizz4m 26 хвилин тому

      @@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 ?

  • @abrahamolaobaju1781
    @abrahamolaobaju1781 4 дні тому

    nice

  • @decar4773
    @decar4773 5 днів тому

    Thank you for video

  • @user-oe6ws2lp8e
    @user-oe6ws2lp8e 8 днів тому

    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

    • @thetechnologysandbox
      @thetechnologysandbox 3 дні тому

      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.

  • @kh-hamzadev
    @kh-hamzadev 8 днів тому

    Thanks for these tutorials. Got to learn a lot from these videos.

  • @DeGuzmanBonjourL
    @DeGuzmanBonjourL 11 днів тому

    Question when I push on my repository the folder code not push

    • @thetechnologysandbox
      @thetechnologysandbox 10 днів тому

      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.

    • @DeGuzmanBonjourL
      @DeGuzmanBonjourL 9 днів тому

      @@thetechnologysandbox tnx again there another problem when I deploy on remote docker server I cannot to access 404 will response

  • @henrylemmon6685
    @henrylemmon6685 12 днів тому

    Hello, The settings tab is missing from rcravens/laravel_demo github page?

    • @henrylemmon6685
      @henrylemmon6685 11 днів тому

      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.

  • @passioncorners
    @passioncorners 16 днів тому

    Could we possibly explore scaling in different AWS regions?

  • @passioncorners
    @passioncorners 17 днів тому

    Hey Bob, is there an official or common name that is used for the "Four-Tier Deployment" concept?

    • @thetechnologysandbox
      @thetechnologysandbox 17 днів тому

      I think the "generic" term is "multi-tier architecture" or "n-tier architecture".

  • @passioncorners
    @passioncorners 17 днів тому

    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?

    • @thetechnologysandbox
      @thetechnologysandbox 17 днів тому

      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!

    • @passioncorners
      @passioncorners 17 днів тому

      @@thetechnologysandbox Thank you for your reply. Love the whole series and looking forward for more content from you!

  • @henrylemmon6685
    @henrylemmon6685 17 днів тому

    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

    • @thetechnologysandbox
      @thetechnologysandbox 17 днів тому

      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!

    • @henrylemmon6685
      @henrylemmon6685 17 днів тому

      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.

  • @gustavoriosfombona
    @gustavoriosfombona 19 днів тому

    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?

    • @thetechnologysandbox
      @thetechnologysandbox 18 днів тому

      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….

    • @gustavoriosfombona
      @gustavoriosfombona 18 днів тому

      @@thetechnologysandbox Thank you , looking forward to your videos. Best regards

  • @decar4773
    @decar4773 26 днів тому

    Thank you for the video

  • @tonie_victor
    @tonie_victor 28 днів тому

    Thank you.

  • @deoxzyKun
    @deoxzyKun Місяць тому

    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

    • @thetechnologysandbox
      @thetechnologysandbox 26 днів тому

      Hopefully you got past this issue. Sounds like either "laravel_demo" is not the user you used or the ".ssh" directory was not created.

  • @deoxzyKun
    @deoxzyKun Місяць тому

    you should've provided the commands in the description, it would've been more easier to follow

    • @thetechnologysandbox
      @thetechnologysandbox 26 днів тому

      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.

  • @otp1203
    @otp1203 Місяць тому

    Maybe a missed it along the way, but do you have a github or something for all the commands/configs you're copy/pasting?

    • @thetechnologysandbox
      @thetechnologysandbox 26 днів тому

      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: ua-cam.com/video/7xOpxpdLcfI/v-deo.html.

  • @SergejOleskevic
    @SergejOleskevic Місяць тому

    Perfect video! Waiting for the next one. Thank you

  • @decar4773
    @decar4773 Місяць тому

    Super

  • @decar4773
    @decar4773 Місяць тому

    You are very smart))

  • @decar4773
    @decar4773 Місяць тому

    Everything worked out! Thank you

  • @desmondawere3409
    @desmondawere3409 Місяць тому

    Thank you for this video, but I keep getting 400 Bad request when I go to abc_local:44301 on my browser

  • @cristobalmaldonado6028
    @cristobalmaldonado6028 2 місяці тому

    This video helps me a lot, thanks! How can I deploy my application in cpanel using docker?

  • @codewithmorkeh
    @codewithmorkeh 2 місяці тому

    Can you please share the GitHub repo link for the GitHub actions?

    • @thetechnologysandbox
      @thetechnologysandbox 2 місяці тому

      My bad....here is the repo: github.com/rcravens/laravel_demo. Thanks for watching!

  • @punkygamer7668
    @punkygamer7668 2 місяці тому

    Great series so far! waiting for more including ci/cd gh actions etc.

  • @SergejOleskevic
    @SergejOleskevic 3 місяці тому

    Thank you! I watch every video on your channel 😊 What is the main benefit of using this way of automation compared to the Docker?

    • @thetechnologysandbox
      @thetechnologysandbox 3 місяці тому

      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!

  • @Louic099
    @Louic099 3 місяці тому

    Exactly what I was looking for! Will jump into part one. Thanks for taking you time and creating this

  • @ray-qs3nq
    @ray-qs3nq 3 місяці тому

    Would love to see more projects like these in the future!

  • @SergejOleskevic
    @SergejOleskevic 3 місяці тому

    Wow. Your tutorial is awesome. Very clear and easy to follow. Thank you!

  • @shubhankertiwari3699
    @shubhankertiwari3699 3 місяці тому

    can we do live stream using this board?

  • @HyuLilium
    @HyuLilium 4 місяці тому

    Could you please share a format of how to communicate this estimation? Like the output of using what's described in the video.

    • @thetechnologysandbox
      @thetechnologysandbox 4 місяці тому

      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 ;-))

  • @EdissonReinozo
    @EdissonReinozo 4 місяці тому

    Thanks for sharing!

  • @MadanChalla
    @MadanChalla 4 місяці тому

    Thanks a lot, Bob! Your insights are really helpful and useful. Would you share that py with me please! Wont ya!? 😊 Best wishes 🤞

    • @MadanChalla
      @MadanChalla 4 місяці тому

      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 👍

  • @gregorgliha
    @gregorgliha 4 місяці тому

    Sry, but font size way to small to watch.

  • @rovagamer
    @rovagamer 4 місяці тому

    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?

  • @AralCanKaymaz
    @AralCanKaymaz 5 місяців тому

    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

    • @thetechnologysandbox
      @thetechnologysandbox 5 місяців тому

      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!

    • @thetechnologysandbox
      @thetechnologysandbox 5 місяців тому

      Here is a great article on how Nginx handles DNS resolution for a few configuration: www.nginx.com/blog/dns-service-discovery-nginx-plus/.

  • @mister--W
    @mister--W 5 місяців тому

    Thank you so much for your tutorials. Keep up the good work!

  • @arkadiuszszczotka6180
    @arkadiuszszczotka6180 5 місяців тому

    Do you think that is possible to send video stream via sim module? If not maybe some jpegs...

    • @thetechnologysandbox
      @thetechnologysandbox 5 місяців тому

      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).