はてなリモートインターンシップ2020
オンライン
講義動画&課題公開

2020年は、はてな初のオンラインでのインターンシップ開催。
その講義の動画とインターン生に取り組んでもらった課題を公開します。
1週間という短い期間の中で、どれだけのものを吸収して持ち帰ってもらえるか、
はてなスタッフが全力で準備したカリキュラムを、
少しでも体験していただけるとうれしいです。

課題について

課題では、Kubernetes上に構築されたブログシステムを題材としました。
ブログシステムはマイクロサービスを意識しており、メインであるブログサービスに加えて、 アカウントサービスや、Markdownなどの記法を変換するサービスが用意されています。
それぞれのサービス間はgRPCを使って通信しています。

オンライン講義動画

はてなリモートインターンシップ2020で行われた講義の動画です。hatenatechチャンネルで公開しています。チャンネル登録はこちら

講義1
Web APIの講義では、課題で利用するgRPCを学びます。gRPCを深く理解するために、gRPCでも利用されるHTTP/2に加え、RESTやGraphQLといったAPIの形式についてもキャッチアップしていきます。Webの基本から順序立てて知ることは、体系的な知識の獲得に役立つはずです。
講義2
コンテナid:cockscomb
コンテナの講義は、普段なんとなく使いがちなDockerを、より高い解像度で理解できることを目的としています。コンテナ技術の裏側にあるさまざまな仕組みを知り、より効果的でセキュアな利用法を学びます。この講義の終わりでは、とても楽しい「Docker Quiz」が出題されます。
講義3
Kubernetesid:itchyny
Kubernetesの講義では、Kubernetesが提供する概念、KustomizeやSkaffoldのようなツールに触れます。そしてブログシステムが稼働するKubernetesクラスタを、ハンズオン形式で実際に操作していきます。実際に手を動かすことで、Kubernetesによるコンテナオーケストレーションを体験できます。
講義4
マイクロサービスid:itchyny
マイクロサービスの講義では、モノリシックなアプリケーションからマイクロサービスに転換する、その背景から学んでいきます。そしてマイクロサービスを設計するための基本的な知識の獲得を目指します。最後にブログシステムへサービスメッシュを導入することで、その役割を実感できます。

インターンで行った課題

4つの講義が終わった後に、課題に取り組んでもらいました。 課題は、用意されたブログシステムに追加の機能を実装するというもの。ブログシステムは複数のサービスから成りますが、特に「記法変換サービス」を実装する部分を課題としています。 この課題をGitHubで公開しました。

Hatena Remote INTERNSHIP 2020 課題

受講したインターン生からも、「インターン期間終了後も、機能を追加したり改良したりして遊んでいきたい!」と好評だった本課題。ぜひ取り組んでみてください!そして、実装できたらブログやTwitterなどで「#hatenaintern2020」のタグをつけて、感想を教えていただけるとうれしいです。※はてなの開発者ブログやtwitterなどの媒体で紹介させていただく場合がございます。

今後も@hatenatechでははてなの技術情報や採用情報など、幅広く情報を発信していきます。