Chapter 08

所感とチーム開発での導入について

ほげさん
ほげさん
2021.08.14に更新

この章のみ、技術調査ではなく僕の感想が中心です。

対応状況

アプリケーションはだいたい動く気がする

ブラウザやエディタや開発ツールなどは ARM Mac であることを全く意識せずに使えています。
Rosetta 2 も全く存在を感じさせないくらいのコストです。

初めは「これは本当にあれやこれやが動かないとうわさで聞いた ARM Mac なのか?」と思ったほどでした。

Rosetta の章で紹介した確認サイト でも、ほとんどのアプリケーションは M1 Native か Rosetta 2 で動くと見えます。

僕が確認した時点でサイトには 881 アプリケーション登録されていて、M1 Native でも Rosetta 2 でも動かないのは 48 アプリケーションです。
それら 48 のうち Virtualbox や Oracle Database などは少し気になりますが、まぁ今必要なければ今後必要になることもないだろうと判断しました。

使い心地

知識や複雑な設定はそんなにいらないと思う

長々といろいろ試しましたが、結論は割とシンプルな形になったと思っています。

  • 特に理由がない限りは Rosetta を使用して開く をいじることはない
  • シェルや brew は基本的に ARM64 のを使っていれば良い
  • arch コマンドがすごいってことだけわかっていれば、それ以上はあまりめんどうがない

バッテリーがすごい

しばらく充電しなくても全然大丈夫です。充電もすごい早いです。

ちょっと会議室に移動したり半日外出するくらいでは、全く充電ケーブルを持ち歩く必要がありません。

席や作業場所の移動が多めなのですが、ノート 1 つで済ませられるので地味ですがとても満足している点です。

静か

全然音がしないです。

昨今のリモート会議で「誰かのファンがすげーうるさくない?」なんてやりとりがあったりなかったりしますが、ARM Mac は本当に全く音がしないです。

ARM Mac のあとに Intel Mac を使うと「今までこんなにうるさかったんだなぁ...」と感じます。

開発

チームで Intel Mac と ARM Mac を混在させるのは辛そう

混在が辛いというよりは、ぶっちゃけて言うと ARM Mac で開発するのはプロジェクトによってはまだ少し辛いと感じます。

例えば現存するチームに ARM Mac ユーザが加入する場合、プロジェクトで使っている全てのイメージが ARM64 でも動く必要があります。

実際に手元でいくつか弊社のプロジェクトをビルドしてみたところ「4 イメージのうち 1 イメージだけ ARM64 向けがなかったので docker compose build が失敗した」なんてことがありました。

考えられるアプローチはいくつかありますが、いずれもコストやリスクがありそうです。

  • 動くなら、無理やり x86_64 イメージを使う
    • Intel Mac の人にとっては一切意味のない --platform linux/x86_64 を明示する
      • 意味がないで済めば良いけど、今まで動いていた人に悪影響が出るかもしれない
      • linux/x86_64 ではない何かが自動選択されていた場合とか
        ( 具体的なケースは不明... 64bit windows は linux/x86_64 になるっぽい )
  • 非公式などで ARM64 対応版がある場合、そちらを使う
  • 両方に対応できるビルド方法にする
  • アーキテクチャごとにイメージを用意し管理する
    • 「僕は x86_64 コンテナでは動作確認できないでそっちはよろしく」とかは嫌だなぁ
  • ARM64 対応をひたすら待つ

Docker に関してはまだしばらくは辛い日々が続きそうな印象です。

まとめ

  • 基本的にいままでと同じ感覚で使えるよ
  • いいところいっぱいあるよ
  • Docker での開発はぶっちゃけ辛いかもよ
    • DockerHub とか docker manifest inspect で購入前にある程度調べられるよ
    • Mac 本体へのインストールは Rosetta が助けてくれるので多少楽かも ( Haskell 動いたし )

さいごに

ARM Mac を購入しようか迷っている方もしくはしてみた方、何か得るものはあったでしょうか。

僕自身は「M1 を買ったらきっといろいろ必死に調べるだろう」と自分を追い込むみたいな動機もあり、結果としては ARM Mac にとどまらず知識を収集して整理することができ大変有益でした。

前例の少ない ARM Mac の課題にぶち当たったら、大変さはありますがそれも楽しみつつ学べば良いんじゃあないかな、なんて考えてます。( いつでも今までの Intel Mac が使えるように手元に残しつつw )

職場では ARM Mac を使っているのはまだ僕だけでとっても寂しい思いをしているので「少しでも ARM Mac を使う人が増えるといいなぁ」と思っています。