はてなキーワード: アーキテクチャとは
前職と比較すると平均技術レベルはマジで変わったように感じる。
前職だとクリーンアーキテクチャやらCI/CDやらは言葉の意味すら知らない人も多かったけど、
今の職場だとイケてるエンジニアは当然知ってるよねみたいな概念は最若手含めてほぼ全員理解してる感じ。
FargateやらKubernetesやらGraphQLやらAWSやらGCPの聞いたことないサービスやら新しい技術は常に吸収して実戦投入してて、
凡人エンジニアである俺にはついていくだけでも結構きつい、でも乗り切ったら市場価値もめっちゃ上がるんだろうなって感じもある
コードの品質についても常に議論を交わしてて、コードレビューの厳しさとか今までやってきた会社とは比にならないレベル。
命名として若干ニュアンスに違和感があるとかUT項目の境界値が1ずれてるとかでもどんどん突っ込まれるし、「よくわかんないけど動いてるから良し!」みたいなのは容赦なく潰される。
ペアプロ・モブプロはしょっちゅうみんなやってる。クラス設計に関する議題だけの会議とかも開かれたりする。
会社の規模も超大手ってわけじゃないけど俺が関わってるサービスの部分だけでも前職比較だとサポートとかデザイナーとか含めると10倍とは言わないけど近いくらいはいる。
開発手法もアジャイルの規模大きい版が実施されてて、それもなんちゃってじゃなくてちゃんとセオリーに則ってる形で管理されている。
ただ「これだけの人数いて、これだけ高い技術力があるのに作ってるサービス自体は俺が極少人数で枯れきった技術スタック使って作ってた前職のサービスと大して変わんなくね?」っていうのもまた感じた。
そら管理コストがかかる分10倍の人数がいたって開発速度が単純計算で10倍になるとは思ってないけど、前職で作ってたサービスの2倍分も価値を提供できてんのかなこのサービス?っていう感じというか……
前職は優秀な人を放任してタイムアタック的にひたすら高速リリース繰り返すみたいな感じで、(一応セキュリティ周りとか品質とか最低限はちゃんとしてたよ)管理コストが少ない分一人あたりの生産性は高かったと思う、属人化ってことだからそれが良いとは思わんけど。
動いてるものが同じなら採用技術がオンプレだろうとFargateだろうとGraphQLだろうとRubyだろうとウォーターフォールだろうとアジャイルだろうとユーザーにとっては関係ないし、
NetflixとかGoogleみたいな世界ならともかくとして、世の中の大半のシステムってそういうことじゃないじゃん?
難易度の高いイケてる技術スタックを使う=必然的にエンジニアのお賃金が高くなるってことだから、経営者視点から見てもこういう選択って果たして正しいのかなぁって。
なんならエンジニアの賃金上げるための利権的な使われ方なんじゃっていう気もしてきた。
どう思うよ。
比較的高学歴だったり、理系が多いとか、ソフトエンジニアが多いからかチームの雰囲気を良くするためにとか、
こうすれば良くなるってのを比較的見ている層だろう。
5ch、ヤフコメとは違うクラスターだが、自浄作用もなく手に負えない集団になった。
何が悪かったのか?
はてブの価値の1つは「どこからそんな優良記事を見つけてきたのか」ってことだと思うが、
どこでも盛り上がっている記事について斧を投げる。
スルーすれば良いはずが、わざわざコメントを書いて上位になる手助けをしている
(記事を書いている人をタイトルにつけてくれってコメント付くようなものは、スルーでいいはずだが目立つような行動をしてしまっている)
利用者は、それなりに年を取ったはずだが、どうだろうか。
ライトなコンピュータユーザを一切合切無視してギークがギークのため情報共有するためのエントリ。
感想ははてブへ、質問はトラバに投げれば誰かが答えるんじゃないか?(他力本願)
セキュリティの懸念があるけれど通常モードはセキュアを維持するため機能制限があるので制限開放のため開発者は初手でデベロッパーモードにするしかない。
利用途中でデベロッパーモードにするとストレージがファクトリーリセットされるので注意。
Webでエンタメを楽しんだりWebツールを中心に利用するのであれば、5万円未満の低性能機で必要十分。
この用途では実質的にタブレットPCのような運用へなりやすいのでフリップする2 in 1機やタブレット機がオススメ。
ただし、Webベースのゲームは楽しめるがAndroid Appレイヤーを用いたゲームは非常に厳しいので諦めたほうが良く、そこそこの負荷の掛かるAndroid Appツールも鈍足でストレスになるのでWeb版があるならそっちを使ったほうが良い。
Core i7クラスのCPUや16GB以上のワーキングメモリ、SSDストレージなど高性能機でChromeOSを使うとその分だけ快適になる。
Android Appレイヤーを用いたゲームも快適に動き、ウマ娘クラスの3DCGなAndroid Appゲームも高速に動く。
しかし、高性能機は空冷ファンを搭載していることが多く、高負荷を掛ければファンは唸るしウルサイ。
Google Play StoreにてAABパッケージがほぼ強制になったとは言え、開発段階でx86_64を意識しないと処理が非効率になりがちのようなので、Android Appレイヤーを中心に運用したいと思っているのであれば素直にARM機を探してきたほうが良い。
1つのIDEで開発をしクロスプラットフォーム対応することが流行っている昨今、自動でガベコレに頼っていてリソース管理経験に乏しい開発者はマジで底辺にしか漂流できないので覚えたほうが良いぞ。
それがWeb系のフロントエンドでもバックエンドでもそうだから底辺から脱したいのであれば覚えろ。
しっかりリソース管理できているChromebook向けビルドはアーキテクチャによらずサクサクなのでクロスプラットフォームなビルドはマジで開発チームの腕が如実に反映される。
ちなみにSnapdragon 8 Gen1なChromebookの公式発表は今のとこ無いのでAndroid Appレイヤーをブンブン回すのは難しい。
メーカーはもうちょっと頑張れ。
Chromebookの大半はタッチスクリーンディスプレイを搭載しているし、Android StudioでAndroidManifest.xmlを何も考えずに生成すると勝手にChromeOSをサポートするので結果的にChromeOSで動くAndroid App数が多くなるという現象が起きている。
Android Studioが雑なのかXcodeが厳密なのかは意見が分かれると思うけど、タッチパッドでiOS App操作というセンスがクソなのは万人が納得するところだと思う。
ARM系のSoCであればワンチャンいける可能性はあるものの、市場に出ているChromebookの大半はx86_64でGPSモジュールを積んでいないのでGPSを使おうと思うとBluetoothあたりでGPSレシーバを接続するしか無い。
当然A-GPSは使えないので精度がそこまでではないから期待し過ぎに注意。
Android AppレイヤーではUSB over MIDIが使えるのでDTMあたりに活用することは可能なものの、iOSと比較してレイテンシがそこそこ大きくDTMに活用しようと思うユーザは不満を持ってしまうかも知れない(ハードにもよるけど0.5msecくらいズレる)。
そもそも既存のAndroid AppなDAWはVSTやLV2などの外部プラグインに対応していないのでAUプラグインが使えるiOSのほうがDTMへ向くんじゃないだろうか?
ただし、DAW単体でDTMを完結するとレイテンシはほとんど気にならなくなるので絶対にAndroid AppでDTMが不可能というわけでもない。
Linuxレイヤー側でDTMをするのはレイテンシが大きすぎるしJackも上手く動作しないのでオススメできない。
ChromeOS向けマルチタスクへ対応していないとAndroid Appはフロントエンド(プライマリ)からフォーカスが外れてバックエンドへ行くとスリープする。
Android Appがスリープされることを考慮しておらず例外処理がされていないとAndroid Appはそのまま落ちる。
まぁAndroid Appがスリープされることを考慮しておらず例外処理がされていないとAndroid Appはそのまま落ちるっていう部分はAndroidスマホで実行しても同じなので正直に言ってスリープされることを考慮しないデバックってAndroid App開発者は何やってんの?とは思う。
ICT教育で日本中の学生がChromeOSを使うようになっているので、ゲームであれツールであれ何であれChromeOS向けのマルチタスクは考慮しておくとスリープしたり落ちたりするAndroid Appよりも支持されるのは間違いないのではないか。
LXC/LXDなのでDockerに慣れ親しんでる人にはわかりやすいかも?
デフォルトのイメージはChromeOS向けにカスタムされたDebian。
別のLinuxディストリビューションへ置き換えることも出来るが一部機能が制限される可能性がある。
ChromeOSで動作するGoogle日本語入力とは別にLinuxレイヤー側で日本語入力を用意する必要がある。
選択できるIMは幅広いのでMozcだろうがSKKだろうが漢直だろうが何でもイケる。
ただ特殊なものを選ぶとChromeOS側と齟齬が発生するのでfcitx-mozcあたりが無難っちゃ無難。
ChromeOSへマウントされたUSB機器、というかシリアル接続された機器はLinuxレイヤー上から認識しない。
見掛け上で接続されているハードのすべてはソフトで仮想接続されているだけなので、一部経路から上手く認識しなかったりする。
つまりLinuxレイヤーではUSB Pass Throughが使えないが、Android AppレイヤーではUSB Pass Throughが使えるということ。
Linuxレイヤーでゲームやろうと思ってもUSBゲームパッド動かないのでマウスとキーボードで完結できるFPSみたいなゲームしか上手くプレイできないぞ。
言うなればAndroid Appレイヤーでスクリーンキャプチャ系のアプリによってLinuxレイヤーで動くGUIアプリをキャプチャしようと思ってもキャプチャできず撮像は暗転している。
ChromeOSがホストでLinuxレイヤーとAndroid Appレイヤーはゲストなのでそりゃそうなんだけど気付かないとハマる。
LXC/LXD on LXC/LXDになるので面倒くさくなること請け合いだ。
どうしても仮想環境がChromebookに欲しいのであればKVMとかのほうが安定している。
ただしゲストOS上へ仮想環境を構築しているという前提は認識しておくべき。
つまりゲストOSの制限はKVMも引き継ぐ。
ただしこれはDockerが導入できないという意味ではない。
自分で解決する気概があるのならばDockerは便利に使える。
CLIツール系は普通に動くのでWeb開発であれば何も意識しないで普通にできる。
ただ、PSD形式みたいなもんは扱いにくいのでWebデザイナーは悲しい思いをするかも知れない。
GIMPやInkscapeなども動くけれどデザイナーはAdobe使いたいんじゃなかろうか?
Android App向けIDEのAndroid StudioはChromeOS向けが存在するのでAndorid App開発が可能。
しかしデベロッパーモードでなければエミュレータや実機デバックに制限が発生するので注意。
UnityやUEを使いたいところだけれど、Linux版のUnityやUEは不安定なのでゲーム向けIDEが欲しいのであればGodotがオススメだ。
ライセンスはMITなので商用利用だってイケる。
3Dのほか2Dゲームもいける上に、最近のIDEよろしくマウスでポチポチとUIを作れるし、軽量動作、物理演算、日本語ドキュメントまで揃っているので中高生もガンガン使える素晴らしいIDEだ。
浅い部分を触っているうちはYoutubeを観たり、プリインストールされているGoogle Play StoreからAndoird Appをインストールして使うみたいな気軽な運用ができる。
言ってしまえばライトユーザの視点ではノートパソコンの形をしたAndorid機がChromebookだと言える。
しかし一度Linuxレイヤーへ手を出すとUbuntuという何でもできるようになったLinuxディストリビューションが存在する中で、昔懐かしい複雑怪奇なLinuxディストリビューションを体験することとなってしまう。
ただ、Chromebookで何でもやろうとするからそうなるだけで、APTからIDEをインストールしてちょっとした開発をするなんて使い方であるならば業務利用でも意外となんとかなる・・・というか何も意識しないで使える。
そもそもHTTP使えるなら今どきの開発は何とかなるので、Chromebookへ対してギークがゴチャゴチャ言うのはほぼ間違いなく不満を言いつつDIYを楽しんでる。
Ubuhtuならばアレができるコレができると言うならば最初からUbuntu使えよって話。
ギークとは不便を見つけてゴチャゴチャ言う、そういう鳴き声の動物なのだ。
少なくともGoogle系エコシステムとしてのChromeOSは非常に完成度が高くなりつつある。
Googleアシスタントは元よりAndoridスマホとの連携もよく、ハードウェアへもそこそこの投資ができるのであれば多くのChromebookではUSIペンが使えるし、USBポートはUSB-Cだ。
そこそこのChromebookは多くの場合HiDPIなIPS液晶でありグレアなのは気に食わないが美しい。
デベロッパーモードにするとセキュアさは下がるが普通に使えばローリングリリースのアップデートを無償で得られ、Gentoo LinuxベースなChromeOSは潜在的なマルウェアの絶対数がそもそもWindowsやMacよりも少ないという利点がある。
Bluetoothイヤホン・ヘッドフォン・ヘッドセットも使えるし、NestスピーカーやNest Hub、Nest Camを持っているのであればGoogleアシスタントからのコントロールが容易なのは想像が付くだろう。Android AppレイヤーはGoogleのホームマネジメントアプリであるGoogle Homeも動く。
大胆にも憎きCapsLockキーをデフォルトで殺し、Everything Buttonキーとして独自キーバインドを与えたのも面白い。
もちろんこれは選択するハードによるものの指紋認証でロックを解除することまでできる。
Googleエコシステムへ浸かっていてGoogleへ個人情報を捧げられるのであればChromebookはアリな選択肢だと断言できる。
敢えて欠点を挙げるのならば、たった一言で欠点を表現することが可能だ。
「Chromebookじゃなくても別に良くね?」
そう、ギークがLinuxを使いたいのであれば別にChromebookじゃなくても良い。
というかギークは別にLinuxじゃなくともHaikuであろうが超漢字Ⅴだろうが喜ぶ生き物だ。OSは別になんだって良い。
このエントリは単にChromebookという新しい沼へギークの皆さんをご案内しているに過ぎないのだ。
はてブのホットエントリ(総合)で月内に数多く[あとで読む]タグを集めたエントリ
590あとで/4204users 【詳しすぎる2週間】親の死亡後にまずやること(行動チェックリスト付) | まごころ相続コンシェルジュ
291あとで/1560users Google製のJavaScript教育ツール「Grasshopper」は基礎から学べて初心者に優しい!【どれ使う?プログラミング教育ツール】 | 窓の杜
272あとで/1859users 無料コーディング練習所 | 未経験からWebデザイナーへ!
220あとで/1327users 【翻訳】Googleのエンジニアがソフトウェア開発する時に必ず書くドキュメント「Design Docs at Google」 - BppLOG
201あとで/1017users 30 分でわかる!アルゴリズムの基本 | E869120 | SpeakerDeck
191あとで/1365users Wi-Fiトラブルの解決に便利! Windowsの隠れ便利機能「Wlan Report」を活用しよう【イニシャルB】 | INTERNET Watch
175あとで/888users Web開発者はもっと「安全なウェブサイトの作り方」を読むべき - Flatt Security Blog
171あとで/2593users (追記あり) 10億円資産ができたときに知っておいたほうがいいこと | anond.hatelabo.jp
164あとで/849users AWS初心者向けの教材まとめ、AWS日本法人が公開 | ITMedia
162あとで/1231users 【試し読み】書店員さんから大反響! 精神疾患を抱えた妻の介護と仕事…約20年にわたる苦悩の日々を綴った傑作ルポ『妻はサバイバー』|朝日新聞出版さんぽ|note
159あとで/935users 機械学習が独学できる日本語Youtube難易度別まとめ - Qiita
152あとで/961users 8時間を0.01秒に短縮 「アルゴリズムの素晴らしさが2分で分かる動画」が今すぐ勉強したくなる分かりやすさ | ねとらぼ
142あとで/889users 文春オンラインの記事分析を支える爆速ダッシュボードを作るまで|Shota Tajima|note
141あとで/2006users さよなら絵梨 - 藤本タツキ | 少年ジャンプ+
140あとで/1138users 新電力の中の人です。すべてをお話しします | anond.hatelabo.jp
136あとで/1094users 『ゴールデンカムイ』全話無料! | ヤンジャン!
135あとで/780users Docker創始者らが開発、ビルド/テスト/デプロイの自動化をポータブルにするツール「Dagger」登場。そのままローカルでもGitHubでもCircleCIでも実行可能に | Publickey
132あとで/575users フロントエンドエンジニアが知るべきキャッシュを理解する | カーーズ | Zenn
132あとで/1232users みんなが知ってる『ちょっとのコツでめっちゃ美味しくなる、楽になる』みたいなの教えて→全然知らなかった有益な情報が集まる | Togetter
131あとで/679users 【個人開発】正規表現を学ぶ狩りに出ませんか?モンスターを倒しながら正規表現が学べるゲーム「Regex Hunting」を作りました - Qiita
124あとで/1217users 先輩に「何かタメになる話してくださいよ〜」と無茶振りしたら『Language Reactor』という2言語字幕を同時表示できるChromeの拡張機能を教えてもらった | Togetter
124あとで/1254users 育休中に相方がめちゃくちゃ売れた|酒寄さん|note
120あとで/1114users Google Analytics(UA)が使えなくなるのはどのくらいヤバくて、いつまでに何をしたら良いのかの話。 - フジイユウジ::ドットネット
120あとで/598users 電子情報学特論:Chromiumのアーキテクチャを解き明かす | Kentaro Hara | Google Slides
119あとで/1242users 僕がたどり着いた最強パリパリチキンの焼き方→上手に焼くポイントも「鶏肉好きとしては是非とも取り入れたい」「最高のライフハック」 | Togetter
118あとで/866users 「全クリエイターに広まってほしい」文化庁が質問に答えるだけで『著作権契約書』が作れる超便利なツールを作っている | Togetter
116あとで/897users ちょっと触ったら休日が丸2日消失した 個人的2022年ベストゲーム「TUNIC」を全力で推したい | ねとらぼ
115あとで/798users 結局UMLとかシーケンス図とかAWSの図とかどれで描くと良いのよ?と思ったときの選択肢 - Qiita
112あとで/494users 『良いコード/悪いコードで学ぶ設計入門 』を出版します|ミノ駆動|note
109あとで/522users 予防に勝る防御なし - 堅牢なコードを導く様々な設計のヒント / Growing Reliable Code PHPerKaigi 2022
109あとで/1047users (続き)10億円資産ができたときに知っておいたほうがいいこと | anond.hatelabo.jp
ラジオを聴きながら、というか例えば芸人のエピソードトークとかの内容をある程度理解しながらプログラミングってできるもんかな?
例えばテトリスしながらラジオの内容理解するのは多分余裕だし、筋トレしながら、運動しながらもまあ大丈夫。
でも例えば目で小説を読みながら別軸で別の小説を音声で聞く、は多分大多数の人間には無理な気がする。
文章書きながら~もちょっと自分には難しい、複雑な構成を書いていて頭のリソースが書く方に使われている場合は音声で言っている内容の理解度はめちゃくちゃ下がると思う。
例えばプログラミングと言っても「リファクタリングとして○○クラスのメソッドをXXクラスに移して決まった法則に従ってメソッド名を変更する作業を100回繰り返す」というようなあんまり知的労働を伴わないような単純作業ならまあ多分できる。
100回くらい同じ仕組みを作ったことあるシステムの構築、とかでもできなくはない気がする。
ただゼロイチでアーキテクチャを構築するとか、調査を含めた不具合解消とか、英語のドキュメント読みながらの検証作業とか、これはもう小説読みながら別の小説を聴く、に近いものを求められる気がする。
ただ俺の脳のスペックだと難しい気がする、ってだけで他の人はどうなのかなってのもよくわからん。
在宅ワークが増えて「音声で何かを聞きながら仕事をする」ことって昔に比べると増えたと思うんだけど、「プログラマーがラジオを聞きながら仕事をする」ってできるものかね?
*21 | マザーボードのフェーズの話 - PC Watch | https://pc.watch.impress.co.jp/docs/news/1152140.html | 373849521 |
*22 | PCエンサイクロペディア:第8回 PCのエンジン「プロセッサ」の歴史(2)~性能向上に勤しんだ486/Pentium世代 2. RISCのアーキテクチャに近づくPentium - @IT | https://atmarkit.itmedia.co.jp/fsys/pcencyclopedia/008procs_hist02/procs_hist04.html | 4701261286880018114 |
*23 | トレンドの光るPCはハデなだけではつまらない ~【DIY PC 08】マザー&ケースの機能を活用して作るイルミネーションPC - PC Watch | https://pc.watch.impress.co.jp/docs/news/1148442.html | 372842665 |
*24 | 【笠原一輝のユビキタス情報局】AMDのRyzen ThreadripperがIntelの危機感に火をつけた ~Intelの18コアのSkylake-X急遽投入の背景にあること - PC Watch | https://pc.watch.impress.co.jp/docs/column/ubiq/1062361.html | 347169693 |
*25 | 【Hothotレビュー】待望の第12世代Coreついに発売! ベンチマークで見るその実力 - PC Watch | https://pc.watch.impress.co.jp/docs/column/hothot/1363614.html | 4710698281882741314 |
*26 | 見れば全部わかるDDR4メモリ完全ガイド、規格からレイテンシ、本当の速さまで再確認 - AKIBA PC Hotline! | https://akiba-pc.watch.impress.co.jp/docs/sp/1231939.html | 4680749088087636034 |
*27 | 新登場の32GBメモリモジュール、使えるチップセットは? : AKIBAオーバークロックCafe | http://blog.livedoor.jp/ocworks/archives/52098537.html | - |
*28 | シングルチャネルおよびマルチチャネル・メモリー・モード | https://www.intel.co.jp/content/www/jp/ja/support/articles/000005657/boards-and-kits.html | 374335238 |
*29 | 【特集】同じSSDでもこれだけ違う。SATAから第4世代PCIeまで速度差を検証 - PC Watch | https://pc.watch.impress.co.jp/docs/topic/feature/1386511.html | 4715121623230645378 |
*30 | SSDの選び方:SLC、MLC、TLC、QLC、PLCの違いを解説 | ちもろぐ | https://chimolog.co/bto-ssd-slc-mlc-tlc/ | 369046698 |
*31 | 消耗品と有寿命部品について : NEWS: ビジネスPC | NEC | https://jpn.nec.com/products/bizpc/info/pc/cosmable.html | 4668458216799596930 |
*32 | M-DISC - Wikipedia | https://ja.wikipedia.org/wiki/M-DISC | 260312391 |
*33 | PS5にみる物理メディアの終焉 - ITmedia NEWS | https://www.itmedia.co.jp/news/articles/2006/17/news056.html | 4687255935115670114 |
*34 | 【特集】チャタってしまった10年物マウスが3,000円で完全復活! ~ドスパラ「マウスボタン故障修理サービス」に依頼してみた - PC Watch | https://pc.watch.impress.co.jp/docs/topic/feature/1160250.html | 4662344022334670305 |
*35 | ロジクールのトラックボールマウスM570を自分でスイッチ交換修理した方法 - ネットの海の渚にて | https://dobonkai.hatenablog.com/entry/Logicool-m570-repair | 4680507411203374530 |
*36 | マウスの左クリックがおかしくなったので分解修理した : トイレのうず/ブログ | https://1010uzu.com/blog/overhaul-mouse-failing-in-left-click | 304301040 |
*37 | Logicool MX300 Optical Mouse M-BP82のメンテナンス | https://orz7.web.fc2.com/rat/log/mx300-optical-mouse-m-bp82.htm | - |
*38 | 加水分解の止め方、ベタベタの除去 - 黒色中国BLOG | https://bci.hatenablog.com/entry/kasuibunkai | 4697762672020785762 |
*39 | Mouse Roller Wheel Durable Optical Pulley Repair Parts for Logitech MX510 518 G400|Replacement Parts & Accessories| - AliExpress | https://www.aliexpress.com/item/1005003407488009.html | - |
*40 | ASCII.jp:Windows 11にアップグレード可能なCPUは基本はやっぱり第8世代/Zen+以降になりそう? (1/2) | https://ascii.jp/elem/000/004/061/4061479/ | 4704977165657723746 |
*41 | Microsoft、2022年にWindows 11の高速化に注力すると宣言 - iPhone Mania | https://iphone-mania.jp/news-420988/ | 4711489752449241922 |
*42 | BIOSからUEFIへ BIOSはなぜ終わらなければならなかったのか:“PC”あるいは“Personal Computer”と呼ばれるもの、その変遷を辿る(1/4 ページ) - ITmedia NEWS | https://www.itmedia.co.jp/news/articles/2202/24/news067.html | 4715865033555686850 |
*43 | マザーボードのCSM(Compatibility Supported Module)を有効にする方法(ASRock製マザーボード) | TSUKUMO サポートFAQ | https://faq.tsukumo.co.jp/index.php?solution_id=1316 | 4709334416996014018 |
*44 | そうだ、グラフィックボードを増設しよう! でも、その前に... - ツクモ福岡店 最新情報 | https://blog.tsukumo.co.jp/fukuoka/2015/08/post_116.html | 298062585 |
*45 | 【備忘録】mbr2gptコマンド実行後の回復環境消失の対応方法: YOSIの小さな旅の記し | http://kykyblog.air-nifty.com/blog/2021/09/post-802f79.html | - |
*46 | Windows10/11でDiskPartコマンドを使用する方法 | https://www.diskpart.com/jp/windows-10/diskpart-windows-10.html | 4705642648092693218 |
*47 | アライメント | https://www.pc-master.jp/mainte/aft-hdd.html | 4699883528408540354 |
*48 | Windows 10 で Administrator ユーザーを有効にする方法 – ラボラジアン | https://laboradian.com/enable-administrator-on-windows10/ | - |
*49 | Windows 10 は既定で OneDrive にファイルを保存する | https://support.microsoft.com/ja-jp/office/windows-10-%E3%81%AF%E6%97%A2%E5%AE%9A%E3%81%A7-onedrive-%E3%81%AB%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92%E4%BF%9D%E5%AD%98%E3%81%99%E3%82%8B-33da0077-770c-4bda-b61e-8c8e8ca70ac7 | 4687214936939669538 |
*50 | OneDriveのドキュメント・ピクチャ・デスクトップのバックアップ同期をやめる手順 | パソコンりかばり堂本舗 | https://ikt-s.com/onedrive-backup-skip/ | - |
*51 | Windows8をインストールしたSSDの寿命を延ばす対策 | ZAKKINKS | https://zakkinks.com/windows8_ssd_hack/ | 168055874 |
*52 | Windows10でSSDの寿命を延ばす対策【第一回】 | ZAKKINKS | https://zakkinks.com/windows10_ssd_optimization/ | 268597709 |
*53 | Windows10でSSDの寿命を延ばす対策【第二回】 | ZAKKINKS | https://zakkinks.com/windows10_ssd_optimization2/ | 276446264 |
*54 | 新しいコンテンツの保存先を変更する ( アプリのインストール先変更方法を例に ) | ドスパラ サポートFAQ よくあるご質問|お客様の「困った」や「知りたい」にお応えします。 | http://faq3.dospara.co.jp/faq/show/4557?site_domain=default | 369837603 |
*55 | 一方、ふうえんさんちでは… SuperfetchとPrefetchについて~(1) | http://blog.phooen.com/blog-entry-39.html | 217075081 |
*56 | windows10でAppData/Localを別ドライブへ移動する | ピースペース | https://nasu38yen.wordpress.com/2015/11/19/windows10%E3%81%A7appdatalocal%E3%82%92%E5%88%A5%E3%83%89%E3%83%A9%E3%82%A4%E3%83%96%E3%81%B8%E7%A7%BB%E5%8B%95%E3%81%99%E3%82%8B/ | 274477044 |
*57 | mutaguchi on Twitter: "Win10のスタートメニュー、ショートカットファイルとの関係性が未だにいまいちわからん。ショートカットファイルを編集すると、スタートメニューから消滅したりするんだよなぁ。挙動が分からなくて困る。" / Twitter | https://twitter.com/mutaguchi/status/1298882977863270406 | - |
トラバ・コメ・ブクマしてくれた方々に感謝。人の興味を惹く内容を投稿できて良かった。
hoimin-densetsuさんのセルクマか
ブクマエントリのdata-entry-createdと件のブクマの日時分が一致してるが、濡れ衣だ。
Core第1世代(Nehalem)のつもりで書いたが、Core Duoとかもっと古いのを失念してたので本文修正。
電源は新品がいい
古い電源でもイケるのではと憶測してそれを実証してみたいと思わなければ、自分もきっとそうした。
旧PCのだいぶ後で、TV録画のために買った外付HDDが元。ケースが死んだので、中身をデータ用ドライブとして使っていた。
一体何にパソコンを使っていたのか
はてブと5chとTwitterとそれらの引用元を隅々まで読む作業、動画・漫画鑑賞、Paradoxゲーム、相場観察。
上記用途にしか使ってないので、他に良いPCを買うのは勿体なくてできなかった。
Socket7のM/Bとかその頃のPC雑誌とか、必要な人がいたら譲るんだが。
参考文献57まであって草
老眼の始まったアラフォーで、日本人学生で、増田ユーザで、最近10年ぶりに自作PCをしたという積集合が空でない可能性とは。
無欲ではなく最高の贅沢なんだろね
過ぎた吝嗇は強欲と執着の発露だとは思う。
他の人は言うのを遠慮してたのに。
生憎、数年前のRyzenショックを見逃す程度には、自作PC事情への関与が薄かった。
なんでブログで書かなかったの
完璧主義と自意識過剰と怠惰のせいでブコメすら継続的にできない性質なので。今回は衝動的に長文を書きたくなって投稿した。
多分友達になれる
支出を抑制しようとする情熱が収入を増大させる方に向かって欲しい人生だった。
古老の趣味やな
初老のおじさんに何てことを。
机の周りもめちゃくちゃ綺麗にしてそう
偏執狂は恐ろしく整備された部屋か恐ろしく汚い部屋かどちらかに住んでいるものだと思う。
そういう行為から抜け出せないならそうすることが許容される愛嬌は持ち合わせたいものだねと。
そこで、sesamizeという単語について調べたところ、以下の用法が見つかった。
そんなものは、どうにでもsesamize
大抵のおやじギャグは、検索すれば先例が見つかるものだ。sesamizeも例に漏れず、2006年の2chの書き込みに先例が見つかった。
Sesamize Your Banana (or a compatible cell phone)
遅くとも2005年には、セサミストリートを制作しているSesame Workshopがsesamizeという単語を使用している。
RDFデータベースのJavaフレームワークであるSesameのコマンドラインツール。
DNAメチル化の解析を行うSeSAMeというR言語のパッケージのために、データファイルを変換するツール。
SESAMEというセキュリティアーキテクチャを用いてアプリケーションを保護することをsesamizeと表現することがあるようだ?
はてブのホットエントリ(総合)で月内に数多く[あとで読む]タグを集めたエントリ
361あとで/3270users 逮捕にそなえる人生継続計画 - やしお
257あとで/1505users 筑波大教授が著した無料の初心者向けPython教材「とてもわかりやすい」「素晴らしすぎる」 | Ledge.ai
246あとで/1545users 【独学可能】英語を話す方法 第二言語習得研究と行動科学に基づく英語学習ロードマップ - ポリグロットライフ | 言語まなび∞ラボ
228あとで/1502users 「1Byteが8bitに決まったワケ」についての長い話 まずは「バベッジの階差機関」から | ITMedia
228あとで/1340users 1on1 ノウハウの共有 | DevelopersIO
218あとで/2069users 音声合成業界に激震! もはや人間の喋り声、入力文字読み上げソフトVOICEPEAKはビジネス用途でも自由に利用可能|藤本健の “DTMステーション”
172あとで/1057users 2022年ウクライナ情勢をより深く理解するための歴史文化背景雑学|tadhara|note
170あとで/912users BIOSからUEFIへ BIOSはなぜ終わらなければならなかったのか | ITMedia
168あとで/1175users 早く寝るために自分自身をハックする - 本しゃぶり
160あとで/1187users 富士通の撤退する「メインフレーム」ってそもそも何? | koduki | Zenn
152あとで/854users 「界隈がざわつくほど超進化したPMBOK第7版」に私たちはどう取り組むか | 櫛田 瑞穂 | SpeakerDeck
148あとで/1128users 【登大遊】天才エンジニアの安寧を求めない生き方「日本で“大義”を持って働く選択は有利」 - エンジニアtype | 転職type
146あとで/1624users 元葬儀屋のワイが神奈川県警の悪事を淡々と話すスレ : うしみつ-5chまとめ- #神奈川
143あとで/756users 事業開発者・プロダクトマネージャーが知っておくべきフレームワーク7選|Shin|note
142あとで/1250users 「Google検索は死んでいる」がバズったので「まとも検索」を作った。:村上福之の「ネットとケータイと俺様」:オルタナティブ・ブログ
138あとで/728users OSS未経験「なにから始めたらいいかわからない…」←これを一気に解決する神リポジトリ - Qiita
137あとで/1202users 中小企業でApple製品を利用する前にやっておくこと | Hiroshiman | Zenn
128あとで/1357users 1分でわかるウクライナの歴史 | anond.hatelabo.jp
124あとで/1265users 【Mac】Kindle本も永久保存!自動スクショでPDF化する方法|脱凡リーマンブログ
124あとで/1192users これだけは押さえよう!住所フォームの作り方 - ケンオールブログ
119あとで/928users 今のウクライナ情勢が分かりやすくなる…地政学漫画『紛争でしたら八田まで』が凄いと話題 | Togetter
118あとで/875users 「詩」というもの/谷川俊太郎|「新潮」編集部|note
118あとで/955users 子どもの自己肯定感を下げるNG言動 5000人を育成してわかった低い子の特徴(みらのび) - Yahoo!ニュース
115あとで/1012users 人は「楽と感じる方法」しか選ばないことを前提に、仕組みを作らなければならない。 | 桃野泰徳 | Books & Apps
112あとで/1044users 定年退職後に料理をはじめた父の「大葉漬け」がヤミツキ必至の美味しさでご飯がとまらない/ 大葉の大量消費にもオススメ! | 砂子間正貫 | RocketNews24
112あとで/760users 東京都デジタル人材確保・育成基本方針 ver.1.0 | 東京都 | SpeakerDeck
111あとで/631users ソフトウェアアーキテクチャの基礎 | O'Reilly Japan
108あとで/652users ブラウザで動くサービスを作るときの技術選定 | moga | Zenn
105あとで/755users 2024年に制度変更「つみたてNISA」 始めるなら2022年が有利な理由 | マネーポストWEB
https://anond.hatelabo.jp/20220120221328
お前これか
28歳男プログラマー。地方零細IT企業に勤めてるけどコロナをきっかけに求人の選択肢が増えたのと年齢的に焦りが出てきたので転職(+婚活)活動中。
Webプログラマー+自社サービス+フルリモートで初年度年収600万目指してるけどうまく行かない、今のところ3社落ちた。
1社目は面談時に噛み合わない感じがあったのでまあしゃーなしかなって思った。1次面接落ち。
2社目はその会社が出してるサービスとほぼ似たようなサービスを開発主導したことあったので「御社の○○で使われているXX機能(プレスリリース打つレベル機能)とほぼ同じものをRTA感覚で実装して2日でリリースしました」とかアピールしまくったのに余裕の1次面接落ち。倍率高そうだしこんなもんかーって思った。
3社目は「あなたのテックリード経験などは経歴的に弊社の求める人材とマッチしていてポートフォリオに載せてる個人開発アプリの○○なども魅力的で是非一緒に働きたいと~」っていう600万のスカウトが来たのに書類選考で落とされた。んな馬鹿なと思った
正直学歴とかは偏差値の概念すらないようなものだけどテックリード経験ありでDDDやらクリーンアーキテクチャやらCIやら主導して導入経験もある俺は余裕で無双できるもんかと思ってた。
でもそれだけじゃ600万は流石に難しいのかなあ。単価高いフルリモート求人じゃ多分全国の数十人の中の1番に選ばれんといけん感じだもんなぁ。東大卒のガチガチ勢に叩きのめされてたらどうしようもないもんな。
プログラマーをやっていると、何やっても火を噴くようになったソースコードというのを目にすることがある。
だが火を噴きつつもなんとなくタスクは完了できるし、いきなりそうなったわけでもないのでゆでガエルの様に経営陣はこんなもんだろうと深刻に見ようとしない。
だが、ちょっとした機能変更ですら1人月かかるなどという状況は異常だ。
これはそのソフトウェアが採用したアーキテクチャが死んだ、ということでもある。
アーキテクチャは当初はとてもいいものだろうとみんなが考えて採用するが、時と共に基盤技術が陳腐化する、新しい技術が台頭するということによって陳腐化したり使い物にならなくなったりする。
また、経済の発展と共にそのアーキテクチャではもたないようになることもある。
50cmくらいの溝にかける橋なら適当な板でも構わないが、その端の両端に気をつなぎ合わせて利根川を渡す橋を架けるとか、利根川をまたげるくらいの板を利根川に渡してみてもそれは端にはならない。自重で瞬く間に崩壊するだろう。
だが、ソフトウェアの世界では、じゃぁ、更迭の橋げたを下に並べようとかそういう事をする。
元の板なんかなくてもいいんじゃないですか?
いやもう橋の中に埋め込まれてとることはできない。
いや、だったら横にもう一つ橋を架けたら・・・
そんな金のかかることできるか!
みたいな変な議論をする羽目になる。
橋につぎはぎするのに毎年10億円を50年払い続けるのはいいが、新しい橋を20億円かけて架けてその後毎年2億円位のメンテナンスコストで済むほうは選ばない。
会津大大学院の入試について情報がほとんどなかったので、第2回試験を受けたメモをいくつか残しておく
大学院進学フェアでも話題には上がるので、記事に残しても問題はない認識
具体的な数字は分からないけど、毎年1,2人は落ちているっぽいので、98% ぐらい?
寝坊や辞退などでそもそも受験しなかった人が落ちている気がする、しらんけど
1ヶ月以上はゆとりを持って依頼をする
具体的に何を書いたのか聞いたほうが良い
(研究計画書や面接試験で話に辻褄が合わないと気持ち悪いので)
まず「大学院で何をするのか(したいのか/させてくれるのか)」を指導教員と議論したほうがいい
研究計画書に書いた内容について、割とガッツリ面接試験で聞かれる(後述)
指定されたフォーマットであれば1ページに収める必要はないらしいので、私は2枚書いた
どれくらい重視されるのかまったく分からん
とりあえず進級できるスコア持っていれば大丈夫なんじゃないかと思ってる
スーツじゃなくてもいいらしい、しらんけど
振り込み金額を指定すると、それに手数料が上乗せされたので、特に気にせず金額指定する
募集要項に書いてあるのでよく読む よ~く読む
朱書を忘れない 念のために宛名も書いた
学生募集係の方が書類の不備をチェックしてくれる 感謝を忘れない
他大は スーツ:私服=9:1 のこともあるらしいけど、会津大は スーツ:私服=6:4 ぐらいだった
持ってきて研究室や待合室で履き替えるのも良いと思う
私は私服で行ったけど、何も言われなかった
試験日の1週間ほど前に学生課から連絡がくるので、受験票をもらう
「専攻する分野と研究計画に関連する専門知識について英語による5分程度の発表」と指定されてる
具体的にどんな発表をするのが正しいか全然わからなかったけど、研究計画書に書いた内容を噛み砕いて説明した
印刷した資料を配ることもできるし、PC をプロジェクタにつなげることもできる
機材トラブルで泣きたくなかったので、私はプレゼン資料を印刷して配布した
面接官は2人なので、自分の分も含めて3部以上は持っていくとよい
私は保険のために10部も印刷した 相手のことを考えてカラーコピーのほうがいい
いきなりプレゼンするのかなと思ったら、まず簡単な自己紹介を要求された
briefly のレベルが分からなかったので、名前と所属と興味分野の話を30秒ぐらいで話した
プレゼンした内容についてガンガン質問される マジでガンガン質問される
「(資料に挿入した画像)についてもっと詳しく説明できるか?」
「なぜこれをやりたいのか?なぜやる必要があるのか?」
「この研究が達成されるとどんな良いことがあるのか?」
いわゆる research purpose、research questions、gaps、contributions あたりの質問がほとんど
卒論をやっていない退学進学組は、ここを突かれるとヤバそうなので気をつける
「なぜ就職ではなく進学を選んだのか」
「大学を1年間短縮するとデメリットもあるが、なぜ短縮するのか」
についても聞かれたけど、これが一番むずかしかった
本来、大学には長く在学していたほうが勉強・研究ができて良いので ...
数学・物理・コンピュータアーキテクチャあたりの話は一切しなかった
でもこれは専攻する分野によるのと、研究計画書に書いた内容が影響すると思う
合格発表まで首を洗って待つ
入試で気になることがあったら、学生募集係に質問するといいらしい。事務的な話以外でも答えてくれることがある。
大学院進学フェアには行ったほうがいい。いろいろ聞ける。躊躇せずにガンガン質問していい。(1年生でも4年生でもOK)
--
この本は5章まであるが、4章と5章はハンズオンであるため、文字としてまとめるのは1から3章に留める。
1章
【コンテナとは】
他のプロセスとは隔離された状態でOS上にソフトウェアを実行する技術
コンテナにはアプリの稼働に必要となるランタイムやライブラリを1つのパッケージとして全て含めることができる。そうすることでアプリの依存関係をすべてコンテナ内で完結できる。
全ての依存関係がコンテナ内で完結するため、オンプレでもクラウドでも起動する。
ステージング環境でテスト済みのコンテナイメージをプロダクション環境向けに再利用することで、ライブラリ差異による環境ごとのテストに必要な工数を削減できる。
サーバー仮想化では、仮想マシンレベルでリソースを分離し、ゲストOS上でアプリが起動する。つまり、アプリだけでなく、ゲストOSを動かすためのコンピューティングリソースが必要。
一方コンテナは、プロセスレベルで分離されてアプリが稼働する。OSから見ると単に1つのプロセスが稼働している扱いになる。
【Dockerとは】
アプリをコンテナイメージとしてビルドしたり、イメージの取得や保存、コンテナの起動をシンプルに行える。
イメージ(アプリケーションと依存関係がパッケージングされる。アプリ、ライブラリ、OS)
レジストリに保存
【Dockerfileとは】
このファイルにコマンドを記述することで、アプリに必要なライブラリをインストールしたり、コンテナ上に環境変数を指定したりする。
1章まとめ、感想
コンテナの登場により、本番・開発環境ごとに1からサーバーを立ててコマンドや設定ファイルを正確に行い、環境差異によるエラーをつぶしていき...というこれまでの数々の労力を減らすことができるようになった。
2章
ECSとEKSがある。
オーケストレーションサービスであり、コンテナの実行環境ではない。
ECSの月間稼働率は99.99%であることがSLA として保証。
デプロイするコンテナイメージ、タスクとコンテナに割り当てるリソースやIAMロール、Cloud Watch Logsの出力先などを指定する。
指定した数だけタスクを維持するスケジューラーで、オーケストレータのコア機能にあたる要素。サービス作成時は起動するタスクの数や関連づけるロードバランサーやタスクを実行するネットワークを指定。
2種類ありECSとFargateがある。 Fargateに絞って書く
Fargateとは
コンテナ向けであるためEC2のように単体では使用できず、ECSかEKSで利用する
サーバーのスケーリング、パッチ適用、保護、管理にまつわる運用上のオーバーヘッドが発生しない。これにより、アプリ開発に専念できるようになる
・コンテナごとにENIがアタッチされるため、コンテナごとにIPが振られるため起動に若干時間がかかる
ECR
・App Runner
利用者がコードをアップロードするだけでコードを実行できるサービス。AWS側で基盤となるコンピューティングリソースを構築してくれるフルマネージドサービス。
App Runner
2021年5月にGA(一般公開)となったサービス。プロダクションレベルでスケール可能なwebアプリを素早く展開するためのマネージドサービス。Githubと連携してソースコードをApp Runnerでビルドとデプロイができるだけでなく、ECRのビルド済みコンテナイメージも即座にデプロイできる。
ECSとFargateの場合、ネットワークやロードバランシング、CI/CDの設定などインフラレイヤに関わる必要があり、ある程度のインフラ知識は必要になる。App Runnerはそれらインフラ周りをすべてひっくるめてブラックボックス化し、マネージドにしていることが特徴である。
ECS Fargateを利用した場合のコスト、拡張性、信頼性、エンジニアリング観点
【コスト】
EC2より料金は割高。ただし、年々料金は下がってきている。
【拡張性】
デプロイの速度 遅め
理由1 コンテナごとにENIが割り当てられるため。ENIの生成に時間がかかる
理由2. イメージキャッシュができないため。コンテナ起動時にコンテナイメージを取得する必要がある。
タスクに割り当てられるエフェメラルストレージは200GB。容量は拡張不可。ただし永続ストレージの容量が必要な場合はEFSボリュームを使う手もある。
割り当て可能リソースは4vCPUと30GB。機械学習に用いるノードのような大容量メモリを要求するホストとしては不向き
【信頼性】
Fargateへのsshログインは不可。Fargate上で起動するコンテナにsshdを立ててsshログインする方法もあるが、セキュアなコンテナ環境にsshの口を開けるのはリスキーである。他にSSMのセッションマネージャーを用いてログインする方法もあるが、データプレーンがEC2の時に比べると手間がかかる。
しかし、2021年3月にAmazon ECS Execが発表され、コンテナに対して対話型のシェルや1つのコマンドが実行可能となった。
Fargateの登場からしばらく経過し、有識者や経験者は増え、確保しやすい。
多数のユーザーに使ってもらう
CI/CDパイプラインを形成し、アプリリリースに対するアジリティを高める
各レイヤで適切なセキュリティ対策(不正アクセス対策、認証データの適切な管理、ログ保存、踏み台経由の内部アクセス)を施したい
2章まとめ、感想
AWSが提供するコンテナサービスにはいくつかあり、なかでもFargateというフルマネージドなデータプレーンがよく使われている。ホスト管理が不要でインフラ関連の工数を削減できる一方、EC2より料金が高く、起動に若干時間がかかるのが難点である。
3章
この章では運用設計、ロギング設計、セキュリティ設計、信頼性設計、パフォーマンス設計、コスト最適化設計について述べている。
Fargate利用時のシステム状態を把握するためのモニタリングやオブザーバビリティに関する設計、不具合修正やデプロイリスク軽減のためのCI/CD設計が必要である。
モニタリングとは
システム内で定めた状態を確認し続けることであり、その目的はシステムの可用性を維持するために問題発生に気づくこと
オブザーバビリティとは
オブザーバビリティの獲得によって、原因特定や対策の検討が迅速に行えるようになる
・cloud watch logs
・Firelens
AWS以外のサービスやAWS外のSaaSと連携することも可能
Firehoseを経由してS3やRed shift やOpenSearch Serviceにログを転送できる
fluent bitを利用する場合、AWSが公式に提供しているコンテナイメージを使用できる
- ソフトウェアやライブラリの脆弱性は日々更新されており、作ってから時間が経ったイメージは脆弱性を含んでいる危険がある。
- 方法
脆弱性の有無はECRによる脆弱性スキャン、OSSのtrivyによる脆弱性スキャン
継続的かつ自動的にコンテナイメージをスキャンする必要があるため、CI/CDに組み込む必要がある。しかし頻繁にリリースが行われないアプリの場合、CICDパイプラインが実行されず、同時にスキャンもなされないということになるため、定期的に行うスキャンも必要になる。
cloud watch Eventsから定期的にLambdaを実行してECRスキャンを行わせる(スキャン自体は1日1回のみ可能)
Fargateの場合、サービス内部のスケジューラが自動でマルチAZ構成を取るため、こちらで何かする必要はない。
・障害時切り離しと復旧
ECSはcloud watchと組み合わせることでタスク障害やアプリのエラーを検知できるうえに、用意されてるメトリクスをcloud watchアラームと結びつけて通知を自動化できる
ALBと結びつけることで、障害が発生したタスクを自動で切り離す
AWS内部のハードウェア障害や、セキュリティ脆弱性があるプラットフォームだと判断された場合、ECSは新しいタスクに置き換えようとするその状態のこと。
Fargateの場合、アプリはSIGTERM発行に対して適切に対処できる設定にしておかなくてはならない。そうしておかないとSIGKILLで強制終了されてしまう。データ不整合などが生じて危険。
ALBのリスナールールを変更し、コンテンツよりもSorryページの優先度を上げることで対処可能
自動でクォータは引き上がらない
cloud watch メトリクスなどで監視する必要がある。
パフォーマンス設計で求められることは、ビジネスで求められるシステムの需要を満たしつつも、技術領域の進歩や環境の変化に対応可能なアーキテクチャを目指すこと
利用者数やワークロードの特性を見極めつつ、性能目標から必要なリソース量を仮決めする
FargateはAutoscalingの利用が可能で、ステップスケーリングポリシーとターゲット追跡スケーリングポリシーがある。どちらのポリシー戦略をとるかを事前に決める
既存のワークロードを模倣したベンチマークや負荷テストを実施してパフォーマンス要件を満たすかどうかを確認する
・スケールアウト
サーバーの台数を増やすことでシステム全体のコンピューティングリソースを増やそうとする概念。可用性と耐障害性が上がる。既存のタスクを停止する必要は原則ない。
スケールアウト時の注意
・Fargate上のECSタスク数の上限はデフォルトでリージョンあたり1000までであること。
ECSタスクごとにENIが割り当てられ、タスク数が増えるごとにサブネット内の割当可能なIPアドレスが消費されていく
Application Autoscaling
Cloud Watchアラームで定めたメトリクスの閾値に従ってスケールアウトやスケールインを行う
CPU使用率が60~80%ならECSタスク数を10%増加し、80%以上なら30%増加する、という任意のステップに従ってタスク数を増減させる
--
この本は5章まであるが、4章と5章はハンズオンであるため、文字としてまとめるのは1から3章に留める。
1章
【コンテナとは】
他のプロセスとは隔離された状態でOS上にソフトウェアを実行する技術
コンテナにはアプリの稼働に必要となるランタイムやライブラリを1つのパッケージとして全て含めることができる。そうすることでアプリの依存関係をすべてコンテナ内で完結できる。
全ての依存関係がコンテナ内で完結するため、オンプレでもクラウドでも起動する。
ステージング環境でテスト済みのコンテナイメージをプロダクション環境向けに再利用することで、ライブラリ差異による環境ごとのテストに必要な工数を削減できる。
サーバー仮想化では、仮想マシンレベルでリソースを分離し、ゲストOS上でアプリが起動する。つまり、アプリだけでなく、ゲストOSを動かすためのコンピューティングリソースが必要。
一方コンテナは、プロセスレベルで分離されてアプリが稼働する。OSから見ると単に1つのプロセスが稼働している扱いになる。
【Dockerとは】
アプリをコンテナイメージとしてビルドしたり、イメージの取得や保存、コンテナの起動をシンプルに行える。
イメージ(アプリケーションと依存関係がパッケージングされる。アプリ、ライブラリ、OS)
レジストリに保存
【Dockerfileとは】
このファイルにコマンドを記述することで、アプリに必要なライブラリをインストールしたり、コンテナ上に環境変数を指定したりする。
1章まとめ、感想
コンテナの登場により、本番・開発環境ごとに1からサーバーを立ててコマンドや設定ファイルを正確に行い、環境差異によるエラーをつぶしていき...というこれまでの数々の労力を減らすことができるようになった。
2章
ECSとEKSがある。
オーケストレーションサービスであり、コンテナの実行環境ではない。
ECSの月間稼働率は99.99%であることがSLA として保証。
デプロイするコンテナイメージ、タスクとコンテナに割り当てるリソースやIAMロール、Cloud Watch Logsの出力先などを指定する。
指定した数だけタスクを維持するスケジューラーで、オーケストレータのコア機能にあたる要素。サービス作成時は起動するタスクの数や関連づけるロードバランサーやタスクを実行するネットワークを指定。
2種類ありECSとFargateがある。 Fargateに絞って書く
Fargateとは
コンテナ向けであるためEC2のように単体では使用できず、ECSかEKSで利用する
サーバーのスケーリング、パッチ適用、保護、管理にまつわる運用上のオーバーヘッドが発生しない。これにより、アプリ開発に専念できるようになる
・コンテナごとにENIがアタッチされるため、コンテナごとにIPが振られるため起動に若干時間がかかる
ECR
・App Runner
利用者がコードをアップロードするだけでコードを実行できるサービス。AWS側で基盤となるコンピューティングリソースを構築してくれるフルマネージドサービス。
App Runner
2021年5月にGA(一般公開)となったサービス。プロダクションレベルでスケール可能なwebアプリを素早く展開するためのマネージドサービス。Githubと連携してソースコードをApp Runnerでビルドとデプロイができるだけでなく、ECRのビルド済みコンテナイメージも即座にデプロイできる。
ECSとFargateの場合、ネットワークやロードバランシング、CI/CDの設定などインフラレイヤに関わる必要があり、ある程度のインフラ知識は必要になる。App Runnerはそれらインフラ周りをすべてひっくるめてブラックボックス化し、マネージドにしていることが特徴である。
ECS Fargateを利用した場合のコスト、拡張性、信頼性、エンジニアリング観点
【コスト】
EC2より料金は割高。ただし、年々料金は下がってきている。
【拡張性】
デプロイの速度 遅め
理由1 コンテナごとにENIが割り当てられるため。ENIの生成に時間がかかる
理由2. イメージキャッシュができないため。コンテナ起動時にコンテナイメージを取得する必要がある。
タスクに割り当てられるエフェメラルストレージは200GB。容量は拡張不可。ただし永続ストレージの容量が必要な場合はEFSボリュームを使う手もある。
割り当て可能リソースは4vCPUと30GB。機械学習に用いるノードのような大容量メモリを要求するホストとしては不向き
【信頼性】
Fargateへのsshログインは不可。Fargate上で起動するコンテナにsshdを立ててsshログインする方法もあるが、セキュアなコンテナ環境にsshの口を開けるのはリスキーである。他にSSMのセッションマネージャーを用いてログインする方法もあるが、データプレーンがEC2の時に比べると手間がかかる。
しかし、2021年3月にAmazon ECS Execが発表され、コンテナに対して対話型のシェルや1つのコマンドが実行可能となった。
Fargateの登場からしばらく経過し、有識者や経験者は増え、確保しやすい。
多数のユーザーに使ってもらう
CI/CDパイプラインを形成し、アプリリリースに対するアジリティを高める
各レイヤで適切なセキュリティ対策(不正アクセス対策、認証データの適切な管理、ログ保存、踏み台経由の内部アクセス)を施したい
2章まとめ、感想
AWSが提供するコンテナサービスにはいくつかあり、なかでもFargateというフルマネージドなデータプレーンがよく使われている。ホスト管理が不要でインフラ関連の工数を削減できる一方、EC2より料金が高く、起動に若干時間がかかるのが難点である。
3章
この章では運用設計、ロギング設計、セキュリティ設計、信頼性設計、パフォーマンス設計、コスト最適化設計について述べている。
Fargate利用時のシステム状態を把握するためのモニタリングやオブザーバビリティに関する設計、不具合修正やデプロイリスク軽減のためのCI/CD設計が必要である。
モニタリングとは
システム内で定めた状態を確認し続けることであり、その目的はシステムの可用性を維持するために問題発生に気づくこと
オブザーバビリティとは
オブザーバビリティの獲得によって、原因特定や対策の検討が迅速に行えるようになる
・cloud watch logs
・Firelens
AWS以外のサービスやAWS外のSaaSと連携することも可能
Firehoseを経由してS3やRed shift やOpenSearch Serviceにログを転送できる
fluent bitを利用する場合、AWSが公式に提供しているコンテナイメージを使用できる
- ソフトウェアやライブラリの脆弱性は日々更新されており、作ってから時間が経ったイメージは脆弱性を含んでいる危険がある。
- 方法
脆弱性の有無はECRによる脆弱性スキャン、OSSのtrivyによる脆弱性スキャン
継続的かつ自動的にコンテナイメージをスキャンする必要があるため、CI/CDに組み込む必要がある。しかし頻繁にリリースが行われないアプリの場合、CICDパイプラインが実行されず、同時にスキャンもなされないということになるため、定期的に行うスキャンも必要になる。
cloud watch Eventsから定期的にLambdaを実行してECRスキャンを行わせる(スキャン自体は1日1回のみ可能)
Fargateの場合、サービス内部のスケジューラが自動でマルチAZ構成を取るため、こちらで何かする必要はない。
・障害時切り離しと復旧
ECSはcloud watchと組み合わせることでタスク障害やアプリのエラーを検知できるうえに、用意されてるメトリクスをcloud watchアラームと結びつけて通知を自動化できる
ALBと結びつけることで、障害が発生したタスクを自動で切り離す
AWS内部のハードウェア障害や、セキュリティ脆弱性があるプラットフォームだと判断された場合、ECSは新しいタスクに置き換えようとするその状態のこと。
Fargateの場合、アプリはSIGTERM発行に対して適切に対処できる設定にしておかなくてはならない。そうしておかないとSIGKILLで強制終了されてしまう。データ不整合などが生じて危険。
ALBのリスナールールを変更し、コンテンツよりもSorryページの優先度を上げることで対処可能
自動でクォータは引き上がらない
cloud watch メトリクスなどで監視する必要がある。
パフォーマンス設計で求められることは、ビジネスで求められるシステムの需要を満たしつつも、技術領域の進歩や環境の変化に対応可能なアーキテクチャを目指すこと
利用者数やワークロードの特性を見極めつつ、性能目標から必要なリソース量を仮決めする
FargateはAutoscalingの利用が可能で、ステップスケーリングポリシーとターゲット追跡スケーリングポリシーがある。どちらのポリシー戦略をとるかを事前に決める
既存のワークロードを模倣したベンチマークや負荷テストを実施してパフォーマンス要件を満たすかどうかを確認する
・スケールアウト
サーバーの台数を増やすことでシステム全体のコンピューティングリソースを増やそうとする概念。可用性と耐障害性が上がる。既存のタスクを停止する必要は原則ない。
スケールアウト時の注意
・Fargate上のECSタスク数の上限はデフォルトでリージョンあたり1000までであること。
ECSタスクごとにENIが割り当てられ、タスク数が増えるごとにサブネット内の割当可能なIPアドレスが消費されていく
Application Autoscaling
Cloud Watchアラームで定めたメトリクスの閾値に従ってスケールアウトやスケールインを行う
CPU使用率が60~80%ならECSタスク数を10%増加し、80%以上なら30%増加する、という任意のステップに従ってタスク数を増減させる
元アジャイルコーチとして、アメリカのガチの、ガチのシステム開発現場に、言うたらエスノグラフィ(行動観察調査)をしてるようなもんです。三流プログラマながら。
そういうリファレンスみたいなことをお伝えしたら、皆さん(Regional Scrum Gathering Tokyo 2022の参加者)が喜んでくれるかなとか思って、内容を構成しています。
ただ、僕が知っているのはマイクロソフトだけですし、自分の職場だけなので、主語が大きすぎるとか、そう言うのはやめてください。心が傷つくから(笑)
そういうのを踏まえて聞いてください(笑)。全部一次情報で、人から聞いたものではないです。ちょっとだけマネージャ関連のところはマネージャに聞いたところもありますが、基本的には自分が経験したことのみで構成します。
ウォーターフォールは使われていない
まず滝。ウォーターフォールがどれぐらい使われてるのかって話ですけど、これは簡単です。ゼロパーセント、本当に見たことないです。
だからといって本当に素晴らしいスクラムをみんなやってるかっていうと、そうでもない。どれぐらいプロセスに対してマチュア(成熟)かはチーム次第なんだけど、少なくともイテレーティブじゃないのはないし、アップフロントデザイン(開発前の仕様策定)を大量に時間をかけてやってるというのもない。
デザインドキュメントっていうのを書く人もいれば書かない人もいて、書く人が多いですけど、書いても5ページぐらい。
何年か前にサム・グッケンハイマーというDevOpsで有名な人が日本に来たときに日本のお客さんに「ウォーターフォールとアジャイルのメリットデメリットを教えてください」って聞かれて、彼が「ウォーターフォールは全くメリットがないのでやめておきなさい」って言い放って。
私は間違っていた。ごめん。ウォーターフォールは何のメリットも無い - メソッド屋のブログ
分かります。誰も使ってないんだから。やっぱりもうやめといた方がいいですよね、正直話無理があります。
次は、僕のチームがどんな感じで運用されてるかっていうお話をします。
マイクロソフトには統一プロセスとかなくて、基本的にチームをどう回すかはチーム次第なんですよ。でもだいたいみんな似たような感じでやってると思います。
基本的にはスモールチームです。どんな大きなプロジェクトであっても、スモールチームの集まりって感じです。
自分のチームについては、これがよいやり方かは分からないですが、個人商店みたいなもので。「IC」というのはIndividual Contributorですね、開発者。
マネージャからアサインされるバックログが基本的にはふわっとしているので、ICがそれを明確にします。
ICが仕様を自分で明確化して、自分でデザインして、インプリメントする。だからそれぞれがレスポンシビリティを持っていて、それぞれが実装をする。
ただ、同じマイクロサービスをメンテする役割の人みたいなのがいて、それは「Buddy」(バディ)みたいになっていて、僕の場合は例えば「スケールコントローラー」っていうのを開発していますが、スケールコントローラーのチームでバディになってると、質問というかお互いに話が聞きやすい。すぐに答えてくれやすいですね。
他のチームとかになると、ちょっとバリアがあって。やっぱりみんなそれぞれの仕事をやっているので、プライオリティがそれぞれあるんですよ。だから違うチームの人になると意地悪じゃなくて彼らのレスポンスは1日に1回とかになったりするわけですよね。仕方がないことです。
多分このチームの単位はマネージャが管理できる最大以下の人数で構成されてるんじゃないかなと思います。だから本当に自分のチームはそれぞれが個人商店みたいな感じですね。自分でレスポンシビリティを持って自分でやる。それは新人であっても一緒です。
司会)ここでちょっと会場から質問が入りました。このチームというのはどういう単位なんでしょうか。プロダクトの単位なのか、どういう単位なのか。
(右下の点線で囲われたところ)このチームはスケールコントローラをやっていて、(右上の3つのICを指して)このあたりはプラットフォームと言って中の基盤みたいなことをやってたりします。
でも基盤もかなり巨大なので、内部でいくつか分かれているんですけど、同じマネージャが見て、みんなを助けている、という感じですね。
司会)隣のチームと、このチームを分けているのは、マネージャが違うだけ?
ええと、大きな機能で分かれているというのがあります。例えば隣のチームはランタイムっていうチームなんで、Azure Functionsのランタイムを担当してるんですよ。
さて、エンジニアの評価っていうのはどんな感じになってるかっていうと、この図にはマイクロソフトは入っていないのですが、僕の友達に「ゆうさん」っていう人がいて、彼がブログでGAFAの給与体系みたいなをまとめてくれて、マイクロソフトも似たような感じです。
参考:GAFA米国本社のエンジニアの年収をジョブレベル別に比較してみた【Google・Amazon・Facebook・Apple】
こういう情報って外部に公開されてるので別に隠すことはないし、マイクロソフトの給料の額とかも調べられるんですよ。
どういうふうになってるかっていうと、エンジニアとしてランクがあるんですよね、「SDE1」「SDE2」とか。マイクロソフトの場合は「シニアソフトウェアエンジニア」があって「プリンシパルエンジニア」がある、みたいな。
このランクの人はこういうことができる、っていうのが明確に定義されていて、それによって給料が決まるんですね。
だから自分が給料を上げたかったらどうするかっていうと、プロモート(ランク上げ)してもらえるように頑張るって感じです。他の人との戦いじゃないんです。
いまより一つ上のランクの仕事をしばらくしていれば、マネージャが「こいつは今はシニアだけどプリンシパルの仕事してるからプロモートしよう」とノミネートしてくれる。
そうやってノミネートされたら次のレベルに行けるし、行けなかったら転職をする。転職するとそこでネゴシエーションしやすいので、その時に例えばシニアとかプリンシパルになれればその給料がもらえる。
ただ、そういうふうに上に行くとレスポンシビリティも大きくなるので、自分でチョイスする感じですね。自分でチョイスするし、自分との戦いなので。だから他の人と比べて不公平とか全然思わない。
給料を上げたかったら次のレベルになればいい。そういうアクションをとればいいので、あくまで自分との戦いって感じになります。
マネージャの存在っていうのは僕的にはすごい(日本と)違ってるように感じています。
日本にいるときはマネージャって進捗管理や課題管理をしたりとかして、プログラマとか開発者を指揮するとかそんなイメージだったんですかね、僕のイメージとしては。
アメリカの場合は、彼らが重視してくれるのは僕のキャリアなんですよ。僕がハッピーかどうかとか、僕がキャリアで成功するかっていうのをすごい重視してくれるんです。
これまで何人かマネージャが変わりましたけど、みんなそうでした。マイクロソフトには明確にそう定義されているんです。だからマネージャはみんなそういう動きをしてくれます。
マネージャのすごく大事な仕事に「アンブロック」というのがあります。IC、つまり開発者の人がどこかで詰まっている状態になると、マネージャが助けてくれる。ブロックされているものをアンブロックしてくれるんです。
例えば、僕が技術的に詰まるとして、誰かに聞かなあかんけど、誰か聞かなあかん人がなかなか答えてくれへんとか、そういうこともあるかもしれないです。
そういうブロックをされる状況が一番生産性を阻害すると思うんですね。
そういうときにマネージャがアンブロックを手伝ってくれる。ある人に繋いでくれたり、マネージャ経由で他の人が僕に協力してくれたりとか。
マネージャが、このプルリクエストを見たら分かりやすいよと教えてくれるとか。
あと結構面白いのは、少なくとも今の僕の職場では、納期が基本的にない感じです。
あるときもあるんですよ。どんなときかっていうと、マイクロソフト最大のイベントの「Build」というのが5月ぐらいにあって、そのキーノートで発表される予定のプロダクトみたいなもの。それが決まったら納期があるのかもしれないですけど。
マネージャも僕に対して「早くしてください」って言ったことは1回もないですね。どっちかというと、僕が「何か遅くてごめんな」とか言ってたら、「いやそんな気にすんなよ」って、「よくあることだよ」とか言われたりする。
これは多分いろんな意味合いがあるんですよね。多分クラウドのプラットフォームって、難しいことがいろいろあって、例えば自分が1週間でできるって思ったのに2カ月かかったりとか、ほんまにあるんですよ。
例えば、JVMにあるJarをアタッチするだけに見えた仕事に、僕は半年かかりました。
僕の能力のなさもあるかもしれないですけど、そういういろんな予想外のことが起こる。
やっぱり世界中の人が使うプラットフォームなので、よく分かってない実装とかしたらむちゃくちゃになるんです。ちゃんと理解して、より良いアーキテクチャを作らないとひどい目にあう。
だから多分マネージャは絶対に急かさないんだと思います。ちゃんと理解して出来るようになれば、次からは開発が速くなる。だからマネージャとしてはそこで急かさないことによって未来への投資をしてる感じなんじゃないかなと、僕は思ってます。
バックログはあり予定もあるが、達成されないこともしょっちゅう
司会)すいません、マネージャの話しに行く前に。質問が集まっていて。納期がないという話に関して皆さんが大混乱に陥っていてですね(笑)。納期がないとすると逆に何があるのか。バックログみたいなのがあるのか、ロードマップがあるのか。どういうものを始点に駆動されていて、牛尾さんの仕事が始まるのか。
バックログですね。大きなトピックだけはある。今期はこれをやろう、というのはあるんですよ。
だいたい今期はこれとこれをやっていこうというのがあって、それを荒い粒度ですけどブレイクダウンしたストーリーにして、それをICにアサインするんです。
でも、それが今期に達成されないということはしょっちゅう起こります。
思ったよりもすごく難しかったとか、あるシステムで改変が入るのでそれまで作れないとか、そういうのがしょっちゅうある。でもそれでそのICが責められることはないです。
変化は見通せないので仕方ないですよね。オーガナイズはされているけど、できなかったときはできないと認める、ということです。
司会)お客様からバックログの元になるような要求がきて、それがリリースされるまでのタイムスパンはどのくらいなんでしょうか?
僕らの場合はプロダクトオーナーみたいなチームとしてプロダクトマネージャがあって、バックログの発生元はプロダクトマネージャが決めるのですが、そのインプットソースとしては、彼らの戦略(ストラテジ-)とカスタマフィードバックですね。
あとはハッカソンでエンジニアがなにかプロポーズするときもあります。
そういうもののなかからプロダクトマネージャが、今期これをやればインパクトがあるんじゃないかと考えるものがピックアップされます。
で、それが達成されてリリースされるまでの期間は本当にピンキリです。
僕の場合は、早いときは1週間で終わりましたけど、さっきの話みたいに1週間で終わると思ったやつが半年かかったこともあります。
僕の上にはプリンシパルマネージャがいるんですね、それが日本で言ったら課長みたいなもので、その上に部長みたいなのがいて、で、テクニカルフェロー、これは事業部長みたいな感じです。
彼らの技術力はどんな感じか。
僕の1つ上の上司は、Azure FunctionsのJavaランタイムをイチから書いた人です。
その上の人は、Azure Automationの開発をしている人で別チームなので細かいところまでは知らないのですが、技術力がハンパない、ということだけは分かります。
何でかと言うと、どんなテッキーな話題を振っても、ものすごく早く深く理解するんです。彼が経験したことのないことであっても、Kubernetesでも、彼がやったことのないPythonとかでも、完璧に理解してアーキテクチャの深い話をするんです。
で、テクニカルフェロー。これはAzureの主要なサービスをイチから書いていたりします。
つまり何が言いたいかというと、僕の上司で僕よりもプログラミングができない人なんて一人もいないんです。
そしてこういう人が僕の仕事のサポートをしてくれる、応援をしてくれるわけです。
だからこんな上司に何かを説得する必要なんてないんです。彼らがテッキーなミーティングに参加して、しかも僕らにすごい鋭いアドバイスをくれるんですよ。
皆さんがもしマネージャをやるときには、こういう人たちと世界で戦わないといけない、ということをちょっと意識していただきたいんです。
28歳男プログラマー。地方零細IT企業に勤めてるけどコロナをきっかけに求人の選択肢が増えたのと年齢的に焦りが出てきたので転職(+婚活)活動中。
Webプログラマー+自社サービス+フルリモートで初年度年収600万目指してるけどうまく行かない、今のところ3社落ちた。
1社目は面談時に噛み合わない感じがあったのでまあしゃーなしかなって思った。1次面接落ち。
2社目はその会社が出してるサービスとほぼ似たようなサービスを開発主導したことあったので「御社の○○で使われているXX機能(プレスリリース打つレベル機能)とほぼ同じものをRTA感覚で実装して2日でリリースしました」とかアピールしまくったのに余裕の1次面接落ち。倍率高そうだしこんなもんかーって思った。
3社目は「あなたのテックリード経験などは経歴的に弊社の求める人材とマッチしていてポートフォリオに載せてる個人開発アプリの○○なども魅力的で是非一緒に働きたいと~」っていう600万のスカウトが来たのに書類選考で落とされた。んな馬鹿なと思った
正直学歴とかは偏差値の概念すらないようなものだけどテックリード経験ありでDDDやらクリーンアーキテクチャやらCIやら主導して導入経験もある俺は余裕で無双できるもんかと思ってた。
でもそれだけじゃ600万は流石に難しいのかなあ。単価高いフルリモート求人じゃ多分全国の数十人の中の1番に選ばれんといけん感じだもんなぁ。東大卒のガチガチ勢に叩きのめされてたらどうしようもないもんな。
冴えない男に生まれた以上はスキルを上げて経験積んで資本主義社会で殴り合って金なり地位なり手に入れなきゃ俺なんて誰一人にも見向きもしてくれない。
食うにゃ困らんが、食うのに困らんだけの男など誰の視界にも入らない。負けたら死ぬまで孤独が続くだけ。