Enjoy Architecting

Twitter: @taisho6339

2020-01-01から1年間の記事一覧

2020年の振り返りと今後の展望

本記事について 今年ももう終わるので今年やったこと、考えたことを振り返り、来年につなげようと思います。 また今年で一旦フリーランス辞めて会社員に戻るつもりなので、何を考えてその決断をとったのかを整理しておきます。 今年注力した技術 Kubernetes …

マルチクラスタKubernetes 3つのパターンと実運用事例

この記事はKubernetes Advent Calendarの7日目の記事です。 今回は、Kubernetesのマルチクラスタ化についての考察記事を書きます。 マルチクラスタの定義 マルチクラスタと一重にいっても色々とありますが、本記事では、「複数のKubernetesクラスタを並列に…

k8sを運用するなら絶対抑えておきたい、可用性とScalabilityを担保するための大事な観点

概要 先日、Kubernetes Novice Tokyoというイベントで「k8sのAvailabilityとScalabilityを担保するための大事な観点」というタイトルで登壇させていただきました。 運用する上で気にするべき、可用性とスケーラビリティに関する基本的な内容を、 今後のプロ…

Kubernetesの負荷試験で絶対に担保したい13のチェックリスト

概要 ここ最近、Kubernetesクラスタを本番運用するにあたって負荷試験を行ってきました。 Kubernetesクラスタに乗せるアプリケーションの負荷試験は、通常の負荷試験でよく用いられる観点に加えて、クラスタ特有の観点も確認していく必要があります。 適切に…

【Kubernetes】GKEのContainer Native LoadbalancingのPodのTerminationの注意点

概要 最近のGKEはContainer Nativeなロードバランシングを推奨しています。 これは、Alias IP, NEGという仕組みを使って、GCPのロードバランサーがPodのIPに直接ルーティングすることができます。 しかし、適切にPodを設定していない場合、クラスタのメンテ…

【Kubernetes】マルチクラスタの最適なヘルスチェックとFailOverについての考察

概要 ここ最近関わっているプロジェクトで、 クラスタを安全にBlue/Greenで更新するためにマルチクラスタ構成にして冗長化する案件を推進していました。 クラスタの安全な更新とクラスタのHealth Check、Fail Overは切っても切れない関係にあります。 そこで…

Istioはいかにしてサービス間通信のセキュリティを担保しているのか?

この記事について この記事では、Istioがどのような考え方でサービス間通信のセキュリティを担保し、 どのように担保しているかを概観レベルで整理する。 サービス間通信で担保したいものと従来のセキュリティモデル サービス間通信として担保したいものとし…

【ArgoCD】最小ではじめるプロジェクトごとのユーザ権限管理

本記事の概要 ArgoCDをクラスタにインストールするとまずadminユーザが作られます。 しかし、adminクラスタは権限が強く(いわゆるsuperuser)、自由にアプリケーションを更新したり削除したりできてしまいます。 マイクロサービスなどによってサービスごとに…

分散システムにおけるScalableな名前付けアルゴリズム「Chord Protocol」を実装してみた

概要 分散システムを学術的に学びたくて、 Chord Protocolというアルゴリズムが面白かったので実際に論文を読んで実装してみました。 この記事では、分散システムにおける名前付けの概念と、Chord Protocolの紹介、簡単な検証について言及していこうと思いま…

これだけは知っておこう負荷試験 ~その1 基本とお試し試験~

記事の概要 負荷試験はシステム運用において避けて通れないタスクであるが難易度が高いタスクでもある。 本記事ではまず、実際にWordpressに対して簡単な負荷試験を行いながら、 負荷試験における基本的な観点を整理していく。 負荷試験の主な目的 負荷試験…

Istioで割合でTraffic Managementするときにユーザごとにセッションを固定する

解決したい課題 Istioでweightによってサービスのバージョンを切り替えているとき、 リクエストの割合ベースで切り替えているだけなので、 同一ユーザでも異なるバージョンが表示されてしまう。 ユーザには少なくとも一定期間は同じバージョンを見せたいケー…

Istio + Argo Rolloutとカナリアリリース

本記事について Argo Rolloutを導入すると、様々なデプロイ戦略を実践することができる。 ただ少し実際の運用イメージが見えづらかったので整理してみる。 Argo Rolloutについての概要 Argo Rolloutとは通常のk8sのDeploymentに加え、カナリアリリースなどの…

【GCP Anthos】 Fail Overの挙動から最適なマルチクラスタ構成を考える

記事の目的 前回の記事でIngress For Anthosを用いてRegionにまたがったKubernetsのマルチクラスタを構築した。 今回は1段深く掘り下げて、クラスタ内に複数のフロントサービスを持つケースを考える。 このケースでAnthosで構築したマルチクラスタのFail Ov…

IstioのTraffic Managementの動作イメージを掴もう

本記事について Istioを使う上で、Traffic Managementを司るVirtual Service, DestinationRuleについて、 どう作用しているのかという点がわかりにくかったため、本記事にて整理し実際に動かしながら検証する。 前提として、サービスメッシュやEnvoyの基本的…

【GCP Anthos】Anthos Service Mesh + Ingress For Anthosを組み合わせたk8sのマルチクラスタを構築する

この記事について 前回の記事でIngress For Anthosを使ったマルチクラスタによるk8sの冗長化について触れた。 今回はManagedなIstioを提供するAnthos Service Meshも取り入れ、 サービスメッシュを導入したマルチクラスタを実際に構築してみる。 Anthos Serv…

【GCP Anthos】 Regionに跨って冗長化したKubernetsのマルチクラスタをロードバランシングする

Anthosとは? アプリケーションを、OSSをベースにモナタイゼーションするための統括的な機能を提供するプラットフォーム。 モナタイゼーションとは? マイクロサービス化 インフラとアプリケーションの疎結合化 サーバレス 自動化 なるべくManagedへ Anthos…

これだけは知っておこうTLS

記事について セキュリティのためにTLSを導入しようとはよく聞くが、 そもそもTLSは何を担保するものなのかを整理する。 前提として知っておくべきこと デジタル署名 署名者の秘密鍵で対象データ(のハッシュ値)を暗号化したものがデジタル署名 秘密鍵は署…

【2019】フリーランスエンジニア活動 振り返り

趣旨 2020年が始まるので、 2019年にやったこと、アウトプット、反省点をまとめ、翌年の指針を整理したいと思う。 前提 フリーとして働く、インフラとバックエンドを専門とするソフトウェアエンジニア。 現在は法人成りしていて、請負でベンチャー企業で開発…