アーキテクチャに関するhogegeのブックマーク (99)

  • Node.jsのマイクロサービスの構築を通してDockerを学ぶ – 前編 | POSTD

    あなたが真剣に Docker に取り組んで、その全てを学びたいと思っているのでしたら、もう探し回らなくても大丈夫です。 稿では、Dockerがどのように機能するのか、どんな部分が話題になっているのか、そしてマイクロサービスを構築する際の基的な開発作業にどのように役立つのかについて紹介したいと思います。 稿では例として、ローカルで実行するコードからマイクロサービスやデータベースを実行するコンテナまで、バックエンドにMySQLを用いたシンプルなNode.jsのサービスの例を使います。 Dockerとは何か Dockerとは要するに、(仮想マシン用のテンプレートに非常によく似ている) イメージ を作成して、 コンテナ でイメージのインスタンスを実行できるソフトウェアです。 Dockerには、 Docker Hub と呼ばれる大量のイメージのリポジトリがあり、これを利用して作業を始めたり、無

    Node.jsのマイクロサービスの構築を通してDockerを学ぶ – 前編 | POSTD
  • Let's EncryptのDNS-01を使用して無料のSSL証明書をWebサーバなしで取得する -- ぺけみさお

    サマリDNSによる認証(DNS-01)でドメインを認証し、Let’s EncryptからSSL証明書を取得することができたので、メモとしてまとめます。クライアントはサードパーティ製のletsencrypt.shを使用します。DNSで認証するには、ドメインに認証専用のサブドメインを追加し、サブドメインに対してTXTレコードを設定できる必要があります。HTTPによる認証ではないため、Webサーバは必要ありません。このためHTTPによる認証と比較してとても簡単に証明書を取得できます。HTTPによる認証と手間なところ無料でDVのSSL証明書を取得できるLet’s Encryptが話題です。 Let’s Encryptで証明書の取得を行う場合、HTTPを使用してドメインを認証を方法(HTTP-01)が紹介されることが多いようです。 この方法でドメインを認証する仕組みは、ざっくり説明すると以下のとおり

    hogege
    hogege 2016/06/10
    Let’s EncryptのSSL証明書発行(更新)の自動化。スクリプト書いておいてcronで3ヶ月毎に実行。
  • Dockerのライフサイクルを理解するハンズオン資料 - Qiita

    概要 手を動かしながら docker コマンドの基礎を学びます。 Docker イメージを使い、どのようにコンテナを動かすかを理解します。 イメージを自動構築し、Docker Hub にアップロードします。 Dockerfile の基と、CMD と ENTRYPOINT の違いを理解します。 所要時間は約15~30分です。 発表資料(Dockerライフサイクルの基礎)の中からハンズオン部分だけを抽出したものです(コピー&ペーストの確認用)。こちらを副読資料として、あわせてご覧ください。 Dockerライフサイクルの基礎 地雷を踏み抜けろ! http://www.slideshare.net/zembutsu/docker-underlying-and-containers-lifecycle ハンズオン内容 ドキュメントの Get Started with Docker の内容をベースに

    Dockerのライフサイクルを理解するハンズオン資料 - Qiita
  • 「WebAPI 設計のベストプラクティス」に対する所感 - Qiita

    「翻訳: WebAPI 設計のベストプラクティス」を読んで色々と思うところがあったので書きました。 上記の記事は訳文でありますので、正しくは「Best Practices for Designing a Pragmatic RESTful API」に対する所感と述べた方が良いのかもしれませんが、日語で通して読めるよう Qiita に投稿された訳文に対する所感として書いています。 以下では「翻訳: WebAPI 設計のベストプラクティス」並びに「Best Practices for Designing a Pragmatic RESTful API」は「当該記事」と表現します。 観点 当該記事では「○○とした方がよい」との意見に対してそうすべき理由が明らかになっていないか、もしくは表現が曖昧な場合が目立っていると感じました。設計は実装のようにプログラム言語仕様が制約を与えられないため、意図

    「WebAPI 設計のベストプラクティス」に対する所感 - Qiita
  • Dockerを使って1サーバで複数Webサービスを運用するためのマイベストプラクティス - Qiita

    はじめに エンジニアやっていると色んなサービスを作りたくなると思うのですが、Herokuのフリープランが使えなくなってしまった影響で無料でのサービス運営は難しくなってきています。 もちろん、Google App Engineなど無料で運用できるものもあるのですが、サービスにロックインされてしまうのが多くちょうど良い物が見つかりませんでした。 ということである程度安く色々やろうとすると、1台のサーバでいい感じに複数サービスを立ち上げるという昔ながらの構成になるのですが、Dockerを使うことで環境セットアップなどサーバ管理の手間を最小限にしていこう、というのがこの記事の趣旨となります。 方針 要件 安い サービスにロックインされない スケーラブル(もしサービスのアクセス量が増えたとしてスケールさせられる) インフラ管理が容易 セキュリティとかなるべく気にしたくない 以上のことを踏まえた結果C

    Dockerを使って1サーバで複数Webサービスを運用するためのマイベストプラクティス - Qiita
  • [今月の技術トピック] 日本全国を Azure のデータセンターに? ~Microsoft Azure Stack のプレビュー開始~

    「うち、パブリックなクラウドは無理なんです・・・」そんな会話をしたことはありませんか? 「だから、これまでの古い IT から抜け出せない・・・」とうつむいてしまったりしていませんか? そんな時、これからは胸を張ってこう言ってください。「そう思って、オンプレミスでも動かせる Azure の準備を進めています。さあ、話の続きを始めましょう!」と。 Microsoft Azure がなぜ伸びているのか? それは、クラウドがこれまでの IT 以上にお客様目線の IT ソリューションを提供しているからです。所有から利用への流れ、サービスカタログと圧倒的な提供スピード、明確なコストと使い勝手の良さ、そして止めたいときに止められる柔軟な従量課金など、クラウドには様々なメリットがあります。ただ、お客様目線だからこそクラウドが伸びているというのであれば、クラウドは無理というお客様の事情を考慮せずにクラウドあ

    [今月の技術トピック] 日本全国を Azure のデータセンターに? ~Microsoft Azure Stack のプレビュー開始~
    hogege
    hogege 2016/03/16
    おーー!!やっとプレビュー公開されたのか!
  • 初心者なのでPHPで円の面積を求めてみた - Qiita

    整数で値をひとつ読み込み、それを半径とする円の面積を求めて表示するプログラムを作成しなさい。 円周率は3.14とし、計算結果は、小数第2位を四捨五入して小数第一位まで表示すること。 知恵袋方面に上記のプログラムをPHPで書きたい人がいるという噂を聞きました。世の中にはPHPの宿題が出る学校があったりするのかもしれません。PHPなら任せろー、というわけでPHPのLua拡張を利用して書いてみましょう。LuaもLua拡張も初心者ですが、がんばります! まず手元のPHPのバージョンを確認します。今回はPHP 7.0.4を使います。 $ php -v PHP 7.0.4 (cli) (built: Mar 9 2016 16:14:46) ( NTS ) Copyright (c) 1997-2016 The PHP Group Zend Engine v3.0.0, Copyright (c) 1

    初心者なのでPHPで円の面積を求めてみた - Qiita
    hogege
    hogege 2016/03/14
    ワロタ( ̄∇ ̄)N88Basic拡張とかasp(legacy asp)拡張(VBScript拡張?)とかぴゅー太(G-Basic)拡張とかあったら面白いのにヽ(^0^)ノ
  • 非Linux環境でもDockerの実行環境を簡単に構築できる「Docker Machine」 | さくらのナレッジ

    また、Docker MachineではDockerホストとなるサーバーにSSHでログインし、sudoコマンドを使ってroot権限で各種処理を実行する。そのため、Dockerホストとして使用するサーバーではSSHでのログインに使用するユーザーがパスワードなしでsudoコマンドを実行できるように設定しておこう。 genericドライバによるDockerホストの作成 Dockerホストとして使用するLinuxサーバーを用意したら、次のように「generic」ドライバを指定して「docker-machine create」コマンドを実行することで、そのホストDockerホストとして利用するための各種設定が自動で行われる。 docker-machine create --driver generic --generic-ip-address <対象とするホストIPアドレス> --generic-

    非Linux環境でもDockerの実行環境を簡単に構築できる「Docker Machine」 | さくらのナレッジ
  • ロードバランサのアーキテクチャいろいろ - yunazuno.log

    少し前に,Facebookのロードバランサが話題になっていた. blog.stanaka.org このエントリを読んで,各種Webサービス事業者がどういったロードバランスアーキテクチャを採用しているのか気になったので調べてみた. ざっくり検索した限りだと,Microsoft, CloudFlareの事例が見つかったので,Facebookの例も併せてまとめてみた. アーキテクチャ部分に注目してまとめたので,マネジメント方法や実装方法,ロードバランス以外の機能や最適化手法といった部分の詳細には触れないことにする. 事例1: Microsoft Azure 'Ananta' MicrosoftのAzureで採用されている(いた?)ロードバランサのアーキテクチャは,下記の論文が詳しい. Parveen Patel et al., Ananta: cloud scale load balancing

    ロードバランサのアーキテクチャいろいろ - yunazuno.log
    hogege
    hogege 2016/03/01
    ある程度まとめて記載されているのはあまりないから助かる:-)
  • 今さら聞けない、「Sambaサーバーの冗長化」をDRBDでサクッと実現してしまう方法

    連載バックナンバー 前回まで、DRBD(Distributed Replicated Block Device)の基礎と概要、よく使われるDRBDの例である「高可用性システムの場合」と「災害対策システムの場合」の運用イメージを解説しました。しかし、高可用性システムとなると、自分の担当ではなかったり、規模が大きすぎて運用イメージがなかったりする人がいたかもしれません。 では、「Sambaファイルサーバーを冗長化する」ならばいかがでしょう。 今回は、こういったより身近な運用シーンからまずは「即導入」し、今後、自然災害などで被害を受けたシステムを復旧・修復する「DR(ディザスタリカバリ)」対策まで含めてイメージできるよう、OSの準備からDRBDのインストール手順、設定ファイルの記述方法と解説、構築や運用テクニックまで、順を追って説明します。 今回の構成イメージを図1に示します。二台のSambaサ

    今さら聞けない、「Sambaサーバーの冗長化」をDRBDでサクッと実現してしまう方法
  • [速報]オープンソース版.NETがリリース候補版に到達。Windows、MacOS X、Linuxで同一の.NETアプリが実行可能に。Microsoft Connect(); 2015

    [速報]オープンソース版.NETがリリース候補版に到達。WindowsMacOS X、Linuxで同一の.NETアプリが実行可能に。Microsoft Connect(); 2015 マイクロソフトは11月18日(日時間18日深夜)、オンラインイベント「Microsoft Connect (); 2015」を開催。オープンソース版の.NET CoreとASP.NETがリリース候補版に到達したことを発表しました。 マイクロソフトは1年前のConnectで.NET CoreとASP.NET 5のオープンソース化を発表すると同時に、WindowsだけでなくMacOS XとLinuxへの対応も発表。ASP.NET 5アプリケーションがそのままWindowsMacOS X、Linuxで実行可能になることを約束していました。 .NET CoreとASP.NETがリリース候補版に到達 マイクロソフ

    [速報]オープンソース版.NETがリリース候補版に到達。Windows、MacOS X、Linuxで同一の.NETアプリが実行可能に。Microsoft Connect(); 2015
    hogege
    hogege 2015/11/19
    とうとうここまでこぎ着けたんか。でもオンプレミスでやる場合(特に非Docker環境)パッチ適用はどうなんのかな?運用含めて考えると本番適用にはまだまだ課題がいっぱい
  • RESTful APIの記述標準化を目指す「Open API Initiative」をマイクロソフト、Google、IBMらが立ち上げ。Swaggerをベースに

    RESTful APIの記述標準化を目指す「Open API Initiative」をマイクロソフト、Google、IBMらが立ち上げ。Swaggerをベースに 10年以上前、XMLの登場に続いてXMLベースのAPIを記述する標準フォーマット「WSDL」が提唱されました。 WSDLにはAPIの仕様がマシンリーダブルな形で記述されており、APIを呼び出すためのプロトコルやデータフォーマットをあらかじめ知ることができます。WSDLを利用することで、APIをコールするためのコードを自動生成することが可能でした。 しかしXMLベースのAPIは期待されたほど普及せず、現在ではよりシンプルなRESTful APIが事実上の標準となっています。 そしてRESTful APIのためのWSDLとも言うべき、RESTful APIのインターフェイスを記述するための標準フォーマットを推進する団体「Open AP

    RESTful APIの記述標準化を目指す「Open API Initiative」をマイクロソフト、Google、IBMらが立ち上げ。Swaggerをベースに
    hogege
    hogege 2015/11/09
    時間ある時にじっくり読もう。
  • nginx で omniauth を利用してアクセス制御を行う - クックパッド開発者ブログ

    インフラストラクチャー部 id:sora_h です。クックパッドでは、社内向けの Web アプリ (以降 “社内ツール”) を社外のネットワークから利用する際、アプリケーションレベルでのアクセス制御とは別に、リバースプロキシでもアクセス制御を実施しています。*1 これまで BASIC 認証あるいは VPN による社内ネットワークを経由した接続という形で許可していました。しかし、iOS の Safari などでは BASIC 認証時のパスワードを保存できない上、頻繁に入力を求められてしまいますし、VPN はリンクを開く前に接続をしておく必要があります。これにより、社内ツールを社外で開く時に手間がかかってしまう問題がありました。 これに対し、一部では typester/gate などを導入し Google Apps での認証を行なっていました。しかしいくつか問題があり、非アドホックな対応では

    nginx で omniauth を利用してアクセス制御を行う - クックパッド開発者ブログ
  • Apache Kafkaに入門した

    Apache kafka 最近仕事でApache Kafkaの導入を進めている.Kafkaとは何か? どこで使われているのか? どのような理由で作られたのか? どのように動作するのか(特にメッセージの読み出しについて)? を簡単にまとめておく(メッセージングはまだまだ勉強中なのでおかしなところがあればツッコミをいただければ幸いです). バージョンは 0.8.2 を対象に書いている. Apache Kafkaとは? 2011年にLinkedInから公開されたオープンソースの分散メッセージングシステムである.Kafkaはウェブサービスなどから発せられる大容量のデータ(e.g., ログやイベント)を高スループット/低レイテンシに収集/配信することを目的に開発されている.公式のトップページに掲載されているセールスポイントは以下の4つ. Fast とにかく大量のメッセージを扱うことができる Scal

    hogege
    hogege 2015/09/04
    φ(・_・ありがたや
  • リアルタイム通信で利用されるプロトコルと手法 - tech.guitarrapc.cóm

    NOTE: 記事はすでに内容が古く、今読んでも役に立つ度合いはほぼないです。 記事は、先日社内勉強会のために準備した、Webサービスのリアルタイム通信周りのまとめシリーズ の1つを転載して公開するものです。 まだまだわかっていないことが多いので、ぜひぜひ間違っている点などにご指摘いただければと思い公開します。 ぜひぜひ優しくマサカリをいただけると泣いて喜びます! 目次 目次 はじめに プロトコルと手法 前世代のやり方であるComet について Polling 系 Streaming 系 過渡期といわれてる手法 将来有望といわれてる手法 Polling メリット デメリット 向いているシーン Long Polling (Comet) Polling の発展版 メリット デメリット LongPolling 自体は双方向通信ではない 接続が閉じられるケース 向いているシーン Server S

    リアルタイム通信で利用されるプロトコルと手法 - tech.guitarrapc.cóm
  • ニュースリリース (2015-06-18):盗聴が理論上不可能な量子暗号通信システムの実証試験の開始について | ニュース | 東芝

    盗聴が理論上不可能な量子暗号通信システムの実証試験の開始について 国内初、実データを用いた量子暗号通信システムの運用を開始 当社は、盗聴が理論上不可能な量子暗号通信システムにより、ゲノム解析データの通信を行う実証試験を8月31日から開始します。実データを用いた量子暗号通信システムの実証試験は、国内初となります。 実証試験では、東芝ライフサイエンス解析センターにおいて、日人ゲノム解析ツール「ジャポニカアレイ®注1」を用い解析したゲノム解析データを、量子暗号通信システムにより暗号化し、7km先の東北大学 東北メディカル・メガバンク機構まで送信します。実証期間は、2017年8月までの2年間で、長期間の運用における通信速度の安定性や天候、温度や光ファイバーの状態など環境条件の影響度などを検証します。 量子暗号通信は、光子注2の量子力学的な性質を利用することにより、盗聴されることなく、通信の両端で

    hogege
    hogege 2015/06/19
    すべての光子を常に(盗聴して)読み出すことで量子暗号キーのやり取りを妨害すると実質的にDosができてしまわないかなぁ:-(
  • 2015年Webサーバアーキテクチャ序論 - ゆううきブログ

    2023年03月31日追記:この記事を基に、@sadnessOjisanさんより、コードレベルにより踏み込んだ、かつ、グリーンスレッドベースの新しいWebサーバアーキテクチャも含めて整理された記事 Webサーバーアーキテクチャ進化論2023 | blog.ojisan.io が公開されました。 主に新卒のWebエンジニア向けに、古典的なWebサーバアーキテクチャを学ぶ道のりと代表的な実装モデルの概要を紹介します。 この辺りの話題がWeb界隈で流行っていたのは数年以上前というイメージですが、Webサービスは相変わらずWebサーバの上で動いているので、流行り廃り関係なく学ぶべき内容だと思っています。 また、HTTP/2がいよいよRFC化し、既にh2oやtrusterdなどのHTTP/2のサーバ実装があり、今後Webサーバアーキテクチャを再訪することが増えるような気がしています。 ところが、We

    2015年Webサーバアーキテクチャ序論 - ゆううきブログ
  • 二次元画像を拡大したいと思ったことはありませんか? - デー

    うまくできましたか? ボヤけたり、ギザギザになったりしませんでしたか? waifu2xをお試しください。 (ブラウザの処理に影響されないようクリックで拡大おねがいします) waifu2xは、二次元画像を2倍に拡大するソフトウェアです。多くの二次元画像についてスゴイ級のクオリティで拡大できます。 waifu2xは、最新鋭の人工知能技術 Deep Convolutional Neural Networks を使って開発されました。 waifu2xの人工知能は、次の問に答えます。 いまから与える画像はある画像を半分に縮小したものである。縮小される前の画像を求めよ。 画像を拡大するのではなく、縮小される前の状態に戻します。 縮小されてないオリジナル画像を与えた場合も、やはり縮小される前の画像を答えます。 その画像は来存在しないものですが、waifu2xはそれを想像で創ります。 二次元画像のJPE

    二次元画像を拡大したいと思ったことはありませんか? - デー
  • 第4回 データ処理の方法 | gihyo.jp

    はじめに 前回までは、(⁠並列)データ処理の説明をするために必要な言葉の定義や整理をしてきました。いよいよこれからは、データ処理自体について触れていきます。今回は、アプリケーション開発者の視点から見るデータ処理にはどのようなものがあり、その観点において、Hadoopがどのようなものであるか、また、Hadoopがどのようにデータ処理を構築しているかについて、その概要を説明します。 手続き型言語によるデータ処理と宣言型言語によるデータ処理 データ処理は、データ処理を行うアプリケーション開発者(ユーザ)の視点から見ると、 手続き型言語によるデータ処理 宣言型言語によるデータ処理 の2つに大別することができます。 手続き型言語によるデータ処理は、ユーザがプログラミング言語等を用いて行うデータ処理です。たとえば、CやPerlなどを用いて行うデータ処理や、汎用機においてCOBOLなどを用いた集計処理な

    第4回 データ処理の方法 | gihyo.jp
  • IBM Developer

    IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.

    IBM Developer
    hogege
    hogege 2015/04/27
    ちょっとややこしいけど面白そうな感じ。