CI/CD: SpringBoot, MySQL, Jenkins, Docker, AWS

แชร์
ฝัง
  • เผยแพร่เมื่อ 26 ก.ค. 2023
  • CI/CD là gì?
    Trong video này mình sẽ tạo 1 CI/CD pipeline để triển khai ứng dụng SpringBoot và MySQL lên môi trường local và cloud EC2 AWS.
    Mình sử dụng Jenkins, Ansible và Docker làm các công cụ Devops hỗ trợ quá trình này.
    #devops #devopslagi #hocdevops #devopscoban #laptrinh #laptrinhvien #microservices #laptrinhweb #devopscoban #hocdevops #docker #cicd
    #roadmap #devopsroadmap #lotrinhhocdevops #jenkins #k8s #kubernetes
    #ansible#lotrinhdevops #github #aws #ec2
    Doc tài liệu cho bài lab: shorturl.at/fzM03
    Facebook: / dinhlehoang97
    Link Facebook group: / 899830471097713
  • วิทยาศาสตร์และเทคโนโลยี

ความคิดเห็น • 99

  • @tranminhluan4334
    @tranminhluan4334 ปีที่แล้ว

    Video quá hữu ích và chất lượng từ nội dung đến hình ảnh, chúc kênh anh sớm thành công ạ

  • @thangho5556
    @thangho5556 11 หลายเดือนก่อน +1

    Video chất lượng quá anh, mong anh ra thêm những vid về chủ đề này ạ

  • @bachle4148
    @bachle4148 9 หลายเดือนก่อน

    Hay quá anh ơi, mong anh ra nhiều hơn nữa về devOps. luôn ủng hộ anh

  • @phatminh2003
    @phatminh2003 9 หลายเดือนก่อน

    Bài viết rất hay, hay về cả nội dung và cách diễn đạt. Thanks bro

  • @thachholeminh4807
    @thachholeminh4807 ปีที่แล้ว

    1 vid quá hữu ích. Chúc anh thành công trong những vid sắp tới.

  • @ctchien1791
    @ctchien1791 ปีที่แล้ว

    Video rất hay và bổ ích.
    Mong bạn làm thêm nhiều video về CI/CD😊

  • @namthanhnguyen2554
    @namthanhnguyen2554 11 หลายเดือนก่อน

    Video giải thích rất dễ hiểu và tường minh. Cảm ơn anh vì video bổ ích này ạ 😊

  • @kyrie4728
    @kyrie4728 ปีที่แล้ว

    quá dễ hiểu + chi tiết, rất hóng khóa học của bạn ra là mình súc liền :D

  • @HieuNguyen-wt8kf
    @HieuNguyen-wt8kf ปีที่แล้ว

    Hay quá anh, mong anh ra thêm nhiều video về chủ đề này

  • @thohuynh9132
    @thohuynh9132 10 หลายเดือนก่อน

    anh làm video rất hay . mong a ra nhièu video hướng dẫn cho anh em bắt đầu làm DevOp từ đầu

  • @kaitohasei2497
    @kaitohasei2497 11 หลายเดือนก่อน

    Cảm ơn anh nhiều, em đang kiếm mấy bài CI/CD như này ❤❤❤

  • @phamkhoi06
    @phamkhoi06 ปีที่แล้ว

    Video anh làm hay nhưng ít người xem quá, mong kênh ngày càng phát triển

  • @huyhoangthe5970
    @huyhoangthe5970 ปีที่แล้ว +2

    Chờ mãi giờ mới có full flow. Video đợt sau mong anh bonus thêm K8s nữa tại e thấy skill này khá hot vs devops.

  • @vynguyenhoang5604
    @vynguyenhoang5604 ปีที่แล้ว

    Em cảm ơn anh, video rất hay và hữu ích ạ.

  • @CuongVu-uq7up
    @CuongVu-uq7up ปีที่แล้ว

    cảm ơn bạn . Bài hướng dẫn rất có tâm !!

  • @thisorp
    @thisorp ปีที่แล้ว +1

    rất hữu ích anh ơi, em đang theo học DevOps nên mong anh có thể thêm nhiều video hướng dẫn, nguồn học và tài nguyên , cũng như có thể liên hệ với anh ạ

  • @tienvuonganh3670
    @tienvuonganh3670 ปีที่แล้ว

    Video quá hay và dễ hiểu

  • @VuKhacDiep084
    @VuKhacDiep084 6 หลายเดือนก่อน

    Tuyệt vời quá, rất biết ơn bạn 🎉🎉🎉🎉

  • @K.Huynh.
    @K.Huynh. ปีที่แล้ว

    Cảm ơn anh đã chia sẻ

  • @hoaian7868
    @hoaian7868 ปีที่แล้ว

    Cảm ơn anh rất nhiều ạ

  • @ThuanNguyen-mq4ww
    @ThuanNguyen-mq4ww ปีที่แล้ว

    hữu ích quá, cảm ơn anh

  • @user-dy2fh2ze4v
    @user-dy2fh2ze4v ปีที่แล้ว

    mong anh ra nhieu video

  • @HoangNguyen-be4vy
    @HoangNguyen-be4vy 10 หลายเดือนก่อน

    Hay quá anh ơi!

  • @manhhungtran1558
    @manhhungtran1558 ปีที่แล้ว

    Hay bạn ơi đúng cái đang cần kkk

  • @aingominh6376
    @aingominh6376 ปีที่แล้ว

    Hay quá anh

  •  ปีที่แล้ว

    quá là bổ ích

  • @giabaohuynhphan3252
    @giabaohuynhphan3252 4 หลายเดือนก่อน

    hay quá anh ơi

  • @hoangvh238.dailycode
    @hoangvh238.dailycode 9 หลายเดือนก่อน

    hay quá anh

  • @minhcraft5888
    @minhcraft5888 ปีที่แล้ว

    Hello a iuuuu

  • @trannhatlongdau183
    @trannhatlongdau183 9 วันที่ผ่านมา

    vid hay quá ạ. anh cho em hỏi là mình có thể bắt đầu học devops từ nguồn nào hay v ạ?

  • @TuanLe-vx9xh
    @TuanLe-vx9xh ปีที่แล้ว

    Hix. Thứ mà em tìm kiếm bấy lâu nay😢😢😢 Cảm ơn anh cực kỳ nhiều.

  • @AlanTran18
    @AlanTran18 ปีที่แล้ว

    ra khóa DevOps thoi anh ơi :D

  • @ThanhNgoMInh-tr8hr
    @ThanhNgoMInh-tr8hr 2 หลายเดือนก่อน

    A ơi cho e hỏi là khi làm tới bước create a job và gắn link github vào thì nó báo lỗi
    This folder is empty
    There are no branches found that contain buildable projects. Jenkins automatically builds and manages projects in branches that contain recognizable projects. Pipeline Branch projects support building branches within a repository containing a pipeline script. By default it uses a file named Jenkinsfile in the root directory.
    Nhưng project e đầy đủ hết rồi, lỗi này là sao vậy ạ?

  • @nghianguyentuan1481
    @nghianguyentuan1481 ปีที่แล้ว +1

    Rất mong chờ các khóa học sắp tới của anh. Cho em hỏi là khóa đầu tiên về chủ đề gì và tầm nào release đó ạ?

    • @khalid_dinh
      @khalid_dinh  ปีที่แล้ว +1

      Khoá về Docker nhé

  • @LoLHL
    @LoLHL 2 หลายเดือนก่อน

    anh ơi hiện tại khi build mutilbranch pipeline thì em bị lỗi Packing pushing, deploy mysql với deploy spring boot là sao ạ anh giúp em với

  • @nguyenquangnhat4809
    @nguyenquangnhat4809 9 หลายเดือนก่อน

    Anh ơi cho em hỏi em không có cloud thì dùng máy ảo vật lý để tạo server đc ko ạ. Em cảm ơn

  • @tranhuuphuck15hcm84
    @tranhuuphuck15hcm84 หลายเดือนก่อน

    QA vs Staging là gì vậy ạ, em ko hỉu tại sao phải tạo tới 2 server

  • @HuanPhanThai
    @HuanPhanThai ปีที่แล้ว

    Lâu lắm mới gặp một ông phát âm đúng chữ Linux ;)

    • @khalid_dinh
      @khalid_dinh  ปีที่แล้ว

      :))) sửa nhiều rồi đấy

  • @trolllienminhetn1694
    @trolllienminhetn1694 ปีที่แล้ว

    Bài này có thêm Terraform ( hoặc CloudFormation ) để tự động hoá việc tạo máy ảo nữa thì perfect anh ạ

    • @khalid_dinh
      @khalid_dinh  ปีที่แล้ว

      Ừm. Nhưng sợ hơi nhiều tool quá cho newbie

    • @ngocthiennguyen3318
      @ngocthiennguyen3318 ปีที่แล้ว +1

      @@khalid_dinh thêm cái này nữa người mới như em là ngộp chết

  • @williamlin8709
    @williamlin8709 ปีที่แล้ว +7

    Em rất biết ơn anh vì đã bỏ công sức để làm ra bài lab này ❤ mà em cũng có một số thắc mắc mong anh giải đáp giúp em do em cũng chưa đi làm nên cũng không rõ như thế nào nữa.
    1. Như trong bài lab này thì anh có sẵn ready-production project để thực hiện CI/CD. Vậy nếu như lúc bắt đầu dự án thì bắt đầu CI/CD như thế nào ạ, chẳng hạn bắt đầu từ lúc chưa có code gì hay bên đội devs đã tạo một feature đầu tiên rồi mới thực hiện CI/CD. Và thêm nữa bên đội testers sẽ tham gia vào quy trình này như thế nào ạ.
    2. Với lại việc quy trình ci/cd của project theo kiến trúc monolith hay microservices có khác nhau gì không anh nhỉ.
    Cảm ơn anh ạ 😊

    • @khalid_dinh
      @khalid_dinh  ปีที่แล้ว +1

      1. CI/CD bắt đầu khi Dev đã hoàn thành code, (1 hoặc nhiều chức năng). Lúc này cần đẩy code cho tester để test. Sau khi test xong, code được đóng gói, lưu trữ, rồi triển khai lên các môi trường. Tester có thể tham gia ngay từ đầu để chuẩn bị test case dựa vào requirements của project. Còn Devops chỉ tạo luồng tự động giữa Dev, Test, Operation. Về cơ bản là các team có thể làm việc song song, để k phải chờ đợi nhau.
      2. CI/CD mỗi dự án khác nhau đều khác nhau chứ k chỉ là giữa monolithic và microservices.

    • @williamlin8709
      @williamlin8709 ปีที่แล้ว

      @@khalid_dinh Yah, cảm ơn anh rất nhiều ^^

  • @dragonknight8514
    @dragonknight8514 ปีที่แล้ว

    tại sao video này không có sớm hơn cho tôi đỡ khổ, tks!!!

  • @trongmen8162
    @trongmen8162 2 หลายเดือนก่อน

    là ngay từ đầu anh chạy bằng máy ảo ạ

  • @KhanhNguyen-tb7wn
    @KhanhNguyen-tb7wn 8 หลายเดือนก่อน

    Mn ơi cho mình hởi là nếu làm đc và hiểu hết những cái công cụ anh ý nói thì đi xinn việc được chưa ạ

  • @tuanfadbg
    @tuanfadbg 5 วันที่ผ่านมา

    lúc cần xem code thì cứ hiện cái mặt to chình ình lên

  • @leolemon4505
    @leolemon4505 หลายเดือนก่อน

    anh có thể cho em xin dockerFIle của jenkins của anh đc không ạ

  • @tabishsulamani2292
    @tabishsulamani2292 ปีที่แล้ว

    👍

  • @LongLe-mh1lu
    @LongLe-mh1lu หลายเดือนก่อน

    anh cho em xin script builld image anh khởi tạo jenkins vs ạ

  • @amrfarg
    @amrfarg ปีที่แล้ว

    Một kiến thức có ích...!! Sứ giả của Allah (ﷺ) nói: "Khi một người đàn ông chết, những việc làm của anh ta kết thúc ngoại trừ ba điều: Sadaqah Jariyah (từ thiện không ngừng); một kiến thức có ích, hoặc một người con/hậu duệ đức hạnh cầu nguyện cho anh ta ( cho người đã khuất)".

  • @hongsangpham531
    @hongsangpham531 ปีที่แล้ว

    Em có chút thắc mắc mong được anh giải đáp ạ.
    Theo như bài Lab thì anh sẽ dựng 2 EC2 instance. Em muốn hỏi là em có thể dùng kubernetes để dựng 2 pod thay thế cho 2 máy ảo EC2 có được không ạ?
    Em cảm ơn ạ.

    • @khalid_dinh
      @khalid_dinh  ปีที่แล้ว

      Thực ra K8s pod nó khá tương đồng Docker container. Nên câu hỏi của e là thay thế EC2 instance bằng container thì k nên. Mục đích 2 cái này khác nhau. Container thì chủ yếu dành cho việc chứa, chạy app; còn EC2 instance thì nó tương tự như server rồi. Setup môi trường thì phải dựng server (hoặc VM) chứ k dùng container nhé

    • @hongsangpham531
      @hongsangpham531 ปีที่แล้ว

      @@khalid_dinh Dạ vâng, em cảm ơn ạ. Chờ video tiếp theo của anh ạ :333

  • @quocdungdo321
    @quocdungdo321 11 หลายเดือนก่อน

    anh ơi cho em hỏi, khi mới bắt đầu học ansible thì làm sao để nhớ được hết mấy cái module trong playbook a nhỉ

    • @khalid_dinh
      @khalid_dinh  11 หลายเดือนก่อน

      Nhớ cái nào hay dùng thôi chứ sao nhớ hết nổi

  • @ngocthiennguyen3318
    @ngocthiennguyen3318 ปีที่แล้ว

    Em mới tìm hiểu về AWS thì để tạo instance thì không nên sử dụng account root, làm sao để mình setup IAM cho hợp lý vậy ạ

    • @khalid_dinh
      @khalid_dinh  ปีที่แล้ว

      cái này chắc phải có video riêng chứ khá là dài. Nhìn chung là account root AWS không nên dùng thường xuyên, chỉ dùng nó để tạo, phân quyền account khác thôi. Các normal account kia thì nên tạo thành các group, dùng dịch vụ nào thì gán dịch vụ đó, k thừa, k thiếu.

  • @buck9184
    @buck9184 ปีที่แล้ว +1

    e cũng có tìm hiểu về CI/CD mà ở trên mạng đọc vẫn đang mông lung quá. a có thể giải thích qua cho e về CI/CD đc k ạ

    • @khalid_dinh
      @khalid_dinh  ปีที่แล้ว

      a có 1 video giới thiệu về CI/CD rồi đấy. Xem nếu k hiểu chỗ nào thì hỏi nhé

  • @vuiepkhac6986
    @vuiepkhac6986 6 หลายเดือนก่อน

    Bạn ơi mình đã tới bước ở phút 13:45 (Deploy app to DEV). Mình tạo 1 Repo khác trên git của mình và clone source code bạn về.
    Lúc mình cũng làm y như bạn add source code, 1p ở phần Periodically. Nhưng khi chạy xong thì phần đầu tiên chữ S (Status of the last build) màu đỏ báo failed.
    Mình ko biết là bị gì nữa. Check Docker ps thì ko thấy Msql dc thêm vào :(
    Xin chỉ vơi ạ

    • @khalid_dinh
      @khalid_dinh  6 หลายเดือนก่อน

      inbox riêng gửi mình log của nó nhé

  • @trungdeptrai
    @trungdeptrai 11 หลายเดือนก่อน

    Nếu em tắt máy ảo đi khi không cần dùng tới thì nó có dừng việc tính tiền cho instance đó không anh nhỉ

    • @khalid_dinh
      @khalid_dinh  11 หลายเดือนก่อน

      tắt máy thì k tính tiền nữa nhé

  • @phuanbui7212
    @phuanbui7212 ปีที่แล้ว

    Anh ơi, đang ssh vào server, làm sao mình unlock jenkins bằng command line ạ. Em cảm ơn a ^^

    • @khalid_dinh
      @khalid_dinh  ปีที่แล้ว

      Trong video a có dùng lệnh để lấy ra token đấy

  • @thanhphamvan7434
    @thanhphamvan7434 8 หลายเดือนก่อน

    Em thấy có đoạn config ansible, anh viết config này ở đâu vậy ạ! Chỗ ansible này anh nói nhanh nên em chưa hiểu. Rất mong anh giải đáp. Thanks anh!

    • @khalid_dinh
      @khalid_dinh  8 หลายเดือนก่อน +1

      e vào link docs a để bên dưới mô tả nhé. Ở phần QA/Staging có config của Ansible đó

  • @thangtruong7274
    @thangtruong7274 ปีที่แล้ว +1

    E mới học lập trình nhiều chỗ vẫn chưa hiểu lắm. E có 1 cái web spring boot thymeleaf deploy lên railway qua github, mỗi lần e commit lên github lại thấy railway nó build lại image docker cũng tương tự như mình cài đặt cicd trog video phải ko ạ

    • @khalid_dinh
      @khalid_dinh  ปีที่แล้ว +1

      ừm, cũng là 1 solution, nhưng thường chỉ dành cho app nhỏ, kiểu side project mà không muốn mất thời gian setup CI/CD thôi

    • @thangtruong7274
      @thangtruong7274 ปีที่แล้ว

      @@khalid_dinh cảm ơn anh😁❤️

  • @binhhoang333
    @binhhoang333 ปีที่แล้ว

    bao giờ anh ra khóa devOps thế anh ơiiiii

  • @animesyntheticchannel7138
    @animesyntheticchannel7138 8 หลายเดือนก่อน

    Mn ơi cho mình hỏi là nếu làm đc và hiểu hết những cái công cụ anh ý nói thì đi xin việc được chưa ạ

    • @khalid_dinh
      @khalid_dinh  8 หลายเดือนก่อน

      Nếu e thành thạo Linux, Jenkins, Docker, Ansible, AWS cơ bản, thì có thể apply đc rồi. Nhưng chỉ Junior thôi

  • @VuKhacDiep084
    @VuKhacDiep084 6 หลายเดือนก่อน

    Trong video mình thấy là :
    docker container run --name khalid-jenkins -d -p 8080:8080
    Còn trong docs thì : docker container run --name khalid-jenkins -d -p 8081:8080 vậy có ảnh hưởng gì ko bạn

    • @khalid_dinh
      @khalid_dinh  6 หลายเดือนก่อน +1

      khi chạy browser thì sử dụng port 8081 nhé. VD localhost:8081

    • @VuKhacDiep084
      @VuKhacDiep084 6 หลายเดือนก่อน +1

      Chào bạn. Cám ơn bạn đã dành thời gian reply mình.
      Mình đã chạy Pipeline và thành công rồi sau 2 nhiều lần xử lý lỗi từng stage.
      Chắc Jenkins có gì đó update yêu phải chỉnh sửa lại code thì mới cho chạy như phần:
      ----------------------------------------------------------------------------------------------------------------------------------------------------------
      sh "docker run --name khalid-mysql --rm --network dev -v khalid-mysql-data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_LOGIN_PSW} -e MYSQL_DATABASE=db_example -d mysql:8.0 "
      ==> nó báo là ko an toàn về bảo mật phải chuyển về:
      sh """
      docker run --name khalid-mysql --rm --network dev -v khalid-mysql-data:/var/lib/mysql \
      -e MYSQL_ROOT_PASSWORD='${MYSQL_ROOT_LOGIN_PSW}' -e MYSQL_DATABASE=db_example -d mysql:8.0
      """
      Nhưng nói chung là ngồi mò cũng thú vị, mình ko phải dân dev, đang làm comtor ở 1 cty Outsource.
      Thank bạn đã chia sẻ.

  • @BDCCN-NguyenTrungHieu
    @BDCCN-NguyenTrungHieu 11 หลายเดือนก่อน

    14:26 a ơi đoạn này e chạy thì bị lỗi ở đoạn Build maven, check log thì bị lỗi như này:
    Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.11.0:compile (default-compile) on project khalid-spring: Fatal error compiling: error: release version 17 not supported
    Giờ e phải fix ntn hả a ?

    • @khalid_dinh
      @khalid_dinh  11 หลายเดือนก่อน

      E có dùng đúng version Jenkins như trong bài lab k

    • @BDCCN-NguyenTrungHieu
      @BDCCN-NguyenTrungHieu 11 หลายเดือนก่อน

      em có kiểm tra thì của e là 2.4.17 còn trong bài lab là 2.4.14, vậy là mình phải đổi lại pb giống như ver của bài lab ạ ?@@khalid_dinh

    • @khalid_dinh
      @khalid_dinh  11 หลายเดือนก่อน +1

      @@BDCCN-NguyenTrungHieu ừm

    • @BDCCN-NguyenTrungHieu
      @BDCCN-NguyenTrungHieu 11 หลายเดือนก่อน

      @@khalid_dinh e có đổi lại ver rồi ạ, nhưng có vẻ như lỗi vẫn thế @@ giờ phải làm sao ạ ?

    • @khalid_dinh
      @khalid_dinh  11 หลายเดือนก่อน +1

      @@BDCCN-NguyenTrungHieu vào messenger trao đổi nhé

  • @hoangngo7765
    @hoangngo7765 11 หลายเดือนก่อน

    em đang thắc mắc xíu, sao phải dùng linux ạ, macOs hay win không thực hiện được ạ

    • @khalid_dinh
      @khalid_dinh  11 หลายเดือนก่อน

      Windows làm được nhưng k phải là best option. MacOS cũng khá tương đồng với Linux nên có thể chạy đc

    • @hoangngo7765
      @hoangngo7765 11 หลายเดือนก่อน

      @@khalid_dinh oki anh, videos rất chi tiết và hữu ích ạ

  • @huynhducle9164
    @huynhducle9164 ปีที่แล้ว +1

    sắp có khóa học chưa anh

    • @khalid_dinh
      @khalid_dinh  ปีที่แล้ว +1

      sắp rồi nhé

    • @huynhducle9164
      @huynhducle9164 ปีที่แล้ว

      @@khalid_dinh video khóa học a nói chậm một chứt xíu nữa là perfect ạ :3

  • @user-jt6rw9kf1k
    @user-jt6rw9kf1k ปีที่แล้ว

    Cho minh xin Image docker Ansible duoc k?

    • @khalid_dinh
      @khalid_dinh  ปีที่แล้ว

      mình public trên Dockerhub rồi, bạn cứ pull về thôi

  • @tuyvuvan9307
    @tuyvuvan9307 ปีที่แล้ว +1

    Không biết anh có để ý không nhưng mà đầu anh bị nghiêng á anh ơi, e coi video nào cũng thấy nghiêng mà mãi không thấy anh chỉnh lại cho thẳng

    • @khalid_dinh
      @khalid_dinh  ปีที่แล้ว +1

      :)))

    • @bendzbodoi
      @bendzbodoi ปีที่แล้ว

      khó tính thật đấy. ông bị ocd hử

  • @lexuanlam3578
    @lexuanlam3578 11 หลายเดือนก่อน

    Wow lương hàng mấy trăm củ mà vẫn share free cho anh em🎉