TensorFlowが2015年あたりにリリースされてから、Pythonはかなり人気のプログラミング言語になったなと思います。
当時、Python環境をPCに導入する方法としてメジャーだった方法は、
Anacondaを使ってインストールする方法でした。
Anacondaは、Pythonのデータサイエンス向けの環境構築ツールです。
Python本体や多数の科学技術計算用のライブラリを含んでおり、これらのパッケージを簡単にインストール・管理することができます。
Anacondaには、Condaというパッケージ管理システムが組み込まれてあって、色々なバージョンのPython本体やライブラリ、開発ツールなどのパッケージをインストールするための便利ーなシステム。
つまりバージョン管理を簡単に行うことができます。
一方Dockerについて、、、
Dockerは、2013年にDocker Inc.によって初めてリリースされました。当初は、Linuxコンテナを管理するためのツールとして開発され、瞬く間に開発者の間で広く受け入れられるようになったそうです。
その後、DockerはWindowsやmacOSなどの複数のプラットフォームにも対応するようになり、コンテナ仮想化の分野で急速に普及している印象があります。
これまではPythonの開発環境として、Anacondaが広く使われており一般的でした。しかし、最近ではDockerが注目を集め、Pythonの開発環境としても選択肢の一つとして考えられるようになっています。
特に工場プログラマーにとってはこのDockerの技術が必要だと個人的には考えるようになってきました。
今回は、その理由について書いていきたいと思います。
そもそも工場プログラマーってどんな仕事してるの??
工場で働くプログラマーは、製造工程や生産ラインの自動化・最適化によって生産性を工場させたり、稼働してる設備のシステムの保守運用を担当することがあります。
もう少し具体的に例えると、以下のような仕事をしています。
- システムの設計・開発 工場で使用される機械や装置を制御するためのシステムの設計・開発を行います。これには、制御プログラムの開発やセンサー・アクチュエーターの制御、通信プロトコルの実装などが含まれます。
- 生産ラインの自動化 工場での生産ラインを自動化するためのシステムの開発を行います。これには、機械の自動制御や製品の検査・分類、生産ラインの監視・制御などが含まれます。
- データ解析・改善 工場の生産ラインから取得したデータを解析し、生産ラインの改善や生産効率の向上を目指すことがあります。これには、機械学習や統計解析を用いたデータ分析や、生産ラインの最適化に関するアルゴリズムの開発などが含まれます。
- 保守・運用 システムの保守・運用を行います。これには、システムのトラブルシューティングやメンテナンス、アップグレードなどが含まれます。
工場の種類や規模によって、担当する業務内容や技術スキルには多少の違いがあるかもしれませんが
おそらくこんな感じの仕事をされているかと思います。
工場プログラマーにとってはDockerが重要
工場プログラマーの仕事は上記に書かせていただいた通り、幅広く任されることがあります。
とくに大きな工場だと、生産ラインの設備の数や製品の種類も増えていくので、大変さも増えていきます。
そんな工場プログラマーにとって、Dokerは効率化のために非常に重要な技術になってきます。
1. 開発環境の構築がスピーディ
Anacondaでも環境構築はできるのですが、不必要なパッケージをインストールしてしまったり、それで時間と本番環境の容量を使ってしまったりが嫌な点です。
しかし、Dockerを利用することで、開発環境をコンテナとしてパッケージングし、必要なライブラリやツール類のみ構築することができるので不必要な時間をかける必要がありません。
例えば何か温度や振動を測定するセンサーを取り付けたエッジPCを大規模な生産ラインに取り付ける時には
エッジPCの環境開発を大量に行う必要があります。(測定プログラムの動作環境設定)
そんな時にコンテナを使えば、1つ1つのエッジPCの環境をスピーディにできるため
Docker技術が重宝されます。
2. 本番環境での開発
工場で使用するシステムは、生産ラインの稼働中に稼働することが多いため、システムのアップグレードやメンテナンスなどの作業が困難です。
しかし、Dockerを使用することで、本番環境もコンテナとして構築することができ、開発環境の差異を排除し、システムの開発やテストを迅速かつ効率的に行うことができます。
そうすることでシステムのアップグレードやメンテナンスを簡単に行うことができます。
3. 複数の環境の管理
工場で使用される機械や装置は、種類やメーカーによって異なります。
そのため、システム開発や保守においては、複数の環境を管理する必要があります。
Dockerを使用することで、異なる環境でも同じDockerイメージを使用することができ、システム開発や保守の作業を簡素化することができます。
Dokerはどうやって勉強するの??
ここまでは、Dockerが工場プログラマーにとって重要だという話をさせていただきましたが、
じゃあDockerはどうやって勉強すればいいだという声もあると思います。
そこで私なりに勉強した方法を紹介させていただきます。
Udemyで勉強する
Dockerを初めて勉強する方には、Udemyの講座をおすすめしています。
理由は色々あるのですが、大きな理由としては
・覚えるべき内容の順番が整理されている。
・実際にコマンドを打っている様子が分かる
の2点があります。
特に後者について、Dockerではコマンドを打つと
プロンプト上に色々な文字がでてきますので、そんな画面の様子もUdemyの講座では見ることができます。
個人的なおすすめは、「米国AI開発者がゼロから教えるDocker講座」の内容が
かなり整理もされていて、AIの事も学べてお得だと思いました。
本で勉強する
書籍だと、
・図解即戦力 仮想化&コンテナがこれ1冊でしっかりわかる教科書
・Docker Desktop for Windows/Macでつくるクリーンな開発環境構築入門(kindle本)
がおすすめです。
前者は、仮想環境含めてしっかりと解説してくれております。
また後者は600円と安いにも関わらず、丁寧に説明してくれている本なので、コスパ◎です。
おわりに
ここまで読んでいただき、ありがとうございます。
Dockerを学ぶことは、現代のアプリケーション開発やシステム管理において、必要不可欠なスキルとなっていて、工場勤務のプログラマーにとっても重要になってます。
Dockerを使えるようになることで、アプリケーションの移植やシステムリソースの効率的な利用、開発チームのコラボレーションなど、多くのメリットが得られます。
今後ますます重要性が高まるDockerを学び、スキルアップを図りましょう。
偉そうに書きましたが、私も勉強し始めて2~3ヶ月くらいなので
がんばります。