カバーする範囲
バックエンド、ワーカー、データパイプライン、その周りの AWS。スケールしてもリリースが退屈なままになるよう、CI/CD と可観測性を入れます。
プロダクトチームが依る層です。API、ジョブ、データ、クラウド。既にあるコードベースを引き受け、壊れないようにしてから前へ進めます。
クラウドの仕事の多くは AWS です — スライドがそう言ったからではなく、本番の多くがそこにあるからです。Google Cloud と Azure も動かします。Docker のコンテナ。オーケストレーションが本当に必要なら Kubernetes と Helm。コンソールでクリックして組み立ててはいけない部分は Terraform。
CI は GitHub Actions または GitLab。可観測性は Prometheus と Grafana、またはアカウントに既にあれば Datadog と Sentry。メッセージ基盤は Kafka または RabbitMQ。今の段階に合わせます。二人のプロダクトにサービスメッシュは不要です。
- API、ワーカー、データパイプライン
- AWS、Google Cloud、Azure
- コンテナ、Kubernetes、Terraform
- CI/CD、監視、インシデント対応できるログ
実務では
- AWS: 演出なしのコンピュート、ストレージ、RDS、Lambda、ネットワーク、IAM
- 社内クラウドがそうなら Google Cloud と Azure
- Docker イメージ、Kubernetes、Helm、妥当なクラスタサイズ
- レビューできるコードとしてのインフラのための Terraform
- GitHub Actions、GitLab CI、Jenkins — 手元にあるもので働く
- Nginx、Cloudflare、Linux、その間の地味なネットワーク
- Postgres、MySQL、Redis、Elasticsearch、Kafka、RabbitMQ
- 本番が見える Prometheus、Grafana、Datadog、Sentry
- まだ全部がコンテナではないフリート向けの Ansible
- 引き継いだ基盤の引き取り: 安定させてから伸ばす
扱う技術
出荷に使っている道具です。スライドのためではなく、プロダクトとそれを保つチームのために選びます。
クラウド
AWS
Google Cloud
Azure
DigitalOcean
Heroku
Vercel
Cloudflare
プラットフォームとデリバリー
Docker
Kubernetes
Helm
Terraform
Ansible
Linux
Nginx
GitHub
GitHub Actions
GitLab
Jenkins
データとメッセージング
PostgreSQL
MySQL
MongoDB
Redis
Elasticsearch
Apache Kafka
RabbitMQ
Celery
SQLite
観測
Prometheus
Grafana
Datadog
Sentry
その基盤に載せるサービス
Node.js
Python
Go
Django
FastAPI
NestJS
GraphQL
よく聞かれること
- AWS と既存バックエンドも対象ですか?
- はい。新しいサービスも古い基盤も。何が起きているか見えるよう、CI/CD と監視を入れます。
- 引き継いだコードベースを引き取れますか?
- はい。監査し、安定させ、それから伸ばします。要点は、チームが出荷し続けられることです。
- どのクラウドとツールですか?
- 多くは AWS — コンピュート、ストレージ、データベース、Lambda、ネットワーク。社内標準なら Google Cloud と Azure。Docker、Kubernetes、Helm、Terraform、GitHub Actions または GitLab、Nginx、Cloudflare、Linux。Postgres、Redis、Kafka、RabbitMQ。Prometheus、Grafana、Datadog、Sentry。運用できない基盤は売りません。

