知恵の輪はたった2個〜数個の「部品」だけの組みつき方を
手探りでグリグリやって「正解」をみつけるおもちゃだが
たった数個の部品だけしかない「システム」でも難問を構成
している例
実際のシステムやプロダクトは知恵の輪ほど「作為的」で
はないが、正解を見つけずらい難問の様相を呈する場合が
ありうる
システムの場合で考えるとモノリシック構成のコンポーネント
は要注意。作る側もいろいろ痛い目にあった経験から、でき
るだけ保守性をもたせるように工夫はしているが、それで
も目の前の正解が藪の中だったりもつれた糸だったり
プチ「知恵の輪」のように奈様相を呈している場合がある
わかりづらいバグの調査や、ハッカーの仕掛けた攻撃を解析
する際にたびたび遭遇する
一方、コンポーネント数がひたすら多いことでIT業務のハー
ドルが上がっている例もある
ネットワークではOSI参照モデルとかITプロダクトではマイ
クロシステム化とか開発言語では各種フレームワークなどが
古くはオブジェクト指向とか構造化プログラミングなどが
採用されることによって数が多いことによる複雑さを解決す
る工夫が各領域や各レイヤーで見られる
システム運用設計でもネーミングルールの統一などの一貫性
をできるだけ取り入れることなどで数が多いことによる複雑
さを解決する工夫が随所にみられる
技術をひも解く上で、アルゴリズムやデータ構造などのロジック
ハードウェアの機構、各種プロトコルの理解、各種定番ツール
の操作方法、各コンポーネントどうしの連携ルールなどの理解
とあわせて、複雑さを飼いならすために採用されている根本的な
思想についても幅広く理解していく必要があると思われる
今まで携わった業務
■業務区分
・要件定義、基本設計、詳細設計、構築、実装、保守、運用(一貫性がないw)
■関わった技術
・OS(Ubuntu、RHEL、Suse、AIX、zlinux、windows)
・ハイパバイザ(Xen、KVM、VMware)
・コンテナ(Docker)
・オーケストレーション(OpenShift)
・パブリッククラウド(AWS、〇クラウド、△クラウド)
・APサーバ(tomcat、WAS、Jetty)
・DBサーバ(Oracle、DB2、PostgreSQL、MySQL)
・メールサーバ(Postfix、〇サーバ、dovecot、exchange)
・Webサーバ(apache、nginx、IIS)
・開発言語(Perl、AWK、TCL、java、C、Ruby)
・shell(bash、ksh、zsh、PowerShell、shellじゃないけどwindows bat)
・全文検索(Apatch Solr)
・メッセージキュー(rappidMQ、IBM MQ)
・その他サーバ(メーリングリストサーバ、vsftpd、proftpd、bind、ldap
ActiveDirectory、ADFS、samba、nfs、squid、ほかにいろいろ・・・)
・ジョブマネージャ(Aout、WebSAMjobmanager、JP1)
・監視ソフト(Tivoli NetCool、ITM、zabbix、あと変な会社の製品名前忘れた)
・バックアップ(ストレージのフラッシュコピー、DBの機能、ArcServe、あと名前忘れた)
・ログ管理ソフト(名前忘れた)
・ウイルススキャナ(Sophos、VirusBaster、F-secure)
・IPS(F-secureファイル改ざん検知機能名前忘れた、tripwire)
・WebApplication Firewall(apacheのmod_security、変なアプライアンス、SymantecのパブリックAPI)
・ストレージ(FC、SAS、iscsi、マルチパス、DDR)(HP製品名前忘れた、NEC製品名前忘れた)
・FCスイッチ(NEC製品(中身はBrocade社製品))
・L3SW(なぜかHP製品)
・L2SW(アライドテレシス、HP、Cisco catalyst)
(OSとswitchでタグVLAN、リンクアグリゲーション、OS側はbonding、NICチーミング)
・ルータ(yamaha、Cisco、あとなんか忘れた)
・サーバ機(HP、富士通、NEC、IBM、Dell)
・ロードバランサ(BigIP)
・テープライブラリ(NEC製品、あとどこか忘れた)
・HAクラスタ(VMHA、lifekeeper、DB2やoracleDB付属のHAクラスタウェア)
直近の課題
・RHEL7の基本設計〜詳細設計フェイズ
systemd復習、カーネルパラメータ(TCP関連)、cgroup、dm
grub2、デバイス、udev、IPC、NetworkManager、modprobe.conf
共有ライブラリ、ファイルシステム、マウント、サービス起動
jouralctl、firewalldとNetfilter、モード、ulimit、user、group、sudoers、umask
nfsマウント、portmap、パッケージ(最小構成+必要なパッケージ)
cron、rsyslog、logrotate、時刻同期、運用ツール、パフォーマンス計測ツール、yumレポジトリ
開発ツール、言語パック、GUI環境あとなんかあったっけ
・vSphere ESXi
※ストレージパス:FC?OSにマルチパスドライバ構築
※NIC:下に居るESXiが抽象化
※DBの整合性がvmware HAでどうやって担保されているか
※vmwareの機能によるシステムバックアップ/データバックアップ
・Webゲートウェイ
・Web API
・Oauth
※シーケンス(とくに認証、認可、アクセストークン生成、保管の流れ)
※各URI、HTTPヘッダ、メソッド、ホディの変換→フォワードのフロー
インターネット→ロードバランサ→GW→FW→Webサーバ→APサーバ→アプリ
リダイレクトがアプリ→リバースプロキシ→FW→ロードバランサのところどう変換されて
ブラウザに届くのか要注意(Locationヘッダ)
※クロスサイトリクエストフォージェリやセッションハイジャック対策はどういう
機構でなされているのか注意
・BigIP復習
・TLS 1.2復習
TLSハンドシェーク復習。wiresharkを使った解析、Curlを使った解析、Opensslを使った解析
ブラウザを使った解析
・JavaEEコンテナ製品
デプロイ、クラスローダ―、JNDI、JDBCプロバイダ、データソース、パフォーマンス計測
パフォーマンス分析、パフォーマンスチューニング
・JVM動作研究(JDK付属ツール)
・JP1
・Webゲートウェイアプライアンス(聞いたことないやつ)
・Docker、OpenShift、Kubernetes
・パケットキャプチャ(wireshark、tcpdumpの復習)
・ブラウザデベロップメントツールの復習
・mavenとアプリパッケージングの流れの学習(アプリがデプロイメントディスクリプタなのか
アノテーションなのか)
・IDE(たぶんEclips)
・IC(たぶんJenkins)
・Curl
・DB付属ツールでパフォーマンス計測、分析、チューニングの方法
・その他OS付属のパフォーマンスツール(sysstat、top、ps、vmstat、strace、proc下の見方など)
・Git、GitHub
・プロジェクト管理ツール(RedMineじゃない聞いたことないツール)
まだほかにもいっぱい やばたん
ログインしてコメントを確認・投稿する