Concourseで快適な自動化の旅

520 Views

May 31, 19

スライド概要

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

profile-image

Senior Solutions Engineer @HashiCorp NTT Communications -> Pivotal -> VMware -> HashiCorp

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

Concourseで快適な 自動化の旅

2.

Solutions Architect @ KAZUTO KUSAMA @jacopen

3.

https://cloudnativedays.jp/cndt2019/

4.

会場で質問してみました。大体半分くらいの人が手を上げ てくれました。 ただ、今回はConcourse知らない人、名前だけ知ってる 人向けのスライドになってます。 知ってる人?

5.

DEMO

6.

これがConcourseのWeb UIです。ごちゃごちゃしたメ ニューは無く、稼働しているパイプラインが分かりやすく表 示されています。

7.

パイプラインをクリックすると、その詳細が表示されます。 これまたシンプルな画面ですね。このパイプラインはGitリ ポジトリをチェックしているので、変更をpushしてみます。

8.

すると、自動でユニットテストが回り始めました。 ユニットテストが通ると、Cloud Foundryへのデプロイ と、Dockerイメージ作成⇒Kubernetesにデプロイという 処理が並行で走るようになってます。 よくある、CIの後CDするというデモでした。

9.

Concourseの特徴

10.

Simple Concourseの特徴として、まずシンプルであるという点が 挙げられます。 UIだけでなく、その設計思想に至るまでSimple is best を突き詰めています。

11.

Scalable デモでは触れなかったのですが、スケーラブルな設計に なっています。パイプラインが数百になろうとも、worker の追加で対応できます。

12.

Pipeline そしてなにより、パイプライン。 最近はパイプラインを取り入れるCIツールが増え てきましたが、Concourseは生まれたときから パイプライン第一の設計です。

13.

YAML 最近増えてきてますが、パイプラインはYAMLで 定義します。 コードで定義することで再利用性が高まるし、レ ビューしやすいのです。

14.

元々はCFの開発向けに作られたもの

15.

複数のコンポーネントから成るアーキテクチャ PaaSであるCloud Foundryは、複数のコンポーネントからな る大規模なシステムです。

16.

Buildpackによる複数の言語・FWサポート PaaSとして、複数の言語やフレームワークを 動かすことができます。

17.

BOSHによるIaaSの運用自動化 そしてCFそのものを構築するため に、BOSHというライフサイクルマ ネジメントのツールを使っていま す。 このBOSHは、 AWS/Azure/GCP/vSphere/O penStackなど様々なIaaSの自動 化ができる強力なツールです。

18.

複数の コンポーネント 複数の 言語・フレームワー クサポート 複数の IaaSサポート ⇒これらの組み合わせのテストをするとなると・・・ このプラットフォームをテストするとなると、まあ大変 だってのが分かりますよね

19.

Why Concourse ● ● ● かつて、これほどの規模のCIを回していけるツールは無かった なので作った Cloud Foundryのような超大規模なプラットフォームを 作っていくために必須だったこと ○ ○ ○ パイプライン YAMLでの記述 ■ 再利用性を高められる 視認性の高いシンプルな UI

20.

実際にCFの開発で動いているパイプラインの一例 です。すっごい

21.

Cloud Foundryに限らず汎用的に使えます よく勘違いされますが、何にでも使えます。

23.

リソース リソース リソース リソース ジョブ ジョブ ジョブ

24.

git git git Docker image PaaS k8s

25.

Gitから持ってきて ユニットテスト Gitから持ってきて イメージをビルド Gitから持ってきて Cloud Foundryにデプロイ GitからManifestを持っ てきて 編集して Kubernetesにapply

26.

余談ですけど、Concourseのコンポーネントは ATC(航空管制)とかTSA(運輸保安庁)とか、空港に 関わる名称が使われてます。

27.

はじめようConcourse

28.

Concourse Tutorial

29.

How to Install 一番かんたん Docker Compose $ wget https://concourse-ci.org/docker-compose.yml $ docker-compose up -d

30.

How to Install 本気で運用するなら BOSH Kubernetes Helmのstable/concourseにChartあり Standalone 公式サイトのドキュメント参照

31.

CLI fly $ fly -t ci pipelines name paused build-image no k8s-pipeline no blinker-ci yes lego-image-build no azure-ag-autoupdate no setup-azure no test-pipeline no combined-pipeline no nsxt yes public no no no no no no no no no ConcourseのUIから ダウンロード可能

32.

活用しようConcourse

33.

DEMO

34.

アプリ開発におけるCI/CD・・・だけでなく

35.

TerraformでAzureの プロビジョニング OpsManagerの 初期設定 デプロイ BOSH Directorの 設定 Pivotal Application Serviceの設定 Pivotal Application Serviceのデプロイ自動化。IaaSプロビジョニン グからPASのコンフィグ、デプロイまで全部やっちゃいます。 https://github.com/making/pas-pipeline-azure

36.

Pivotal Application Serviceの新バージョンがあるか Pivotal Networkをチェックし、あれば自動で適用するパ イプライン https://github.com/pivotal-cf/pcf-pipelines (※注: 現在はdeprecated)

37.

Pivotal Application Serviceのバックアップを取り、S3 に保存するパイプライン https://github.com/pivotal-cf/bbr-pcf-pipeline-tasks

38.

Let’s Encryptで証明書を発行した後、pfx形式に変換、そし てAzure Application Gatewayに適用するパイプライン。 これで3ヶ月に1回の更新作業も自動です。 https://github.com/jacopen/azure-ag-autoupdate

39.

NSX-Tのインストールも自動化 VMwareが配布している、NSX-Tのインストールを自動化す るパイプライン https://github.com/vmware/nsx-t-datacenter-ci-pipelines

40.

そういえば技術書典6でこんな本出したんですが BOOTHで電子版好評発売中! https://showks.booth.pm/items/1318454

41.

複数人執筆でもConcourse大活躍

42.

原稿をGitHubにpushすると PDFとePubが生成され Slackに通知がくる この自動化がなければ、共同執筆は無理で した。CI重要なのはソフトウェア開発と一緒 ですね

43.

そういえばこんなのがバズってました 登壇した当日、こんなジェネレータが Twitterでバズっていました。 ミートアップの休み時間に見つけて爆笑して たんですが、これConcourseで動かせるん じゃね?と https://github.com/greymd/ojichat

44.

さくさくっとdocker buildして・・・ (タイムスタンプがミートアップの休み時間なのに注目)

45.

さくさくっとyaml用意すると

46.

おじさんがLINEやメールで送ってきそうな文がSlackに 送られてくる地獄のようなパイプラインが出来ました。 作るのにかかった時間は僅か数分。

47.

Concourseによる『自動化の旅』とは ● 開発者にとって ”普通に使える” CIツール ● でも、開発だけでなく運用にも積極的に使うべき! ○ Toilを無くす便利ツールとして使える ○ Concourse自体の習得は簡単。むしろ活用のためには シェル力のほうが必要かも ● みんな自動化して快適に仕事しよう

48.

Have a safe flight!