タグ

2021年2月8日のブックマーク (16件)

  • フェイルセーフ - Wikipedia

    フェイルセーフ(フェールセーフ、フェイルセイフ、英語: fail safe)とは、なんらかの装置・システムにおいて、構成部品の破損や誤操作・誤動作による障害が発生した場合、常に安全側に動作するようにすること[1]、またはそう仕向けるような設計手法[2]で信頼性設計のひとつ[3]。これは装置やシステムが『必ず故障する』ということを前提にしたものである[2][4]。 「フェイルセーフ」は「故障は安全な側に」というのが原意である[5]。機械は壊れたときに、自然にあるいは必然的に安全側となることが望ましいが、そうならない場合は意識的な設計が必要である。たとえば自動車は、エンジンが故障した場合、エンジンの回転を制御できないような故障ではなく、回転が停止するような故障であれば、自動車自体が止まることになり安全である。このため、回転を止めるような故障モードへ自動的に落とし込むような、安全性を優先する設計

  • SmartHR の開発現場最新事情 〜マイクロサービス始めました〜 - Speaker Deck

    Rails Developers Meetup 2018 Day 3 Extreme での登壇資料です

    SmartHR の開発現場最新事情 〜マイクロサービス始めました〜 - Speaker Deck
    fuyu77
    fuyu77 2021/02/08
  • Next.jsで`window is not defined` を解決する(依存ライブラリ対応)

    問題と原因 今回は依存ライブラリ内でpepjsが使われていたため、window is not definedが出ました。 つまり、pepjs内でwindowを使おうとしてるのが問題です。 原因はwindowがクライアント処理でしか使えないため、Nextjsのサーバサイド処理ではエラーになります。 Reactコンポーネント内で使う場合であれば下の記事の方法で、処理をクライアントサイドに限定することで解決できます。 Next.jsで"document is not defined." "window is not defined."のエラーが出たときの対処法 すなおにNextjsを使わない形でReactを使う手もありますが、Next(というかVercel)はその辺の対応をすでにしています。 また、Nuxt.jsではこれに関する記事が多くありますが、Nextjsではなぜかなかったので、記事として

    Next.jsで`window is not defined` を解決する(依存ライブラリ対応)
  • BiTemporal Data Modelに入門中 - だいたいよくわからないブログ

    BiTemporal Modelingについてちょっとだけ調べたりしたのでメモ。 基的に Temporal
Data Models(ppt注意)とTemporal Databasesを大幅に端折ったものに他の資料を少しだけ入れた感じの内容です。 Temporal Data Models BiTemporal ModelingはTemporal Data Modelsという分野で研究されているモデリングの一種です。 Temporal Data Modelでは時間によって変わっていくデータを扱います。 ちなみにここでいうData ModelはData Structure+Query Languageを意味します。 データが時間によって変わるということは何らかのUpdate操作が必要です。一番単純な方法を考えるとDBのレコードを直接更新(無効になったデータは削除)することでUpdate操作を実

    BiTemporal Data Modelに入門中 - だいたいよくわからないブログ
    fuyu77
    fuyu77 2021/02/08
  • マイクロサービスでの認証認可 - Qiita

    複数のクラウドサービスを利用している(マルチクラウド)など、単純には閉域網を構築できない環境でマイクロサービスアーキテクチャを採用する場合には、サービス間の認証認可が必要となる。この場合のサービス間の認証認可方式を決める参考となる、OSSやSaaS、Webサービスで採用方式ついて整理した。 Istio サービスメッシュの実装として有名なIstioではサービス間通信を以下のように制御できる。 Istioの認証認可では認証主体がService Identityというモデルで抽象化され、KubernatesやIstioで定義するService Accountに加えて、GCP/AWSのIAMアカウントやオンプレミスの既存IDなどをService Identityとして扱うことができる。 サービス間の認証 (Peer Authentication) は、各サービス (Pod) に設置するSideca

    マイクロサービスでの認証認可 - Qiita
    fuyu77
    fuyu77 2021/02/08
  • API ゲートウェイ パターンと、クライアントからマイクロサービスへの直接通信 | Microsoft Docs

    このコンテンツは eBook の「コンテナー化された .NET アプリケーションの .NET マイクロサービス アーキテクチャ」からの抜粋です。.NET Docs で閲覧できるほか、PDF として無料ダウンロードすると、オンラインで閲覧できます。 マイクロサービス アーキテクチャでは、各マイクロサービスによって (通常) 細かいエンドポイントのセットが公開されます。 このセクションの説明のとおり、このことがクライアントからマイクロサービスへの通信に影響する場合があります。 クライアントからマイクロサービスへの直接通信 クライアントからマイクロサービスへの直接通信アーキテクチャを使用する方法が考えられます。 この方法では、図 4-12 に示すように、クライアント アプリは一部のマイクロサービスに直接要求することができます。 図 4-12. クライアントからマイクロサービスへの直接通信アーキテ

    API ゲートウェイ パターンと、クライアントからマイクロサービスへの直接通信 | Microsoft Docs
    fuyu77
    fuyu77 2021/02/08
  • マイクロサービスの概要 | AWS

    マイクロサービスは、小さな独立した複数のサービスでソフトウェアを構成する、ソフトウェア開発に対するアーキテクチャ的、組織的アプローチです。各サービスは、正確に定義された API を通じてやり取りします。これらのサービスは、小規模の自己完結できるチームが所有します。 マイクロサービスアーキテクチャはアプリケーションのスケーリングを容易にし、開発期間を短縮するため、イノベーションの実現と新機能の市場投入の加速につながります。 モノリシックアーキテクチャでは、プロセスすべてが固く結合され、単一のサービスとして実行されます。したがって、アプリケーションのプロセスのいずれか 1 つでも需要のスパイクが生じた場合、アーキテクチャ全体をスケールする必要が生じます。モノリシックアプリケーションの機能を追加または改善すると、コードベースが大きくなるにつれて複雑さが増大します。この複雑さにより、実験は制限され

    マイクロサービスの概要 | AWS
    fuyu77
    fuyu77 2021/02/08
  • http://www.tackeyy.com/blog/posts/rolling-deploy-to-ec2-in-elb-with-capistrano

  • 複数EC2インスタンスへのrailsデプロイ - Qiita

    掲題の通りの事やりたいと思います。 今回使うec2-capは、tagでデプロイ対象と成るサーバーを識別します。 ELBからサーバーIPを引っ張らずtagを採用したのは、外部に公開しないjobのみが動くサーバーも対象に含めるためです。 なお、jobはrails側のビジネスロジックを再利用しているため、同じリポジトリに含まれているイメージです。 require ruby2.1.2 rails4.1.1 capistrano gem (3.2.1) ec2-cap gem dotenv localからデプロイするために入れています EC2にデプロイ用ユーザーの作成 Groupを作成 # group名 Deploy # policy Deploy-20140907 { "Version": "2012-10-17", "Statement": [ { "Sid": "Stmt14100683140

    複数EC2インスタンスへのrailsデプロイ - Qiita
  • EC2複数台構成時の構築とデプロイ | DevelopersIO

    高可用性・高負荷対応のWebシステムをAWSで構築する場合、ELB配下に2台以上のEC2インスタンスを配置する構成が鉄板です。こういった構成の場合、各EC2インスタンスは同等の挙動をすることが期待されます。各インスタンスにデプロイされているアプリケーションの挙動に差異があると予期せぬ問題を引き起こすことは想像に難くないでしょう。 今回は、ELB構成のWebシステムを構築する場合の、EC2インスタンスの管理やデプロイなどのポイントを紹介します。 ベースインスタンスの作成 プロダクション環境のインスタンスは複数となるため、1台1台をセットアップしては効率がよくありません。AMIを作成することで、EC2インスタンスは簡単に複製できるため、ベースとなるインスタンスを1つ構築して複製すると、効率良く構築することができます。 それ以外のベースインスタンスに関するトピックを紹介しましょう。 ステージング

    EC2複数台構成時の構築とデプロイ | DevelopersIO
    fuyu77
    fuyu77 2021/02/08
  • #10 Consulと連携するpull型デプロイツール stretcher - KAYAC Engineers' Blog

    tech.kayac.com Advent Calendar 2014 10日目担当の @fujiwara です。 最近書いている stretcher というデプロイツールの紹介をしたいと思います。 長いので3行で push型デプロイはホスト台数が増減しやすい環境に適さない 各種問題を解決するpull型デプロイツールを書いた Consul と連携するよ 中央ホスト配布(push)型デプロイの問題点 カヤックの自社サービスでは久しく Archer というツールを利用し、中央ホストから各デプロイ対象ホストrsync でファイルを配布する形のデプロイを行っていました。ここではこれを push 型と呼びます。 push型のデプロイは、ホスト台数が頻繁に増減する環境で以下のような問題があります。 新しくホストが起動してきた場合に、中央ホストからデプロイを行ったあとでないと (古い状態で起動してい

    #10 Consulと連携するpull型デプロイツール stretcher - KAYAC Engineers' Blog
    fuyu77
    fuyu77 2021/02/08
  • 食べログの大規模なレガシーシステムを段階的に改善していく取り組み - Qiita

    こんにちは、べログシステム部長の京和です。 今年の4月から部長になりました。さらに4月に娘が生まれました エントリではべログで1年を通じて取り組んだ、大規模なレガシーシステムの段階的な改善について紹介します。[翻訳] Shopifyにおけるモジュラモノリスへの移行 に続いて2記事目のアドベントカレンダーになります。 どのように段階的に進めるか べログは今年で15年目のサービスで、Railsになってからは13年が経過しています。これだけ歴史があればあちこちにガタが来ているのは当然で、無数にある課題に対してどこからどのように取り組んでいくかを最初に決める必要がありました。 まず最初の前提として以下のように考えました。 既存のビジネスや開発を止めるような悪影響を与えない。むしろなるべく早くポジティブな影響を与えていきたい。 これだけ歴史のあるシステムを改善していくのは長い時間がかかる

    食べログの大規模なレガシーシステムを段階的に改善していく取り組み - Qiita
    fuyu77
    fuyu77 2021/02/08
  • Deconstructing the Monolith - Shopify

    Deconstructing the Monolith: Designing Software that Maximizes Developer ProductivityDesigning Software that Maximizes Developer Productivity. Learn how Shopify took its code base from monolith to modular monolith. Shopify is one of the largest Ruby on Rails codebases in existence. It has been worked on for over a decade by more than a thousand developers. It encapsulates a lot of diverse function

    Deconstructing the Monolith - Shopify
    fuyu77
    fuyu77 2021/02/08
  • 分散されたモノリスになってしまうマイクロサービス

    Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。このでは、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...

    分散されたモノリスになってしまうマイクロサービス
    fuyu77
    fuyu77 2021/02/08
  • コンポーネントに関する6つの原則 - Qiita

    コンポーネントとは コンポーネントとは、デプロイ単位のことであり、システムの一部としてデプロイできる最小限のまとまりを指す。例えば、Javaならjar、Rubyならgem、.NETならDLL等がそれにあたる。あらゆる言語において、コンポーネントがデプロイの基準となる。よくできたコンポーネントは常にデプロイできる状態を保っているため、個別に開発を進めることができる。 記事では「コンポーネントの凝集性に関する原則」3つと「コンポーネントの結合に関する原則」3つを取り上げる。 コンポーネントの凝集性に関する原則 凝集性とは、機能と機能の関わり具合の尺度を指す。凝集性が高い(機能と機能の関わり具合が低い)ほど良いプログラムとされる。 ※密接に関係するものは1つに集め、関係しないものは分けるという考え方がベースとなる。 再利用・リリース等価の原則(REP:The Reuse/Release Equ

    コンポーネントに関する6つの原則 - Qiita
    fuyu77
    fuyu77 2021/02/08
  • Railsをやめても解決しない問題

    序文 昨年末くらいからRailsとフルスタックJavascriptの論争の記事がよくバズってましたね。主にORMとパフォーマンスやSPAが論点として多かった気がします。 Rails側のSPA作りづらい問題に対し、hotwireが一つの解として今後どういう受け入れ方をされて行くのか、どう発展していくのかは気になるところです。 未来のフルスタックフレームワークの代表争い さてこの論争、僕は「未来のフルスタックフレームワークの代表争い」だと思っているのですが、結構難しくって視点次第でどうとでもなっちゃうような気がしてます。 というのもこの手の技術選定の問題ってアプリケーション規模やチームの思考、求められるサイト特性などによって合う合わないがあるので、一概に正解がわからないんですよね。 例えば今勉強がてらブログを作ってみたい、という人には迷わず僕はblitz やNext/Gatsby+外部サービス

    Railsをやめても解決しない問題
    fuyu77
    fuyu77 2021/02/08