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/

03f5fe5a70c0e79f07a5f88e2e42781c?s=128

Jumpei Yoshimura

March 26, 2019
Tweet

Transcript

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

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

    GitLabͷӡ༻୲౰ • Python/Django/GitLab/Docker/AWS
  3. άοζΛւ֎͔ΒऔΓدͤΔ͘Β͍ͷϑΝϯϨϕϧͰ͢ɻ ·ͩ·ͩͰ͢ɻ

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

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

  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.
  7. ΞʔΩςΫνϟ ɾΠϯϑϥɿHeroku ɹಋೖඅɾҡ࣋අ͕͔͔Βͳ͍ ɾCI/CDɿGitLab CI/CD ɹςετɺ੩తղੳɺίʔυϝτϦΫεɺHeroku΁ͷσϓϩΠ ɾΞϓϦέʔγϣϯɿPython / Django ɹRails,

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  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ʹؔ͢ΔهࣄΛॻ͍͍ͯΔͷͰ ؾʹͳΔ΋ͷ͕͋Ε͹ͷ͍ͧͯΈ͍ͯͩ͘͞
  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