タグ

ブックマーク / thinkit.co.jp (18)

  • FAPIとKeycloakの概要

    連載の1回目である今回は、FAPIの概要並びに、IAMのKeycloakのFAPI対応について紹介します。 はじめに サービスデリバリのアジリティを高めるために、今やサービス開発にAPIを利用することは必要不可欠となっています。また既存サービスに新たな価値を付与するために、APIを公開することも常套手段の一つとなっています。このようにAPIに触れる機会が日常にあふれている一方、APIに対して適切なセキュリティ設計を行わなかったために、機密性の高い情報が漏えいしてしまったり、金融取引に関わる不正操作を許してしまったりという事故や事件は後を絶ちません。攻撃者による攻撃が日々進化をし続けている中、APIを公開するシステムに求められるセキュリティ要件は日々高度化しています。 そんな中で注目を集めているのが、Financial-grade API Security Profile(以下、FAPI)で

    FAPIとKeycloakの概要
    yugui
    yugui 2021/10/13
  • Kubernetes 1.18の新機能を学び、使ってみよう

    はじめに Kubernetes 1.18(以降、1.18)が2020年3月24日にリリースされました。ここではリリースノートで紹介された5つの注目機能に加えて、筆者が注目するHorizontalPodAutoscalerのspec.behaviorフィールドの追加、ノードローカルDNSキャッシュ、Pod StartupProbeを紹介し、最後にStartupProbeを試していきます。 Kubernetes 1.18注目の新機能 最初に1.18リリースノートにおける5つの注目機能について、それぞれ解説します。 Topology Manager(ベータ) Topology Managerは、NUMA(Non-Uniform Memory Access、ヌマ)の環境において、コンテナの使用するCPUとデバイスの同一ソケット(NUMAノード)への割り当てを可能にします。Topology Mana

    Kubernetes 1.18の新機能を学び、使ってみよう
    yugui
    yugui 2020/05/10
  • クラウドネイティブなプログラミング言語Ballerinaとは?

    CNCFがホストしたWebinarで紹介された、クラウドネイティブなインテグレーションを目的とした言語Balerinaとは? 現在、モノリシックなソフトウェアから、コンテナを中心としたサービスが連携するマイクロサービスなシステムへの移行が進んでいる。クラウドネイティブと呼ばれるようなマイクロサービスのシステムでは、コンテナは入れ物でしかないし、Kubernetesはそれを協調させるためのスケジューラーとして、最終的に複数のコンテナが稼働することで突然のアクセスのピークへの対応や、エラー処理を全体として担保することが要点になる。Kubernetesが選ばれるのは、それらの変動に対して基機能として対応できる部分が評価されているからだろう。しかし一部のシステムが稼働していない場合の処理、例えば一定時間のリトライを制御するサーキットブレーカーをどの部分で実装するのか? などに関しては、まだ各々が

    クラウドネイティブなプログラミング言語Ballerinaとは?
  • KubernetesのDiscovery&LBリソース(その1)

    Discovery&LBリソースは、クラスタ上のコンテナに対するエンドポイントの提供や、ラベルに一致するコンテナのディスカバリに利用されるリソースです。内部的に利用されているものを除いて利用者が直接利用するものとしては、全部で2種類のDiscovery&LBリソースが存在します。そのうちのServiceリソースに関しては、Endpointの提供方法が異なるtypeがいくつかあります。 Service ClusterIP NodePort LoadBalancer ExternalIP ExternalName Headless(None) Ingress クラスタ内ネットワークとService Kubernetesでクラスタを構築すると、Podのための内部用ネットワークが構成されます。この内部用のネットワークの構成は、CNI(Common Network Interface)と呼ばれるpl

    KubernetesのDiscovery&LBリソース(その1)
  • Dockerの誤解と神話。識者が語るDockerの使いどころとは? Docker座談会(前編)

    では題に入ります。まず、Dockerは何がいいのか、あるいはどういうことには向かないか。実際に仕事で関わっている立場から語ってください。 松井:SIerをやっていて、最近はお客様からDockerという言葉が出てくるようになりました。とあるお客様からは、Solarisコンテナーで動いているシステムが古いので乗り換えたい、そのためにDockerはどうかと具体的な話を聞かれました。一方、「Dockerってどう?」と漠然とした話をいただいて、お客様の環境でしたらこう使えます、という話をすることもあります。 実案件まではまだありません。アプリケーションが対応していないと使えない、という話になることが多い。Dockerでは、いままでのアプリをそのまま使おうとすると、失敗すると思います。 前佛:無理をしてDockerを入れるのは違うと思いますね。Docker社が、仮想化を置きかえるというような見せ方を

    Dockerの誤解と神話。識者が語るDockerの使いどころとは? Docker座談会(前編)
  • Dockerをより良く使うための3つの周辺技術

    前回の記事では、Dockerの特徴を解説した。Dockerは非常に便利なツールであるが、単体では出来ることが限られている。例えば前回述べたように、実行も稼動状態の確認も全てCLIで行う必要があり、操作の難度も高く、視認性も低い。それを改善し、よりDockerを使いやすくするためのツールが多数開発されている。今回は、それらのツールについて紹介していきたい。 Dockerの周辺技術 Dockerの周辺技術には、大きく分けて以下の3つの分野がある。 コンテナ向け軽量OS コンテナでほとんどのことを実行することを前提に作成された、超軽量のLinuxディストリビューションを指す。 Dockerコンテナ管理ツール Dockerコンテナの確認や基礎的な操作を、GUIで実施可能にした管理ツールを指す Docker機能強化ツール 複数ノードへのコンテナ一括構築やクラスタリングの簡素化等、Dockerを操作す

    Dockerをより良く使うための3つの周辺技術
  • 「データのライフ・サイクル」で考えるHadoopの使いどころ

    「データのライフ・サイクル」を考える RDBMSは、「非定型処理への活用」、「バッチ処理のスケール・アウト」という観点で限界に突き当たっています。しかし、RDBMSの豊富な機能が現代のコンピュータ・システムに欠かせない存在であることも間違いありません。この矛盾をどう解決すればいいのでしょうか。 この問題を解決する鍵は、「データのライフ・サイクル」にあります。 RDBMSは、管理するデータはすべて「起きている(活動している)」、つまり「いつでも更新される可能性がある」ことを前提に設計されています。例えば、銀行の口座残高は、バッチ処理が進んでいる最中にも、ATMからの引き出しなどのリアルタイム処理で更新される可能性があります。 しかし、すべてのデータが「起きている」わけではありません。例えば、銀行口座の「昨日の取引履歴」は、過去のデータなので、更新される可能性はまずありません(過去の取引履歴を

  • コネクション受付制御とは?

    通信の実際と受付制御 連載では、Webサーバーにおけるコネクション受付制御に焦点をあて、通信量に応じた受付制御のシミュレーションや期待できる性能などについて、数値を使って検証していく。第1回の今回は、通信の世界で実現されている受付制御について紹介していく。 電話による通話では発信者がダイヤルし、受信者が受話器を持ち上げた時点で呼(call、2端末間の物理的な通信路)が確立される。一方、インターネットなどのパケット網では、通信を行う2端末間にコネクション(connection)と呼ばれる論理的な通信路が確立される。 いずれにしても、通信資源(伝送路の通信容量、接続・中継機器や端末の処理能力など)には限りがあるので、呼やコネクションの接続要求をすべて受け付けることはできない。 そこで、限界を超える前に接続数を制限して、ネットワークの円滑な運用を図ることが以前から行われてきた。このようなネット

  • AtomPP を利用したWeb API

    それでは実際にAtomPPを利用したプログラムを書いてみることにしましょう。PerlにはXML::AtomというAtomPPやAtom Feedを扱うモジュールがあるので、こちらを利用します。 題材としては、はてなブックマーク(注3)を利用してみます。はてなブックマークはソーシャルブックマークサービスで、ブックマークの登録や取得、編集をAtomPPで行うことができます。 #!/usr/bin/perl use strict; use warnings; use XML::Atom::Client; use XML::Atom::Entry; use XML::Atom::Link; my $api = XML::Atom::Client->new; $api->username('ユーザー名'); $api->password('パスワード'); my $collection_uri =

    yugui
    yugui 2006/10/17
  • [ThinkIT] 第1回:O/Rマッピング (1/4)

    連載では今話題のフレームワーク「Ruby on Rails(以下、Rails)」と現在Webアプリケーション開発で主流であるJavaのフレームワーク群を比較していきます。 比較軸については、開発に関する事項(生産性やメンテナンス性など)を中心に解説していきます。第1回の今回はO/Rマッピングを提供するフレームワークについてです。 O/Rマッピングとは、オブジェクトとRDBのテーブルをマッピングすることをいいます。O/Rマッピングフレームワークはオブジェクト指向とRDBの仲介人となることで、アプリケーションの開発生産性を向上させます。 Railsからは同梱の「ActiveRecord」というO/Rマッピングのコンポーネントを取り上げます。対してJavaのO/Rマッピングとしては、もっとも知名度が高いと考えられる「Hibernate」と、Javaの正式仕様として策定された「Java Pers

  • [ThinkIT] 第3回:アジャイル開発のメリット 〜 ユーザとベンダー共通のメリット (1/3)

    前回はアジャイル開発でのユーザ側のメリットを話しました。今回はベンダー側のメリットとユーザ/ベンダー側両者の共通のメリットについて考えてみましょう。まずは、前回紹介したユーザのメリットについておさらいします。

    yugui
    yugui 2006/09/10
    マネージメントに
  • 多機能なHibernate(前編)

    皆さん、こんにちは。連載を担当するビーブレイクシステムズの山之内です。 前回、SQL文を使用しないタイプのO/Rマッピングツールの1つとして「Torque」を紹介しました。第5回となる今回は、機能が豊富なO/Rマッピングツールの「Hibernate」を実際にサンプルを作成しながら解説していきます。 Hibernateは、Gavin King氏を中心とした「Hibernateチーム」が開発しているJavaのO/Rマッピングツールです。現在(2006年7月)の最新バージョンは3.1.3です。Hibernateは機能が豊富で、強力な検索を可能にするオブジェクトクエリ言語のHQLや、シンプルで扱いやすいAPIを提供します。

  • [ThinkIT] 第1回:セマンティックWebとは (1/3)

    近頃、インターネットの世界(Web 2.0の世界)では、マイクロフォーマット/タギング/フォークソノミーといったメタデータやセマンティックWebに関係する技術が盛んに使われるようになってきた。また、エンタープライズの世界でも先進企業によるセマンティックWebを応用した情報インテグレーション事例が紹介されはじめている。 企業だけではなく個人においても、肥大化と多様化する情報を有効に扱うことが目下の課題であり、そのための有効手段としてメタデータやセマンティックWebがあらためて注目されはじめている。そこで、連載では「セマンティックWebによる情報統合」をメインテーマにおき、Web 2.0とエンタープライズの情報活用を支えるメタデータ技術の将来像ついて解説していく。 第1回の今回は、そもそも「セマンティックWeb」とは何かを解説する。 セマンティックWebは、1998年にティム・バーナーズ・リ

  • [ThinkIT] 第9回:国産オープンソースCRM「SalesLabor」、FAQシステム「QuestionLabor」 (1/4)

    オープンソースCRM「SalesLabor」とFAQシステム「QuestionLabor」は「業務システムこそオープンソースとすべき」という理念の下に開始したLaborプロジェクトにより開発・公開されています。まずはオープンソースCRMである「SalesLaber」の機能について解説し、当社が業務システムをオープンソースとして開発・公開している理由について述べます。 業務システムは企業の利潤を得るビジネスに直結しているため、そのシステムに要求される品質は他のシステムと比べて基準が非常に厳しい場合が多いと思います。そのため、業務システムを構築する際には品質を上げることが重要ですが、オープンソースは品質の向上にどのように寄与するのでしょうか。また、商用ではなくオープンソースを業務システムに選択するメリットとは何でしょうか。SalesLaborとQuestionLaborについて解説する前に、ま

    yugui
    yugui 2006/08/01
  • [ThinkIT] 比嘉康雄氏の講演「設定ファイルは死すべし!!!」

    比嘉 康雄氏の講演「設定ファイルは死すべし!!!」 会場:サンフランシスコ Moscone Center 記者:ThinkIT編集局   2006/5/24 インタビューを通じてエンジニアのキャリアと内面に迫る「キーエンジニアの真実」に登場し、Seaser2についての連載を執筆している、Seasar Foundation代表である比嘉 康雄氏の講演が最終セッションで行われた。「DI:Configuration Files Must DIe!!!(DI:設定ファイルは死すべし!!!)」というタイトルのセッションで講演を行った。比嘉氏は「設定ファイルを書くのは面倒であり、それが好きなエンジニアはいないでしょう。しかし、現在のJavaの世界は設定ファイルで溢れており、XML地獄といわれています」と、設定ファイルを取り巻く問題点を提起した。 WebやDIの代表的なフレームワークにおいて、設定ファイ

    yugui
    yugui 2006/05/26
  • [ThinkIT] 第4回:レプリケーションの比較 (1/4)

    今回はレプリケーションを取り上げます。まずレプリケーションとはどのようなものかを解説し、次にPostgreSQLMySQLそれぞれが持つレプリケーションの基構造を解説します。 RDBMSでいうプリケーションとは、ある1つのデータベースをまったく同じ内容で複製し、複製したデータベース(レプリカ)をネットワーク上に複数配置する機能です。レプリケーションにて作成した複製のデータベースは、様々な目的に活用できます。次にその使用例を紹介します。 目的の1つには、バックアップデータとしての活用があります。テープ装置などの外部記憶装置にバックアップデータを作成するかわりに、他のサーバ上のディスク内にデータベースを複製し、それをバックアップデータとします。 障害発生時には、バックアップデータとして作成した複製データベースを番データベースとして使用し、障害復旧のための時間を短縮する効果があります。 そ

    yugui
    yugui 2006/05/23
  • [ThinkIT] 第8回:PostgreSQLを使い切るためのノウハウを徹底解説する その2 (1/3)

    PostgreSQLの導入が成功し、さらにミッションクリティカルな用途に適用しようとした際に、まず直面するのが可用性の問題だ。DBが止るとシステム全体のダウンにつながるため、DBの停止時間は可能な限り短くしたい。 Webサーバであれば、複数のサーバを設置してロードバランサで管理すれば、比較的簡単に「止らない」Webサーバシステムを構築できる。だがDBの場合は、複数のDBサーバでデータの一貫性を保つ工夫をしない限り、同じ方法では対応できない。 PostgreSQLの可用性を高める方法の中でも実績のあるのが、フェールオーバー型のクラスタだ。 この方法では、2台以上のDBサーバが「共有ディスク」という、複数のシステムに接続された特殊なディスク装置を使用する。普段はどちらかのDBサーバが共有ディスクをマウントし、他のサーバはアクセスできない状態になっている。 2台のサーバは互いに相手を監視する「ハ

    yugui
    yugui 2006/05/18
  • 教科書的ではなく、現場にあったデータベース設計のコツ

    前回はデータベース設計をする際に誰もがぶつかる問題である、「列名に日語を使うか?」「どのデータ型を使うか?」ということをテーマに取りあげました。今回も引き続き、データベース設計をする際に迷いやすい点をいくつか取りあげてみようと思います。 今回は前回と同様、SQL Serverのサンプルデータベース「Northwind」を元にして、データベース設計で迷いやすい点について考えてみましょう。図1は「Northwind」をER図にリバースした中から、エンティティ「商品」「商品カテゴリ」をサブウィンドウで表示したものです。 図1のように商品を分類するためにカテゴリコードをつけるエンティティ構造はよくあります。しかし実際の販売管理システムにおいては、このようなフラットなカテゴリ構造は不便です。なぜかというと、一般に商品カテゴリなどは表1のように階層構造で分類する必要があるからです。 01 ハードウェ

    yugui
    yugui 2006/04/26
  • 1