Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Concourseで快適な自動化の旅

2,238 views

Published on

Rancher Meetup Tokyo #19で発表した資料です。
Concourseの紹介と活用例についてお話しました。

Published in: Technology
  • Be the first to comment

Concourseで快適な自動化の旅

  1. 1. Concourseで快適な 自動化の旅
  2. 2. KAZUTO KUSAMA @jacopen Solutions Architect @
  3. 3. https://cloudnativedays.jp/cndt2019/
  4. 4. 知ってる人? 会場で質問してみました。大体半分くらいの人が手を上げ てくれました。 ただ、今回はConcourse知らない人、名前だけ知ってる 人向けのスライドになってます。
  5. 5. DEMO
  6. 6. これがConcourseのWeb UIです。ごちゃごちゃしたメ ニューは無く、稼働しているパイプラインが分かりやすく表 示されています。
  7. 7. パイプラインをクリックすると、その詳細が表示されます。 これまたシンプルな画面ですね。このパイプラインはGitリ ポジトリをチェックしているので、変更をpushしてみます。
  8. 8. すると、自動でユニットテストが回り始めました。 ユニットテストが通ると、Cloud Foundryへのデプロイ と、Dockerイメージ作成⇒Kubernetesにデプロイという 処理が並行で走るようになってます。 よくある、CIの後CDするというデモでした。
  9. 9. Concourseの特徴
  10. 10. Simple Concourseの特徴として、まずシンプルであるという点が 挙げられます。 UIだけでなく、その設計思想に至るまでSimple is best を突き詰めています。
  11. 11. Scalable デモでは触れなかったのですが、スケーラブルな設計に なっています。パイプラインが数百になろうとも、worker の追加で対応できます。
  12. 12. Pipeline そしてなにより、パイプライン。 最近はパイプラインを取り入れるCIツールが増え てきましたが、Concourseは生まれたときから パイプライン第一の設計です。
  13. 13. YAML 最近増えてきてますが、パイプラインはYAMLで 定義します。 コードで定義することで再利用性が高まるし、レ ビューしやすいのです。
  14. 14. 元々はCFの開発向けに作られたもの
  15. 15. 複数のコンポーネントから成るアーキテクチャ PaaSであるCloud Foundryは、複数のコンポーネントからな る大規模なシステムです。
  16. 16. Buildpackによる複数の言語・FWサポート PaaSとして、複数の言語やフレームワークを 動かすことができます。
  17. 17. BOSHによるIaaSの運用自動化 そしてCFそのものを構築するため に、BOSHというライフサイクルマ ネジメントのツールを使っていま す。 このBOSHは、 AWS/Azure/GCP/vSphere/O penStackなど様々なIaaSの自動 化ができる強力なツールです。
  18. 18. 複数の コンポーネント 複数の 言語・フレームワー クサポート 複数の IaaSサポート ⇒これらの組み合わせのテストをするとなると・・・ このプラットフォームをテストするとなると、まあ大変 だってのが分かりますよね
  19. 19. Why Concourse ● かつて、これほどの規模のCIを回していけるツールは無かった ● なので作った ● Cloud Foundryのような超大規模なプラットフォームを 作っていくために必須だったこと ○ パイプライン ○ YAMLでの記述 ■ 再利用性を高められる ○ 視認性の高いシンプルな UI
  20. 20. 実際にCFの開発で動いているパイプラインの一例 です。すっごい
  21. 21. Cloud Foundryに限らず汎用的に使えます よく勘違いされますが、何にでも使えます。
  22. 22. リソース リソース リソース リソース ジョブ ジョブ ジョブ
  23. 23. git git git k8s Docker image PaaS
  24. 24. Gitから持ってきて ユニットテスト Gitから持ってきて Cloud Foundryにデプロイ Gitから持ってきて イメージをビルド GitからManifestを持っ てきて 編集して Kubernetesにapply
  25. 25. 余談ですけど、Concourseのコンポーネントは ATC(航空管制)とかTSA(運輸保安庁)とか、空港に 関わる名称が使われてます。
  26. 26. はじめようConcourse
  27. 27. Concourse Tutorial
  28. 28. How to Install Docker Compose $ wget https://concourse-ci.org/docker-compose.yml $ docker-compose up -d 一番かんたん
  29. 29. How to Install BOSH Helmのstable/concourseにChartあり Kubernetes Standalone 本気で運用するなら 公式サイトのドキュメント参照
  30. 30. CLI fly $ fly -t ci pipelines name paused public build-image no no k8s-pipeline no no blinker-ci yes no lego-image-build no no azure-ag-autoupdate no no setup-azure no no test-pipeline no no combined-pipeline no no nsxt yes no ConcourseのUIから ダウンロード可能
  31. 31. 活用しようConcourse
  32. 32. DEMO
  33. 33. アプリ開発におけるCI/CD・・・だけでなく
  34. 34. TerraformでAzureの プロビジョニング OpsManagerの 初期設定 BOSH Directorの 設定 Pivotal Application Serviceの設定 デプロイ Pivotal Application Serviceのデプロイ自動化。IaaSプロビジョニン グからPASのコンフィグ、デプロイまで全部やっちゃいます。 https://github.com/making/pas-pipeline-azure
  35. 35. Pivotal Application Serviceの新バージョンがあるか Pivotal Networkをチェックし、あれば自動で適用するパ イプライン https://github.com/pivotal-cf/pcf-pipelines (※注: 現在はdeprecated)
  36. 36. Pivotal Application Serviceのバックアップを取り、S3 に保存するパイプライン https://github.com/pivotal-cf/bbr-pcf-pipeline-tasks
  37. 37. Let’s Encryptで証明書を発行した後、pfx形式に変換、そし てAzure Application Gatewayに適用するパイプライン。 これで3ヶ月に1回の更新作業も自動です。 https://github.com/jacopen/azure-ag-autoupdate
  38. 38. NSX-Tのインストールも自動化 VMwareが配布している、NSX-Tのインストールを自動化す るパイプライン https://github.com/vmware/nsx-t-datacenter-ci-pipelines
  39. 39. そういえば技術書典6でこんな本出したんですが BOOTHで電子版好評発売中! https://showks.booth.pm/items/1318454
  40. 40. 複数人執筆でもConcourse大活躍
  41. 41. 原稿をGitHubにpushすると PDFとePubが生成され Slackに通知がくる この自動化がなければ、共同執筆は無理で した。CI重要なのはソフトウェア開発と一緒 ですね
  42. 42. そういえばこんなのがバズってました https://github.com/greymd/ojichat 登壇した当日、こんなジェネレータが Twitterでバズっていました。 ミートアップの休み時間に見つけて爆笑して たんですが、これConcourseで動かせるん じゃね?と
  43. 43. さくさくっとdocker buildして・・・ (タイムスタンプがミートアップの休み時間なのに注目)
  44. 44. さくさくっとyaml用意すると
  45. 45. おじさんがLINEやメールで送ってきそうな文がSlackに 送られてくる地獄のようなパイプラインが出来ました。 作るのにかかった時間は僅か数分。
  46. 46. Concourseによる『自動化の旅』とは ● 開発者にとって ”普通に使える” CIツール ● でも、開発だけでなく運用にも積極的に使うべき! ○ Toilを無くす便利ツールとして使える ○ Concourse自体の習得は簡単。むしろ活用のためには シェル力のほうが必要かも ● みんな自動化して快適に仕事しよう
  47. 47. Have a safe flight!

×