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

Apple_Siliconへの移行_完全に理解した.pdf

Yusaku-T
October 04, 2021
28

 Apple_Siliconへの移行_完全に理解した.pdf

Yusaku-T

October 04, 2021
Tweet

Transcript

  1. 発表内容 • 当初は自宅のOCNフレッツ回線をIPoE(IPv4 over IPv6)に移行した話をする予定でした ◦ 「フレッツのIPv6完全に理解した」 • 6/23にMacのCPU移行のニュースが流れてきて、軽く調べたり気になったことをメモしてい たら「タイムリーだしこっちを話した方が良いんじゃ…?」と思い、急遽内容変更しました

    ◦ 勢いでまとめたので事実誤認や後になって判明する新事実等あるかもしれません ◦ 主にITエンジニアに対する影響について話します • IPoE(IPv4 over IPv6)については来月お話しします ◦ ここ数日で状況が変化したのでそれを反映 &検証を追加します
  2. Apple Siliconとは? • 先日(現地時間6/22)のWWDC 2020で発表 されたMac用の新しいApple独自CPU • 開発キット機にはApple A12Z(iPad Pro

    2020 と同じCPU)が搭載 • 実際のMacには別なCPUが搭載される事と 考えられるが、基本的にはiPhone/iPadで使 われるApple Aシリーズと同じ64bit ARMアー キテクチャのCPUになるはず 基調講演 https://developer.apple.com/videos/play/wwdc2020/101/ より
  3. 移行のためのサポート • Universal 2 ◦ 1つのプログラムファイルの中に Intel版とApple Silicon版を含める仕組み • Rosetta

    2 ◦ Intel版の実行バイナリ(プログラム)を変換して Apple Siliconで実行する仕組み ◦ インストール時の一括変換と実行時の動的変 換の二種類の動作をサポート? ▪ https://news.mynavi.jp/article/osxhack -266/ • 「2」とあるのは元々PowerPC→Intel CPUへ の移行の際に使われた技術だから プラットフォーム講演よりRosetta 2の説明 https://developer.apple.com/videos/play/wwdc2020/101/ より
  4. とはいえ… • パフォーマンス等を考えるとApple Silicon(64bit ARM)ネイティブで動く方が ありがたい • ARM版LinuxやARM版Windows 10用の バイナリが提供されているオープンソース

    ソフトウェアは比較的早期に対応すると思 われる • プラットフォーム講演でもMacはITエンジニ アにとって非常に人気があるとの言及あり 「OSSへの移行を支援しパッチを提供する」と表明した場面で表 示されたリスト https://developer.apple.com/videos/play/wwdc2020/102/ より
  5. Apple純正のアプリ • Safari, iWork(Pages, Keynote, Numbers), Xcodeなど • 流石にこれらはApple Siliconネイティブで動くものが新Mac/Bug

    Surと同時に提供される はず • 動画編集のFinal Cut Pro Xや音楽編集のLogicといった重いアプリのデモを流すなど Appleの新CPUへの自信が伺える ◦ いきなりApple Silicon搭載のMacbook ProやMac Proあたりが出るかも?
  6. Microsoft(Office), Adobe(Creative Cloud) • WWDCの基調講演でデモ • レガシーな機能をフルサポートしてくれるか? ◦ Office 2003までの旧形式ファイルとか

    VBAとか ◦ Adobeについては最近バージョンのアプリから対応 ▪ Lightroom Classicとかは非対応(らしい)
  7. Electronベースのデスクトップアプリ • VS Code, Postman, Slackクライアント, Discordクライアントなど • ベースとなるElectronは7.0からARM版Windowsに対応 ◦

    https://forest.watch.impress.co.jp/docs/news/1214252.html • VS Codeについては1.46からARM版Windows 10に対応 ◦ https://code.visualstudio.com/insiders/#win
  8. 開発言語(1/2) • Python, Ruby, Node.js等のスクリプト言語 ◦ 多くのインタプリタがARM版Linuxで動作 ◦ Python, Rubyあたりは新OSのBig

    SurにApple Silicon対応版がバンドルされるはず ◦ ライブラリによってはCなどで書かれたネイティブコードを含むので要注意 • Java ◦ ARM版Linuxで動くOpenJDKが提供ずみ ▪ https://adoptopenjdk.net/releases.html ◦ ネイティブコードを含むライブラリについては同上
  9. 開発言語(2/2) • Go, Rustなどの(ネイティブコード)コンパイラ型言語 ◦ Go, RustはARM版Linuxのコンパイラがあり ▪ Go: https://golang.org/dl/

    ▪ Rustに関してはTier 2: https://forge.rust-lang.org/release/platform-support.html • いずれの言語も過去のバージョンに遡ってApple Silicon版Macにネイティブ対応する か? ◦ Python 2.7やJava 8など ◦ 保守案件などで地味に問題になる可能性 ◦ Rosetta 2経由で実行するか非公式バイナリを利用するか ▪ 頑張って自力ビルドすると言うのももちろんアリ
  10. ARM版Dockerコンテナで発生する問題点 • DockerHubでARM版のコンテナイメージが提供されていない場合がある ◦ 多くは対応しつつあるが、例えば MySQL(公式)などは現時点で未対応 • 開発環境と運用環境で動かすコンテナイメージに差異が発生する ◦ レンタルサーバーや各種クラウドのサーバーが

    Intel/AMDからARM系に一気に切り替わることは ないはず ▪ 運用環境向けのコンテナは Intel CPU向けに再構築・再検証が必要になる • JenkinsやCircle CI等でCI/CDを組んでいる場合は今まで通り ◦ トラブル発生時の問題の切り分けで考慮する要素が増える ◦ 運用環境で問題が起きたイメージを引っ張ってローカルの Macで検証…といったことができなくなる
  11. 機械学習 • 全く理解してないです • NumPy, TensorFlow, PyTorchと言ったライブラリはPythonベースとはいえC言語のコード も含まれているので、ライブラリ個別の対応も必要 ◦ Raspberry

    PiなどARM版Linuxで動かしてるケースあり • CPUはApple Siliconに変わるが、GPUはどうなる? ◦ AMDを使い続ける? ◦ NVIDIAに移行する? ◦ まさかGPUもApple独自開発になる?
  12. スマートフォンアプリ開発 • 全く理解してないです • iOSアプリ開発 ◦ XCodeは流石にApple Siliconネイティブ対応するはず • Androidアプリ開発

    ◦ Android StudioはJavaベース(IntelliJベース)なので、Javaがネイティブ対応すればなんとかなる はず • クロスプラットフォーム開発(Flutter, Xamarinなど) ◦ わからないです
  13. チーム開発(1/2) • 開発用の貸与PCとしてMacを大量導入している企業など • 移行期間中はIntelとApple SiliconのMacが企業内・開発チーム内などで混在する事に なる ◦ 全部Apple SiliconのMacに移行する?

    ▪ 費用面・互換性の問題 ◦ Intel CPUのMacを購入し続ける? ▪ 移行期間は2年 ▪ Intel CPU版MacはmacOSの更新に追従できなくなる • PowerPC→Intel CPUの時は移行後の次のバージョン (OS X 10.6)が最終 ◦ いっそWindowsに移行する? ▪ 既存MacにはBootCampでWindowsを導入し新たにWindows PCを買い足していく ▪ Dockerやターミナルなど、Windowsの開発者サポートも充実しつつある
  14. チーム開発(2/2) • トラブルが起きた時の問題の切り分けが難しくなる ◦ 新卒がApple SiliconのMacを持ってきて「これ動かないんですけど …」と言ってきたときどうする? • 開発環境の構築手順書なども、両方のCPU環境を考慮して書く必要が出てくる ◦

    各種アプリのインストールに関しては前述の Universal 2である程度は一本化できるはず • 新卒には安定したIntel CPUのMacを貸与し、開発経験の長いITエンジニアにApple SiliconのMacを貸与して問題点を洗い出してもらう、といった工夫も必要かも? ◦ 人の金ではやくApple SiliconのMacを使いたいと言っているわけではない
  15. まとめ • MacのCPUがApple Siliconに変わると(そのままでは)今までのプログラムが動かなくな るよ • 公式の移行サポートもあるし、ARM版Windows/Linuxにネイティブ対応しているアプリは 近いうちにApple SiliconのMacにも対応すると思うよ(期待) •

    仮想化・コンテナを使った開発はちょっと影響が大きそうだよ • チーム開発ではCPUが統一されてない事によるトラブルが起きうるから、運用・ドキュメン ト・ツールなどでカバーする必要がありそうだよ