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
組み込みシステムもクラウド+ハードウェア実機でCI/CDしよう
Search
Masahiko Funaki(舟木 将彦)
July 01, 2021
Technology
0
16
組み込みシステムもクラウド+ハードウェア実機でCI/CDしよう
Masahiko Funaki(舟木 将彦)
July 01, 2021
Tweet
Share
More Decks by Masahiko Funaki(舟木 将彦)
See All by Masahiko Funaki(舟木 将彦)
Harness the Power of Advanced LLM and CI/CD Practices
mfunaki
0
320
CircleCI によるソフトウェア開発の品質向上と効率化の実現
mfunaki
0
190
CircleCI と Argo Rollouts で 実現する Kubernetes 上の プログレッシブデリバリー
mfunaki
0
95
はじめてのCircleCI
mfunaki
0
25
CircleCIでChatGPTにエラーの解説を頼んでみた
mfunaki
0
540
自動化→部品化すると社内開発は楽しくなる
mfunaki
0
35
テストの自動化~簡単に始める、みんなで使う、現況を捉える
mfunaki
0
36
テストの自動化 〜 簡単に始める、みんなで使う、現況を捉える
mfunaki
0
18
CircleCIで実現できる「高速、安全なソフトウェア開発」
mfunaki
0
160
Other Decks in Technology
See All in Technology
CysharpのOSS群から見るModern C#の現在地
neuecc
2
3.4k
なぜ今 AI Agent なのか _近藤憲児
kenjikondobai
4
1.4k
テストコード品質を高めるためにMutation Testingライブラリ・Strykerを実戦導入してみた話
ysknsid25
7
2.6k
個人でもIAM Identity Centerを使おう!(アクセス管理編)
ryder472
3
220
TypeScriptの次なる大進化なるか!? 条件型を返り値とする関数の型推論
uhyo
2
1.7k
Shopifyアプリ開発における Shopifyの機能活用
sonatard
4
250
データプロダクトの定義からはじめる、データコントラクト駆動なデータ基盤
chanyou0311
2
320
組織成長を加速させるオンボーディングの取り組み
sudoakiy
2
170
強いチームと開発生産性
onk
PRO
35
11k
OTelCol_TailSampling_and_SpanMetrics
gumamon
1
180
マルチプロダクトな開発組織で 「開発生産性」に向き合うために試みたこと / Improving Multi-Product Dev Productivity
sugamasao
1
310
TypeScript、上達の瞬間
sadnessojisan
46
13k
Featured
See All Featured
Building Flexible Design Systems
yeseniaperezcruz
327
38k
The Pragmatic Product Professional
lauravandoore
31
6.3k
Product Roadmaps are Hard
iamctodd
PRO
49
11k
4 Signs Your Business is Dying
shpigford
180
21k
Fireside Chat
paigeccino
34
3k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
28
2k
Side Projects
sachag
452
42k
Measuring & Analyzing Core Web Vitals
bluesmoon
4
130
Become a Pro
speakerdeck
PRO
25
5k
Ruby is Unlike a Banana
tanoku
97
11k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
226
22k
Java REST API Framework Comparison - PWX 2021
mraible
PRO
28
8.2k
Transcript
1 組み込みシステムも クラウド+ハードウェア実機で CI/CDしよう CircleCI合同会社 Developer Advocate ⾈⽊ 将彦 (@mfunaki)
https://github.com/mayoct/CCI-RPI-TempHum
2 Agenda 今⽇の開発レシピ CircleCI Runnerの基本 デモ さいごに 1 2 3
4
3 1.今⽇の開発レシピ
4 今⽇の開発レシピ 温度‧湿度計測機器 (ラズパイ実機)を クラウド(CircleCI)で 管理する 状況 Raspberry Piと各種センサを組み合わせる ことで、環境情報を取得し、クラウド側で
取りまとめるようなソフトウェアを 容易に開発することができます。 さまざまな環境(=場所)でのテストを、 各地を⾏脚して実施するのではなく、 それぞれの場所に実機を設置しておき、 クラウドからネットワーク経由でテスト、 および結果を取得することで、 システムが想定している環境に近い形で テストの実施‧検証が可能となります。
5 ⽤意するもの: 温度‧湿度をラズパイ+センサで計測 デジタル温度‧湿度センサPro 温度 -40〜80℃ 湿度 5%〜99% を測定することが可能です。 その他、必要に応じて、
ディスプレイ等。 GrovePi+ Grove互換の電⼦部品であれば、 ブレッドボードを⽤意したり、 半⽥付けを⾏うことなく、 ラズパイにGroveケーブルで 結線が可能になります。 Raspberry Pi 4 よく使われているRaspberry Pi OS(旧称 Raspbian)ではなく、 Arm64 + Ubuntu 環境で 使⽤します。
6 2.CircleCI Runnerの基本
7 CircleCI ランナーを使うと ①⾃分の⼿元の環境(Your Systems)上で CircleCIのジョブを実⾏することができる ②ローンチエージェント(root権限) がCircleCIに常に御⽤聞き →実⾏すべきジョブがあれば、 作業指⽰を受け取り
③タスクエージェント(指定ユーザ) に下請けに出す ※なので、例えばAWS上で動作し ていれば、IAMの権限割当が可能 ④ジョブ実⾏内容はクラウド側(S3) で保持されるので ⑤CircleCIの画⾯上で普通に 実⾏結果を参照可能
8 こんな疑問、持ちませんでしたか? 1. どのローンチエージェントに対するジョブ実⾏指⽰なのか、 どうやって指定するのですか?
9 こんな疑問、持ちませんでしたか? 2. CircleCIランナー、どこで実⾏させることが可能ですか? 回答 • runner.circleci.com, circleci-binary-releases.s3.amazonaws.com への アウトバウンド
HTTPS 接続が可能な場所 3. CircleCIランナー、どの環境の上で実⾏させることが可能ですか? 回答
10 Arm64 + Ubuntuと聞くと、普通は https://aws.amazon.com/jp/ec2/graviton/
11 Arm64 + Ubuntuと聞くと、私は https://ubuntu.com/download/raspberry-pi/thank-you?version=20.04.2&architecture=server-arm64+raspi https://ubuntu.com/download/raspberry-pi
12 3.デモ
13 やってみた • https://circleci.com/ja/blog/physical-computing-with-circleci-1/ • https://circleci.com/ja/blog/physical-computing-with-circleci-2/ • https://circleci.com/ja/blog/physical-computing-with-circleci-3/
14 (grove_dht_pro.py)
15 1: CircleCI
16 2: CircleCI
18 4.さいごに
19 振り返り&今後公開予定 • ランナーすげー(エージェントの設定まですれば良い意味でランナーを意識不要) • ハードウェアアクセスには適切な権限が必要(sudoグループに⼊れない!)→次スライド • ラズパイ上でコンパイルは時間の浪費(なんといってもストレージがmicroSD) Arm Executor上でのビルド記事を早く出すようにします!
20 プロジェクト設定+エージェント権限にご注意を リポジトリがpublic(だれでもフォークできる)+ Build forked pull requests(フォーク先からの プルリクもビルド実⾏する)がONになっていると、 (さらにタスクエージェントにsudo権限を与えたり すると)
セキュリティリスクにつながるので、要注意!
21
Thank you. 22