Upgrade to Pro — share decks privately, control downloads, hide ads and more …

今夜、Orbを使ってみよう

 今夜、Orbを使ってみよう

2022年3月24日開催のCircleCI もくもく会 #11 「今夜、Orbを使ってみよう」で使用したスライドです。

https://circleci.connpass.com/event/242590/

More Decks by Masahiko Funaki(舟木 将彦)

Other Decks in Programming

Transcript

  1. 2 アジェンダ 時間 内容 18:20- 開場(オンライン) 18:30-18:35 オープニング 18:35-19:05 今夜、Orbを使ってみよう

    (Twitter #CircleCIJp でツイート または Zoom Chatにて) 19:05-19:20 質疑応答 (Twitter #CircleCIJp でツイート または Zoom Chatにて) 19:20-19:30 クロージング ※時間配分は予定なく変更の可能性があります。 ※途中参加、途中退席も大歓迎! ゆるーく集まりましょう。チャットに入りました/出ますメッセージを残して  いただけるとありがたいですが、必須ではないです(無理なさらずに)。 ※夕食の時間です。飲食物の持ち込み・食べながらの参加は自由です。ただし、食べる音が大きい場合は、  音声を一時的にミュートにしてください。
  2. 4 舟木将彦 (@mfunaki) CircleCI Senior Developer Advocate。 #CircleCIJp 中の人として、 -

    Twitter (https://twitter.com/CircleCIJapan) Facebook (https://www.facebook.com/groups/CircleCIJP) - Blog (https://circleci.com/ja/blog/author/masahiko-funaki/) - discuss (https://discuss.circleci.com/tag/ja-%E6%97%A5%E6%9C%A C%E8%AA%9E) やイベント等で発言を続ける。 Dejima(Siriの前身)でのプロダクト開発や、Sybaseでのサービス開発、 SAPやMicrosoftでのコンサルティングを経て、 CircleCIでは、 「やりたいことをソフトウェアとして早く+品質高く実現する」ことをご支援さ せていただいております。 Today’s MC
  3. 開発メンバーを跨いでみんなの再利用性を高める CI/CDの設定(コンフィグ, config.yml)を書くのは結構大変 (CircleCI = コンピュータは人間ほど融通が効かない、つまり、人が読むための 作業手順書よりは「ちゃんと」書かないといけない) → とはいえ、同じ言語や同じプラットフォームでは使い回しがきく箇所が多い →

    プロジェクトに関わる期間が長いほど、過去のノウハウが手元に蓄積されて、  割と「サクっと」設定できる 過去のノウハウ(うまくいった実績、ベストプラクティス )を、 • 個人の手元にではなく、みんな(社内、社外)で共有 • コンフィグ全体ではなく、部品として再利用可能な形で共有 すれば、ソフトウェア開発の質と速度を今よりもう一段、アップできるのでは?
  4. 1. Node.js + Express でサンプルアプリ構築 1. GitHub 上に空プロジェクトを作成し、 ローカルに clone

    しておく (cci-use-orbs) 2. npm install して package.json (や app.js) を生成 3. express –view=ejs で Express を使っ たサンプル構築 4. npm start して、 ブラウザで http://localhost:3000/ に アクセスして動作確認 5. 問題なければ GitHub リポジトリに反映 https://github.com/mayoct/cci-use-orbs/tree/step01
  5. 2. CircleCI でコンテナ作成を自動化する(1) 1. プロジェクトに .circleci ディレクトリを作 成し、 config.yml ファイルを

    用意 2. config.yml ファイルに docker build コマンドを実行する ための記述を追加 https://github.com/mayoct/cci-use-orbs/tree/step02
  6. 2. CircleCI でコンテナ作成を自動化する(2) 3. Dockerfile を用意し、 コンテナ作成のための定義を用意 4. .dockerignore ファイルで対象外に

    ◦ node_modules ◦ npm-debug.log 5. ローカル Docker 環境でテスト ◦ docker build . -t <name>/<appname> ◦ docker run -p 49160:3000 \ -d <name>/<appname> ◦ http://localhost:49160 https://github.com/mayoct/cci-use-orbs/tree/step02
  7. 3. CircleCI で Heroku にコンテナをデプロイする(1) 1. Heroku のアカウントを用意し、 Heroku CLI

    をインストール https://devcenter.heroku.com/ja/articles/he roku-cli 2. Container Registryにログイン heroku container:login 3. Heroku アプリ(cci-use-orbs)を作成 heroku create cci-use-orbs 詳しくは https://devcenter.heroku.com/ja/article s/container-registry-and-runtime Amazon Elastic Container Registry (ECR) も 同様(かつ circleci/aws-ecr Orbあり) https://github.com/mayoct/cci-use-orbs/tree/step03
  8. 3. CircleCI で Heroku にコンテナをデプロイする(4) 6. ワークフローを実行 ◦ コンテナのビルド ◦

    レジストリへの登録 ◦ デプロイ 7. デプロイされたウェブアプリに アクセスできることを確認 https://github.com/mayoct/cci-use-orbs/tree/step03