Microservices

の採用・求人一覧

  • Product Engineer

    フルスタックエンジニア

    Product Engineer

    給与・報酬

    年収 600万円 ~ 800万円

    稼働時間

    80時間 ~ 160時間(週20 ~ 40時間)

    雇用形態

    副業転職(業務委託から正社員)

    勤務形態

    相談の上決定する

    Product Engineer

    株式会社アレスグッド

    詳細を見る

    A passion for delivering high-quality, maintainable code and the ability to switch effortlessly between frontend and backend tasks are key. 高品質でメンテナンス可能なコードを提供する情熱と、フロントエンドとバックエンドのタスクを容易に切り替える能力が重要です。 Our ideal Product Engineer will work closely with cross-functional teams to refine product ideas, taking them through all stages of the development lifecycle. 理想的なプロダクトエンジニアは、プロダクトアイデアを精査し、開発ライフサイクルのすべての段階を通じて推進するために、クロスファンクショナルチームと緊密に連携します。 We value those with a startup background and a minimum of 5 years of experience. スタートアップの経験がある方や、最低5年以上の経験を持つ方を重視しています。

  • 人類の価値観を解放する、インフラエンジニア / Infra Engineer

    フルスタックエンジニア

    人類の価値観を解放する、インフラエンジニア / Infra Engineer

    給与・報酬

    年収 600万円 ~ 800万円

    稼働時間

    80時間 ~ 160時間(週20 ~ 40時間)

    雇用形態

    副業転職(業務委託から正社員)

    勤務形態

    相談の上決定する

    人類の価値観を解放する、インフラエンジニア / Infra Engineer

    株式会社アレスグッド

    詳細を見る

    - AWS Infrastructure Management: - Manage and optimize AWS services such as ECS, CodeDeploy, EC2, S3. - Utilize Terraform for infrastructure as code to provision and manage AWS resources. - CI/CD Pipeline Setup and Improvement: - Develop, maintain, and enhance CI/CD pipelines to streamline deployment processes. - Implement best practices for continuous integration and continuous deployment. - Microservices Deployment: - Deploying, splitting, and maintaining microservices architecture. - Optimize microservices for scalability and performance. - Deployment Time optimization: - Identify bottlenecks in the deployment process and implement solutions to reduce deployment time. - Application Deployment: - Deploy and manage Ruby on Rails and React.js applications. - Collaborate with development teams to ensure smooth deployment cycles. -- - AWSインフラストラクチャ管理: - ECS、CodeDeploy、EC2、S3などのAWSサービスを管理および最適化する。 - Terraformを使用して、インフラストラクチャをコードとしてプロビジョニングおよび管理する。 - CI/CDパイプラインの設定と改善: - デプロイメントプロセスを効率化するために、CI/CDパイプラインを開発、維持、強化する。 - 継続的インテグレーションと継続的デプロイメントのベストプラクティスを実装する。 - マイクロサービスのデプロイメント: - 【歓迎要件】マイクロサービスアーキテクチャのデプロイ、分割、および保守の経験。 - マイクロサービスのスケーラビリティとパフォーマンスを最適化する。 - デプロイメント時間の短縮: - 【歓迎要件】 デプロイメントプロセスのボトルネックを特定し、デプロイメント時間を短縮するためのソリューションを実装する。 - アプリケーションのデプロイメント: - Ruby on RailsおよびReact.jsアプリケーションをデプロイおよび管理する。 - 開発チームと協力して、スムーズなデプロイメントサイクルを確保する。

  • Product Engineer

    フルスタックエンジニア

    Product Engineer

    給与・報酬

    年収 600万円 ~ 800万円

    稼働時間

    80時間 ~ 160時間(週20 ~ 40時間)

    雇用形態

    業務委託

    勤務形態

    相談の上決定する

    Product Engineer

    株式会社アレスグッド

    詳細を見る

    A passion for delivering high-quality, maintainable code and the ability to switch effortlessly between frontend and backend tasks are key. 高品質でメンテナンス可能なコードを提供する情熱と、フロントエンドとバックエンドのタスクを容易に切り替える能力が重要です。 Our ideal Product Engineer will work closely with cross-functional teams to refine product ideas, taking them through all stages of the development lifecycle. 理想的なプロダクトエンジニアは、プロダクトアイデアを精査し、開発ライフサイクルのすべての段階を通じて推進するために、クロスファンクショナルチームと緊密に連携します。 We value those with a startup background and a minimum of 5 years of experience. スタートアップの経験がある方や、最低5年以上の経験を持つ方を重視しています。

  • 人類の価値観を解放する、インフラエンジニア / Infra Engineer

    フルスタックエンジニア

    人類の価値観を解放する、インフラエンジニア / Infra Engineer

    給与・報酬

    年収 600万円 ~ 800万円

    稼働時間

    80時間 ~ 160時間(週20 ~ 40時間)

    雇用形態

    業務委託

    勤務形態

    相談の上決定する

    人類の価値観を解放する、インフラエンジニア / Infra Engineer

    株式会社アレスグッド

    詳細を見る

    - AWS Infrastructure Management: - Manage and optimize AWS services such as ECS, CodeDeploy, EC2, S3. - Utilize Terraform for infrastructure as code to provision and manage AWS resources. - CI/CD Pipeline Setup and Improvement: - Develop, maintain, and enhance CI/CD pipelines to streamline deployment processes. - Implement best practices for continuous integration and continuous deployment. - Microservices Deployment: - Deploying, splitting, and maintaining microservices architecture. - Optimize microservices for scalability and performance. - Deployment Time optimization: - Identify bottlenecks in the deployment process and implement solutions to reduce deployment time. - Application Deployment: - Deploy and manage Ruby on Rails and React.js applications. - Collaborate with development teams to ensure smooth deployment cycles. -- - AWSインフラストラクチャ管理: - ECS、CodeDeploy、EC2、S3などのAWSサービスを管理および最適化する。 - Terraformを使用して、インフラストラクチャをコードとしてプロビジョニングおよび管理する。 - CI/CDパイプラインの設定と改善: - デプロイメントプロセスを効率化するために、CI/CDパイプラインを開発、維持、強化する。 - 継続的インテグレーションと継続的デプロイメントのベストプラクティスを実装する。 - マイクロサービスのデプロイメント: - 【歓迎要件】マイクロサービスアーキテクチャのデプロイ、分割、および保守の経験。 - マイクロサービスのスケーラビリティとパフォーマンスを最適化する。 - デプロイメント時間の短縮: - 【歓迎要件】 デプロイメントプロセスのボトルネックを特定し、デプロイメント時間を短縮するためのソリューションを実装する。 - アプリケーションのデプロイメント: - Ruby on RailsおよびReact.jsアプリケーションをデプロイおよび管理する。 - 開発チームと協力して、スムーズなデプロイメントサイクルを確保する。

  • 【Fintech】テックリード(フロントエンドエンジニア)

    リードエンジニア

    【Fintech】テックリード(フロントエンドエンジニア)

    給与・報酬

    年収 800万円 ~ 1,199万円

    稼働時間

    裁量労働制

    雇用形態

    正社員

    勤務形態

    相談の上決定する

    技術スタック

    【Fintech】テックリード(フロントエンドエンジニア)

    株式会社BANKEY

    詳細を見る

    - サービス開発全般 プロダクト開発にあたりフロントエンド領域における開発及び運用業務のすべての工程に携わっていただきます。お客様に安心して決済をしていただけるサービスのために、革新的でわかりやすく安心感のあるUX開発や、そのために必要な課題の解決をしていただきます。これらを達成するためにも自由で活発な議論ができる開発チームを一緒に作っていける方であることを重要と考えています。 サービスの新規開発と運用確立、チームリード 設計開発レビュー:フロントエンド機能の開発及びテスト、プロダクトのリリースに必要な活動の実施 UX改善:リリース後のUX改善点の発見や改善提案及びそのための運用方式の設計などの実施 問い合わせ対応:社内外から来るプロダクトの仕様や不具合調査など プロジェクト進行:チームで開発を進めるにあたり、コミュニケーションや開発運用についての改善など、開発生産性を高めるあらゆる活動 - 開発言語:Go、Dart、Terraform - フレームワーク:Gin、flutter、REST API、OpenID Connect - インフラ:GCP(Apigee, Cloud Run, Cloud Tasks, PubSub, Identity Platform, Spanner, Memorystore) - テスト:testify、Tavern - CI/CD:GitHub Actions, Cloud Build - 分析基盤:BigQuery, Looker Studio - コード管理:GitHub - プロジェクト管理:GitHub Project - 情報共有:Google Drive、Docusaurus - コミュニケーションツール:Slack - デザイン:Figma - 開発支援:GitHub Copilot, GoLand, OrbStack

  • 【Fintech】フロントエンドエンジニア

    フロントエンドエンジニア

    【Fintech】フロントエンドエンジニア

    給与・報酬

    年収 600万円 ~ 1,000万円

    稼働時間

    裁量労働制

    雇用形態

    正社員

    勤務形態

    相談の上決定する

    技術スタック

    【Fintech】フロントエンドエンジニア

    株式会社BANKEY

    詳細を見る

    - サービス開発全般 決済系のサービス構築に際してフロントの「決済体験(フリクション)がない体験」の実装に向けバックエンド・インフラに意を配しながらの開発速度の向上を図っていただきたいです。 一旦出来上がったサービスは存在するが機能追加を含めて今後更に拡充が必要というフェーズで「0→1」に近い開発・実装に少数精鋭チームで取り組みます。 既存プロダクトや新規プロダクトにおける、フロントエンドの実装から上流工程への展開を展望します。 プロダクトマネージャーやビジネスチーム、デザインチームと協力しながら、開発、テスト、QA、運用まで、多くのフェーズに参画することができます。 - 開発言語:Go、Dart、Terraform - フレームワーク:Gin、flutter、REST API、OpenID Connect - インフラ:GCP(Apigee, Cloud Run, Cloud Tasks, PubSub, Identity Platform, Spanner, Memorystore) - テスト:testify、Tavern - CI/CD:GitHub Actions, Cloud Build - 分析基盤:BigQuery, Looker Studio - コード管理:GitHub - プロジェクト管理:GitHub Project - 情報共有:Google Drive、Docusaurus - コミュニケーションツール:Slack - デザイン:Figma - 開発支援:GitHub Copilot, GoLand, OrbStack

  • 【Fintech】フルスタックエンジニア

    フルスタックエンジニア

    【Fintech】フルスタックエンジニア

    給与・報酬

    年収 600万円 ~ 1,000万円

    稼働時間

    裁量労働制

    雇用形態

    正社員

    勤務形態

    相談の上決定する

    技術スタック

    【Fintech】フルスタックエンジニア

    株式会社BANKEY

    詳細を見る

    - サービス開発全般 プロダクト開発にあたり必要な開発及び運用業務のすべての工程に携わっていただきます。 お客様に安心して決済をしていただけるサービスのためにセキュリティにこだわりつつも、革新的なUXと安価な決済手数料を達成するためにあらゆる開発の工夫や課題の解決をしていただきます。 これらを達成するためにも自由で活発な議論ができる開発チームを一緒に作っていける方であることを重要と考えています。 - サービスの新規開発と運用確立 1. 設計開発:機能やインフラの開発及びテストなど、領域に縛られずプロダクトのリリースに必要な活動の横断的な実施 2. 運用:リリース後の運用及びそのための運用方式の設計や運用訓練など 3. 問い合わせ対応:社内外から来るプロダクトの仕様や不具合調査など 4. プロジェクト進行:チームで開発を進めるにあたり、コミュニケーションや開発運用についての改善など、開発生産性を高めるあらゆる活動 - 開発言語:Go、Dart、Terraform - フレームワーク:Gin、flutter、REST API、OpenID Connect - インフラ:GCP(Apigee, Cloud Run, Cloud Tasks, PubSub, Identity Platform, Spanner, Memorystore) - テスト:testify、Tavern - CI/CD:GitHub Actions, Cloud Build - 分析基盤:BigQuery, Looker Studio - コード管理:GitHub - プロジェクト管理:GitHub Project - 情報共有:Google Drive、Docusaurus - コミュニケーションツール:Slack - デザイン:Figma - 開発支援:GitHub Copilot, GoLand, OrbStack

  • 【Fintech】バックエンドエンジニア

    サーバーサイドエンジニア

    【Fintech】バックエンドエンジニア

    給与・報酬

    年収 600万円 ~ 1,000万円

    稼働時間

    裁量労働制

    雇用形態

    正社員

    勤務形態

    相談の上決定する

    技術スタック

    【Fintech】バックエンドエンジニア

    株式会社BANKEY

    詳細を見る

    - バックエンド開発全般 プロダクト開発にあたり必要な開発及び運用業務のすべての工程に携わっていただきます。その中でも主にバックエンドの開発を担っていただきます。 お客様に安心して決済をしていただけるサービスのためにセキュリティにこだわりつつも、革新的なUXと安価な決済手数料を達成するためにあらゆる開発の工夫や課題の解決をしていただきます。これらを達成するためにも自由で活発な議論ができる開発チームを一緒に作っていける方であることを重要と考えています。 - サービスの新規開発と運用確立 1. 設計開発:バックエンドアプリケーションの設計開発テストなど開発工程の実施、及び関連する一部インフラの設計開発テスト 2. 運用:リリース後の運用及びそのための運用方式の設計や運用訓練など 3. 問い合わせ対応:社内外から来るプロダクトの仕様や不具合調査など 4. プロジェクト進行:チームで開発を進めるにあたり、コミュニケーションや開発運用についての改善など、開発生産性を高めるあらゆる活動 - 開発言語:Go、Dart、Terraform - フレームワーク:Gin、flutter、REST API、OpenID Connect - インフラ:GCP(Apigee, Cloud Run, Cloud Tasks, PubSub, Identity Platform, Spanner, Memorystore) - テスト:testify、Tavern - CI/CD:GitHub Actions, Cloud Build - 分析基盤:BigQuery, Looker Studio - コード管理:GitHub - プロジェクト管理:GitHub Project - 情報共有:Google Drive、Docusaurus - コミュニケーションツール:Slack - デザイン:Figma - 開発支援:GitHub Copilot, GoLand, OrbStack

  • 【Fintech】QAエンジニア

    QAエンジニア

    【Fintech】QAエンジニア

    給与・報酬

    年収 600万円 ~ 1,000万円

    稼働時間

    裁量労働制

    雇用形態

    正社員

    勤務形態

    相談の上決定する

    技術スタック

    【Fintech】QAエンジニア

    株式会社BANKEY

    詳細を見る

    - サービス品質保証全般 プロダクト開発における開発及び運用業務のすべての工程における品質保証に携わっていただきます。お客様に安心して決済をしていただけるサービスのためにセキュリティと安定的なサービス品質にこだわった工夫や課題の解決をしていただきます。これらを達成するためにも自由で活発な議論ができる開発チームを一緒に作っていける方であることを重要と考えています。 - サービス開発及び運用における品質管理 1. テスト計画策定:テスト工程の整理や品質保証範囲、測定すべきメトリクスの定義など、プロダクトの品質やセキュリティの確保に必要な活動計画の策定 2. テストの主導的実施:テスト計画に定めた事項の実施とチームの主導 3. 品質分析:特にインシデント発生時におけるプロダクト品質の分析と文書化及び報告 4. プロジェクト進行:チームで開発を進めるにあたり、コミュニケーションや開発運用についての改善など、開発生産性を高めるあらゆる活動 - 開発言語:Go、Dart、Terraform - フレームワーク:Gin、flutter、REST API、OpenID Connect - インフラ:GCP(Apigee, Cloud Run, Cloud Tasks, PubSub, Identity Platform, Spanner, Memorystore) - テスト:testify、Tavern - CI/CD:GitHub Actions, Cloud Build - 分析基盤:BigQuery, Looker Studio - コード管理:GitHub - プロジェクト管理:GitHub Project - 情報共有:Google Drive、Docusaurus - コミュニケーションツール:Slack - デザイン:Figma - 開発支援:GitHub Copilot, GoLand, OrbStack

  • 【Fintech】プロダクトマネージャー

    プロダクトマネージャー

    【Fintech】プロダクトマネージャー

    給与・報酬

    年収 800万円 ~ 1,000万円

    稼働時間

    裁量労働制

    雇用形態

    正社員

    勤務形態

    相談の上決定する

    技術スタック

    【Fintech】プロダクトマネージャー

    株式会社BANKEY

    詳細を見る

    - プロダクトマネジメント プロダクトとして必要な体験や価値を追求し、必要なあらゆる機能と運用の設計に携わっていただきます。お客様に安心して決済をしていただけるサービスのために、どのような体験や機能が必要かを考え、自ら技術や法律やガイドラインを調査して課題の解決またはその道筋を示すことをしていただきます。これらを達成するためにも自由で活発な議論ができる開発チームを一緒に作っていける方であることを重要と考えています。 - サービスの機能と運用の設計 1. 調査:機能や運用を設計するために、技術や法律やガイドラインなどあらゆる情報やノウハウを読み解き必要な情報を整理 2. 企画・設計:前提を置かず、本当にプロダクトとして必要な体験や機能の企画及び設計(要件定義〜概要設計は必須、基本設計ができると尚良し) 3. 企画・設計:前提を置かず、本当にプロダクトとして必要な体験や機能の企画及び設計(要件定義〜概要設計は必須、基本設計ができると尚良し) 4. 問い合わせ対応:社内外から来るプロダクトの仕様や不具合調査、それに伴うドキュメンテーション並びに顧客コミュニケーション 5. プロジェクト進行:チームで開発を進めるにあたり、コミュニケーションや開発運用についての改善など、開発生産性を高めるあらゆる活動 - 開発言語:Go、Dart、Terraform - フレームワーク:Gin、flutter、REST API、OpenID Connect - インフラ:GCP(Apigee, Cloud Run, Cloud Tasks, PubSub, Identity Platform, Spanner, Memorystore) - テスト:testify、Tavern - CI/CD:GitHub Actions, Cloud Build - 分析基盤:BigQuery, Looker Studio - コード管理:GitHub - プロジェクト管理:GitHub Project - 情報共有:Google Drive、Docusaurus - コミュニケーションツール:Slack - デザイン:Figma

  • 【大阪/リードエンジニア】CTO直下組織にてプロダクトを横断した課題解決を担当

    リードエンジニア

    【大阪/リードエンジニア】CTO直下組織にてプロダクトを横断した課題解決を担当

    給与・報酬

    年収 600万円 ~ 1,000万円

    稼働時間

    10:00 ~ 19:00

    雇用形態

    正社員

    勤務形態

    オフィス

    技術スタック

    【大阪/リードエンジニア】CTO直下組織にてプロダクトを横断した課題解決を担当

    株式会社スマレジ

    詳細を見る

    CTO室に所属し、プロダクト内外の技術課題の解決を担っていただきます。 入社後はまず、既存プロダクトの開発も行い、現状の開発体制を把握いただきます。その後、プロダクト開発チームやアーキテクチャ・インフラなど課題を発見し、解決に向けてプロダクトチームを協業していく業務をお任せいたします。 - プロダクト内外の技術課題発見・解決 - プロダクト/プロダクト全般の技術戦略・方針の検討 - 新技術の調査及びフィジビリティ検証 - 新規事業/プロダクトの立ち上がり支援 - 開発業務の品質チェック/レギュレーション策定 ※従事すべき業務の変更の範囲:会社の定める業務 ※本人の希望を考慮します 弊社は一人一人のメンバーが主体的・自発的な開発が行えるようプロダクトやその機能群ごとに少人数(3~5名程度)のチームで開発をしています。 2週間~1ヶ月(チームにより異なる)に1回のサイクルでリリースを行っています。 完成したソースコードはすべてレビューを通した後にマージしています。 PHP, JavaScript,TypeScript Laravel, CakePHP, Vue.js, React, jQuery VSCode, PhpStorm, Docker GitLab CI AWS(EC2, ECS, Aurora, S3, DynamoDB, ElastiCache, Lambda, SQS, SNS, StepFunction, Elastic BeanStalk等) GitLab(マージリクエストベースでレビューを実施) Google Workspace, Redmine, Slack, Jira

  • 【福岡/リードエンジニア】CTO直下組織にてプロダクトを横断した課題解決を担当

    リードエンジニア

    【福岡/リードエンジニア】CTO直下組織にてプロダクトを横断した課題解決を担当

    給与・報酬

    年収 600万円 ~ 1,000万円

    稼働時間

    10:00 ~ 19:00

    雇用形態

    正社員

    勤務形態

    オフィス

    技術スタック

    【福岡/リードエンジニア】CTO直下組織にてプロダクトを横断した課題解決を担当

    株式会社スマレジ

    詳細を見る

    CTO室に所属し、プロダクト内外の技術課題の解決を担っていただきます。 入社後はまず、既存プロダクトの開発も行い、現状の開発体制を把握いただきます。その後、プロダクト開発チームやアーキテクチャ・インフラなど課題を発見し、解決に向けてプロダクトチームを協業していく業務をお任せいたします。 - プロダクト内外の技術課題発見・解決 - プロダクト/プロダクト全般の技術戦略・方針の検討 - 新技術の調査及びフィジビリティ検証 - 新規事業/プロダクトの立ち上がり支援 - 開発業務の品質チェック/レギュレーション策定 ※従事すべき業務の変更の範囲:会社の定める業務 ※本人の希望を考慮します 弊社は一人一人のメンバーが主体的・自発的な開発が行えるようプロダクトやその機能群ごとに少人数(3~5名程度)のチームで開発をしています。 2週間~1ヶ月(チームにより異なる)に1回のサイクルでリリースを行っています。 完成したソースコードはすべてレビューを通した後にマージしています PHP, JavaScript,TypeScript Laravel, CakePHP, Vue.js, React, jQuery VSCode, PhpStorm, Docker GitLab CI AWS(EC2, ECS, Aurora, S3, DynamoDB, ElastiCache, Lambda, SQS, SNS, StepFunction, Elastic BeanStalk等) GitLab(マージリクエストベースでレビューを実施) Google Workspace, Redmine, Slack, Jira

  • スキルマーケット「ココナラ」DevOpsエンジニア

    リードエンジニア

    スキルマーケット「ココナラ」DevOpsエンジニア

    給与・報酬

    年収 600万円 ~ 900万円

    稼働時間

    10:00 ~ 19:00

    雇用形態

    正社員

    勤務形態

    オフィス

    技術スタック

    スキルマーケット「ココナラ」DevOpsエンジニア

    株式会社ココナラ

    詳細を見る

    ココナラスキルマーケットは、423万人を超える規模までサービスが拡大しており、今後も拡大していく予定です。 その際に、現在の延長線上での機能開発ではスケールに限界が見えてきているため、レガシー環境からの移行や各種チューニングを行うことで1000万人規模になっても運用可能なシステムを再構築していこうとしています。 リソースの半分はこちらに注力してもらうことになります。 また、スキルマーケットだけでなく、ココナラ経済圏全体で見た場合、さまざまな事業毎のシステムが立ち上がってきます。 それらのシステムから共通的に利用する機能として、認証や決済などさまざまな共通基盤の開発・構築も行っていきます。 こちらに関しては、基礎検討からスタートし、技術検証を行った後、事業適用を行うというフェーズで推進していくことになります。 ココナラスキルマーケットのバックエンドシステムに対して以下を行っていく。 - パフォーマンスチューニング - レガシー移行、技術負債解消 - 上記知見を他バックエンドメンバーにも情報連携し技術的育成を実施 またココナラ経済圏の共通基盤の開発および運用を行っていく - 認証基盤 - 決済基盤 - その他共通基盤 - 言語:Ruby、PHP、JavaScript、TypeScript - フレームワーク:Ruby on Rails、CakePHP、Vue.js、Nuxt.js - データベース:MySQL - ソースコード管理:GitHub - プロジェクト管理:ZenHub - コミュニケーションツール:Slack - 情報共有ツール: esa、confluence - インフラ環境:AWS、Docker、GCP - スキルマーケット開発 - スキルマーケット開発のバックエンドエンジニア →レガシー移行やパフォーマンスチューニングの内容がユーザー機能開発にも影響するため相互に連携しながら推進氏ていく必要がある - スキルマーケットのPdM等 →リリースタイミングの調整や、障害などが発生した場合に即座に連携し対応方針を協議して決めていく必要がある - ココナラ経済圏共通基盤開発 - 技術戦略室のメンバー(室長およびFE、BE、インフラなどの兼務メンバー) →共通基盤の方針策定、技術検証、開発スケジュール調整などさまざまな点で定期的に連携しながら推進する必要がある - 各事業のエンジニア →共通基盤を事業適用する際に連携方法などを伝えたり仕様策定の相談をしたりする必要がある - JR線、銀座線、井の頭線、東横線「渋谷駅」南口より徒歩5分 - 半蔵門線、田園都市線、副都心線「渋谷駅」出口8より徒歩6分

  • 急拡大中のココナラ経済圏を牽引するテックリードエンジニア

    リードエンジニア

    急拡大中のココナラ経済圏を牽引するテックリードエンジニア

    給与・報酬

    年収 800万円 ~ 1,200万円

    稼働時間

    10:00 ~ 19:00

    雇用形態

    正社員

    勤務形態

    オフィス

    技術スタック

    急拡大中のココナラ経済圏を牽引するテックリードエンジニア

    株式会社ココナラ

    詳細を見る

    スキルマーケット「ココナラ」の成長を力強く牽引いただけるテックリードエンジニアを募集しています。 技術戦略室メンバーとしてフロントエンド、バックエンド、アプリ、SRE、データサイエンス、R&Dなどの部署とコミュニケーションを取りながら、さらなるサービス成長に向けて開発・運用をリード頂きます。 また、組織的課題についてはエンジニアだけではなくビジネスサイドとも連携を取り、現実的な最適解を探して頂きます。 - マイクロサービス化の推進 - 現システムアーキテクチャの棚卸しと改善方針策定 - 非機能要件(性能、セキュリティ等)の基準整備と運用チューニング - PJT毎の設計のレビュー - 既存サービスの技術(技術的負債)のモダン化 など ※これまでのご経験やご希望に合わせ担当いただく内容を決めさせていただきます。 - 言語:Ruby, PHP, Go, JavaScript,Node,js - フレームワーク:Ruby on Rails, CakePHP, Vue.js, Nuxt.js - データベース:MySQL - ソースコード管理:GitHub - プロジェクト管理:ZenHub - コミュニケーションツール:Slack - 情報共有ツール: esa, Confluence - インフラ環境:AWS, Docker, GCP - 技術戦略室のメンバーに加え、フロントエンド、バックエンド、アプリエンジニア、SREとコミュニケーションを取りながら、課題を定義、達成していく。 - また、組織的課題についてはエンジニアだけではなくビジネスサイドとも連携を取り、現実的な最適解を探していく。 - JR線、銀座線、井の頭線、東横線「渋谷駅」南口より徒歩5分 - 半蔵門線、田園都市線、副都心線「渋谷駅」出口8より徒歩6分

職種から求人を探す

開発言語から探す

年収・時給から探す

稼働時間から探す

その他の条件から探す

お知らせ

お問い合わせ

求人に関するサマリ

Microservicesの転職・正社員求人、副業・業務委託案件、募集をお探しの方へ

本ページでは、Microservicesの転職・正社員求人、副業・業務委託案件、募集の傾向・特徴から、Microservicesについての概要、Microservices求人に役立つ資格やスキルなどをご紹介します。Microservicesの転職・正社員求人、副業・業務委託案件、募集をお探しの方もぜひ、あなたの次のキャリアステップを見つける手がかりとしてご活用ください。

Microservicesの転職・正社員求人、副業・業務委託案件、募集の傾向・特徴

まずは、OffersにおけるMicroservicesの求人・案件の傾向・特徴をご紹介いたします。2024年7月8日現在、Offers上で募集しているMicroservicesの求人・案件数は29件(※公開求人・案件のみ)です。また、雇用形態別のMicroservicesの求人・案件数は次のとおりです。
  • Microservicesの転職・正社員求人数:20件(※公開求人のみ)(※2024年7月8日現在)
  • Microservicesの正社員(業務委託からスタートOK)求人・案件数:9件(※公開求人・案件のみ)(※2024年7月8日現在)
  • Microservicesの副業・フリーランス・業務委託求人・案件数:18件(※公開求人・案件のみ)(※2024年7月8日現在)

Microservicesの求人・案件の年収・時給単価データ分布

Microservicesの転職・正社員求人の年収データ分布

2024年7月8日現在、Offers上で募集しているMicroservicesのすべての転職・正社員求人:20件の最低年収、最高年収データ(※公開求人のみ)は次のとおりです。
  • Microservicesの転職・正社員求人における最低年収:600万円
  • Microservicesの転職・正社員求人における最高年収:1,200万円

Microservicesの副業・フリーランス・業務委託求人・案件数の時給単価データ分布

2024年7月8日現在、Offers上で募集しているMicroservicesの副業・フリーランス・業務委託求人・案件数:18件の最低時給単価、最高時給単価(※公開求人のみ)は次のとおりです。
  • Microservicesの副業・フリーランス・業務委託求人・案件における最低時給単価:2,498円
  • Microservicesの副業・フリーランス・業務委託求人・案件における最高時給単価:4,000円

Microservicesの求人・案件における年収・時給単価データ分布

次に、OffersにおけるMicroservicesの求人・案件の年収・時給単価データ分布をご紹介いたします。2024年7月8日現在、Offers上で募集しているMicroservicesのすべての求人・案件:29件の年収データ分布(※公開求人のみ)は次のとおりです。

Microservicesの転職・正社員求人における最低年収データ分布

2024年7月8日現在、Offers上で募集しているMicroservicesのすべての転職・正社員求人:20件の最低年収データ分布(※公開求人かつ最低年収が設定されている求人のみ)は次のとおりです。
  • 300万円〜349万円:0件
  • 350万円〜399万円:0件
  • 400万円〜449万円:2件
  • 450万円〜499万円:2件
  • 500万円〜549万円:0件
  • 550万円〜599万円:0件
  • 600万円〜649万円:5件
  • 650万円〜699万円:0件
  • 700万円〜749万円:0件
  • 750万円〜799万円:0件
  • 800万円〜849万円:1件
  • 850万円〜899万円:0件
  • 900万円〜949万円:0件
  • 950万円〜999万円:0件
  • 1,000万円〜1,049万円:0件
  • 1,050万円〜1,099万円:0件
  • 1,100万円〜1,149万円:0件
  • 1,150万円〜1,199万円:0件
  • 1,200万円〜1,249万円:0件
  • 1,250万円〜1,299万円:0件
  • 1,300万円〜1,349万円:0件
  • 1,350万円〜1,399万円:0件
  • 1,400万円〜1,449万円:0件
  • 1,450万円〜1,499万円:0件

Microservicesの転職・正社員求人における最高年収データ分布

2024年7月8日現在、Offers上で募集しているMicroservicesのすべての転職・正社員求人:20件の最高年収データ分布(※公開求人かつ最高年収が設定されている求人のみ)は次のとおりです。
  • 300万円〜349万円:0件
  • 350万円〜399万円:0件
  • 400万円〜449万円:0件
  • 450万円〜499万円:0件
  • 500万円〜549万円:0件
  • 550万円〜599万円:0件
  • 600万円〜649万円:1件
  • 650万円〜699万円:1件
  • 700万円〜749万円:0件
  • 750万円〜799万円:0件
  • 800万円〜849万円:0件
  • 850万円〜899万円:0件
  • 900万円〜949万円:0件
  • 950万円〜999万円:1件
  • 1,000万円〜1,049万円:5件
  • 1,050万円〜1,099万円:0件
  • 1,100万円〜1,149万円:0件
  • 1,150万円〜1,199万円:0件
  • 1,200万円〜1,249万円:1件
  • 1,300万円〜1,349万円:0件
  • 1,350万円〜1,399万円:0件
  • 1,400万円〜1,449万円:0件
  • 1,450万円〜1,499万円:0件

Microservicesの副業・業務委託・フリーランス求人・案件数

さらに、OffersにおけるMicroservicesの副業・業務委託・フリーランス求人・案件数の傾向をご紹介します。2024年7月8日現在、Offersで募集しているMicroservicesの副業・業務委託・フリーランス求人・案件数は18件(※公開求人のみ)となっています。

Microservicesの副業・業務委託・フリーランス求人・案件数における時給・単価データ分布

2024年7月8日現在、Offers上で募集しているMicroservicesの副業・業務委託・フリーランス求人・案件の時給・単価データ分布(※公開求人のみ)は次のようになっています。

Microservicesの副業・業務委託・フリーランス求人・案件における最低時給・単価データ分布

  • 1,000円〜1,499円:0件
  • 1,500円〜1,999円:0件
  • 2,000円〜2,499円:0件
  • 2,500円〜2,999円:0件
  • 3,000円〜3,499円:0件
  • 3,500円〜3,999円:0件
  • 4,000円〜4,499円:2件
  • 4,500円〜4,999円:0件
  • 5,000円〜5,499円:0件
  • 5,500円〜5,999円:0件
  • 6,000円〜6,499円:0件
  • 6,500円〜6,999円:0件
  • 7,000円〜7,499円:0件
  • 7,500円〜7,999円:0件

Microservicesの副業・業務委託・フリーランス求人・案件における最高時給・単価データ分布

  • 1,000円〜1,499円:0件
  • 1,500円〜1,999円:0件
  • 2,000円〜2,499円:0件
  • 2,500円〜2,999円:0件
  • 3,000円〜3,499円:0件
  • 3,500円〜3,999円:0件
  • 4,000円〜4,499円:0件
  • 4,500円〜4,999円:0件
  • 5,000円〜5,499円:0件
  • 5,500円〜5,999円:0件
  • 6,000円〜6,499円:2件
  • 6,500円〜6,999円:0件
  • 7,000円〜7,499円:0件
  • 7,500円〜7,999円:0件

マイクロサービスとは

マイクロサービスの定義

マイクロサービスは、ソフトウェア開発の世界で注目を集めているアーキテクチャスタイルです。このアプローチでは、大規模なアプリケーションを小さな、独立したサービスの集合体として構築します。各サービスは特定の機能やビジネスロジックを担当し、他のサービスとは疎結合な関係を保ちます。これにより、開発チームは個々のサービスを独立して開発、デプロイ、スケーリングできるようになります。

マイクロサービスの特徴として、軽量なプロトコルを使用した通信、独自のデータストアの保持、そして自動化されたデプロイメントプロセスがあります。この設計思想により、システム全体の柔軟性と拡張性が向上し、ビジネスニーズの変化に迅速に対応できるようになります。

例えば、eコマースプラットフォームをマイクロサービスで構築する場合、商品カタログ、注文処理、在庫管理、ユーザー認証などが、それぞれ独立したサービスとして実装されることがあります。これらのサービスは、必要に応じて連携しながらも、基本的には独立して動作し、全体としてひとつのアプリケーションを形成します。

モノリシックアーキテクチャとの違い

マイクロサービスアーキテクチャは、従来のモノリシックアーキテクチャと対照的な特徴を持っています。モノリシックアーキテクチャでは、アプリケーション全体が一つの大きなコードベースとして構築されます。これに対し、マイクロサービスでは機能ごとに分割された小さなサービスの集合体としてアプリケーションを構成します。

モノリシックアーキテクチャでは、アプリケーション全体を一度にデプロイする必要がありますが、マイクロサービスでは各サービスを個別にデプロイできます。これにより、特定の機能の更新や修正を、他の部分に影響を与えることなく行えるようになります。また、モノリシックアーキテクチャでは技術スタックが統一されがちですが、マイクロサービスでは各サービスに最適な技術を選択できるという柔軟性があります。

例えば、あるサービスではJavaとSpring Bootを使用し、別のサービスではNode.jsとExpressを使用するといった具合に、多様な技術を組み合わせることが可能です。これにより、各サービスの特性に合わせた最適な技術選択ができ、開発効率の向上につながります。

歴史と背景

マイクロサービスの概念は、2010年代初頭から徐々に形成されてきました。この背景には、クラウドコンピューティングの普及や、アジャイル開発手法の浸透があります。特に、AmazonやNetflixといった大規模なウェブサービス企業が、自社のシステムをマイクロサービスアーキテクチャへ移行し、その成功事例を公開したことが、この概念の普及に大きく貢献しました。

マイクロサービスの登場以前は、サービス指向アーキテクチャ(SOA)が分散システムの主流でした。SOAもサービスの分割を提唱していましたが、マイクロサービスはより細粒度のサービス分割と、より軽量な通信プロトコルの使用を特徴としています。この進化により、より柔軟で拡張性の高いシステム構築が可能になりました。

近年では、コンテナ技術やクラウドネイティブ開発の普及により、マイクロサービスの実装がより容易になっています。DockerやKubernetesといったツールの登場が、マイクロサービスの採用をさらに加速させています。

マイクロサービスのメリット

スケーラビリティの向上

マイクロサービスアーキテクチャの最大の利点の一つは、優れたスケーラビリティです。各サービスが独立しているため、負荷の高いサービスのみを選択的にスケールアウトできます。これにより、リソースの効率的な利用が可能になり、コスト削減にもつながります。

例えば、eコマースサイトで季節的な需要増加があった場合、商品検索サービスや注文処理サービスのみをスケールアップすることで、システム全体のパフォーマンスを維持できます。モノリシックアーキテクチャでは、アプリケーション全体をスケールアップする必要があり、リソースの無駄が生じやすい傾向がありました。

また、クラウドプラットフォームとの親和性も高く、Amazon Web Services (AWS)やGoogle Cloud Platformなどのサービスを活用することで、自動スケーリングの実装も容易になります。これにより、トラフィックの変動に応じて柔軟にリソースを調整できるのです。

開発・デプロイの迅速化

マイクロサービスアーキテクチャでは、各サービスが独立しているため、開発やデプロイのプロセスが大幅に迅速化されます。小規模なチームがそれぞれのサービスを担当し、並行して開発を進めることができるため、全体的な開発速度が向上します。

また、継続的インテグレーション(CI)や継続的デリバリー(CD)のプラクティスとも相性が良く、自動化されたテストとデプロイメントのパイプラインを構築しやすくなります。これにより、新機能の追加や不具合の修正をより迅速に本番環境にリリースできるようになります。

例えば、ある機能の修正が必要になった場合、そのサービスのみを更新すればよいため、他のサービスに影響を与えることなく、迅速に変更を反映できます。これは、特に大規模なシステムにおいて、変更のリスクを低減し、イノベーションのスピードを加速させる大きな利点となります。

故障の影響を最小限に抑える

マイクロサービスアーキテクチャでは、システム全体が複数の独立したサービスに分割されているため、一部のサービスに障害が発生しても、他のサービスは正常に動作し続けることができます。これは、システムの耐障害性と可用性を大幅に向上させる重要な特徴です。

例えば、eコマースプラットフォームにおいて、商品レビューサービスに障害が発生したとしても、商品検索や注文処理など、他の主要機能は引き続き利用可能です。これにより、ビジネスへの影響を最小限に抑えることができます。

さらに、各サービスが独立しているため、障害の切り分けや原因特定が容易になります。これにより、問題の迅速な解決と、システム全体の信頼性向上につながります。障害時の影響範囲を限定できるこの特性は、特に24時間365日の稼働が求められる重要なシステムにおいて、大きな価値を持ちます。

技術スタックの自由度

マイクロサービスアーキテクチャの大きな利点の一つは、各サービスに最適な技術スタックを選択できる自由度です。これにより、サービスの特性や要件に応じて、最も適した言語、フレームワーク、データベースを選択できます。

例えば、高性能が求められる計算集約型のサービスにはGo言語を使用し、ウェブインターフェースが必要なサービスにはJavaScriptとReactを採用するといった具合に、柔軟な技術選択が可能です。これにより、各サービスの機能や性能要件を最大限に満たすことができます。

また、新しい技術の導入や既存技術の更新も、システム全体に影響を与えることなく行えます。これは、技術の進化が速いIT業界において、常に最新かつ最適な技術を採用し続けられるという大きなメリットとなります。さらに、特定の技術に精通した開発者を、その技術が最適なサービスの開発に集中させることで、チーム全体の生産性も向上します。

マイクロサービスのデメリット

運用の複雑さ

マイクロサービスアーキテクチャは多くの利点をもたらす一方で、運用面での複雑さが増大するというデメリットがあります。多数の独立したサービスを管理するには、高度な運用スキルと適切なツールが必要となります。

例えば、多数のサービスを統合的に監視し、問題を迅速に特定・解決するためには、複雑なログ管理やモニタリングシステムが欠かせません。また、各サービスのバージョン管理や、サービス間の依存関係の管理も重要な課題となります。

さらに、サービスの数が増えるほど、デプロイメントやスケーリングの複雑さも増加します。これらの課題に対処するためには、自動化ツールの導入や、DevOps文化の醸成が不可欠です。運用の複雑さは、特に小規模なチームや、マイクロサービスの経験が少ない組織にとって大きな障壁となる可能性があります。

分散データ管理の難しさ

マイクロサービスアーキテクチャでは、各サービスが独自のデータストアを持つことが一般的です。これにより、サービス間のデータの一貫性を保つことが大きな課題となります。分散トランザクション管理や、データの同期は複雑で、慎重な設計が必要になります。

例えば、注文処理と在庫管理が別々のサービスとして実装されている場合、注文が完了したときに在庫を正確に更新する必要があります。このような処理を確実に行うためには、分散トランザクション管理やイベント駆動アーキテクチャなどの高度な技術が必要となります。

また、データの冗長性や整合性の問題も発生しやすくなります。同じデータが複数のサービスで管理されている場合、それらの間で一貫性を保つことが難しくなります。これらの課題に対処するためには、適切なデータ管理戦略と、サービス間の連携メカニズムの慎重な設計が必要です。

サービス間通信のオーバーヘッド

マイクロサービスアーキテクチャでは、複数のサービスが協調して動作するため、サービス間の通信が頻繁に発生します。この通信には、ネットワークレイテンシやデータシリアライゼーション/デシリアライゼーションなどのオーバーヘッドが伴います。これらのオーバーヘッドは、システム全体のパフォーマンスに影響を与える可能性があります。

例えば、単一の操作を完了するために複数のサービスを呼び出す必要がある場合、各サービス呼び出しにかかる時間の合計が、ユーザーが体感する応答時間となります。これは、モノリシックアーキテクチャでは単一のプロセス内で処理できていた操作が、ネットワークを介した通信を必要とするようになるためです。

このオーバーヘッドを最小限に抑えるためには、効率的な通信プロトコルの選択、適切なキャッシング戦略の実装、そしてサービス間の適切な粒度設計が重要になります。また、非同期通信やイベント駆動アーキテクチャの採用も、このオーバーヘッドを軽減する効果的な方法となります。

マイクロサービスの設計原則

単一責任の原則

マイクロサービスの設計において、「単一責任の原則」は非常に重要な概念です。この原則に基づき、各サービスは明確に定義された単一の責任を持つべきとされています。つまり、一つのサービスは一つの具体的なビジネス機能や領域に特化すべきです。

例えば、eコマースシステムにおいて、「商品管理」「注文処理」「在庫管理」などを、それぞれ独立したサービスとして設計することが考えられます。この原則を守ることで、サービスの境界が明確になり、開発や保守が容易になります。

単一責任の原則を適用することで、各サービスのコードベースがシンプルになり、理解しやすくなります。また、特定の機能の変更や拡張が必要になった場合も、影響範囲を限定できるため、リスクを最小限に抑えることができます。ただし、サービスの粒度をどの程度に設定するかは、ビジネスの要件やシステムの特性に応じて慎重に検討する必要があります。

独立したデプロイ

マイクロサービスアーキテクチャの重要な設計原則の一つに、「独立したデプロイ」があります。これは、各サービスを他のサービスに依存せずに、独立してデプロイできるようにすることを意味します。この原則により、継続的デリバリーやデプロイメントが容易になり、システムの俊敏性が向上します。

独立したデプロイを実現するためには、サービス間の疎結合が不可欠です。APIの設計やバージョニング、サービス間の通信プロトコルの選択など、様々な側面で慎重な設計が必要になります。例えば、新しいバージョンのサービスをデプロイする際に、他のサービスに影響を与えないよう、下位互換性を保つことが重要です。

この原則を適用することで、特定のサービスの更新や修正を、システム全体に影響を与えることなく行うことができます。これにより、新機能の迅速な導入や、バグの即時修正が可能になり、ビジネスの要求に素早く対応できるようになります。ただし、独立したデプロイを実現するためには、適切なCI/CDパイプラインの構築やテスト自動化など、技術的な基盤の整備が必要となります。

軽量な通信プロトコル

マイクロサービスアーキテクチャでは、サービス間の通信に軽量なプロトコルを使用することが推奨されます。これは、サービス間の通信オーバーヘッドを最小限に抑え、システム全体の性能を向上させるために重要です。一般的に、RESTful APIやgRPCなどのプロトコルが広く採用されています。

RESTful APIは、HTTPプロトコルを基盤とし、JSON形式でデータをやり取りするため、実装が容易で広く普及しています。一方、gRPCは、Googleが開発したオープンソースのRPCフレームワークで、Protocol Buffersを使用してデータをシリアライズします。gRPCは、RESTに比べて高速で効率的な通信を実現できます。

軽量な通信プロトコルを採用することで、ネットワークレイテンシを低減し、リソース消費を抑えることができます。また、非同期通信やメッセージキューの使用も、効率的な通信を実現する手法として考慮すべきです。ただし、プロトコルの選択は、開発チームのスキルセットやシステムの要件、既存のインフラストラクチャなどを総合的に考慮して決定する必要があります。

実際の実装方法

コンテナとオーケストレーション

マイクロサービスの実装において、コンテナ技術とそのオーケストレーションは重要な役割を果たします。コンテナ化により、各サービスを独立した環境で実行し、依存関係の管理や環境の一貫性を維持することが容易になります。特に、Dockerは広く利用されているコンテナ化技術の一つです。

コンテナ化されたサービスを効率的に管理するためには、オーケストレーションツールが不可欠です。Kubernetesは、最も普及しているコンテナオーケストレーションプラットフォームの一つで、サービスのデプロイ、スケーリング、負荷分散などを自動化します。例えば、トラフィックの増加に応じて特定のサービスのインスタンス数を自動的に増やすことができます。

また、Kubernetesは、サービスディスカバリやヘルスチェックなどの機能も提供し、マイクロサービスの運用を大幅に簡素化します。ただし、Kubernetesの導入には一定の学習コストがかかるため、組織の規模や要件に応じて、Docker SwarmやAmazon ECSなど、より軽量なオーケストレーションツールの使用も検討する価値があります。

APIゲートウェイの使用

マイクロサービスアーキテクチャにおいて、APIゲートウェイは重要な役割を果たします。APIゲートウェイは、クライアントアプリケーションとバックエンドサービスの間に位置し、リクエストのルーティング、認証・認可、レート制限、キャッシング、モニタリングなどの機能を提供します。

例えば、モバイルアプリケーションからのリクエストを適切なマイクロサービスに振り分けたり、複数のサービスからのレスポンスを集約して単一のレスポンスとしてクライアントに返したりするといった処理をAPIゲートウェイで行うことができます。これにより、クライアント側の実装を簡素化し、バックエンドの複雑さを隠蔽することが可能になります。

一般的に利用されるAPIゲートウェイには、Netflix ZuulやKong、AWS API Gateway、Azure API Managementなどがあります。これらのツールを適切に設定することで、セキュリティの強化やパフォーマンスの最適化、API管理の効率化を図ることができます。ただし、APIゲートウェイの導入には、設計や運用の複雑さが増すというトレードオフがあるため、システムの規模や要件に応じて慎重に検討する必要があります。

サービスメッシュの導入

サービスメッシュは、マイクロサービス間の通信を管理するための専用インフラストラクチャレイヤーです。サービスメッシュを導入することで、サービス間の通信の信頼性、セキュリティ、可観測性を向上させることができます。代表的なサービスメッシュ実装として、Istio、Linkerd、Consulなどがあります。

サービスメッシュは、各サービスにサイドカープロキシを配置し、サービス間の全ての通信をこれらのプロキシを通して行います。これにより、トラフィックの制御、負荷分散、暗号化、認証など、様々な機能をアプリケーションコードから分離して実装できます。例えば、サービス間の通信にmTLSを適用したり、特定のサービスへのアクセスを制限したりといった制御が可能になります。

また、サービスメッシュは詳細な監視とトレーシング機能を提供し、複雑なマイクロサービス環境でのトラブルシューティングを容易にします。ただし、サービスメッシュの導入には一定のオーバーヘッドがあるため、システムの規模や複雑さ、運用チームのスキルセットなどを考慮して導入を検討する必要があります。

マイクロサービスのツールと技術

DockerとKubernetes

DockerとKubernetesは、マイクロサービスアーキテクチャの実装において中心的な役割を果たすツールです。Dockerはコンテナ化技術の事実上の標準となっており、アプリケーションとその依存関係を軽量なコンテナにパッケージ化することができます。これにより、開発環境と本番環境の一貫性が保たれ、「開発環境では動くのに本番環境では動かない」といった問題を軽減できます。

Kubernetesは、Dockerコンテナのオーケストレーションプラットフォームとして広く採用されています。Kubernetesを使用することで、複数のコンテナ化されたマイクロサービスのデプロイ、スケーリング、管理を自動化できます。例えば、サービスのレプリカ数を自動的に調整したり、ローリングアップデートを実行したりといった高度な運用が可能になります。

DockerとKubernetesを組み合わせることで、マイクロサービスの開発から本番運用までのライフサイクル全体を効率化できます。ただし、これらのツールの習得には一定の学習コストがかかるため、組織全体でのトレーニングや、段階的な導入を検討する必要があります。また、クラウドプロバイダーが提供するマネージドKubernetesサービス(例:Amazon EKS、Google Kubernetes Engine)の利用も、運用負荷を軽減する選択肢として考慮に値します。

Spring BootとSpring Cloud

Spring BootとSpring Cloudは、Java言語でマイクロサービスを開発する際に広く利用されているフレームワークです。Spring Bootは、スタンドアロンで実行可能な本番品質のSpringベースのアプリケーションを簡単に作成できるツールです。最小限の設定で、迅速にマイクロサービスを開発し、デプロイすることができます。

一方、Spring Cloudは、分散システムの一般的なパターンを実装するためのツールを提供します。例えば、設定管理、サービスディスカバリ、サーキットブレーカー、インテリジェントルーティング、マイクロプロキシ、コントロールバスなどの機能を簡単に実装できます。これらの機能は、マイクロサービスアーキテクチャにおいて重要な役割を果たします。

Spring BootとSpring Cloudを組み合わせることで、堅牢で拡張性の高いマイクロサービスベースのアプリケーションを効率的に構築できます。例えば、Spring Cloud Configを使用して集中化された設定管理を実現したり、Spring Cloud Netflixを使用してサービスディスカバリやロードバランシングを実装したりすることが可能です。ただし、これらのフレームワークはJavaエコシステムに特化しているため、多言語環境での使用には注意が必要です。

API管理ツール

マイクロサービスアーキテクチャにおいて、APIの設計、開発、管理は非常に重要な要素です。API管理ツールは、これらのプロセスを効率化し、APIのライフサイクル全体を管理するための機能を提供します。代表的なAPI管理ツールには、Swagger(OpenAPI)、Postman、APigee、MuleSoft Anypoint Platformなどがあります。

これらのツールは、API仕様の作成、ドキュメンテーション、テスト、モックサーバーの生成、セキュリティ管理、トラフィック分析などの機能を提供します。例えば、Swaggerを使用してRESTful APIの仕様を定義し、その仕様からクライアントSDKやサーバースタブを自動生成することができます。これにより、フロントエンド開発とバックエンド開発の並行作業が容易になります。

また、API管理ツールは、APIバージョニングやアクセス制御、使用量の監視といった運用面でも重要な役割を果たします。例えば、APigeeを使用して、APIキーの管理やレート制限の設定、使用状況の分析などを行うことができます。適切なAPI管理ツールを選択し、効果的に活用することで、マイクロサービス間の連携をスムーズにし、全体的なシステムの品質と管理性を向上させることができます。

マイクロサービスの事例

Netflixの事例

Netflixはマイクロサービスアーキテクチャのパイオニアとして知られており、その成功事例は多くの企業に影響を与えています。Netflixは2000年代後半から、モノリシックアーキテクチャからマイクロサービスへの移行を開始しました。この移行の主な目的は、システムのスケーラビリティとレジリエンスを向上させることでした。

Netflixのマイクロサービスアーキテクチャは、数百のサービスで構成されています。例えば、ユーザープロファイル管理、コンテンツ推奨、ビデオストリーミング、デバイス管理など、それぞれが独立したサービスとして実装されています。これにより、各サービスを独立してスケールアップできるようになり、トラフィックの急増に対しても柔軟に対応できるようになりました。

Netflixは、自社のマイクロサービスインフラストラクチャを支えるツールの多くをオープンソース化しています。例えば、Eureka(サービスディスカバリ)、Hystrix(サーキットブレーカー)、Zuul(エッジサービス)などが広く知られています。これらのツールは、Spring Cloudプロジェクトにも統合され、多くの企業のマイクロサービス実装に活用されています。Netflixの事例は、大規模なマイクロサービスアーキテクチャの実現可能性と、そのメリットを示す重要な例となっています。

Amazonの事例

Amazonは、マイクロサービスアーキテクチャを早期に採用し、成功を収めた企業の一つです。2000年代初頭、Amazonはモノリシックアーキテクチャの制限に直面し、より柔軟でスケーラブルなアーキテクチャへの移行を決断しました。この決断は、後にAmazon Web Services(AWS)の誕生にもつながっています。

Amazonのマイクロサービスアーキテクチャは、「two-pizza team」(2枚のピザで食事ができる程度の小規模なチーム)という概念と密接に結びついています。各チームが独立してサービスを開発、運用することで、迅速な意思決定と開発スピードの向上を実現しています。例えば、商品カタログ、注文処理、支払い管理、在庫管理など、それぞれが独立したサービスとして実装されています。

Amazonのマイクロサービスアーキテクチャの特徴の一つは、「サービス指向アーキテクチャ(SOA)の原則」を厳格に適用していることです。全てのサービスがAPIを通じて通信し、内部実装の詳細を隠蔽しています。これにより、サービス間の疎結合が保たれ、個々のサービスの独立した進化が可能となっています。Amazonの事例は、マイクロサービスアーキテクチャが大規模なeコマースプラットフォームにおいても有効であることを示す重要な例となっています。

その他の大規模採用事例

マイクロサービスアーキテクチャは、多くの大企業や技術企業で採用されており、その事例は多岐にわたります。例えば、Uberは配車サービスのコアシステムをマイクロサービスで構築しています。これにより、世界中の異なる地域や規制に対応しつつ、急速な事業拡大を実現しています。

また、Spotifyもマイクロサービスアーキテクチャを採用している企業の一つです。Spotifyは、音楽ストリーミングサービスを複数の小さな独立したサービスに分割することで、新機能の迅速な導入と、膨大な数の楽曲やユーザーデータの効率的な管理を実現しています。例えば、プレイリスト管理、楽曲推薦、ユーザー認証などが、それぞれ独立したサービスとして実装されています。

金融業界でも、マイクロサービスの採用が進んでいます。例えば、Capital Oneは、レガシーシステムをマイクロサービスベースのアーキテクチャに移行することで、新しい金融商品やサービスの迅速な開発と展開を可能にしています。この移行により、Capital Oneは伝統的な銀行からテクノロジー企業へと変貌を遂げています。

これらの事例に共通するのは、マイクロサービスアーキテクチャの採用により、ビジネスの俊敏性と技術的な柔軟性が大幅に向上したという点です。ただし、各企業がマイクロサービスを成功裏に導入できた背景には、組織構造の変革や、DevOps文化の浸透、適切なツールの選択など、多くの要因があることを認識することが重要です。

マイクロサービス導入のステップ

既存システムの評価

マイクロサービスの導入を検討する際、最初のステップは既存システムの評価です。この段階で、現在のシステムの構造、機能、問題点を詳細に分析し、マイクロサービスアーキテクチャへの移行が適切かどうかを判断します。

評価のポイントには、システムの複雑さ、スケーラビリティの課題、開発・デプロイの速度、チーム構造などが含まれます。例えば、機能追加やバグ修正に時間がかかりすぎる、特定の機能のスケールアップが困難、異なる技術スタックの採用が制限されているなどの問題がある場合、マイクロサービスへの移行が有効な解決策となる可能性があります。

また、ビジネス要件とシステムの現状のギャップも分析します。将来的な事業拡大や新サービスの展開を見据えた時、現在のシステムアーキテクチャがボトルネックとなっていないかを検討します。この評価プロセスを通じて、マイクロサービスへの移行の必要性と、それによって得られる具体的なメリットを明確にすることができます。

モノリシックアプリケーションの分割方法

既存のモノリシックアプリケーションをマイクロサービスに分割する際、適切な分割方法を選択することが重要です。一般的には、ビジネス機能や領域(ドメイン)に基づいて分割を行います。この手法は「ドメイン駆動設計(DDD)」の概念と親和性が高く、ビジネスロジックに基づいた自然な境界を見出すことができます。

例えば、eコマースアプリケーションの場合、商品カタログ、注文管理、在庫管理、顧客管理、決済処理などを独立したサービスとして分割することが考えられます。各サービスは、そのドメインに関連するデータとロジックを完全に所有し、他のサービスとはAPIを通じてのみ通信します。

分割の際は、サービス間の依存関係を最小限に抑えることが重要です。過度に細かく分割すると、サービス間の通信オーバーヘッドが増大し、システム全体の複雑さが増す可能性があります。逆に、大きすぎるサービスはマイクロサービスの利点を十分に活かせません。適切な粒度を見極めるには、チームの規模、ビジネスの要件、技術的な制約などを総合的に考慮する必要があります。

マイクロサービス移行のベストプラクティス

マイクロサービスへの移行を成功させるためには、いくつかのベストプラクティスを考慮することが重要です。まず、段階的なアプローチを取ることが推奨されます。全てを一度に移行するのではなく、最も価値のある、あるいは最も問題のある部分から順次移行していくことで、リスクを最小限に抑えつつ、学習とフィードバックのサイクルを確立できます。

次に、適切なインフラストラクチャの整備が不可欠です。コンテナ化技術(Docker)やオーケストレーションツール(Kubernetes)の導入、CI/CDパイプラインの構築、モニタリングとロギングの仕組みの確立などが含まれます。これらの基盤があることで、マイクロサービスの運用効率が大幅に向上します。

また、チーム構造の見直しも重要なポイントです。マイクロサービスアーキテクチャは、小規模で自律的なチームによる開発に適しています。各チームがサービスの開発から運用まで責任を持つ「You build it, you run it」の原則を採用することで、開発速度と品質の向上が期待できます。

さらに、APIの設計とバージョニング戦略の確立が重要です。サービス間のインターフェースを明確に定義し、互換性を保ちながら進化させていく方法を確立することで、システム全体の安定性と拡張性を確保できます。

最後に、データ管理戦略の確立も忘れてはいけません。各サービスが独自のデータストアを持つ場合、データの一貫性維持や分散トランザクション管理などの課題に対処する必要があります。イベント駆動アーキテクチャやSAGAパターンなどの適用を検討することで、これらの課題に対処できます。

これらのベストプラクティスを適切に適用することで、マイクロサービスへの移行をより円滑に、そして成功裏に進めることができます。ただし、各組織の状況や目標に応じて、これらのプラクティスを柔軟に調整することが重要です。マイクロサービスの導入は技術的な変更だけでなく、組織文化の変革も伴うプロセスであることを忘れてはいけません。

マイクロサービスアーキテクチャは、多くの利点をもたらす一方で、その導入には慎重な計画と実行が必要です。既存システムの評価から始まり、適切な分割方法の選択、そしてベストプラクティスの適用まで、各ステップを丁寧に進めることが成功への鍵となります。また、マイクロサービスへの移行は一朝一夕には完了しない長期的なプロセスであり、継続的な改善と最適化が求められます。

マイクロサービスの導入を成功させるためには、技術面だけでなく、組織面での準備も重要です。DevOps文化の醸成、クロスファンクショナルなチーム編成、継続的な学習と改善の姿勢など、組織全体の変革が必要となる場合も多いでしょう。これらの変革を通じて、マイクロサービスアーキテクチャの利点を最大限に活かし、ビジネスの俊敏性と技術的な柔軟性を向上させることができます。

最後に、マイクロサービスは万能の解決策ではないということを強調しておく必要があります。システムの規模や複雑さ、組織の成熟度などによっては、モノリシックアーキテクチャや他のアプローチがより適している場合もあります。マイクロサービスの導入を検討する際は、自組織の状況と目標を十分に分析し、最適なアーキテクチャ選択を行うことが重要です。

マイクロサービスアーキテクチャは、現代のソフトウェア開発において重要な選択肢の一つとなっています。その特徴を理解し、適切に導入することで、ビジネスの成長と技術革新を加速させることができるでしょう。しかし、その導入には慎重な計画と実行が必要であり、継続的な学習と改善のプロセスが求められます。マイクロサービスの世界は日々進化しており、新しい技術やベストプラクティスが常に登場しています。そのため、最新の動向に注目し、自組織に最適なアプローチを柔軟に取り入れていくことが重要です。

マイクロサービスアーキテクチャは、単なる技術的な選択以上のものです。それは、ソフトウェア開発とビジネスの在り方を根本から変える可能性を秘めています。適切に導入されたマイクロサービスは、組織の俊敏性を高め、イノベーションを加速し、市場の変化に迅速に対応する能力を提供します。しかし、その実現には技術的な課題だけでなく、組織文化や働き方の変革も必要となります。

マイクロサービスの導入を検討している組織は、その利点とリスクを十分に理解し、長期的な視点で計画を立てることが重要です。また、導入後も継続的な最適化と改善が必要であることを認識し、柔軟な姿勢で取り組むことが成功への鍵となります。マイクロサービスは、適切に活用することで、組織に大きな価値をもたらす可能性を秘めた強力なツールなのです。

エンジニア、PM、デザイナーの副業・転職採用サービス「Offers(オファーズ)」では、非公開求人を含む豊富なIT・Web業界の転職・副業情報を提供しています。高年収の求人・高時給の案件や最新技術スタックを扱う企業など、あなたのスキルを最大限に活かせるポジションが見つかります。専任のキャリアアドバイザーが、入社日調整や条件交渉をきめ細かくサポート。転職・正社員求人、副業・業務委託案件、募集をお探しの方はOffersまでご相談ください。

閉じる

転職に役立つノウハウ

もっと見る

新着求人

もっと見る