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

Ғылым және технология

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

Пікірлер: 96

  • @phatminh2003
    @phatminh20038 ай бұрын

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

  • @tranminhluan4334
    @tranminhluan433411 ай бұрын

    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 ạ

  • @namthanhnguyen2554
    @namthanhnguyen255410 ай бұрын

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

  • @thachholeminh4807
    @thachholeminh480711 ай бұрын

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

  • @thangho5556
    @thangho555610 ай бұрын

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

  • @CuongVu-uq7up
    @CuongVu-uq7up11 ай бұрын

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

  • @kyrie4728
    @kyrie472811 ай бұрын

    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

  • @VuKhacDiep084
    @VuKhacDiep0845 ай бұрын

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

  • @TuanLe-vx9xh
    @TuanLe-vx9xh11 ай бұрын

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

  • @kaitohasei2497
    @kaitohasei249710 ай бұрын

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

  • @vynguyenhoang5604
    @vynguyenhoang560411 ай бұрын

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

  • @thohuynh9132
    @thohuynh91329 ай бұрын

    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

  • @tienvuonganh3670
    @tienvuonganh367011 ай бұрын

    Video quá hay và dễ hiểu

  • @ctchien1791
    @ctchien179111 ай бұрын

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

  • @bachle4148
    @bachle41488 ай бұрын

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

  • @HieuNguyen-wt8kf
    @HieuNguyen-wt8kf10 ай бұрын

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

  • @hoaian7868
    @hoaian786811 ай бұрын

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

  • @K.Huynh.
    @K.Huynh.11 ай бұрын

    Cảm ơn anh đã chia sẻ

  • @ThuanNguyen-mq4ww
    @ThuanNguyen-mq4ww11 ай бұрын

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

  • @phamkhoi06
    @phamkhoi0610 ай бұрын

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

  • @huyhoangthe5970
    @huyhoangthe597011 ай бұрын

    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.

  • @HoangNguyen-be4vy
    @HoangNguyen-be4vy9 ай бұрын

    Hay quá anh ơi!

  • @thisorp
    @thisorp11 ай бұрын

    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 ạ

  • @user-dy2fh2ze4v
    @user-dy2fh2ze4v11 ай бұрын

    mong anh ra nhieu video

  • @manhhungtran1558
    @manhhungtran155811 ай бұрын

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

  • 10 ай бұрын

    quá là bổ ích

  • @aingominh6376
    @aingominh637610 ай бұрын

    Hay quá anh

  • @giabaohuynhphan3252
    @giabaohuynhphan32523 ай бұрын

    hay quá anh ơi

  • @hoangvh238.dailycode
    @hoangvh238.dailycode7 ай бұрын

    hay quá anh

  • @minhcraft5888
    @minhcraft588811 ай бұрын

    Hello a iuuuu

  • @tabishsulamani2292
    @tabishsulamani229211 ай бұрын

    👍

  • @HuanPhanThai
    @HuanPhanThai10 ай бұрын

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

  • @khalid_dinh

    @khalid_dinh

    10 ай бұрын

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

  • @nghianguyentuan1481
    @nghianguyentuan148111 ай бұрын

    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 ай бұрын

    Khoá về Docker nhé

  • @AlanTran18
    @AlanTran1811 ай бұрын

    ra khóa DevOps thoi anh ơi :D

  • @trolllienminhetn1694
    @trolllienminhetn169411 ай бұрын

    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 ай бұрын

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

  • @dragonknight8514
    @dragonknight851411 ай бұрын

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

  • @williamlin8709
    @williamlin870911 ай бұрын

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

  • @amrfarg
    @amrfarg11 ай бұрын

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

  • @nguyenquangnhat4809
    @nguyenquangnhat48098 ай бұрын

    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

  • @trongmen8162
    @trongmen8162Ай бұрын

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

  • @tranhuuphuck15hcm84
    @tranhuuphuck15hcm8410 күн бұрын

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

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

  • @KhanhNguyen-tb7wn
    @KhanhNguyen-tb7wn7 ай бұрын

    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 ạ

  • @ThanhNgoMInh-tr8hr
    @ThanhNgoMInh-tr8hrАй бұрын

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

  • @LongLe-mh1lu
    @LongLe-mh1lu5 күн бұрын

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

  • @buck9184
    @buck918411 ай бұрын

    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é

  • @binhhoang333
    @binhhoang33311 ай бұрын

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

  • @khalid_dinh

    @khalid_dinh

    11 ай бұрын

    Sắp rồi :)))

  • @quocdungdo321
    @quocdungdo32110 ай бұрын

    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

    10 ай бұрын

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

  • @hongsangpham531
    @hongsangpham53111 ай бұрын

    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

  • @ngocthiennguyen3318
    @ngocthiennguyen331811 ай бұрын

    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
    @thanhphamvan74347 ай бұрын

    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 ай бұрын

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

  • @phuanbui7212
    @phuanbui721211 ай бұрын

    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

  • @trungdeptrai
    @trungdeptrai10 ай бұрын

    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

    10 ай бұрын

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

  • @animesyntheticchannel7138
    @animesyntheticchannel71387 ай бұрын

    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
    @VuKhacDiep0845 ай бұрын

    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 ай бұрын

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

  • @VuKhacDiep084

    @VuKhacDiep084

    5 ай бұрын

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

  • @vuiepkhac6986
    @vuiepkhac69865 ай бұрын

    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é

  • @lexuanlam3578
    @lexuanlam357810 ай бұрын

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

  • @user-jt6rw9kf1k
    @user-jt6rw9kf1k11 ай бұрын

    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

  • @thangtruong7274
    @thangtruong727411 ай бұрын

    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 ай бұрын

    ừ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😁❤️

  • @huynhducle9164
    @huynhducle916411 ай бұрын

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

  • @khalid_dinh

    @khalid_dinh

    11 ай бұрын

    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

  • @tuyvuvan9307
    @tuyvuvan930711 ай бұрын

    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 ай бұрын

    :)))

  • @bendzbodoi

    @bendzbodoi

    11 ай бұрын

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

  • @hoangngo7765
    @hoangngo776510 ай бұрын

    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

    10 ай бұрын

    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

    10 ай бұрын

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

  • @BDCCN-NguyenTrungHieu
    @BDCCN-NguyenTrungHieu10 ай бұрын

    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

    10 ай бұрын

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

  • @BDCCN-NguyenTrungHieu

    @BDCCN-NguyenTrungHieu

    10 ай бұрын

    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

    10 ай бұрын

    @@BDCCN-NguyenTrungHieu ừm

  • @BDCCN-NguyenTrungHieu

    @BDCCN-NguyenTrungHieu

    10 ай бұрын

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

    10 ай бұрын

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

Келесі