みなさんこんにちは。Avintonジャパン18卒新入社員のTです。
今回は入社まで一カ月をきった3月某日に18卒向けに開催された技術研修についてレポートします。講師は当社リードエンジニアと先輩エンジニアが担当してくださいました。
研修内容は以下のとおりです。
- 見てみよう!サーバーの中身
- 重要な仕組み Raid
- 仮想化ソフト! Hyper Visor
- ネットワークをシンプルに! Vmware NSX
- プログラミング学習時に大切な6つのこと
それでは早速レポートさせていただきます!
1.見てみよう!サーバーの中身
実際にサーバーの中身を見ながらがら最初の講義が始まりました。
「ここがメモリ。これがファン。緑色のがマザーボードで、、、」
リードエンジニアにより、サーバーの中には一体どのような部品があり、各部品がどのように構成されているかを丁寧に教わりました。今回は、「サーバーの中を見てみよう」というテーマであったので、サーバーに関する基礎知識を学びました。
サーバーに関することをもっと知りたい方は、
をぜひご参考下さい。
講義終盤では、新人自らがサーバーの部品を他の人に説明する時間も設けられ、知識のインプットだけではなく、アウトプットの良い機会ともなりました。新人のほとんどが、サーバーの中身を見たことがなかったので、今回の講義によってサーバーという存在がとても身近になりました。
2.重要な仕組みRAID
続いての講義は、サーバーを扱う上で必要な知識のうちの1つである「RAID」についてです。
RAID・・・RAIDとはストレージの冗長化技術の名称です。複数のHDDを一つのディスクドライブのように認識させ、障害が発生した場合にもデータの復旧、アクセスを可能にしたり、複数のディスクに同時にデータを書き込むことにより、データ保存を高速化させたりするものです。
普段、私達が使用しているノートパソコンには、HDDが1つしか入っていません。したがって、もしパソコンを壊してしまったら、中にあるデータも全て壊れてしまうという危険性があります。そのパソコンが仕事用であった場合、いかに大変なことかは想像しやすいと思います。同じことがデータの保存庫でもあるサーバーにも言えます。そこで生まれた仕組みが、「RAID」です。
2-1.RAIDレベル
RAIDという仕組みの中にも種類があります。これを「RAIDレベル」と呼びます。RAID0からRAID5まで合計6種類ありますが、以下の画像は、各レベルの中でもよく使用される「RAID1」と「RAID5」についてです。
つまり、「RAIDレベルによって、データの分け方、バックアップのやり方が違うよ」ということです。
ここまで、2回の講義を通してサーバーサイドについて学んできました。
ここでリードエンジニアが「何故サーバーについて学ぶことから講義を始めたと思う?」と私達に問いかけました。
理由は、
私達が普段使用するソフトウェアはOSがないと作動しません。しかし、OSはハードウェアがないと作動しません。つまり、ハードウェアは全ての土台であり、その中でも、「サーバー」は重要な存在です。
3.仮想化ソフトウェア Hypervisor
サーバーサイドの講義が終わり、続いては「Hypervisor」について学びました。「Hypervisor」とは、仮想マシンを作って動かすためのソフトウェアのことです。つまり、このソフトを使えば、ハードウェアに関係なく、自分の好きなOS(Windows, Mac, Linux 等)を使用することができるのです。
例えばMacbookを使っていても、Windowsが使用できるようになります。
「Hypervisor」を用いることの良い点は6つあります。
- 資源を柔軟に利用することができる
- 資源の有効利用
- コストの削減
- 障害が発生してもサービスを維持できる
- 運用や管理がしやすくなる
- 古いシステムを継続利用できる
5について具体例をあげると、USB1つで、
例えば、先輩エンジニアであるあなたが会社の新人と一緒に働くとします。あなたが「新人にも同じ開発環境で仕事をさせたいな」と考えていても、新人のパソコンを始めからセットアップしていくのは時間も手間がかかります。しかし、このHypervisorを用いれば、あなたの開発環境をUSBにコピーして新人のパソコンに挿すだけで、あっという間に同じ開発環境を新人に使ってもらうことができます。とても便利ですね!
以上の内容を本講義では学びました。「仮想化って何??」という方は【仮想化 入門】仮想化とはをご参照下さい!
4.ネットワークをシンプルに! Vmware NSX
この回はリードエンジニアではなく、先輩エンジニアより「VMware NSX」について学びました。
“VMware NSXは、ネットワークコンポーネント(スイッチ、ルータ、ファイアウォール、ロードバランサなど)を、ソフトウェアで提供するネットワーク仮想化のプラットフォームです。
ネットワークリソースは物理ハードウェアから分離されるので、柔軟かつ迅速にネットワークを構成することができます。
これまでネットワーク管理者を悩ませていた、物理機器による制限や設定の煩雑さから解放されるので、運用工数を劇的に削減することが可能です”。
(引用:VMware NSX とは? VMware NSX Portal)
つまりサーバーだけではなく、ネットワークも仮想化できる!ということです。画像で表すと次のようになります。
この画像から見て取れるように、今までネットワークを管理するときは、有線で多くのアプライアンスに接続しごちゃごちゃしていましたが、NSXを用いてネットワーク仮想化することで、見た目もすっきりするし管理もより簡単になる!ということです。先程もご紹介しましたが、仮想化に関する詳しい解説は【仮想化 入門】仮想化とは をぜひご参考下さい。
5.プログラミング学習時に大切な6つのこと
現在、様々なプログラミング言語が存在しています。未経験者が「プログラミングを勉強したい!」と決意したとしてもそれは「スポーツがしたい!」と同じこと。スポーツの中でも何がしたいか。野球か、水泳か。様々な種類から自分の興味がある競技を選ばなければなりません。プログラミング言語を選ぶ上でも同じことが言えます。
プログラミング言語の選び方というのは、時代の需要もあれば、本人の望むエンジニア像により、多様に変化していきます。よって本講義で教わった、プログラミングに大切なこと6つのことを皆さんにご紹介したいと思います。
- 「動くこと」を意識しているか。
- 「速さ」を意識しているか。
- 「簡潔さ」を意識しているか。
- 「読みやすさ」を意識しているか。
- 「メンテナンスのしやすさ」を意識しているか。
- 「DRY」を意識しているか。
以下では各項目について、詳しく書いていきます。
1.「動くこと」を意識しているか。
いかに、シンプルに、簡潔なコードを書いたとしても、それが動かなければ、貴重な時間を費やしても、意味を成さなくなってしまいます。当たり前のことではありますが、私達新人にはまず意識しなければいけない大切のものの一つです。
2.「速さ」を意識しているか。
「動くこと」を意識してコードがかけた!しかし、実行後の結果がいつまでも返って来なかったら、エンジニアにおける「速さ」は仕事の結果にも信頼にも大きく影響します。リードエンジニア自らも「エンジニアにとってスピードは命だ」と述べていました。
3~5.「簡潔さ」「読みやすさ」「メンテナンスのしやすさ」を意識しているか。
開発は決して1人では出来ません。沢山の人がプロジェクトに関わって初めて完成するのです。もしエンジニアがそれぞれ自分にしかわからない様なコードを書いてしまったら、結果は想像できると思います。コードを簡潔に書くことによって、自分も他人も読みやすくなります。読みやすいということは、メンテナンスもしやすくなります。
私はエンジニア未経験であるので、先輩方にいくら簡潔にコードを書いて頂いても、理解できないことが多々あります。他人に思いやりを持つのと同時に、自らも日々学習しなくてはいけないなと考えます。
6.「DRY」を意識しているか。
DRYとは、「Don’t Repeat Yourself」の略称です。上記の事項を意識しても、そのコードの中に同じことが何回も書かれていたら明らかに無駄ですよね?実行結果を出す際の処理時間も延びてしまいます。自分のコードが繰り返していないか。確認する大切さを学びました。
まとめ
一言でエンジニアと言っても、様々な種類があります。大きく分けると2種類、フロントエンジニアとバックエンジニアです。
フロントエンジニアは主にwebページ作成。バックエンドエンジニアとは主にサーバーサイドやデータベースにおける設計、開発業務などを行います。一見相反しているこの2種類。しかし、優秀なエンジニアになるにはこの両方の理解が不可欠です。
「良いフロントエンドエンジニアはバックエンドのことを知っており、
良いバックエンドエンジニアはフロントエンドのことを知っている。」
つまり、前述した「プログラミング学習時に大切な6つのこと」でも学んだ通り、動作の速いソフトウェアを開発したいならば、ハードウェアの知識が欠かせません。したがって、より良いweb 開発をしたければ、サーバーサイドの知識を身につけることが重要だそうです。
以上、Avintonアカデミー新人研修の内容でした!
Avintonは仲間を募集しています!
Avintonはエンジニアを積極採用しています。
文理・経験問わず、これまで様々なバックグラウンドを持った社員を採用してきました。
現在いい勢いで成長しているAvinton。社員の数もどんどん増加しています。毎月行っている採用イベント、Meetupもぜひチェックしてください!
ご連絡お待ちしています!!
Follow @AvintonJapan