はじめに
めちゃくちゃ「いや、当たり前でしょ」という気付きを今さら得たよ!というだけの記事です。
DevOpsをテーマに仕事がしたい(仮)
CI/CDあたりの業務は楽しいので、この辺の領域を中心にできることを増やしていきたいのですが、そうなると職種的には DevOps
/ SRE
が一般的だと思っている。
自分の興味関心を大事にしつつ、転職したいときにすぐ転職できる(会社に依存しない)スキルセットの視点は忘れない方がいいと思うので、
- 年収高そう
- CI/CDできそう
の2つの視点でいろんな会社の募集要項を眺めてました。
すごく初歩的な気づき
-
CI/CD
ピンポイントの求人なんて存在しない(よく見たらあるかも) -
DevOps
というかSRE
ばっかり
いやガッツリ SRE
の経験ないと募集要項の必須スキルすら満たせない!(※ 採用後にCI/CDやるチームに配属、というパターンはあるかもですが)
いや、よくよく考えてみると当たり前で、それはそうなんですよ、 DevOpsを実現するための方法論の1つがSREで、SREの中のサービスの高頻度のリリース実現のためにCI/CDという考え方がある、ゆえに論理的に考えれば「DevOpsの中のSREの中のCI/CD」という構造になっている んですもんね。
※ 画像の引用元:ざっくり理解するSRE
2024年01月から10分前までの3か月間、『CI/CDをある程度やったらDevOpsエンジニアとして名乗っていいのでは?ムフフー』と思ってたけど完全なる勘違いでした。
というわけで、CI/CDパイプライン通過してサービスがデプロイされた後のAPM / システム監視の部分も業務で触れておいた方がいいね、むしろやっておかないと市場価値が頭打ちになるね、という気付きでした。
まだギリギリ社会人2年目ですけど、図らずもざっくりとしたキャリアパスが描けてしまい、うれしい。
- 過去:Webアプリの開発
- 現在:WebアプリのCI/CD
- 未来:WebアプリのSRE
- さらに未来:DevOpsたのしくやる
まあ分かることできること増えたらまた変わっていくと思うけど今はこんな感じで仮決めです。年始に異動したときはマネージャーが「とりあえずこれやったらいいよ」と言ってくれたので進めているのですがやっと腹落ちした気がする。
最近CIがたのしいけど、Continuous Delivery / Deployment にも目を向けねば、という気持ちになった。
参考:いろんな企業の募集要件
見た基準は以下です。
- 年収高そう
- CI/CDできそう
スマートニュース株式会社
必須要件
// Infrastructure Services
- 3+ years of backend software development experience
- BS degree or above in Computer Science, Computer Engineering
- Experience designing, building, testing, launching and running software products
- Skilled in Java/Kotlin programming languages
- Experienced in CICD practices
- Experience with microservices architecture using technologies like Docker and Kubernetes
- Exceptional verbal and written communication skills for both technical and non-technical stakeholders
- Experience with performance and optimization problems and a demonstrated ability to both diagnose and prevent such problems
- Business-level English
// Ads Delivery
- Fluent in any of the following languages: Java, Kotlin, C#, Golang, Javascript, Typescript SQL
- Fluent in using Kafka, Redis, SQL and Cassandra
- Deep understanding in batching and streaming data processing
- Experienced in CICD
- Experienced in microservice powered by container technology such as Docker and Kubernetes
歓迎要件
// Infrastructure Services
- Fast-growing company experience of architecture design for a high-traffic distributed backend system
- Knowledge of and experience using AWS cloud resources
- Passionate about/experienced with open source and developer tools
- Experience and skills in Spring Boot, MySQL, Elasticsearch, Hive, Docker, Kubernetes (k8s), and more.
// Ads Delivery
- Language ability: Golang, TypeScript, Python
- Db experience: Cassandra, DynamoDb and MongoDb
- Engineering experience: migrate on-prem system onto cloud
- Industry experience: Digital Advertising Technology
株式会社ユーザーベース
必須要件
- 日本語を使って対面でのコミュニケーションが取れる
- 下記のうち、1つは必須
- サービスインフラ(ネットワーク、サーバ、ストレージ、ミドルウェア)の構築、管理、運用の実務経験
- コンテナ技術の実務経験
- WEBサーバ、データベース等のミドルウェアのパフォーマンス・チューニングの実務経験
歓迎要件
- REST APIアプリケーションの開発経験
- Web Application Frameworkを用いたアプリケーションの開発経験
- 下記、想定技術・スキルの実務経験
<使用する想定の技術、スキル>
- GCP、AWSを利用した開発/運用
- DockerやKubernetesなどコンテナ技術を利用した開発/運用
- 大規模データベース(MySQL、PostgreSQL、Elasticsearch、Aerospike等)の構築・運用
- Jenkins、CircleCI、GitLabなどCI/CDツールの運用
- Ansible、Terraform等を利用した構成管理ツールの運用
- Prometheus, Grafanaなどを利用したモニタリング環境の運用
- Java、 Go、 Python を利用したソフトウェア開発
- BigQuery、Kibana、Redashなどを活用したデータ分析
- マイクロサービスアーキテクチャによる開発/運用
- BGP, OSPF等を利用したネットワーク構築
PayPay株式会社
必須要件
ソフトウェア開発の3年以上の実務経験
歓迎要件
- DevOps(業務改善)を実践するチームで働き、Dev/Ops両方の観点からプロダクトの開発に携わった経験
- 他部署または他職種と協業しながらDevOpsを推し進めた経験
- 社内ステークホルダーとコミュニケーションをとり、仕様調整や課題解決を行い、プロジェクトを遂行した経験
- AWS上で構成管理ツールによるIaC等を通じた自動化の仕組みの運用の経験
- CI/CD環境構築、運用のご経験
- Python・Bash等のプログラミング言語を利用して、作業を自動化もしくはツール化した経験
- Webアプリケーションの企画、設計、開発経験
株式会社メルカリ
必須要件
- メルカリグループおよび各カンパニーのミッションとバリューに共感していただける方
- Site Reliability Engineeringという文化・思想を理解している方
- AWS・GCP・Azureなどのパブリッククラウド、またはプライベートクラウドの利用経験のある方
- CI/CD、Infrastructure as Codeの思想に基づくツールによる自動化環境の運用経験のある方
- システムの課題(パフォーマンス低下の原因、SPoFなど)を特定し、チームメンバー(開発チーム含む)とともに解決に取り組める方
歓迎要件
- クラウドにおけるネットワークの設計・運用経験のある方
- Fastly、Cloudflare、CloudFrontなどのCDNの利用経験のある方
- データベースのパフォーマンスチューニングなどの経験のある方
- Go、Java、Pythonなどのプログラミング言語を用いたプロダクトやツールの開発・運用経験のある方
- OS、ネットワーク、ミドルウェア等のセキュリティに関する深い知識・運用経験のある方
- Kubernetesに関する深い知識・運用経験のある方
- Gremlin、Chaos Mesh、AWS Fault Injection Simulatorなどのカオスエンジニアリングの思想に基づくツールの利用経験
- Istio、Envoy、Linkerd、Consulなどを利用したサービスメッシュの構築・運用経験のある方
LINEヤフー株式会社
必須要件
- コンピュータ・サイエンスの知識(例:標準的なアルゴリズムやデータ構造、OS、ネットワーク、データベース)
- Linux/Unixでの開発・運用経験
- なんらかのプログラミング言語(例:Java、Kotlin、Python、Go)によるWebサービスやモバイルアプリの開発・運用経験
- Immutable infrastructureおよびKubernetesのコンセプトの知識
- SREプラクティスに関する知識(例: Observability、SLO、Error Budget、Infrastructure as Code、Release engineering)
- 高可用性や高スループットを達成するためのアーキテクチャ設計の知識
- 日本語か英語のいずれかによるコミュニケーション能力
歓迎要件
- Java/Kotlin、Spring Frameworkを用いたWebサービスやモバイルアプリの開発・運用経験
- AnsibleやTerraformを利用したInfrastructure as Codeの経験
- Prometheus、Grafanaを利用したダッシュボードの作成経験
- 障害訓練やカオスエンジニアリングの経験
- CDNを活用したコンテンツ配信の経験
- インシデントレスポンスに関する知識
- Launch coordination engineering(ローンチ調整エンジニアリング)の知識
- オープンソースソフトウェアの開発経験やコミュニティ参加の経験
- データ駆動・イシュー駆動で課題を解決する姿勢のある方
- 日本語と英語の両方を学ぼうとする姿勢のある方
株式会社Kyash
必須要件
- AWSを活用したサービスインフラの構築および運用経験
- Terraformなどコードによるインフラ構成管理の経験
- TCP/IPやHTTPなどネットワークプロトコルの基礎知識
歓迎要件
- SREやインフラチームにおける技術リードの経験
- コンテナオーケストレーションツールを使用したシステム運用と保守経験
- Webサーバ、RDBMS、KVS等を活用した大規模システムのインフラ運用経験
- PCI DSS準拠環境や金融システムにおけるインフラ構築や運用経験
- シェルスクリプト以外のプログラミング言語を利用した開発経験
- 脆弱性対応やセキュリティに関する知識
株式会社よりそう
必須要件
- インフラエンジニア、またはバックエンドエンジニアとして5年以上の経験をお持ちの方
- AWSクラウドの利用経験をお持ちの方
- HCLまたはJavascriptでの開発経験をお持ちの方
歓迎要件
- PHPによるWebアプリケーションの設計や開発の経験
- DockerやKubernetesの利用経験
- TerraformやAnsible等のオーケストレーションツールの利用経験
- toC または toB Webサービスの開発、運用経験
Chatwork株式会社
必須要件
- システム開発、運用、トラブルシューティングの経験があること
- AWS等を用いたクラウドインフラの構築・運用経験
歓迎要件
- 大規模システムのモニタリング設計、障害発生時のトラブルシュート経験
- Kubernetes等のコンテナオーケストレーションツールの構築・運用経験
- CI/CDや開発環境を整備しチームの生産性向上に寄与された経験
- Kafka / HBase / Elasticsearchなど、分散データストレージの構築・運用経験
- 技術系勉強会の登壇やOSSプロジェクトへのコントリビュートなど、コミュニティへ貢献した経験
株式会社ZOZO
必須要件
- AWS/Azure/GCPいずれかのクラウドを利用したインフラ/サービス運用経験
- LinuxサーバーまたはWindowsServerの運用経験
- Webアプリケーションの運用経験
- インフラ構築自動化の経験(CloudFormationやTerraform)
- GitHub Actionsなどを利用したCI/CD構築・運用経験
歓迎要件
- Kubernetesクラスタの運用経験
- マイクロサービスアーキテクチャの設計/運用経験
- AWSを利用したインフラ/サービス運用経験
- スケーラビリティを考慮した大規模Webアプリケーションの設計経験、負荷対策を行った経験
- SQL Server/MySQL等RDBMSの設計/構築/運用/チューニングの経験
- NoSQLを活用したシステムの設計/構築/運用/チューニングの経験
- Queueを利用した非同期処理システムの設計/運用経験
- Elasticsearchの運用・開発経験
- クラウドネイティブアーキテクチャの知見/理解
- VMWare等の仮想化基盤の設計/構築/運用経験
株式会社ビズリーチ
必須要件
- ソフトウェアエンジニアとして実務経験5年以上
- Dockerベースのコンテナに関する業務経験
- 標準的なTCP / IPネットワーキングとDNSやHTTPなどの一般的なプロトコルの理解
- AWS、GCP、Microsoft Azureなどのクラウドサービスの運用経験
- Terraformの運用経験
歓迎要件
- 商用サービスでの監視ツールの運用経験
- ホスティングサービスの運用経験
- ソフトウェアセキュリティに関する深い知見
株式会社マネーフォワード
必須要件
以下のいずれかのスキル
- Webアプリケーション開発経験
- Kubernetesを用いたコンテナ環境構築・運用経験
- AWSサービスを利用したインフラ構築・運用経験
- Webサービス設計・運用・保守・改善・障害対応のご経験
- Site Reliability Engineeringに関する知見
歓迎要件
- マルチテナントでのKubernetes 構築運用経験
- Webサービスにおける障害対応の豊富なご経験
- Webサービス事業会社でのSREとしてのご経験
- AWSでの大規模サービス運用経験
- CI/CDパイプラインの構築経験
- Webサービスのモニタリング導入・運用経験
- Webサービスのキャパシティプランニング、チューニング経験
- オンプレ環境からクラウド環境への移行経験
- コードを書いてToilの対応などを自動化した経験
- MySQLの運用経験(バージョンアップ経験、レプリケーションなどの知見)
- チームリーダー、チームマネジメントの経験
おわりに
最近ではスクラムマスターとかも職種として募集されてて興味深かった。
基本的に開発経験3年は必要なので、個人的にもう1年は開発に携わっておいた方が無難。