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

Поделиться
HTML-код
  • Опубликовано: 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
  • НаукаНаука

Комментарии • 97

  • @tranminhluan4334
    @tranminhluan4334 11 месяцев назад

    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 ạ

  • @thachholeminh4807
    @thachholeminh4807 11 месяцев назад

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

  • @phatminh2003
    @phatminh2003 8 месяцев назад

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

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

  • @bachle4148
    @bachle4148 8 месяцев назад

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

  • @ctchien1791
    @ctchien1791 11 месяцев назад

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

  • @huyhoangthe5970
    @huyhoangthe5970 11 месяцев назад +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.

  • @kyrie4728
    @kyrie4728 11 месяцев назад

    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

  • @kaitohasei2497
    @kaitohasei2497 11 месяцев назад

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

  • @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 ạ 😊

  • @HieuNguyen-wt8kf
    @HieuNguyen-wt8kf 11 месяцев назад

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

  • @phamkhoi06
    @phamkhoi06 11 месяцев назад

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

  • @thisorp
    @thisorp 11 месяцев назад +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 ạ

  • @vynguyenhoang5604
    @vynguyenhoang5604 11 месяцев назад

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

  • @CuongVu-uq7up
    @CuongVu-uq7up 11 месяцев назад

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

  • @VuKhacDiep084
    @VuKhacDiep084 5 месяцев назад

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

  • @tienvuonganh3670
    @tienvuonganh3670 11 месяцев назад

    Video quá hay và dễ hiểu

  • @K.Huynh.
    @K.Huynh. 11 месяцев назад

    Cảm ơn anh đã chia sẻ

  • @hoaian7868
    @hoaian7868 11 месяцев назад

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

  • @ThuanNguyen-mq4ww
    @ThuanNguyen-mq4ww 11 месяцев назад

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

  • @manhhungtran1558
    @manhhungtran1558 11 месяцев назад

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

  • @HoangNguyen-be4vy
    @HoangNguyen-be4vy 10 месяцев назад

    Hay quá anh ơi!

  • @user-dy2fh2ze4v
    @user-dy2fh2ze4v 11 месяцев назад

    mong anh ra nhieu video

  • @aingominh6376
    @aingominh6376 11 месяцев назад

    Hay quá anh

  • @giabaohuynhphan3252
    @giabaohuynhphan3252 3 месяца назад

    hay quá anh ơi

  •  11 месяцев назад

    quá là bổ ích

  • @hoangvh238.dailycode
    @hoangvh238.dailycode 8 месяцев назад

    hay quá anh

  • @minhcraft5888
    @minhcraft5888 11 месяцев назад

    Hello a iuuuu

  • @HuanPhanThai
    @HuanPhanThai 11 месяцев назад

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

    • @khalid_dinh
      @khalid_dinh  11 месяцев назад

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

  • @TuanLe-vx9xh
    @TuanLe-vx9xh 11 месяцев назад

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

  • @AlanTran18
    @AlanTran18 11 месяцев назад

    ra khóa DevOps thoi anh ơi :D

  • @nghianguyentuan1481
    @nghianguyentuan1481 11 месяцев назад +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  11 месяцев назад +1

      Khoá về Docker nhé

  • @trolllienminhetn1694
    @trolllienminhetn1694 11 месяцев назад

    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  11 месяцев назад

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

    • @ngocthiennguyen3318
      @ngocthiennguyen3318 11 месяцев назад +1

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

  • @williamlin8709
    @williamlin8709 11 месяцев назад +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  11 месяцев назад +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 11 месяцев назад

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

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

  • @dragonknight8514
    @dragonknight8514 11 месяцев назад

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

  • @LoLHL
    @LoLHL Месяц назад

    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

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

  • @tranhuuphuck15hcm84
    @tranhuuphuck15hcm84 29 дней назад

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

  • @tabishsulamani2292
    @tabishsulamani2292 11 месяцев назад

    👍

  • @KhanhNguyen-tb7wn
    @KhanhNguyen-tb7wn 7 месяцев назад

    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 ạ

  • @trongmen8162
    @trongmen8162 Месяц назад

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

  • @leolemon4505
    @leolemon4505 18 дней назад

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

  • @LongLe-mh1lu
    @LongLe-mh1lu 23 дня назад

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

  • @amrfarg
    @amrfarg 11 месяцев назад

    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 11 месяцев назад

    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  11 месяцев назад

      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 11 месяцев назад

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

  • @buck9184
    @buck9184 11 месяцев назад +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  11 месяцев назад

      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é

  • @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 11 месяцев назад

    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  11 месяцев назад

      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.

  • @thanhphamvan7434
    @thanhphamvan7434 7 месяцев назад

    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  7 месяцев назад +1

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

  • @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é

  • @vuiepkhac6986
    @vuiepkhac6986 5 месяцев назад

    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  5 месяцев назад

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

  • @thangtruong7274
    @thangtruong7274 11 месяцев назад +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  11 месяцев назад +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 11 месяцев назад

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

  • @phuanbui7212
    @phuanbui7212 11 месяцев назад

    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  11 месяцев назад

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

  • @binhhoang333
    @binhhoang333 11 месяцев назад

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

  • @animesyntheticchannel7138
    @animesyntheticchannel7138 7 месяцев назад

    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  7 месяцев назад

      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 5 месяцев назад

    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  5 месяцев назад +1

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

    • @VuKhacDiep084
      @VuKhacDiep084 5 месяцев назад +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é

  • @user-jt6rw9kf1k
    @user-jt6rw9kf1k 11 месяцев назад

    Cho minh xin Image docker Ansible duoc k?

    • @khalid_dinh
      @khalid_dinh  11 месяцев назад

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

  • @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 ạ

  • @tuyvuvan9307
    @tuyvuvan9307 11 месяцев назад +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  11 месяцев назад +1

      :)))

    • @bendzbodoi
      @bendzbodoi 11 месяцев назад

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

  • @huynhducle9164
    @huynhducle9164 11 месяцев назад +1

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

    • @khalid_dinh
      @khalid_dinh  11 месяцев назад +1

      sắp rồi nhé

    • @huynhducle9164
      @huynhducle9164 11 месяцев назад

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

  • @lexuanlam3578
    @lexuanlam3578 11 месяцев назад

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