Git Product home page Git Product logo

pyladies_meetup's Introduction

DevOps分野でのGit活用事例

inline


自己紹介

fit

近藤美沙/MisaKondo/@_zoo

  • 猿のアイコン愛用しているので、だいたいそれが目印です
  • VoyageGroupという会社で、環境整備やっています
  • 業務分野的にいうとアドテク系のチームにいます
  • 好きな言語はもともとRuby、でしたが、最近Pythonも書いています

そもそもDevOpsって何?


現時点だと、諸子百家


DevOpsはソフトウェア開発手法の一つ。 開発 (Development) と運用 (Operations) を組み合わせたかばん語であり、開発担当者と運用担当者が連携して協力する開発手法をさす。1


DevOps is a culture shift or a movement that encourages great communication and collaboration (aka teamwork) to foster building better-quality software more quickly with more reliability 2


DevOpsとは、リーン開発およびアジャイル開発の原則に基づくソフトウェア・デリバリーの手法です。 DevOpsでは、事業部門から、開発、品質保証、および運用に至るまでのすべての利害関係者が協力して、顧客から実際に寄せられたフィードバックに基づいてソフトウェアを提供することを目的としています。3


!? ...?

inline


具体的にはなにやってるの?

環境構築・開発作業・テスト・リリース作業を効率化しています


本題に戻ります


DevOps分野でのGit活用事例


事例1: 環境構築編

Infrastructure as code.

弊社では環境構築を自動化しています。 具体的には、Puppet4というツールを利用し、定義書(以下、Manifest)に従い自動で環境を構築するようにしています。


Manifestの管理

弊社ではPuppetのManifestをGitリポジトリ化し、レビュー体制を整えて管理しています。 具体的には、GitLab5というツールを利用し、管理しています。


構成変更のユースケース

  • PHP5.3からPHP5.6にあげたい
  • OpenSSLからLibreSSLに切り替えたい
  • Jenkins欲しい
  • ApacheからNginxに変更したい
  • ApplicationのDocumentRoot変更したい

Puppeet ManifestはGitリポジトリ

  • Master=productionの構成
  • Gitにはbranchがある
  • GitLabにはMerge Requestの仕組みがある

GitLabを使った構成変更の流れ

  • リポジトリをclone
  • checkoutでbranch作成し、manifestの修正
  • branchのmanifestで環境を構築(オンプレミスのサーバだと、pxebootから、AWSのサーバだとインスタンスを新たに作る)、検証
  • 検証おわったら、Merge Request
  • LGTMもらったら、masterにmerge
  • Deploy

GitLab MergeRequest Sample1

inline


GitLab MergeRequest Sample2

inline


事例2: Webアプリケーション開発編

GitHub Flow

弊社では複数人の開発者がWebアプリケーションの開発をしています。 アプリケーションのソースコード管理には、GitHubを利用し、開発フローにはGitHub Flow6を採用しています。


開発作業は多種多様

  • 仕様策定
  • デザイン作成
  • UnitTest
  • BrowserTest

開発メンバーも多種多様

  • サーバサイドエンジニア
  • フロントエンドエンジニア
  • デザイナー
  • データサイエンティスト
  • インフラエンジニア

ピープル(利用者)の意見が欲しい、他作業者との共同作業で動作確認したい

  • Localhost(例: 自分のMacで動いているVirtualBox,もしくはMac上で動いている環境)だと人にみせづらい
  • 開発の度に複数人が動作確認できる環境を構築するのは手間
  • サーバサイド×フロントエンド×デザイナーの共同作業

VirtualHost環境利用

  • branchである特定のprefixを付与すると、自動でVirtualHost7環境が作成される
  • 開発者は、動作確認を他の人にもしてほしくなったら、GitHubに特定のブランチ名でpushすれば環境ができる

GitHub Sample1

inline


最後に

今回の資料はGitHubのPublicリポジトリで公開しています。

勉強会後にでも気になった部分や、質問などあれば、ISSUEで起票してくれると嬉しいです。

資料に対して、紹介したい事例とかある人がいれば、PullRequest大歓迎です。(自分得)

資料にtypo見つけたので、直してくれるとかも大歓迎です。


現状確認

TODO


ご清聴ありがとうございました

Footnotes

  1. Wikipedia

  2. MikeKavis

  3. IBM developerWorks

  4. Puppetは、Rubyで作られている構成管理ツールです。 アプリケーション開発者には馴染みがないかもしれませんが、構成管理ツールとしてそれなりに有名ドコロです。

  5. GitLabは、GitHubと同様の機能がほぼ実装されている、RoRで作られているOSSのsoftwareです。 弊社では機密情報はGitHubに配置しないというポリシーをとっているため、機密情報に関しては自前で建てたGitLabで管理しています。

  6. GitHub Flowは、GitHubが実際に採用している開発フローです。 変更は常にレビューされ、Masterブランチは常にRelease Readyである、という**のもとのフローです。 弊社ではGitHub Flowを開発フローとして採用しています。

  7. VirtualHostは1つのサーバで複数のドメインを運用する技術。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.