K's Atelier

個人的な学習記録

何がマイクロサービスになるのか

転職活動でいろんな会社のマイクロサービスと組織を見聞きして思ったこと - Runner in the High

同感。業務機能自体を分割するのは実際には厳しい。

例えば,保険業界の「契約」「顧客」は相互が業務的に極めて強く結合している。契約期間がものによっては数十年ということもあり,その間に顧客の属性がどんどん変わっていくのだ。両方合わせて履歴として管理されているので,分割は難しいだろう。

記事中に書かれているように,ドメインに特化しない,汎用的な機能がマイクロサービスに切り出されるのだと思う。AWSの各種サービス群のような別れ方だ。だから,クラウドベンダでない組織がマイクロサービスを設計するのであれば,「データベース+α」「キャッシュ+α」のような,「汎用機能+α」になるのが自然だ。

保険業界で考えるなら,オプショナルな「システム機能」をマイクロサービスで外に出していく,という考えになるのではないか。「特約」がマイクロサービスになるわけではない。あくまでも,主業務を補完する「運用通知を関係各所にばらまきますよー」といった機能がマイクロサービス化されていくのだと思う。

Demo

AWS講師準備の一環で,Demoを考えている。

 

CloudFormationのDemoの元

AWS CloudFormation VPC テンプレート - AWS CodeBuild

FargateのDemoの元。これで十分。

 

AWS Fargate で Linux コンテナを使う場合の、新しいコンソールを使用して開始する方法 - Amazon ECS

文中に記載がないようだが,Security GroupでHTTPを受け付けるようにしないと,当然ながら動作確認できない事態に陥る。

 

講義中のデモなので,「準備」「作成」「更新」「削除」などを手際よくできないと困る。クラウド環境なので,手数が多くて「あー,ネットが遅くて止まってますね・・・」とか言っていると講座が成立しない。ここはFargate一択だろう。また,Dockerコマンドを操作するのも間違いの元。Cloud9を使って頑張るのはまたの機会にする。

ここまで判断するのにだいぶ悩んでしまった。どうしてもプログラマ脳が抜けず,「最小限の労力で最大の効果」よりも「多く手を動かした方が見せてる感がする」となってしまう。

My Bucket, My Rules(AWS Builder Labs)

気分転換にS3のバケットポリシーを設定するLabを実施する。
が,最後でつまった。

			"Condition": {
				"StringNotEquals": {
					"s3:x-amz-server-side-encryption-aws-kms-key-id": "ARN"
				}
			}

"id"なのに指定するのはARNなのか。LabにもIDとARNの2つが表示されるのでハマった。Feedbackコメントにも書くところが無い。

AWS講師準備

認定試験まであと16日。

今やっていることは,

  1. テキスト全体像の書き出し(MindMap)
  2. アーキテクチャ図の書き写し(カラーペンで)
  3. スライドごとの想定質問の書き出し
  4. テキストに記載されているリンク先の確認
  5. 各サービスの最新ドキュメントの概要確認
  6. 演習題材に設定する課題の書き出し

テキストをかたっぱしから目視し,書き写して違和感を確認している。今は頭に入れるためにやっているのでこれでいいのだが,今後は「最新情報自体は頭にいれなくてもAIに聞けばうまいこと検索してくれる」ようになるだろう。

そんな近未来の講師は,受講者が「何となくこうじゃないかなー」と発した質問を,AIが適切に解釈してくれる「自然言語に変換する」のが仕事になるのではないか。

 

であれば,講師に必要な能力はAIから適切な情報を引き出すための

  1. 言語化能力(日本語,英語でできるだけ具体的に記述する)
  2. 思考力(結果の有効性,信ぴょう性の判断)

といった能力になるはず。

 

当然だが,AIによる要約は代表値に寄っていく。詳細は「あまり出てこないから」という理由で消えていく。新しいことを進めるには,「少数の人しか気づいていない観点」が重要になる。

ChatGPT

うそはうそであると見抜ける人でないと(AWSの質問をChatGPTにするのは)難しい

  • 現時点での感想を一言でいうと、「だめだこりゃ」です。

 

あはは。

AIは,こういう人が「私の言ってることが正解ですよね」と言ったことを読み取って学習していく。ChatGPTを「だめだこりゃ」と言っていられるのは今のうちだけだと思われる。

 

むかーし昔,C言語コンパイラが出始めのころは,コンパイラの最適化レベルを上げていくと,おかしなコードを吐く,というのが常識だった。

そのころのエンジニアは「こんなコンパイラ使えん」とは言わず,おかしなコードを吐くところだけインラインアセンブラで書いていた気がする。

今はそんなことも無くなった。

 

Javaが出始めのころ「こんな遅いもの使えん」という人が相当数いた。

私の指導教官は,「VMのスピードは,CPUの高速化に伴ってがんがん上がる。これを作ってる連中はそういう考えでやってる」とおっしゃっていた。

その通りになった。

 

「俺の考えていることには使えん」という考えは改めた方がいいと思う。「俺の考え」に縛られすぎている。

今後数年で,プログラミングの定義に「自分たちが期待した振る舞いをするよう,AIを鍛える活動」が入ってくる。

いかに効率的にAIを鍛えるか,のアイデア勝負になるのではないか。

 

従来の「いっぱい調べていっぱい経験した技術者が最強」という価値観は崩れるのだろう。

AWS講師準備のための材料集

AWS講師準備のための材料集。

  1. Black Belt Online Seminar
  2. 公式ドキュメントのTutorial
  3. AWS Skill Builder

あとはテキストを見ながらひたすら図をノートに書き写す。これだけで頭に入る。公式のtutorialはちょっと余計なことをしていたり,情報が古かったりするので,自分で試すことが重要。

あとの材料は,楽器を弾くことか。あまりにも同じことをし続けると,頭が疲れる。ほぼ1年ぶりに楽譜を引っ張り出した。