はい!第378回は,またネタが無かったので僕が最近調べている各種ライブラリの思想・フィロソフィ・プリンシプルのいくつかを紹介しながら雑談しました💁
ではでは(=゚ω゚)ノ
ーーーーー
🔗 LINKS
Build, Ship, and Run Any App, Anywhere
https://delftswa.github.io/chapters/docker/
♫ BGM
騒音のない世界「ワンルームの自由」
https://soundcloud.com/baron1_3/oneroom
See Privacy Policy at https://art19.com/privacy and California Privacy Notice at https://art19.com/privacy#do-not-sell-my-info.
00:07
はい、みなさんこんにちは。kkeethことくわはらです。
本日もやっていきましょう、kkeethのエンジニア雑談チャンネル。
この番組では、ウェブ業界やエンジニアリング、
いろんな技術についての情報を、雑談形式で
発信していきたいと思います。
で、
今日は、あのー、僕ー
が、技術の勉強とか、今も割とやって
いなくはもちろんないですけど、もちろんその
使い方であったりとか、まぁチュートリアル的な
ことで一回手を動かして勉強をもちろんするんですけど、僕はあんまちょっと
深く深く学んだことがあんまない。
一個一個のそのライブラリとか、フレームワークの
深いところまで踏み込まずに、基本的には使い方だけを
ガッと学んで、それが結局何をしてくれる、何が
できるみたいなところをやることが多いんで、僕は
まぁちょっと表層的な理解しかしないっていうのが、まぁ大きな
課題。えー、その中で僕がですね、一番
気になっているのは、まぁそれが何を解決してくれる、
どういう世界観を作ってくれるという話よりも、
開発秘話とか、プリンシプルとかフィロソフィー、
まぁ結局思想の話なんですけど、これが僕はものすごく
気になってて、まぁそういうものばっかりついつい調べてしまいます。
で、それを調べると、本質実態のある技術の
勉強自体が進んでないことになってしまって、
まぁいつも理解が浅いなっていうところは、まぁ反省点では
あるんですけど、そうですね、まぁそういうのを見ていまして、
昨日を見てたやつでいくと、リナックス
だったり、ルビーオンレールズだったり、リアクト
Git、そしてDockerとかですかね、
Dockerはでもすごく分かりやすいですね、まぁ彼らはそのDocker専用の
ページも実は用意してましてね、Docker
ビルド、シップ、アンド、ラウン、
エニーアップ、エニーウェアっていうタイトル。
はい、どこでもどんなアプリもビルドして、
配布して実行できます、タイトルですね。
それの記事が出てますので、まぁ興味ある人は見てみてください。
ちょっと長いし、全文英語なので、
まぁ仕組みだったり、どういう構造になってますか
とか、どういう思想で作られてますか、みたいなところ。
まぁあとは他の各社サービスとか、仮想化技術とかとの
差別化はこうです、みたいなところも一部書かれていたりするので、
Dockerそのものをちゃんと
勉強するときに、Dockerってどういうものかっていう
外からの見え方みたいなところが書かれていて、
これはこれで一つ良い視点で勉強になると思いますので、
はい、まぁ読んでみていただければ。
Dockerは、ちなみに2013年ドットクラウド社内の
プロジェクトとして始まったらしいですね。
アプリケーションをコンテナとしてパッケージ化して、
どの環境でどの順位で実行できる技術ですよ、と。
まぁ今やもうDocker使わない開発環境とか、
会社とかそんな無いんじゃないかな、と思ったりします。
昔は、僕なんかベイグラントを使ってた記憶はありますけども、
あとは何だ、仮想化技術って。ベイグラントと
VMWareとか昔は使ってましたね。
けどまぁ今はもうDockerでやるのが当たり前だし、
DockerHubからイメージを取ってくるっていうのも、
すごく助かりますね。あれめちゃめちゃ助かりましたね。
03:02
昔はそのイメージとかをちゃんと自分たちで用意をして、
箱だけイメージのテンプレートを作って、そこに自分たちで何をインストールするかとかも、
設定書いたりコマンド書いたり、ローカルのファイルとの
同期回りを書いたりとかを、手続き的に書いたんですけど、
ある程度固まったものを
まとめてイメージとして配布してくれてるんですよね。
でそのDockerHubの欲しいイメージ、環境を
自分たちでプルーをしてきて、で実行すればすぐ動くよ
めっちゃOSSってありがたいやんって思ったことはありますね。
その記事とかがいっぱいあったりするし、
Dockerの利用用途の汎用性の高さだったり
まあやっぱ思想ですよね。どこでも動くっていう、どこでもとりあえず
引っ張ってきて、どんなアプリケーションをビルドして
実行することができるっていう、この思想があまりにも良すぎたので、
これだけ広まったっていうのは、今はそうだよねって感じはありますね。
コンテナ専門のクラウドサービスもたくさん出てますし、
コンテナで一元管理をするっていうところもすごくやりやすくなったっていうのは
いやー便利だなと思いますね。
まあ一時期、本番環境にそもそもDocker自体を起動させて
そこのリソースを食うことはどうなのっていう議論もありましたね。
ありましたけど、今はもうDockerコンテナを動かすことをほぼなんか前提までいかないしても
当たり前のようにやられているという状況にはなりましたね。
まあでもそうしないと、ローカルの開発環境と実際の本番環境と
まあテスト環境もそうですけど、同じ環境として実行するっていうのを担保できないですからね。
多少の差異が出てきます。
まあもちろんマシンスペックとかは出てくると思うんで、そこだけはあれですけど、
そこを除けば基本的にはコンテナ起動してあれば、
どの環境であろうと必ず同じもので動く。
なのでローカルでちゃんと動いていれば本番でも動くはずだっていうのに。
その安定と信頼はでかいですよね。
また、管理っていうところもコンテナのマネジメントサービスを使っておけば
一発で変換できたり、ビルドしたり、更新したりすることもできるっていうので
まあありがたいですよね、コンテナっていうのは。
今後もDockerのコンテナ技術とかはそんな変わりはないし、ずっと使われ続ける気はしてますね。
あんまりここが動くイメージは僕のところで今のところはないです。
ただこのDockerが生まれて、いわゆるコンテナで物事を管理するっていうことができる環境になったから
DevOpsというワードがかなり広まったっていうふうに僕は捉えてますね。
OpsのところをちゃんとDevでやっていくっていうのは
やはりコンテナがないとなかなか技術的に自動化したり一元化するっていうのは割と大変だったんじゃないですかね。
まあ一応手続き的なものとかシェルでわーっと書いておいて
とりあえずこれを実行すれば一連の動作はそのシェルスクリプトの中でいろいろ実行するみたいなことは昔やってましたし
まあメイクファイルは自体は今も書いてたりするんですけど
まああれではすごく便利ではありますから。
まあその中にガーッと書いてたみたいなところもありますけど
Dockerができたっていうのは本当にデプロイビルド周りっていうところが楽になったのは大きいなと思います。
06:02
まあ今別にDevOpsがコンテナだけの話ではもちろんないですけど
コンテナが押し広げた押し進めたっていうのは事実としてあるんじゃないかなって気はしてます。
まあその意味でDockerはすごいなと思いますよね。
この思想がずっと使われ続けて今も生きているっていうのはでかいなと思いますね。
あとそうやって一言でプリンシップルとかフィロソフィーが語られているやつで言うと
Ruby on Railsがやっぱ上がってきて
Canvas Session Over Configurationっていうキーワードがあります。
設定よりも気役だよ。
あとはDon't Repeat Yourselfですね。
ドライの原則の話ですけど
この主な2つの原則で作られたフレームワークっていうのがRuby on Railsらしいですね。
どのような開発者がより少ないコードでより多くのことを達成できるようにするっていうのを目指されて
作られていたフレームワークですと。
触ったことある方はこれ結構共感あると思いまして
すごく作りやすいっていう体験は本当にその通りだなと思ったりします。
があまりにも出来すぎたフレームワークなので
Rubyが書けないRailsエンジニアっていうのを量産してしまったっていう事実もあったりするので
これはこれで面白いけど
良すぎるフレームワークっていうのは教育的ではないなっていう感触は僕はありますね。
まあじゃあ教育的言語となんぞやみたいな話
またやるのか楽しみになるので
今日はやらないですけど。
でもCanvas Session of Configurationは
言えてみようかなと思いましたね。
ちなみにRailsは2004年に開発されたらしい。
もともと作っていたデビッド・ハイネマイヤー・ハンソン
彼がBasecampというプロジェクトの管理ツールを開発する過程で
ウェブアプリケーション開発をより簡単かつ迅速にするフレームワークを作り出したっていうのがその根幹にある。
まあでもRailsできる方を集めると確かに
早いっちゃ早いです。
立ち上げのスピードはほんとRailsは早いと思いますね。
デバッグ機能があまりにも充実しているので
何かあってもすぐに検知してどこが原因かってのを特定して
すぐに作り続けていけるってところはでかいと思います。
ただまあスケールどこまでしてくれるかって
あとパフォーマンス問題ですよね。
Rubyっていう言語は確かそんなに早くなかった気がします。
実行速度が。
なのででかいデータとかを扱ったり規模感が大きくなってくると
もっさりしてくる気がしてるのでそこがネックだとなって気がします。
ただまあでも一時期はずっとRailsがなんか主権を握ってたような僕は感触があります。
まあ少なくとも日本ではです。
でまあPHPのバージョンが上がるにつれて
パフォーマンス改善されたり
ララベルが出てから
割とララベルにまた移行し始めたっていう会社さんとか事例もよく聞いたのでね。
なので今だとやはりスタートアップとか立ち上げの時は
一旦Railsで爆速でバーッと作っていって
そこからスケールしたりいろんなものを加味する時に本格的に乗せ替えるかっていう
お話が僕はよく聞いてますけど
実際今の現状どうかわからないですね。
まあでもRailsが一時代に築いたのは絶対事実としてありますし
それだけ素晴らしいフレームワークであることには変わりはないなっていうところですね。
まああとは思想とか技術の思想とかフィロソフィーの話をしていくと
09:03
どうやってもやはりやっぱりLinuxのお話は割と面白いですね。
はい。
お騒がせLinus Topalsさんのお話はいくらでも前距離とばがないので
まあやっぱ楽しいですね。
あのちょっとできるって言葉を作り出した人もTopalsだった気がします。
まあでもLinux作ったとかGitを作ったっていう話はとても素晴らしいし
Git自体を自分で作るみたいなことを一度やろうとしたことがあって
どうやってハッシュだけでプロジェクト全体をどうやって取ってんだろうっていうのは
僕は一度勉強したけど
なんか自分で作ってみたらどうなんだろうっていうのはやったことがないので
一回どっかですね時間余ったり
大人の夏休み的なのは改めてもう一回作れたら
なんかGitを自分で作ればやってみたいなと。
いやでもGitもとても素晴らしいですよね。
設計哲学としてパフォーマンス、セキュリティ、柔軟性っていうのに実は重きを置いたりする
分散型バージョン管理システムが本当に良かったなと思います。
僕もプロジェクトで一回ちょっと名前ももちろん出せないんですけど
とあるお客様のとこで常駐してたことがあって
そのお客様の割とインフラとか権限周りを管理してたコアな方が退職されたんですけど
その方が退職するにあたってやっぱり自分の痕跡をしっかり残さないようにする
ただドキュメントを残すというね、いろんなものは残してたんですけど
最後その人がアカウントを削除した時に
とあるプロジェクトのリポジトリ、リモートリポジトリも一緒に消えてしまったことが一回あって
どういう連携とか設定をしてたかはよく分かってないんですけど
少なくともリモートの本体のリポジトリが吹っ飛んだんですよね。
大問題で各社ペンダーに対してうわーっと一斉に連絡が行って
今現時点の最新バージョンどこだとか
タイムスタンプ的にその人がアカウント削除する直前のタイムスタンプで
プルをしてたリポジトリあるかっていうのを各社にわーっと連絡が行って
結局復帰はできたんですけど
いやこれGitじゃなかったらもう終わってたなと思うので
Gitって素晴らしいなって思ったりします
身で体験したことが僕はあるよってそういうお話でした
なのでやっぱり分散でちゃんと管理できてて
どっかが吹っ飛んでもってそういう
対障害性を備えているっていうのはすごくでかいよねって思ったりはしますね
みたいな感じで
最近は続き技術のフィロソフィーとその開発費はですね
大元の誕生の裏話とかを結構調べたりすることが割と好きで
あとは裏話やっていくと必ず人の歴史とか人がやったことに対して
フォーカスが置かれていくので
その技術者がどういう人でなんかその人ってどういうことをやった
その人のなんかお茶目なところとかを
またなんかいろいろネタが集まってきたら
どっかで多分ブログに書き起こそうかなと
はい書いたら
はい今回はこんなところで終わっていきたいと思います
いつも聞いてくださり本当にありがとうございます
ではまた次回の主力でお会いしましょう
バイバイ
11:45
Comments
Scroll