プラットフォーム(自社基盤)
オフライン
本コースは、サイボウズの東京オフィスにて対面で実施します(交通費・宿泊費はサイボウズ側が支給いたします)
コース概要
このコースのメンターを担当する Cloud Platform チームは、クラウドサービスである cybozu.com の運用と、自社で開発・運用している新インフラ基盤 Neco へのアプリケーションの移行支援を担当するチームです。
Kubernetes を活用したより信頼性が高く運用負荷の低いクラウドサービスの実現を目指し、アプリケーション開発チームと協力して移行を進めています。具体的には、アプリケーション開発チームを交えて新しいアーキテクチャを検討したり、必要なミドルウェアやマイクロサービスの開発・運用などを行っています。
プラットフォーム(自社基盤)コースでは、内製している新インフラ基盤におけるサービス運用の自動化や省力化、および今後予想される困難に対する知見の蓄積のため、実際に手を動かして検討・開発を行ってもらう予定です。現在移行を担当するエンジニアがメンターとして指導やレビューを行い、インターンシップにおける取り組みを支援します。
このインターンシップを通じて、Kubernetes とそのエコシステムを活用したアプリケーション開発に取り組むことができる他、大規模なサービスのバックエンドの仕組みを知ったり、信頼性の高さに貢献する実際の運用の現場を見ることができます。
募集要項
- 必要な経験/スキル
-
- Go言語を利用したプログラミング
- Git/GitHub
- Linuxでの基本的なコマンドライン操作
- あると望ましい経験/スキル
-
- Kubernetes を利用した開発・運用
- その他、コンピュータ科学全般についての幅広い教養
- 用意しておいて欲しいもの
-
- 二要素認証を有効化済みのgithub.comアカウント
- 二要素認証のために必要な私物端末
開催日程
- 8月17日(月)〜8月28日(金)
事前課題
以下の仕様を満たすHTTPサーバをGoで実装してください。現在リリースされている最新のGoを利用してください。また利用可能なモジュールはGoの標準モジュールのみとします。
- ポート番号8000で接続を受け付けます。
- `/objects/{key}` というパスへのアクセスを受け付けます。ただし `{key}` はアクセスするクライアントが自由に指定する文字列で、`^[a-zA-Z0-9]+$` という正規表現を満たし、かつ10文字以下です。この制約を満たさない `{key}` へのアクセスを考慮する必要はありません。
- `PUT` メソッドでアクセスされたとき
- 任意のバイト列をリクエストボディで受け取ります。
- 処理に成功したらステータスコード200を返します。
- `GET` メソッドでアクセスされたとき
- 既に該当する `{key}` でPUTされたデータがある場合、それをレスポンスボディで返します。ステータスコードは200とします。
- 該当する `{key}` でPUTされたデータが無い場合、ステータスコード404を返します。
- 他のメソッドでアクセスされたとき
- ステータスコード405を返します。
- `PUT` メソッドでアクセスされたとき
- それ以外のパスへのリクエストには全てステータスコード404を返します。
- サーバにアップロードされたデータはメモリ上に保持し、再起動前後で維持する必要はありません。
以下のコマンドで実行できるようにしてください。
CGO_ENABLED=0 go run ./main.go
また、secret gistのリンクでの提出をお願いします。
待遇
20,000円/日
過去の開催レポート
Kubernetes 上でインメモリ KVS を冗長化する(新しいページで開く)
OpenTelemetryの計装ライブラリ比較 for database/sql(新しいページで開く)