技術的負債はどこの現場でも多かれ少なかれ存在します。技術的負債ゼロな現場はありません。
技術的負債を継続的・定期的に返済できていれば問題はありません。しかし長年放置され「負債度」が高まった技術的負債を返済するのは非常に厄介で骨が折れる作業です。
本発表では、下記のトピックを扱います。
技術的負債はなぜ生まれ、それにどう立ち向かい、その後どうすべきなのか。私自身が経験したEOLを迎えたPHPの移植・アップグレード事例を踏まえて発表します。
みなさんはWebサービス移転のためのデータ移行を実施したことがありますか? データ量が少なければ作業の間サービスを停止して実施すればよいかもしれません。ではデータ量が多く数日程度かかるなら? 移行先のサービス、とくにtoCのWebサービスを数日間に渡って止めるのは現実的でない場合が多いでしょう。動いているサービスにユーザ影響なくデータを移行するには困難が伴います。このセッションでは、筆者が携わったこのようなデータ移行の経験を元に、サービスを極力止めず大量のデータを移行する手法とその段取り、将来同様の案件に着手する際にどのようなことを考えておくべきかについてご紹介します。
話すこと:
デジタルIDウォレットを利用できる環境が整備されつつあり、「高度な保証レベルと優れたユーザー体験を備えた身元確認」が実現する未来がすぐそこまで迫ってきています。
「日本でのApple Walletの身分証明書機能の展開」のニュースのように、マイナンバーカードのスマートフォン搭載は、これまで以上に一般的になっていくでしょう。また、一般的なサービスがウォレットを利用する方法も、AppleのVerify with Wallet APIを始めとして、AndroidやWebでも準備が進んでいます。
本発表では、現状を振り返りつつ、開発者として今後この状況を楽しみ尽くすための知識として、ユーザー体験の概略や、HPKE(RFC 9180)、mDL/mdoc(ISO/IEC 18013-5)について解説します。また、プロダクトへの応用やもっと先の期待したい未来の話にも触れていきます。
Kubernetesの採用は、複数チーム、マルチクラウド、異なるスタックを持つ組織にとって複雑な課題です。本セッションは、これらの課題を解決するアプローチを提示します。プラットフォームエンジニアリングの原則とKubernetesへの適用を軸に、OSSとベストプラクティスを活用した解決策を紹介します。Helm、Tekton、Argo CDなどを統合したプラットフォームの構築方法を解説し、開発チームの認知負荷を軽減しつつ、生産性を向上させる戦略を探ります。さらに、ソフトウェアリリース手法や、デリバリーメトリクスを用いた最適化戦略も紹介します。CrossplaneによるマルチクラウドインフラやKnative ServingとArgo Rolloutsを活用した段階的アップグレードなど、クラウドネイティブ環境の実現に向けた技術も取り上げます。とにかく盛って今のクラウドネイティブを紹介します。
ITエンジニア。情報化社会において必要不可欠な存在であり、中高生がなりたい職業ランキングでは必ず上位にランクインする程人気の職業です。
発表者はITエンジニアとなってからもうじき25年を迎えます。また零細システム開発企業の経営者でもあります。
このトークは、ITエンジニアになろうとしている方と、新人エンジニアを受け入れる立場の方へ向けた、いわば老婆心からのメッセージといった内容となります。
話すこと
持ち帰っていただきたい知見
開設から10ヶ月ものあいだ1記事しか投稿されていなかった上、途中でインシデントを引き起こし発信活動を停止していたClassi開発者ブログに賑いを取り戻すためにそれはもう色々なことをやってきました。
そんなブログも月数記事以上の公開ペースを3年近く保てるようになりました。そこに至る取り組みを通して、持続的な技術ブログ運営のノウハウと「アウトプットが人々を豊かにする」という哲学の醸成について考えたいと思います。
組織の技術ブログ運営について悩んでいる方はもちろん、ブログや発信から遠ざかっている個人のみなさまも、今一度、発信すること・共有することのおもしろさについて再発見する一助になるきっかけとなるようなトークにしたいと考えています。
チームのメンバーが増えてくると、どうしても決まりごとが増えてきます。様々な事情に配慮しなければならないからです。それまでは気軽かつ柔軟に決められていた事柄が、段々と形式に則ったミーティングでの意思決定プロセスが敷かれて、気がつくと当初の俊敏性は失われていると感じることがありませんか。
Scrum@Scaleは上記のような悩みを抱えるスクラムチームにとって有効なスケーリングの手段です。本セッションではリクルートのAirレジ オーダー開発チームのScrum@Scale導入のプロセスとその結果を紹介します。
多くのスクラムチームが直面するスケーリングに関する以下のような悩みに対してScrum@Scaleを実践する際の工夫をお伝えします。
現在YAPCを始め、たくさんの技術コミュニティが存在します。そして技術コミュニティにはスキルアップはもちろん、他の技術者との交流や新たな「好き」の発見、そして新たなキャリアの開拓など、参加者の未来を拡げる数多くのメリットが存在します。(実際、私も技術コミュニティを通して、数多くの「好き」の発見やキャリア開拓などを実現できました)
しかし、技術コミュニティに興味は持っていても「なかなか第一歩が踏み出せない」「自分には難しそう..」という方も多くいると聞きます。(私も最初はそうでした)
そこでこのセッションでは、AWS Community Builderである私がどのように技術コミュニティに参加・貢献するようになったのか、そして技術コミュニティにはどんな魅力があり、技術コミュニティを通してどのように自分の未来が拡がったのかなど、技術コミュニティの魅力やメリットをお話ししたいと思います。
技術、言語、コミュニティなど様々な分野の未来を創っていくためにはその分野に新しく入ってきてくれる人が不可欠です。新しい人に興味をもってもらう方法の1つに「ワークショップ」があります。ワークショップとは参加者の主体性を重視した体験型の学習で、メンターのサポートを受けながら、参加者が実際に手を動かして学びます。一人で始めるにはハードルが高いことでも、サポートのある中であれば安心してチャレンジができます。また、やってみたら意外と楽しかったという経験ができればその後の継続に繋がります。
ではそんな「ワークショップ」はどうやって作ればよいのでしょうか?
このトークでは学生向けプログラミングワークショップを内容から考え実施した経験を基に、ワークショップに必要な要素、コンテンツの作り方、ゴール設定、そして主催者の自己満足に陥ることなく、参加者にとって価値のある体験を提供する方法についてお伝えします。
2024年5月、それまで4年間エンジニアとしてキャリアを歩んでいた私は社内の肝煎りプロダクトのPdMを任命されました。
私たちは「不動産デベロッパー」、つまり街を作る人たちの業務改善アプリケーションを作っています。
不動産デベロッパーのビジネスは複雑性が高く、プロダクトの0→1を達成するには様々な困難がつきまといました。
今回は私たちが直面した様々な課題、またその課題をどのように乗り越えたのかを紹介できればと思います。
WebAPIを介して他のサービスと連携して、新しいサービスを作ることってありますよね。Googleアカウントでログインする機能の実装はまさにその一例です。
しかし、OpenAPI Specification等のフォーマットで各APIの仕様が公開されていたとしても、それらをどう組み合わせれば目的のユースケースを実現できるかは自明ではありません。ドキュメントを読み込み試行錯誤する中で、API間の依存関係やシーケンスを解き明かした経験がある方も多いのではないでしょうか。
そこで現在OpenAPI Initiativeで検討されているのが、2024年5月にv1.0.0が公開された、Arazzo Specificationと呼ばれるAPI Workflow定義です。
本セッションでは、そんなArazzoの内容、Arazzoが切り開く未来のユースケースを紹介し、対応ツールの自作で得た学びを共有します。
私は2003年からperldocjpプロジェクトでのPerlドキュメントの翻訳に参加し、現在まで更新し続けています。
言語のドキュメントは、分量があるだけでなく、定期的に更新されるため、翻訳をそれに追随させ続けるための工夫が必要になります。
このセッションでは、このようなドキュメントを翻訳し、それを更新し続けるために行った技術選択や工夫、作業を助けるために作成した小物ツールについて概説します。
※ 実例はPerlのものですが、考え方は他の環境でも応用できる内容を想定しています。
皆さんの周りに、つらそうな顔をしている人はいますか? 突然体調を崩し、なし崩し的に休職、退職していった方はいますか?
メンタルヘルス不調による休業・退職率について厚生労働省が行った令和4年の調査によると、ITエンジニアは全業界中でもワースト1位という結果が出ています。
リモートワークが当たり前になった現代。円安が進み、不安が増え続ける社会情勢。技術進化による職場環境の急激な変化……。
もしかしたら数ヶ月、あるいは数年後には自分が罹患するかもしれない。
技術だけでなく、健康についても、きちんと我々は知っておくべきだと、私は考えます。
このトークでは、実際にうつ病と診断され休職→退職を経て、再びエンジニアとして復職した私が、
一体どうやって自分と向き合い、そして前へ歩き出したのか、今どんな風に働いているのかと、これからについて、明るく話したいと思います。
プログラマとして生きてきて知識や技術も身につき、「こういうアプリケーションが欲しい」と思ったものをある程度は自分で作れるようになってきました。
過去には機械学習によるアイドル顔識別器、またそのデータセット管理システムなど。最近では
などを作っています。
すべて自分の趣味として「欲しい」と思ったものの、しっくりくるものが無かったので土台の部品から自分で作ったものたちです。
誰かが作った既存のものを組み合わせても良いですが、「自分好みのものを自分で作る」のも、とても楽しいものです。多くの学びも得ることができました。
未来の自分、または他の誰かが使うかもしれないものを、こだわり持って自作することの楽しさをお伝えしたいと思います。
AWS Lambda FunctionURLを活用し、従来の開発モデルで作られたWebアプリケーションを最小限の変更でサーバーレス化する手法を紹介します。
カヤックが運用するeスポーツ大会支援サービスTonamelでは、Goで実装されたマイクロサービスをECSからLambdaへ移行し、急激な負荷増加への対応とコスト削減を実現しました。
今回のYAPC::Hakodateスポンサー連動企画Perlbatrossでは、Perlで実装したWebアプリケーションをLambda上にデプロイし、CloudFrontと組み合わせて低コスト運用を実現しています。
本トークでは、Lambdaに移行するメリットとデメリット、GoやPerlアプリケーションのLambda化、デプロイ手法、複数開発環境やサービスメッシュの実現方法、VPCアクセスとインターネットアクセスの両立など、実践的な内容を扱います。
プライベートのプログラミングでは、OSSへの貢献、競技プロ、個人開発のWebサービス、未経験エンジニアのポートフォリオ作成などがあります。これらは自身のキャリアや利益に繋がる素晴らしい活動です。しかし、プログラミングはもっと自由で良いのです。
本講演では、キャリアや地位、お金のためではない「第三のプログラミングの選択肢」として、「クソアプリアドベントカレンダー」を紹介します。これは今年で10年目を迎え、私は毎年皆勤賞で参加しています。
毎年人気を博しているこのイベントでは、品質や独自性にこだわらず、少なくとも自分が欲しくてたまらない機能を持つサービスを作る楽しさを共有します。
業務では再利用性やバグが発生しないように考慮しますが、プログラミングを覚えた頃のように、「これをやったら面白そう」「こうしたらどうだろう?」というモチベーションで不完全なプログラミングを楽しみましょう。
キャッシュレス決済がどんどん普及する今、様々な電子決済サービスが日常的に利用されています。一昔前は現金が一般的で、お金を預ける先といえば銀行でした。そして銀行のシステムには絶大な信頼感があります。
私が開発しているB/43では、プリペイドカードを発行して決済に利用するお金を事前に入金してもらいます。銀行ではない我々は、ユーザーから入金してもらったお金をどのように守っているのでしょうか?皆さんも一度は本当に使って大丈夫なのか?データ不整合は起きない?会社が倒産したら返金される?忘れたまま放置して大丈夫?など、不安になったこともあるのではないでしょうか。
お金を守るための法規制やそれを準拠するシステム、エンジニアやCSが行っている実務に興味はありませんか?今後も拡大していくキャッシュレス社会の未来に備えて、知っておくと安心な電子決済サービスの知識やそれを支える仕組みについてお話しします。
皆さんは普段からアウトプットをしていますか?
何かをインプットしたらアウトプットをすると良いという話はどこでも聞くことができます。
私自身、アウトプットの一つの形として、個人で技術を中心にした話題を扱うブログサイトを運営しています。内容には濃淡がありますが、2018年頃から最低でも週に1記事のペースで投稿しています。
投稿した記事の内容は多岐に渡りますが、過去の自分に感謝する記事もあります。
そこで今回は、普段アウトプットしたいけれど良い方法が見つからない人に向けて、以下のような内容をお話しできればと考えています
皆さん runn という OSS はご存知でしょうか?
登壇者が2年前に出会い、一目惚れした推しツールとなります。
推し活動をし続けていたら、なんやかんやがあって何故か登壇したり、本を作ったりするなどしました。
runn は APIシナリオテストツールに留まらない大変便利な機能が多く存在します。
その機能のアイデアの幾つかが「カンファレンスの廊下」で生まれていっています。
runn はカンファレンス駆動開発によって支えられていると感じています。
本トークを通して以下のゴールを目指したいと考えます。
コード化されていない稼働中のサーバを移設/再構築する必要が出てきたことはないでしょうか?私はこれまで四度経験してきました。この経験を通じて、手動設定が多いシステムや長期間運用されているサーバの移設/再構築がいかに難しいかを実感しました。
現代のIT運用では、インフラのコード化(IaC)が主流ですが、すべてのサーバがコード化されているわけではありません。本セッションでは、コード化されていない稼働中のサーバを安全かつ効率的に移設するための技術と手法について解説します。未来のインフラ運用を見据え、移設後の最適化と将来的なIaC導入の可能性についても考察します。実例を交えながら、具体的な移設方法を共有し、参加者が未来のシステム運用を切り拓く一助となることを目指します。
キーワード
strace, ltrace, tcpdump, netstat, procfs, gdb, Sledge