Upgrade to Pro — share decks privately, control downloads, hide ads and more …

GitLabではじめる一人DevOps / One person DevOps beginning with GitLab

GitLabではじめる一人DevOps / One person DevOps beginning with GitLab

ポートフォリオなどのできるだけお金や手間をかけずに運用したい非営利な個人プロジェクトをGitLabで開発・運用しようというお話です。

・GitLabとHerokuで実現するお手軽ポートフォリオの作成方法
・GitLab CI/CDでコンテナレジストリへのDockerイメージプッシュ・自動テスト・静的解析・コードメトリクスの計測・Herokuへのデプロイを行う方法
・GitLab のタスク管理ツールの紹介と活用方法
・言語やマニフェスト(サードパーティの依存関係管理ファイル)の自動アップデートを行う方法

GitLab Meetup Tokyo #13: https://gitlab-jp.connpass.com/event/124425/

Jumpei Sakatsu

March 26, 2019
Tweet

More Decks by Jumpei Sakatsu

Other Decks in Programming

Transcript

  1. (JU-BCͰ͸͡ΊΔҰਓ%FW0QT
    r(JU-BC.FFUVQ5PLZP
    !KVNQZPTIJN+VNQFJ:PTIJNVSB

    View Slide

  2. ͓લ୭Α
    • ٢ଜ५ฏʢ@jumpyoshimʣ
    • גࣜձࣾΞΠϦοδॴଐ
    • αʔόʔαΠυΤϯδχΞ
    • εϚϗΞϓϦͷόοΫΤϯυ։ൃ
    • GitLabͷӡ༻୲౰
    • Python/Django/GitLab/Docker/AWS

    View Slide

  3. άοζΛւ֎͔ΒऔΓدͤΔ͘Β͍ͷϑΝϯϨϕϧͰ͢ɻ
    ·ͩ·ͩͰ͢ɻ

    View Slide

  4. άοζΛߪೖͨ͠2िؒޙGitLab͔Βಉ͡άοζ͕ࢧڅ͞Ε·ͨ͠ɻ
    ಠ਎ͷҰਓ฻Β͠ʹϖΞϚάΧοϓ͸ͭΒ͍Ͱ͢ɻ

    View Slide

  5. Ұਓ%FW0QTʁ
    • ݸਓϓϩδΣΫτ΍ϙʔτϑΥϦΦͷ։ൃɾӡ༻
    • ۃྗ͓ۚΛ͔͚ͳ͍
    • ۃྗखؒΛ͔͚ͳ͍
    • ऩӹԽ͸໨తͱ͠ͳ͍
    ࣮ࡍʹҰਓDevOpsͯ͠ΔϓϩδΣΫτɿhttps://gitlab.com/jumpyoshim/django-polls

    View Slide

  6. ͳͥ(JU-BCͳͷ͔
    ɾGitLabͷΈͰDevOpsΛ࣮ݱͰ͖Δ
    ɹόʔδϣϯ؅ཧɺCI/CDɺΫϥ΢υͱͷ࿈ܞ
    ɾॆ࣮ͨ͠λεΫ؅ཧػೳ
    ɹΧϯόϯɺݟੵ΋ΓɾՔಇ؅ཧɺόʔϯμ΢ϯνϟʔτ
    ɹ ϚΠϧετʔϯɺΤϐοΫ
    GitLabͷϏδϣϯɿ
    Our vision is to replace disparate DevOps toolchains with a single
    integrated application that is pre-configured to work by default across
    the entire DevOps lifecycle.

    View Slide

  7. ΞʔΩςΫνϟ
    ɾΠϯϑϥɿHeroku
    ɹಋೖඅɾҡ࣋අ͕͔͔Βͳ͍
    ɾCI/CDɿGitLab CI/CD
    ɹςετɺ੩తղੳɺίʔυϝτϦΫεɺHeroku΁ͷσϓϩΠ
    ɾΞϓϦέʔγϣϯɿPython / Django
    ɹRails, Spring, Express͸ϓϩδΣΫτςϯϓϨʔτ͕͋Δ

    View Slide

  8. (JU-BC$*$%
    ɾίϯςφϨδετϦ΁ͷΠϝʔδϓογϡ
    ɹίϯςφϨδετϦ͕ແྉͰར༻Մೳ
    ɾϢχοτςετ
    ɹػೳ௥ՃɺݴޠɾϑϨʔϜϫʔΫͷܧଓతͳόʔδϣϯΞοϓ
    ɹ ʹ͸ςετ͸ඞཁෆՄܽ
    ɾ੩తղੳ
    ɹ౷Ұ͞ΕͨίʔυελΠϧ͸ՄಡੑΛߴΊΔ

    View Slide

  9. (JU-BC$*$%
    ɾίʔυϝτϦΫεͷܭଌ
    ɹϦϑΝΫλϦϯάͷػձΛఏڙ͢Δ
    ɾσϓϩΠ
    ɹDpl(dee-pee-ell)ͰHerokuʹσϓϩΠ͢Δ

    View Slide

  10. ࣮ࡍͷ.gitlab-ci.yml
    ࢀߟɿʮ.gitlab-ci.ymlͷԶతTipsʯ
    https://jumpyoshim.hatenablog.com/entry/tips-of-gitlab-ci-yml

    View Slide

  11. (JU-BC$*$%
    ϦϦʔεͨ͠ͱ͖ͷύΠϓϥΠϯ
    ࣄނΛ๷͙ͨΊσϓϩΠδϣϒͷΈϚχϡΞϧ࣮ߦʹ͍ͯ͠Δ

    View Slide

  12. (JU-BC#BEHFT
    ɾΧόϨοδͷՄࢹԽ
    ɾύΠϓϥΠϯͷεςʔλεͷՄࢹԽ
    ɾ֎෦αΠτ΁ͷϦϯΫ
    ϓϩδΣΫτʹؔ͢Δ৘ใΛόοδͰՄࢹԽͯ͘͠ΕΔػೳ

    View Slide

  13. (JU-BC1BHFT
    ΧόϨοδϨϙʔτͷՄࢹԽ
    GitLabͷϦϙδτϦ͔Β੩తWebαΠτΛެ։Ͱ͖Δػೳ

    View Slide

  14. (JU-BC1BHFT
    ςετ͕࣮ߦ͞Ε͍ͯͳ͍ίʔυΛ୭Ͱ΋͍ͭͰ΋؆୯ʹ֬ೝՄೳ

    View Slide

  15. σϓϩΠ
    σϓϩΠํ๏ͱαϯϓϧ͕υΩϡϝϯτͰ·ͱ·͍ͬͯΔ

    View Slide

  16. λεΫ؅ཧ
    Χϯόϯ΍εΫϥϜϘʔτΛWebͰ࢖͑ΔλεΫ؅ཧػೳ
    Issueͷεςʔλε(ToDo, Doing, In Review)΍
    ΞαΠχʔɺϚΠϧετʔϯ͝ͱʹϘʔυΛ࡞੒ͯ͠׆༻Մೳ

    View Slide

  17. ϚχϑΣετͷࣗಈΞοϓσʔτ
    ɾDependencies.io
    ɾRenovate
    ݴޠɺϑϨʔϜϫʔΫɺαʔυύʔςΟϥΠϒϥϦͷόʔδϣϯΛ
    ࣗಈͰΞοϓσʔτͯ͘͠ΕΔαʔϏεɻ
    ύϒϦοΫϓϩδΣΫτͳΒແྉͰར༻Մೳɻ

    View Slide

  18. ։ൃϑϩʔ
    • GitLab Flow
    • master͕σϑΥϧτϒϥϯν
    • ͢΂ͯͷϒϥϯν͸master͔Β੾Δ
    • ࠷ऴతͳ੒Ռ෺͸͢΂ͯmasterʹϚʔδ͢Δ

    View Slide

  19. ϦϦʔε
    ɾόʔδϣϯͷλάΛ੾Δ
    ɾύΠϓϥΠϯ͕ࣗಈͰ૸Δ

    View Slide

  20. ϦϦʔε
    ɾσϓϩΠδϣϒͷΈϚχϡΞϧ࣮ߦ
    όʔδϣϯϦϦʔεͷԿ͕͍͍͔ʁ
    ɹݸਓ։ൃͩͱόά͕ൃ֮ͯ͠΋ਝ଎ʹରԠͰ͖ͳ͍৔߹͕ଟ͍
    ɹ੾Γ໭͕͠؆୯ʂ
    ɹˠલͷόʔδϣϯͷλάͰύΠϓϥΠϯΛ࣮ߦ͢Δ͚ͩʂ

    View Slide

  21. ·ͱΊ
    ɾۃྗ͓ۚΛ͔͚ͳ͍
    ɹGitLabɿແྉ
    ɹHerokuɿແྉ
    ɹDependencies.ioɿແྉ
    ɾۃྗखؒΛ͔͚ͳ͍
    ɹGitLab CI/CDͰࣗಈςετɾࣗಈσϓϩΠ
    ɹGitLab TagsͰόʔδϣϯϦϦʔε

    View Slide

  22. એ఻
    ɾʮλεΫ؅ཧઐ༻ͷGitLabϓϩδΣΫτͷ࡞Γํʯɿ
    ɹhttps://qiita.com/jumpyoshim/items/f0ee99d770192c48fc7e
    ɾʮ஌ͬͯʮ͓ͬʂʯͯͳͬͨGitLabͷ஌ࣝ7બʯɿ
    ɹhttps://qiita.com/jumpyoshim/items/d5a63bdd3681843866f8
    ɾʮGitLabʹ૲ੜ΍ͨ͠ΒGitHubʹ΋૲ੜ΍͍ͨ͠ʯɿ
    ɹhttps://qiita.com/jumpyoshim/items/c49bcd8b3994f3503006
    ɾʮGitLab 11.6ͷ৽ػೳʮSuggest Changesʯ͕ศརͳͷͰΦεεϝʯɿ
    ɹhttps://jumpyoshim.hatenablog.com/entry/gitlab-11-6-new-feature-suggest-changes-is-useful
    GitLabʹؔ͢ΔهࣄΛॻ͍͍ͯΔͷͰ
    ؾʹͳΔ΋ͷ͕͋Ε͹ͷ͍ͧͯΈ͍ͯͩ͘͞

    View Slide

  23. ࢀߟจݙ
    ɾʮIntroduction to GitLab Flowʯɿ
    ɹhttps://docs.gitlab.com/ce/workflow/gitlab_flow.html
    ɾʮ4 ways to use GitLab Issue Boardsʯɿ
    ɹhttps://about.gitlab.com/2018/08/02/4-ways-to-use-gitlab-issue-boards/
    ɾʮGitLab CI/CD Examplesʯɿ
    ɹhttps://docs.gitlab.com/ce/ci/examples/README.html

    View Slide