2023年振り返り
今年もこの振り返る時期がやってきました。あっという間の一年ですね。
今年も公私共に忙しい時もありましたが、結果的には充実した一年であったと思います。
ありがたいことに登壇することも多く、色々とアウトプットできた一年でした。
ありがとうございます。今年アウトプットしたものを挙げておきます。
Oracle Cloud Hangout Cafe X ThinkIT
Oracle Cloud Hangout Cafe
Qiita
Edge Tech West 2023
Edge Tech 2023
CloudNative Days Tokyo 2023
今年は、カンファレンスやミートアップでオフライン開催も戻ってきて、久しぶりの方々と対面でお会いすることができて何よりでした。
技術コミュニティは楽しいですね!
手前味噌ではございますが、自身の執筆した書籍や過去のトレーニングなど時を経て感謝される機会も頂きました。 過去の自分も褒めてあげねばと思う時もありました。ありがとうございます。
今年もたくさんの方々にお世話になりました。 改めて、ありがとうございます。感謝しかありません。
来年も引き続き、精進していきたいと思います。
皆様、良いお年を!
2022年振り返り
早いもので、今年もこの振り返りブログを書く時期となりました。このブログは、年末振り返りの場だけとなってしまいました。😓
今年もありがたいことに、公私ともに忙しい一年だったと思います。
昨年8月に自転車で転倒して、左手首を骨折して、金属プレートを入れる手術をしましたが、無事に回復して、5月末に無事プレートも左手首から撤去できました。
常に、「エンジニアとして技術を極めて、アドボケート・エバンジェリストとして技術を伝え、技術教育者として技術を教える」をモットーに日々試行錯誤していますが、今年は万べなくできた感じがします。早速振り返ってみたいと思います。
本業では、技術支援案件、登壇、ハンズオンなど色々と携わることができました。
案件については、技術情報提供に始まり、技術支援からハンズオンを中心にエンジニアとして密度濃く実施できました。
そして、今年もありがたいことに、登壇の機会を頂くことができました。このあたりが、アドボケート・エバンジェリストな部分になるかと思います。
Oracle Cloud Hangout Cafe(#ochacafe)
- Kubernetes Security
昨年末に取得した CKS をベースに Kubernetes のセキュリティについて発表しました。
- Workfow
ワークフローの基本的な概念から、Argo Workflows と Airflow をベースにワークフローを学ぶ内容で発表しました。
Cloud Native Database Meetup #3
Oracle MySQL Operator for Kubernetes について、Operator の概要からでも含めた内容で発表しました。
インフラエンジニアBooks 30分でわかる「Dockerコンテナ開発・環境構築の基本」
2021年7月に出版した書籍についてお話させていただきました。読んだ感想など聞かせていただく機会も増えてありがたい限りです。🙏
edgeTech+2022
こちらのイベントでは、約3年ぶりのリアル登壇でした。 Cloud Native の概要をお話ししました。
ハンズオンも会社やコミュニティイベント、業務においても実施しました。技術教育的な部分になるかと思います。
Kubernetes & オブザーバビリティ入門
Observability Conference 2022 by CloudNative Days Co-located HOL イベントスポンサーハンズオンとして、講師をさせていただきました。
OCI DevOps で体験する CI/CD パイプライン
CloudNative Days Tokyo 2022 Co-located ハンズオンのイベントスポンサーハンズオンとして、公私をさせていただきました。
Oracle のイベントとしては、Oracle Developer Days でデモを中心とした発表しました。
Oracle Developer Days 2022 Spring
今年は社内勉強会の講師や企画などにも携わりました。
資格については、CKAとCKADの有効期限だったので、更新しました。受けた当時とは違った感じで受けられたのも良かったです。 OCI系は、来年コツコツと更新する予定です。
- Oracle Cloud Infrastructure Certified Architect Associate
- Certified Kubernetes Administrator (CKA)
- Certified Kubernetes Application Developer (CKAD)
今年のアドベントカレンダーにも投稿しました。
偏ったかと思っていましたが、3つのバランスが思っていたよりも取れていた気がします。
少しずつ、オフラインでのイベントなども増えてきたので、来年は久々な方やお初の方とお会い出来る機会がよりあると願いたいです!Kube Day Japan に参加した際、非常に感じました。
まだ、ご時世的にはどうなるか分かりませんが、引き続き日々精進してまいります。
来年も楽しい一年になるよう頑張りたいと思います。 そして、よろしくお願いします。
良いお年を!!
2021年振り返り
早いもので、今年もこの振り返りブログを書く時期となりました。このブログは例年、年末の振り返りしかやってないですね。😅
今年は、2月に転職しましたが例年通り忙しい一年となりました。大変でしたが、それはそれで幸せなことだと思っています。
唯一の出来事は、8月に自転車で転倒して、左手首を骨折して、金属プレートを入れる手術をしました。左手が全く使えない時期は、それはもう大変でした。😂 今は、順調に回復し、おそらく来年金属プレートを外すことができると思います。また手術かと思うところはありますが。。🥲
常に、「エンジニアとして技術を極めて、アドボケート・エバンジェリストとして技術を伝え、技術教育者として技術を教える」をモットーに日々試行錯誤していますが、今年は感覚的には明確に分けられる感じというより色々と交わる形が多かった気もします。
早速振り返ってみたいと思います。
本業においては、前半は転職したということで、Oracle Cloud Infrastructure(以降OCI)を勉強し始め、OCIの資格取得を頑張りました。後半は、案件支援、ワークショップ、登壇など色々と実施しました。
OCI関連の資格も実はたくさんあり、結構苦戦しながらもなんとか以下の資格を取得しました。
- Oracle Cloud Infrastructure Certified Architect Associate
- Oracle Cloud Infrastructure Certified Architect Professional
- Oracle Cloud Infrastructure Certified Cloud Operations Associate
- Oracle Cloud Infrastructure Enterprise Workloads Certified Associate
- Oracle Cloud Infrastructure HPC and Big Data Solutions Certified Associate
- Oracle Cloud Infrastructure Developer Certified Associate
- Oracle Cloud Infrastructure Foundations Certified Associate
- Oracle Autonomous Database Cloud Certified Specialist
基本的には、OCIのe-learningをベースに勉強しました。短期間だったので、暗記に頼るところはありました。私的には、ある意味、頭の中にインデックスを貼ることができたと思っているので、実際に触って行く中で振り返りながら定着させられればと思っています。
OCIに限らずクラウド全般に関わるところもあるので、興味ある方はチャレンジしてみるのもオススメです。
トレーニングは無期限無償、認定試験は期間限定で無償のようなので、このチャンスを利用するのも良いと思います。(宣伝です🙇♂️)
その他の取得資格は以下です。
- Kubernetes and Cloud Native Associate (KCNA) https://www.cncf.io/certification/kcna/
- Certified Kubernetes Security Specialist (CKS) https://www.cncf.io/certification/cks/
KCNAは、今年のKubeCon + CloudNativeCon North America 2021 で新資格として発表されて、自分はベータ版を受験しました。ベータ版は、本試験よりも問題数は多いですが、無料で受けられるということでチャレンジしてみました。これから全般的にクラウドネイティブを学ぶ方向けで、基礎が網羅されている印象でした。特に対策せずに挑みましたが、これまでの整理ができた印象です。
CKSは、今年早めに取得する計画でしたが、忙しく結局クリスマスとなってしまいました。😅 対策としては、以下Udemyのものを利用しましたが、バンドルされた模擬テストは本試験よりも難しい印象でした。何回かこのコースをやって、関連するドキュメントの整理、実際にクラスタを構築して試すことを中心に勉強しました。
来年はCKA/CKADの更新時期なので、頑張らないといけないですね。。😶
今年は、昨年から水面下で執筆を進めていた以下書籍📙を7月に出版しました。🎉
お声がけ頂いた昨年の4月頃は、本当に書き上げることができるか不安でしたが、編集者、レビュアーの優秀なエンジニアの方々に支えられて無事に出版に至りました。改めて、この場を借りて関わってくださった皆様には感謝しかありません。ありがとうございます。🙏
この書籍は、Docker、Kubernetesの基本を学んで、Helmによるマニフェストのテンプレート化、ローカル開発環境としてSkkafold、最後はGitHub ActionsとArgo CDを組み合わせたGitOpsを手を動かしながら学べる内容です。自身がこれまで行ってきた専門学校、プライベートトレーニング、勉強会ハンズオンなどの集大成的な感じです。「何から始めて良いのか分からない」からの一歩のお役に立てればという思いを詰め込みました。
資格取得、執筆、業務での調査・検証をしていく中でエンジニアとしての自分を実現した一年かもしれません。
今年もありがたいことに、登壇の機会にも恵まれました。仕事というところもありますが。😅
Oracle Cloud Hangout Cafe(#ochacafe)
- CI/CD最新事情
CI/CDのおさらい、CIOpsとGitOps、CIセキュリティ、OPA、ProgressiveDeliveryなどの内容で発表しました。
- Observability再入門
Observabilityの定義、metrics/logs/traces、ツール(Prometheus/Grafana/Loki/Jeager/Kiali)などの内容で発表しました。
MySQL Technology Cafe(#mysql_cafe)
Oracle MySQL Operator for Kubernetesの内容で発表しました。
今年のアドベントカレンダーにも投稿しました。
CloudNative Days Tokyo 2021(#CNDT2021)
運良く採択を頂きました。🙏
クラウドネイティブという言葉の定義を軸に、CNCF、DevOps、CI/CD、Microservice、Observabilityを整理して、その意味と手法や技術がどう関わって、クラウドネイティブを実現するのかを改めて辿る内容で発表しました。
記事としても取り上げて頂きました。ありがとうございます。🙏
CloudNative Days Tokyo 2021 プレイベント(#CNDT2021)
『Kubernetes完全ガイド』『Kubernetes実践ガイド』『Dockerコンテナ開発・環境構築の基本』『Kubernetes CI/CDパイプラインの実装』の著者によるパネルトーク & 書籍抽選大会 at oVice に著者として参加しました。
こうした登壇活動が、今年のアドボケート・エバンジェリストの自分を実現したところだと思います。
教育的な観点では、本業務やコミュニティ活動においてハンズオンワークショップを実施しました。
CI/CD Conference by CloudNative Days 2021(#CICD2021) & CloudNative Days Tokyo 2021(#CNDT2021)
Co-locatedイベントでのCNDT実行委員有志によるハンズオンにおいて、ハンズオンコンテンツ制作とハンズオンセッションを実施しました。
素晴らしいエンジニアの方々と一緒に出来たことは、とても貴重な経験でした。感謝です。🙏
参加いただいた方々からのフィードバックもご好評いただけたので嬉しい限りでした。🙇🏻♂️
CloudNative Days Tokyo 2021(#CNDT2021)
ハンズオンスポンサーとして、以下ハンズオンコンテンツ作成とハンズオンセッションを実施しました。
自分の弱いところをチームメンバーに助けてもらいながら実施しました。自分も勉強になりました。改めて、感謝です。🙏
Oracle Developer Day 2021(#oradevday)
10月にGAとなったOCI DevOpsのハンズオンコンテンツ作成とハンズオンセッションを実施しました。
こちらもチームメンバー、配信担当の方に支えられて無事に安心して実施できたことに感謝です。🙏
こうした活動が、今年の教育者としての自分を実現したところでもあります。
コミュニティ活動としては、今年もCloudNative Days Tokyo実行委員メンバーとして参加しました。 プロモーションチームでブログ、ツイート、プレイベント企画など担当しました。
新しいメンバーも入り、楽しく出来ました。🙌
そして、2022年3月11日(金)に開催されるObsevability Conference 2022 by CloudNative Days (#o11y2022)も実行委員として参加します。
絶賛、CFP受付中ですのでよろしくお願いします!!(宣伝です🙇♂️)
アーキテクト、技術書執筆者として大尊敬している北山さんの書籍のレビュアーとして関わらせて頂きました。KubernetesネイティブなCI/CDの書籍としては初(日本)であり、Tekton、Argoを手を動かしながら学べる唯一の書籍です。おすすめな一冊です。私自身も勉強になりました。🙏
こうして、振り返ってみると幅広く活動した一年となりました。骨折した時はご迷惑をおかけしたこともありましたが、素晴らしい方々、同僚に支えられ、助けられて、感謝の一年となりました。皆様には、感謝しかありません。ありがとうございます。
入社からずーっとリモートでしたが、仕事納め前にチームメンバーと少しだけ会えたのも良かったです。😊
来年は、健康に気をつけて、新しいことにもチャレンジしていきたいと思います。 まだ、ご時世的にはどうなるか分かりませんが、引き続き日々精進してまいります。
来年も皆様と楽しい一年になるよう頑張りたいと思います。 そして、よろしくお願いします。
良いお年を!!
2020年振り返り
今年もこのブログは振り返りのみとなってしまいましたが、2020年を振り返りたいと思います。
今年も基本的には、「エンジニアとして技術を極め、アドボケート・エバンジェリストとして技術を伝え、技術教育者として教える」、その調和を目指し日々活動を行っていたことに変わりないと思っています。
昨年は、アドボケート・エバンジェリストの活動が非常に多い年でしたが、今年はこのご時世もありオフラインでのカンファレンス、ミートアップ、勉強会は軒並みオンラインになりました。そして、仕事も3月末から在宅ワークとなりました。
今年は、昨年に比べ環境は変わったとはいえ、満遍なく調和な方向であった気もしています。
エンジニアとして自分
エンジニア仕事としては、本業務で3ヶ月ほどコンサル兼技術検証なお仕事をさせていただきました。主にKubernetes基盤部分や市場的なところ含め支援させていただきました。
また、会社としてはWindowsコンテナの分野に注力した年でもあったので、私的に未開な分野の技術検証も行いました。
Windowsコンテナ分野は、これまで携わってきたLinuxにおけるコンテナとはまた違った面が多くあり、私的には対比しながら色々と学べたと思っています。今後も技術としては追いかけて行こうと思えたのは良かったと思います。
アドボケート・エバンジェリストとしての自分
昨年は一年のほとんどが登壇だったと思えるほどで、今年は私的には抑えて行きたいところではありましたが世の中的な状況で、登壇する機会が減らざるを得ないところもありましたが、コミュニティ運営含め色々と経験できた一年でもありました。
自分が運営スタッフとして参加させていただいている「Cloud Native Bright Future」#cnbfmeetup も発足して2回目のミートアップをオンラインで行えたのが8月、3回目が11月でした。
オンライン化に至るまで時間は要しましたが、2回開催して内容の濃い2回だったので良かったと思います。私的には、2回目でファシリテーターをさせていただいたのも良い経験でした。オフラインとはまた違う緊張感もあり勉強になりました。
このコミュニティの一員として久々にOSCで2回(東京と福岡)登壇させていただきました。久々のOSCでの登壇ということもあり私的には楽しくできました。
そして、今年の稼働率としては一番高かった活動としては、「CloudNative Days Tokyo 2020」#CNDT2020 です。
CNDTでは、プロモーションチームのリーダーをさせていただいて、開催前のオンラインイベント、CNDT公式のブログ・ポッドキャスト・ツイートなどメンバーとともに色々と頑張りました。
カンファレンスとしても初のオンラインということで、実行委員会全体が模索しながらの道のりでした。
プロモーションチームとしては、まずオンライン上映会というCNDT2019の好評のセッションを実際の登壇者を交えて改めて振り返るイベントを企画して、ファシリテート役としても参加しました。
長年しまっていたミキサーを復活させたり、新しいマイクを買ったり、人生初のポッドキャストも経験しました。オンラインファーストをまさに感じた時でした。
企画の一つでもあった、「Kontest」というKubernetesクイズでは問題作成にも参加させていただきました。
実行委員のメンバーはエンジニアばかりなのでこうした状況でも技術ベースで解決し、乗り越えることができたのも非常に実りある経験でした。
そして、CNDT2020では、実行委員としてだけではなくCFPも通過して、登壇もさせていただきました。
実際に本業で検証している内容を含めたWindowsコンテナについて発表しました。ありがたいことに、登壇日のベストスピーカーのベスト5に入ることもできました。
CNDT2020を通して、この歳になっても技術好きの同志と学園祭のような楽しいカンファレンス創りに参加できたことが何よりでした。
来年は「CloudNative Days Spring 2021 Online」#CNDO2021 も開催予定です。CFP無しで動画応募形式という新たな挑戦も始まっています。実行委員メンバーと共に頑張っていきたいです!
今年は、2つの翻訳のコントリビュートにチャレンジしました。「Istio by Example」というサイトの翻訳とKubernetes公式ドキュメントのWindowsコンテナ関連の個所の翻訳です。
私的には英語と技術の勉強ができたことが良い経験でした。レビュアーの方々には改めて感謝いたします。
ミートアップ、勉強会では、Container Runtime Meetupとインフラエンジニア BooksでのLTおよび登壇の機会がありました。
Container Runtime Meetupでは、WindowsコンテナのRuntimeについて発表しました。今となってはdockershim依存の高いWindowsコンテナとKubernetesの関係を色々と勉強できたことは大きかったと思います。KubeCon EUでのSIG-Windowsでの発表なども勉強になりました。
インフラエンジニアBooksでは、久々にRancherのお話をさせていただきました。自分が執筆した書籍の内容ではありましたが、1年も経つと進化も大きく、ほとんどがアップデートばかりでそれはそれで身になりました。
あと、アドベントカレンダーも2つ書きました。
技術教育者としての自分
今年も専門学校の講師として週一で教壇に立たせていただきました。実際に授業の開始が2ヶ月ほど伸びましたが、オフラインでの授業ができて、専門学校側の万全なコロナ対策に感謝しかない一年でした。
本業務でも企業様向けのプライベートトレーニングを実施させていただきました。こちらは完全オンラインでした。オンラインでのトレーニングに試行錯誤した一年でもありました。結果としてはご満足いただけましたので感無量です。
弊社サイトに事例として公開させて頂けたことにも感謝いたします。
今年は、新たに副業もさせていただいた一年でもありました。副業先では、トレーニングコンテンツの開発に参加しました。
優秀なエンジニアの方々と一緒に仕事できたことが本当に感謝しかありません。とても貴重な学びの場で、末永く続けさせていただきたい所存です。
プライベート
今年は、ライブ好きの自分にとっては酷な一年でしたw 月平均3回くらいライブに行く自分が、今年はオンラインライブを除いて、実際にオフラインで参加したライブ数は5回でした。チケット払い戻しの嵐でしたw
2度ほど大事でなく幸いでしたが、体調を崩した時期がありました。それは、ライブに行けずで生活リズムの変化によるものだと勝手に思っていますw
2021年はライブ、フェスに行けるようになるよう切望しています。
年末は毎年カウントダウンライブで、ライブ会場で年越しですが、今年はおそらく約20年ぶり?自宅での年越しになります。
2021年に向けて
現在も水面下では色々と年を跨いで進行中のこともあります。来年はそれが実を結んで行く年だと思っております。
変化ある年になるとも思っていますので、変化から進化につながるよう精進して参りたいと思います。
情勢的に色々なことがありましたが、皆様のご支援のおかげで無事に新しい年を迎えられます。
ありがとうございました。
そして、2021年もよろしくお願いします。
2019年振り返り
1年というのもあっという間、と毎年年末に思って早何年。。
アウトプットとしては、たくさん行ってきた一年ですが、 このブログに関しては、今年の年始に1投稿のみということになってしまいました。
来年は月一位という思いを込めて?年末の振り返り記事を書こうかと思います。
今年の振り返り的なことは、 実はJuly Tech Festa 2019の「極める、伝える、教えるの調和」というタイトルで登壇した際の資料で行っています。
July Tech Festa 2019のテーマは「Share! Your Engineering Culture!」ということで、 自身のこれまでのエンジニア、アドボケート・エバンジェリスト、技術教育者としての経緯から調和をとるために挑んだ一年、 そしてこれからについて、私のエンジニアリングカルチャーとして共有させていただければと思いCFPを出しました。
こうした内容を発表するのは初めてで、人生初のエモーショナルな登壇となってしまいました。 一部の方々から意外にもご好評いただいたようで驚きましたが、結果オーライということで良かったと思っています。
この登壇内容の振り返りのところをベースに進めていきたいと思います。
調和を志す経緯
自身の極める、伝える、教えるの定義は以下となります。
- 極める = エンジニアとして技術を極める
- 伝える = エバンジェリスト・アドボケートとして技術を提唱する
- 教える = 技術教育者として技術を教える
官公庁のインフラエンジニア(SIer)としての業務を遂行する中で、 アドボケイト・エバンジェリスト、技術教育者としての自分も芽生え始め、 以下の思いが生まれました。
”エンジニアとしてプロダクション環境で実績を積みながら技術を極め、 それをエバンジェリスト・アドボケートとして提唱して、 技術教育者として教育に変えられないか?”
そして、この思いに対する挑戦がこの約一年と数カ月になります。
調和への挑戦
エンジニアとしての自分
プロジェクトに参加して、RancherやOpenShiftを扱うプロジェクトやKubernetes関連のコンサル的な支援も行ったりしました。
資格としては、以下の資格を取得しました。
かなり過密なスケージュールの中での取得でした。 KubeCon EUの前々日にMirantis KCM100、その翌日にCKA、 トランジット先のブリュッセル空港で取得の通知を得たのも今年の思い出の一つです。
- Certified Kubernetes Administrator (CKA)
- Certified Kubernetes Application Developer(CKAD)
- Mirantis KCM100
- CompTIA Linux+
登壇資料にはCKA/CKAD取得に利用した、 書籍やラーニングサイトなどまとめてあるので取得を検討されている方の参考になれば幸いです。
技術教育者としての自分
専門学校で週一に非常勤講師として、「Linux」と「仮想化・クラウド」の授業を担当しています。
今年はたくさんの学生に授業を行いました。 中間期末テストの採点が大変でしたw
Linux講義では、自身のオリジナル教材で行っていますが、 仮想化・クラウドについては以下を教材として利用し、ハンズオンは自身のオリジナル教材を利用しています。
林さんの書籍は非常に簡潔にまとめられている名著です。
トレーニング講師としては、カンファレスや企業様向けのプライベートトレーニングを実施しました。
- Japan Container Days 約35名
- CloudNative Days Tokyo 約35名
- CloudNative Days Fukuoka 約10名
- 企業様向けプライベートトレーニング 全3回 約40名
アドボケート・エバンジェリストとしての自分
コミュニティ活動
コミュニティ活動としては、Cloud Native Deep Dive(#deepcn)、くじらや(#kujiraya)、RancherJP(#rancherjp)で活動しました。
くじらや、RancherJPでは、札幌、広島、岡山、神戸、大阪、京都、名古屋、東京、福岡、沖縄でたくさんのワークショップ(無料 約400人)を開催しました。
Cloud Native Deep Diveでは、ディスカッション形式のミートアップを2回 + CloudNative Days Tokyo(番外編)を実施しました。
たくさんの方々との出会いは、本当に宝だと感じざるを得ない一年でした。
海外カンファレンスへの参加
以下二つの海外カンファレンスに参加しました。 今回は初めてContoributors Summitにも参加しました。
- KubeCon + CloudNativeCon 2019 EU(Spain Barcelona)
- KubeCon + CloudNativeCon 2019 NA(CA San Diego)
技術キャッチアップはもちろん、国内外問わずたくさんの方々との出会いと親睦がありました。
Recapの内容は以下となります。
登壇資料
Qiita
海外カンファレンス初心者向けのミートアップでも登壇しました。
海外カンファレンスの準備や楽しみ方などまとめているのでご参考になれば幸いです。
連載記事、書籍の執筆
今年は、執筆活動として、連載記事と書籍を出版しました。
連載記事、書籍に関わらず、自分がアウトプットするものについてはいつも「知財」という意識を持って行っています。 理想としては、読んだり聞いたりされた方が勉強になるだけでなく、さらに次のアクションにつながるきっかけになってほしいとの思いがあります。 目から鱗が落ちて、今までで分からなかったこと、できなかったことが分かるそしてできるきっかけとなって、さらに何かが生まれるところまで行くと嬉しいです。
私は偉人ではございませんが、アインシュタインの相対性理論は、先人たちが残した書物、知財がなければ生まれなかったといわれている方もいます。 専門学校で教えていても、私の講義をきっかけにインフラ技術に興味を抱いて、将来進む道への候補になったと学生からの声は非常にうれしい限りです。
まだまだ未熟ものです。 アウトプットについては、自分自身も日々精進していきたい所存です。
書籍については、藤原さんと西脇さんと共に執筆できたことが本当に嬉しかったです。出版に携わった鈴木さん、飯岡さん、新藤さんをはじめ、皆様にこの場を借りて改めてお礼します。
カンファレンス、MeetupなどのセッションやLT登壇
昨年以上にたくさんの場所で登壇させていただきました。 感謝しかありません。
- Azure Tech Lab
- Cloud Native Meetup Tokyo
- Cloud Native JP Kansai
- Cloud Ntaive JP Hiroshima
- Cloud Native JP Tokyo
- CloudNative Days Tokyo
- CloudNative Days Fukuoka
- CloudNative Days Kansai
- Container SIG Meet-up
- DEVLOVE in APC
- DEVLOVE X
- Docker Workshop (全国)
- Docker Meetup Tokyo
- Japan Container Days
- July Tech Festa 2019
- Kubernetes & Cloud Native Meetup
- Prometheus Tokyo Meetup
- Rancher Meetup (全国)
- Rancher Workshop (全国)
- Rancher Day
- TECH ✖️ CHORUS NIGHT
- 海外カンファレンスってどんな感じ?
こうした活動中にも色々とご質問を受ける中で、よく聞かれることがあります。
"そのモチベーションって、どこから来るんですか?"
自分の中では、以下だと思っています。
"OSSを中心とする技術を愛する気持ちと底知れぬ学習欲!! 駆り立てる根源は、エンジニアとしての焦り心の中に潜む負けず嫌いな気持ち!!"
この負けず嫌いな気持ちは、エンジニアの方であれば大小はあるかもしれませんが、 皆さんお持ちの感情だと思っています。 自分自身、この感情が無くなった時がエンジニアを引退する時だと思っています。
そして常に思っていることが、以下です。
"できないからこそ、人の何倍も頑張る知的好奇心が赴くままに"
日々精進あるのみです。
何となく調和をとる秘策を考える
結果としては、アドボケート・エバンジェリスト活動がメインな年だったようです。
- 現場は支援レベルにとどめる
- 登壇における出張や頻度をもう少し下げる
- 期間で区切ってみる
- チームプレーを意識して属人化を下げる
そして課題
- アウトプットばかりでインプットの時間が取れない
- 教えを施しているだけな気もする(あげるだけ。。)
- そもそもSIでやることにおける限界?
- マネタイズ的要素ってある?
- クラウドネイティブ技術ってエンジニア不足、それを教える人はもっと不足してるよね?(専門学校はほぼ皆無に近いかも?)
- 体力持つ?
このあたりが、来年のトライになるところだと思っています。
調和の先に描いていること
"この3要素を調和した職種を生み出す"
DevEdu = Developer Educations
一つの夢ではございますが、こうした活動をしているのも自身の特徴でもあるので、 何か新しい概念を生むことができればと思っております。
この先、肩書的にはどれか一つに従事することになることもあるかもしれません。 でもこの三つのバランスをとるという姿勢は変わらないと思います。
"エンジニア、エバンジェリスト・アドボケート、技術教育者、それぞれをって中途半端ではないか?"
という気持ちもありますが、
"元々人間としても中途半端なので、一層のこと中途半端を生涯かけてやってみる"
な感じで精進していきたい気持ちです。
こうした形で、まだまだやることもやるべきこともたくさんですが、 後厄ではあったものの大きな怪我や事故もなく挑戦できた一年は良かったと思います。
来年は、本業のことばかりでなく、趣味の夜景撮影や楽器演奏なども充実させていきたいなとも思います。
今年一年も、たくさんの方がに支えられた一年でした。 本当にありがとうございました。そして、来年もよろしくお願いします。
皆様、良いお年を!!
ハンズオン勉強会の心がけ
最近、「ハンズオン勉強会ってどうやってやっています?」という質問を受けたりします。
自分自身ここ2年くらい、専門学校の授業、コミュニティの勉強会、イベントのトレーニング講座等でハンズオンを実施しています。
これまでやってきたことをベースに整理してみたいと思います。
もちろん、この記事の内容が全て正しいということもないので、 参考程度に留めていただければと思います。
よく受ける質問としては以下となります。
- 受講者の対応について
- ハンズオン環境はどうしている?
- 資料ってどんな感じ?
1つずつ見ていきたいと思います。
受講者の対応について
受講者には、初心者、中級者、上級者というカテゴリーはあると思いますが、 自分はこれまで、初心者向けのハンズオンを中心にやってきました。
専門学校では、コマンド操作も初めてとなる学生に対してのLinux入門、 Linuxのコマンド操作やパブリッククラウドでIaaS操作が一通りできることを前提とした、 Docker,Kubernetes,Rancherの入門ハンズオンをやってきました。
人数については、以下となります。
- 専門学校:20~25名
- 勉強会:15名
- トレーニング講座:30名
ある程度の条件を前提に受講者を募ったとしても、 受講人数の大小に関係なく、進捗に差というものが生じることがあります。
もちろん誰もつまずくことなくスムーズに進む場合もあればその逆もあります。
つまずく方が2,3名位であれば、講師をしながら対応して、進行していくこともできます。 それ以上になると、厳しくなり進行に影響が出る可能性が高まります。
つまずいている方に対応しきりになってしまうと、 すでにタスクを完了している人を待たせることになったり、 講義の進行が遅れてしまいます。
有料の場合だと、時間内にカリキュラムを終えられず、 主催者、受講者に損害を被ることになり得るので注意が必要です。
解決策としては、以下となります。
- チューターをアサイン
- ハンズオン時間を多めに確保
チューターをアサインというのは、講師とは別にもう1名用意することです。 つまずいた方への対応をチューターにお願いして、講師は進行を先に進めることができます。
チューター人数も多いに越したことはありませんが経験上、受講者15名以内でチューター1名、 30名近くであれば2,3名位が目安かと思います。
ハンズオン時間を多めに確保というのは、つまずく方が多くなりそうだと思うところでは、 ハンズオンの時間を多めに想定して、進行に影響が出ないようにします。
受講者全員が、カリキュラムを全て完了できる最善を尽くすのが努めと思って頑張っています。
ハンズオン環境ってどうしてる?
ハンズオン環境は、受講者全員が同じ環境でカリキュラムを行うことが理想です。
受講者が使うPC、クラウド環境、VM環境、チューター等の全てを主催者側で準備できることに越したことはありません。 しかし、それを実現しようとするとそれなりの費用が必要となります。
有料の場合は、そのあたりの費用も加味して行うことはできますが、 無料を前提とした勉強会などでは難しいというのが現実です。
まずは、自分がこれまで無料前提で行ってきたハンズオン勉強会の話をしたいと思います。
Dockerのハンズオン勉強会では、参加条件として受講者にラップトップ持参の上、 ハンズオンで利用するCentOS7をVirtualBoxの仮想マシンまたはパブリッククラウドのIaaSなどの事前準備をお願いしています。
パブリッククラウドでの準備では基本問題ないのですが、 VirtualBoxだとやはり受講者のラップトップのスペックや個人の環境起因で仮想マシンからインターネットに出られない等不具合が生じてしまうケースが多いです。 事前環境準備の手順書を公開しても生じてしまうケースもあります。
環境準備でつまずいてしまうと、いきなり進行が遅れてしまいます。
解決策としては、以下となります。
- パブリッククラウドの利用
受講者が既にパブリッククラウドに登録している場合は、有料無料問わず、ご自身で利用してもらうことを前提にお願いしています。
VirtualBoxの利用時は、環境準備の段階で主にネットワーク周りでうまく行かなくなるケースがよくありますが、パブリッククラウドの場合はそのあたりはたまにFWの設定問題は出てきますが、概ね良好です。
ハンズオンの内容によってはそれなりのスペックを必要とする場合があります。 どうしてもVirtualBoxなどの仮想マシンだと受講者のラップトップスペックにも限りがあるので、 高スペックを求める場合はパブリッククラウドを利用せざるを得なくなります。
クラウドベンダーも統一して行いたい場合は、募集時にクラウドベンダーを指定し、 アカウントを持っていない方に対しては無料期間利用を推奨しています。 教材もそのクラウドベンダー前提で作成して行います。
有料前提の場合だと、クラウドベンダーと提携して行ったりすることが多いので、 それを前提とした教材作りで進めることができます。
自分の場合は以前、パブリッククラウドのコミュニティとコラボレーションな形式(無料)で そのハンズオン勉強会の時間だけSSHログインを許可してもらって実施したこともあります。 受講者にSSHの接続パブリックIPアドレス、ユーザー名、パスワードを渡すだけとなり、 受講者もSSHログインできる環境の準備だけで済むので理想的です。 また、受講者のラップトップがMac/Windowsどちらでもよいという利点もあります。
他のコミュニティやクラウドベンダーとのコラボレーションを検討してみるのも良いと思います。
ハンズオン勉強会の会場ですが、Wifi、電源、プロジェクターは必須だと思うのでそれに見合う会場を選定しましょう。
Wifiは、人数が多くなると会場によっては遅延が発生しやすいのでそのあたりも考慮しておく必要があります。 電源は、会場によってはタップも完備のところもありますが、無いところが多いので事前に準備しておくとよいと思います。 プロジェクターは、広い会場だと後方の方が見えづらくなったりするのでラップトップでも見られる工夫が必要となります。(詳細は後半でお話します)
資料ってどんな感じ?
資料については、以下の2種類を利用しています。
- スライド資料
- ハンズオンテキスト(Webページ)
ハンズオン勉強会といっても当然座学はあるので、座学の部分はスライドを使用します。
スライドでは説明的なものは文字、図解、イラスト、画像など一般的なプレゼン資料を作るのと同じです。
ハンズオンに入る前に、全体像が分かる図があることが望ましいです。 全体像が分からずただコマンド操作だけになると、 うまく動いたけど理解できた気がしないという結果に陥る可能性が高まります。
実際にハンズオンで実行するコマンド部分も掲載します。コマンドの実行結果については、 短いもの(スライドのレイアウトやページ数に影響が出ない)については掲載しています。 この後お話するハンズオンテキストの方にはすべてコマンド結果は掲載しています。
コマンド結果をなぜ掲載するかというと、 やはり結果がどうなるか分からないと受講者がちゃんとできたかどうか分からず、戸惑ってしまう場合があります。
ハンズオンテキストについてですが、これは実際に実行するコマンドを記載したテキストになります。 これはテキストエディタで作成して当日配布でも良いですが、自分はこれまでWebページに用意して実施してきました。 専門学校ではローカルで実行できるWebデータを配布してブラウザで表示されるコマンドをコピーして、SSHコンソールでペーストして行っています。 勉強会などでは主にQiitaを使用しています。もちろんブログなどでも良いです。
コマンドを手打ちで行うとオペミスとかで思わぬ不具合やつまずきポイントになり、進行にも影響が出る可能性も高まります。
コピペだけ淡々と実行するだけとならないように、最初にスライドで説明したり、実行時に説明しながら実行するように心がけています。
テキスト内容では、定義ファイル等もvimでコピペできるようにしています。git cloneするでも良いですが、 手打ちまでいかなくとも少しでも定義ファイルの内容に触れられるようにしています。
ハンズオンテキストをWebで公開しておくことで、受講者がハンズオン勉強会後でも復習できるメリットもあります。 また、スライド資料も公開することで合わせて復習できます。 会場のプロジェクターで見ずらい問題も受講者の手元で見られるため、解決します。
資料を公開できない事情などある場合は、紙資料または電子資料で配布などで対応することもあります。
あくまでも自分の経験則であり、ケースバイケースもあります。 参考になれば幸いです。
良い方法などありましたら教えていただけると嬉しいです。
【書評】Docker/Kubernetes 実践コンテナ開発入門
あまりにも内容が素晴らしく感銘を受けましたので、僭越ながら感謝の気持ちを込めて書評を書かせていただきます。
コンテナ技術に関する書籍は、これまでも色々と出版されてきましたが、ここまでコンテナアプリケーションの設計、構築、デプロイ、運用に至る開発スタイルを網羅した書籍はこれまでになかったと思います。
私自身、実際にコンテナアプリケーションの開発、運用を実践している方が出版する書籍をずっと待ち望んでいたのと、著者のブログを読んでさらに早く読みたいという欲求が抑えきれず、書泉ブックタワーで先行発売の情報を知り、駆け付けた次第です。
私のコンテナ歴としては、基本的に専門学校や社内外の勉強会でのハンズオンでDocker/Kubernetes/Rancherを教えたり、個人で検証してQiitaやコミュニティでプレゼンしたりするレベルです。2017年にDockerCon、KubeCon/Cloud Native Conにも参加しました。
翔泳社コンテナ・ベース・オーケストレーション Docker/Kubernetesで作るクラウド時代のシステム基盤の第六章 Rancher2.0を執筆しました。(宣伝すみません。)
主観になりますが、章ごとに書評させていただきます。
- 1.Dockerの基礎
- 2.Dockerコンテナのデプロイ
- 3.実用的なコンテナの構築とデプロイ
- 4.Swarmによる実践的なアプリケーション構築
- 5.Kubernetes入門
- 6.Kubernetesのデプロイ・クラスタ構築
- 7.Kubernetesの発展的な利用
- 8.コンテナの運用
- 9.より軽量なDockerイメージを作る
- 10.Dockerの様々な活用方法
- Appendix-A セキュリティ
- Appendix-B Dockerでの開発を支援するツール・サービス
- Appendix-C 主要コマンドまとめ
1.Dockerの基礎
この章は、私的に知識の整理、復習として読み進めることができましたが、実際にコンテナアプリケーションの開発、運用を実践している著者だけあり、「Dockerを利用する意義」における、「Infarastructure as CodeとImmutable Infrastructureの考え方を簡単かつ低コストに実現するのがDockerです。」という一文は簡潔かつ非常に説得力感じました。
そして、全体的に言えるのですが、コラムの内容が非常に充実しています。この章のMobyプロジェクトとLinuxKitについては、長くコンテナ技術をキャッチアップしている人にとってはバックグラウンド知識として既知のことかもしれませんが、これから始める人にとって有益な情報だと個人的に思います。
「ローカルDocker環境を構築する」では、Docker for Windows/Mac,Linux環境へのインストールが非常に丁寧に書かれているので、始めやすいと思いました。
2.Dockerコンテナのデプロイ
DockerイメージとDockerコンテナの違いを簡潔に説明し、サンプルアプリケーション、Dockerfile、Dockerイメージビルド、Dockerコンテナの実行までを出力結果を含めて説明しているので、実際に手を動かさなくても理解しやすく読み進めることができました。
コラムに書かれている、「短いdockerコマンド」では、自分はこれまで旧来のコマンドで実行していましたが、操作対象の明確性の向上という理解に共感し、今後は新コマンドで実行しようと思いました。
Dockerflileのインストラクション(命令)について、私もDockerfileを書き始めた頃に意識したADDとCOPYの違いやCMDとENTRYPOINTの使い分けについてもしっかり書かれていてさすがだと思いました。
お恥ずかしながら、MAINTAINERインストラクションが非推奨になっていたのは知らなかったので、今後はLABELを利用します。(MAINTAINER自体使っていませんでした)
docker searchコマンド結果で、公式リポジトリの名前空間に一律でlibraryがついているというのも知りませんでした。
「Dockerコンテナの操作」では、コマンド結果も書かれていますし、説明も簡潔なので非常に分かりやすいです。docker container run --rm はやはり実践ならではの説明だと思いました。
「Docker Composeでマルチコンテナを実行する」では、JenkinsコンテナのMasterとSlave構成もやったことがなかったので、勉強になりました。
3.実用的なコンテナの構築とデプロイ
知りたいエッセンス満載でした。
「アプリケーションをコンテナの中にどのように配置すればよいのか?、1コンテナにどれだけの役割を担わせるべきか?、細かく役割を分割したが、システム全体として複雑になっていないか?」や「1コンテナ=1プロセスを厳守すべきか?」、「コンテナのポータビリティ」、「永続化データをどう扱うか」等は、誰もが知りたいエッセンスではないでしょうか。ここはネタバレにはしたくないので、是非じっくり読んで欲しいと思います。実践経験者ならではの実績、見解を基に非常に分かりやすく、簡潔に書かれています。
この章の後半から、著者の意向としてDocker Swarmの理解が自ずとKubernetesも理解しやすいというところからDocker Swarmの内容となります。私自身、Docker Swarmを触ることなくKubernetesに行ったので、逆になるところはありますが、著者の意向を理解することができました。Rancherの1系に実装されているRancher独自のオーケストレーションツールであるCattleに似ているところもあるという印象も受けました。
dindの環境構築は少し入門者にはハードルが高い気もしました。
4.Swarmによる実践的なアプリケーション構築
この章は、実際にTODOアプリを動かすシステムをDocker Swarm上にコンテナで構築する内容となっています。MySQL,API,Web,NginxのコンテナをDockerfileからビルドしてイメージをレジストリにpushしてから、実際にデプロイして構築していくので、それぞれの機能のコンテナをどう連携してシステムを実現していく流れを体感できます。Ingressも含まれています。
正式発売前で設定ファイル等ダウンロードできなかったので、読み進めて理解しただけですが、ここは発売後に実際に手を動かして改めて確認しようと思います。
環境変数も駆使されているのでそのあたりも学ぶポイントだと思います。
5.Kubernetes入門
この章は、Kubernetesの情勢的な話から、ローカル環境の構築、そして、Kubernetesの概念として、Master,Node,Namespace,Pod,ReplicaSet,Deployment,Service,Ingressについてマニフェストファイルの内容とkubectlコマンドの実行結果を含めて書かれているので非常に分かりやすいです。Deployment,ReplicaSet,Podの関係性の説明がしかっりされているところはさすがです。この辺りの理解の重要性は改めて感じました。
6.Kubernetesのデプロイ・クラスタ構築
この章は、GKE(Google Kubernetes Engine)を利用して、gcloudコマンドベースにKubernetesクラスタを作成して、前章のTODOアプリケーションをKubernetes用にカスタマイズしてデプロイします。その中で、PersistentVolume,PersistentVolumeClaim,StorageClass,StatefulSetをマニフェストファイルとkubectlコマンド結果を含めて簡潔に説明しているので、これまた非常に分かりやすいです。特にこれまでStatefulSetによるDBサーバを構築したことがなかったので、どういう仕組みで、どうやって実現するかを理解できたことが本当に嬉しかったです。
こちらも設定ファイル入手後に実際に手を動かしてみます。
コラムにあった、kubectxというのは正直知らなかったので有益な情報でした。
オンプレに対するKubernetesクラスタ構築について、kubesprayとAnsibleの組み合わせが簡潔に書かれています。私自身、kubesprayを使ったことが無いのでとても勉強になりました。Ansibleもyaml,Kubernetesもyamlという観点で考えるととても素敵だと思ってしまいました。
7.Kubernetesの発展的な利用
この章は、KubernetesのJob,CronJob,Secret,RBACについて簡潔に書かれています。特にRBACの認証ユーザーとServiceAccountは詳細に書かれていてます。ここまで書かれている日本語書籍は現時点でこの書籍だけだと思います。この辺りも実際に運用しているからこその内容だと思います。まだ理解しきれていないところもあるので、理解できるまでじっくり読ませていただきます。
そして、著者が力を入れているであろうと感じるHelmについても簡潔に書かれています。Helmについては、日本語書籍、いや日本語ドキュメントとしてもこの書籍が初だと思います。私自身もHelmについて色々と調べている時期があって、著者のブログ記事など参考にさせていただいた記憶があります。
RBAC対応アプリケーションのインストールや独自Chart、独自Chartリポジトリの作成をここまで詳細に書かれているのは本当にありがたいです。
Kubernetesのデプロイについても簡潔かつ詳細に書かれています。
RollingUpgradeの箇所でmaxUnavailable,maxSurge,livenessProbe,readinessProbeについは、実践経験者ならではの説明で本当にありがたい有益な内容です。GracefulShutdownのコラムは読み応えありました。
BlueGreen Deploymentの箇所もselectorラベル変更によるDeployment切り替えについて簡潔に説明されています。「サービスメッシュを実現するLinkerdとIstio」というコラムも著者の検証中の内容も加味したうえでの見解が良かったです。
8.コンテナの運用
この章は、ロギングの運用として標準ログ出力の有用性、Elasticsearch Fluentd Kibanaによるログ収集と検索をdocker-comose.ymlを使って環境構築をして体感できます。この辺りも誰もが知りたいエッセンスだと思うので是非じっくり読んでもらいたいです。早く設定ファイルを入手して体感したいと思っています。
その他のログ収集ツールとして、Stackdriverについても書かれています。これも知らなかったのですが、sternというツールについても書かれていて発見でした。
「Dockerホストやデーモンの運用」の「dockerdのチューニング」箇所で、max-concurrent-downloads,max-concurrent-uploadsでpullやpushの並列数をチューニングできることを知れたのは嬉しかったです。ミラーレジストリによるレイテンシの影響を調整するのも有益情報でした。
「Docker/Kubernetesの運用はマネージド?非マネージド?」このコラムの見解も非常に参考になりました。
「障害対策」では、PodAffinity,PodAntiAffinity,Horizontal Pod Autoscaler,Cluster Autoscalerは非常に勉強になりました。このあたりもやはり実践経験者ならではと思わざるを得ませんでした。
コラムの「GKE On-Prem」については、かなり最近の情報まで入っているところが良心を感じました。
9.より軽量なDockerイメージを作る
知りたいエッセンス満載でした。
scratchについては、ベースイメージの奥深さを感じ、勉強になりました。ここでADDの仕組みが理解できたのもよかったです。
BusyBoxといのも詳細は知らなかったので、勉強になりました。
かつて一度だけ開催されたAlpine Linux Meetupで登壇されただけあり、Alpine Linuxについて詳細に書かれていますし、ここまで詳細に書かれている書籍は他に無いです。貴重で有益な情報に感謝です。
「軽量なDockerイメージをつくる」における、Dockerイメージの構造理論からDockerfile作成の工夫、malti-stage buildsの内容は非常に勉強になりました。本当にありがたい内容です。
10.Dockerの様々な活用方法
この章では、私的に「負荷テスト」のLocustというツールは知らなかったので勉強になりました。このあたりも誰もが知りたいエッセンスではないでしょうか。
Appendix-A セキュリティ
知りたいエッセンス満載でした。
DockerHubを始めとするレジストリにおけるセキュリティ、Docker Bench for Security、適切なアクセス制御、クレデンシャル(機密情報)の扱い等、セキュリティは避けては通れないので非常に有益な内容なので、是非じっくり読んでいただきたいと思います。
Appendix-B Dockerでの開発を支援するツール・サービス
独自Dockerレジストリの構築、CI/CDとしてCircleCI、AWS FargateとECSなど著者の観点で簡潔に書かれてます。参考になりました。
Appendix-C 主要コマンドまとめ
dockerコマンド、Dockerfileのインストラクション、docker-composeコマンド、docker swarm/stackコマンド、helmコマンドがまとめられています。Helmコマンドは詳細に書かれてます。非常にありがたいです。
こうした内容の理解は、Microservice,ServiceMeshの分野においても理解必須だと思いました。
称賛ばかりで恐縮ですが、本当に良書です。
400ページ以上にまとめ上げたのは非常に大変だったと思います。
これだけの素晴らしい内容を書籍として出版して頂けたことに感謝です。
実際に開発、運用の現場にいたくてもいられない自分にとっては、有益になる情報ばかりでした。何度も繰り返し見返し、読み続けたいと思います。
初心者から上級者、プロダクション利用の有無問わず、コンテナ技術に興味がある誰もが求めているエッセンスが盛り込まれていると思いますので、オススメ致します!!