Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Proposal of Projects Improvement with GitHub
Search
Inoue-KK
September 13, 2022
Technology
0
57
Proposal of Projects Improvement with GitHub
とあるプロジェクトでのGitHub導入を想定した、個人的な提案資料です。
Inoue-KK
September 13, 2022
Tweet
Share
Other Decks in Technology
See All in Technology
GraphQL 成熟度モデルの紹介と、プロダクトに当てはめた事例 / GraphQL maturity model
mh4gf
7
1.3k
Python と Snowflake はズッ友だょ!~ Snowflake の Python 関連機能をふりかえる ~
__allllllllez__
1
120
FrontDoorとWebAppsを組み合わせた際のリダイレクト処理の注意点
kenichirokimura
1
530
Postman v10リリース後を振り返る / Looking back at Postman v10 after release
yokawasa
1
160
MapLibreとAmazon Location Service
dayjournal
1
160
サーバー間 GraphQL と webmock-graphql の話 / server-to-server graphql and webmock-graphql
qsona
2
190
SIEMを用いて、セキュリティログ分析の可視化と分析を実現し、PDCAサイクルを回してみた
coconala_engineer
0
320
Vertex AI を中心に 生成AIのアップデートを共有します
kaz1437
0
310
競技としてのKaggle、役に立つKaggle
yu4u
3
1.6k
本当のAWS基礎
toru_kubota
0
520
ServiceNow Knowledge Learning Rise up
manarobot
0
210
LangSmith入門―トレース/評価/プロンプト管理などを担うLLMアプリ開発プラットフォーム
os1ma
3
200
Featured
See All Featured
RailsConf 2023
tenderlove
4
540
How GitHub Uses GitHub to Build GitHub
holman
468
290k
Thoughts on Productivity
jonyablonski
58
3.8k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
116
18k
Making the Leap to Tech Lead
cromwellryan
124
8.5k
Build your cross-platform service in a week with App Engine
jlugia
225
17k
Intergalactic Javascript Robots from Outer Space
tanoku
266
26k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
221
21k
10 Git Anti Patterns You Should be Aware of
lemiorhan
648
58k
Practical Orchestrator
shlominoach
182
9.7k
Creatively Recalculating Your Daily Design Routine
revolveconf
210
11k
How STYLIGHT went responsive
nonsquared
92
4.8k
Transcript
バージョン管理システムによる 開発環境の課題改善検討案 Inoue-KK
目次 • 課題と改善案の概観 • 課題1: バージョン管理 • 課題2: 手作業による比較・マージ •
課題3: バグ・タスク管理 • バージョン管理システム「GitHub(ギットハブ)」紹介 • セキュリティ及び安全性 • 検証スケジュール(案) • まとめ
課題と改善案の概観 本資料では下記の課題とその改善案を提案する。 なお全ての課題はバージョン管理システム「GitHub(ギットハブ)」によって改善可能と想定さ れ、次ページ以降でその詳細と改善可能性・想定検証内容を紹介する。 1. バージョン管理 [現在の状況] バージョン名フォルダをファイルサーバで管理 [課題] 容易に書き換え・削除のリスクあり、検知・追跡・復旧が困難
[改善案] バージョン管理システムによるバージョン管理を導入 2. 手作業による比較・マージ [現在の状況] 部分修正等の差分を手動でマージ [課題] マージ作業に多くの工数が必要、マージ作業にノウハウが必要となり属人的、マージ後にも手 動での動作検証が必要 [改善案] バージョン管理システムによるパッチ提出・レビュー支援と半自動マージを導入 3. バグ・タスク管理 [現在の状況] ソースコードをファイルサーバで、バグやタスクをエクセルシートで管理 [課題] バグ・タスクの管理状況、ドキュメントの変更状況、ソースコードの改修状況がそれぞれ独立 しており一致しない [改善案] バージョン管理システムの課題管理機能とソースコード管理機能による一元管理
課題1: バージョン管理 現状 フォルダ名にバージョン番号を入れて ファイルサーバ上で管理 課題 • 書き込み権限があればバージョンの 変更・削除ができてしまう •
万が一意図せず変更・削除された際、 検知や追跡、復旧が困難 改善案 • GitHubの「リリース」機能と「タ グ」機能により、バージョンが変更 されないよう固定できる見込み • 後述の「監査ログ」により操作履歴 を追跡できる見込み [対象機能] • リポジトリのリリースを管理する https://docs.github.com/ja/repositories/relea sing-projects-on-github/managing-releases- in-a-repository • リポジトリのリリースとタグを表示する https://docs.github.com/ja/repositories/relea sing-projects-on-github/viewing-your- repositorys-releases-and-tags ├ project-a │ ├ │ │ ◦◦ツール_ソース ◦◦ツール_ver1.0.0 ◦◦ツール_ver1.0.1 ◦◦ツール_ver1.0.2
課題2: 手作業による比較・マージ 現状 以下の流れで変更作業を行っている 1. 対象ソースコードを複製して開発者に渡す 2. 開発者が対象ソースコードを変更 3. 開発者が変更後のソースコード一式をファイ
ルサーバの指定フォルダに配置 4. マージ担当者が変更内容をマージツールで確 認しながらマージ 5. マージ担当者がマージ結果を検証 6. マージ担当者がマージされたソースコード一 式をファイルサーバの指定の場所に配置 課題 • 作業に時間を要する • 人為的ミスが生じやすい • マージ作業が複雑 • マージ作業の分担が困難 改善案 • GitHubの「プルリクエスト」機能により、 ソースコードの変更箇所が視認性高くレビュー でき、対象ファイルのみを安全にマージできる 見込み • 経過をプロジェクトメンバー間で共有できるた め、分担や再修正も効率的に行える可能性が高 い [対象機能] • Pull requestsについて https://docs.github.com/ja/pull- requests/collaborating-with-pull- requests/proposing-changes-to-your-work-with- pull-requests/about-pull-requests • プルリクエストのレビューについて https://docs.github.com/ja/pull- requests/collaborating-with-pull- requests/reviewing-changes-in-pull- requests/about-pull-request-reviews
課題3: バグ・タスク管理 現状 ソースコードやドキュメントはファイル サーバ、課題やバグ等はエクセルシート でそれぞれ管理している 課題 課題・バグ等の資料からソースコードや ドキュメントの変更が追跡しにくいため、 課題やバグ修正が完了しているかの確認
作業が発生 改善案 GitHubの「イシュー」機能や「マイルストー ン」機能により、課題・バグの管理と、開発進 捗の把握・共有が効率良くプロジェクト内で共 有できる見込み [対象機能] • Issueについて https://docs.github.com/ja/issues/tracki ng-your-work-with-issues/about-issues • タスクリストについて https://docs.github.com/ja/issues/tracki ng-your-work-with-issues/about-task- lists • マイルストーンの進捗状況を表示する https://docs.github.com/ja/issues/using -labels-and-milestones-to-track- work/viewing-your-milestones-progress
バージョン管理システム「GitHub(ギットハブ)」紹介 GitHub(ギットハブ)とは? Microsoft社傘下のGitHub社により提供され ているバージョン管理サービス。 日本に限らず世界中の名だたる企業がソフ トウェア開発のために活用している。 導入実績 • 株式会社 日立製作所
https://github.co.jp/customer-stories/hitachi https://github.com/Hitachi • 富士通株式会社 https://github.co.jp/customer-stories/fujitsu https://github.com/fujitsu • KDDI株式会社 https://www.macnica.co.jp/business/dx/manufacturers/github/case _kddi.html https://github.com/KDDI-tech • 凸版印刷株式会社 https://github.co.jp/customer-stories/toppan • GMOフィナンシャルホールディングス株式会社 https://github.co.jp/customer-stories/gmo • Google https://github.com/google • Apple https://github.com/apple • Meta (Facebook) https://github.com/facebook • Amazon https://github.com/amzn • Microsoft https://github.com/microsoft
セキュリティ及び安全性 以下の機能でセキュリティを強化可能 • 2要素認証 (2FA) • 監査ログ • シングルサインオン (SSO)
• LDAPによる社内アカウントとの連携と一元管理 • IPアドレスによる接続元制限 • 自社ホスティングによる安心と安全基準の担保
検証スケジュール(案) 2022. 10 2022. 11 2022. 12 2023. 01~ バージョン管理
機密情報を含まない サンプルプロジェク トを新規作成し、リ リースバージョン管 理の検証。 パッチ提出・レビュー支 援・半自動マージ サンプルプロジェク トにてパッチ提出と レビュー支援機能を 検証。 半自動マージによる 成果物が検証される ことを確認。 課題とソースコード の一元管理 (予定)次期フェーズ 検証 サンプルプロジェク トにて疑似的に発生 させたバグや機能追 加要望を管理し、 ソースコードと合わ せて一元管理可能か 検証。 顧客知的財産・個人 情報と関連の低いプ ロジェクトなどで導 入検証 複数名での使用、費 用感などを検証 など 全期間共通 隔週で進捗を報告 [成果物] デモンストレーションを兼ねてWebブラウザで閲覧可能なGitHub上のサンプルプロジェクトを提出。 (プロジェクト、アカウント等はセキュリティ担保のため、会社とは無関係かつ類推されないものを作成し使 用する)
まとめ • 現在、顕在または潜在的に存在する複数の課題は、バージョン管理システ ム「GitHub(ギットハブ)」導入と適切な運用により改善できると期待され る • 世間で広く導入実績があり、セキュリティも担保可能と考えられる • 追加費用なし、かつ少人数で検証可能である まずは「検証スケジュール(案)」の通り検証を進めたくご提案する。