タグ

ブックマーク / knowledge.sakura.ad.jp (37)

  • GitHubの新機能「GitHub Actions」で試すCI/CD | さくらのナレッジ

    GitHubが2019年11月、新機能「GitHub Actions」を正式に公開した。GitHub上のリポジトリやイシューに対するさまざまな操作をトリガーとしてあらかじめ定義しておいた処理を実行できる機能で、今まで外部サービスとの連携が必要だった自動テストや自動ビルドなどがGitHubだけで実現できるようになる。今回はこのGitHub Actionsについて、機能の概要や基的な使い方などを紹介する。 GitHubだけでCI/CD的な機能を実現できる「GitHub Actions」 昨今では、ソフトウェア開発におけるさまざまな工程を自動化するような技術の開発や普及が進んでいる。その1つに、CI(Continuous Integration、継続的インテグレーション)やCD(Continuous Delivery、継続的デリバリー)と呼ばれるものがある。CIはソフトウェアのビルドやテストを

    GitHubの新機能「GitHub Actions」で試すCI/CD | さくらのナレッジ
    hylom
    hylom 2020/02/05
    書きました。公開リポジトリで使う場合制約は少なく、かなり使い勝手は良さそうです。
  • 静的サイトジェネレータ「Hugo」と技術文書公開向けテーマ「Docsy」でOSSサイトを作る | さくらのナレッジ

    最近ではWebサイトを構築する際にWordPressなどのCMS(コンテンツ管理システム)を利用することが多いが、今日でも静的なHTMLファイルを使ったサイト構築には多くのメリットがある。今回は、こうしたHTMLファイルベースのサイト構築を支援するHTMLファイル生成ツール「Hugo」を紹介する。 静的ファイルでサイトを作るための支援ツール「Hugo」 コンテンツの作成や編集の容易さから、昨今ではWebサイトを構築する際にCMSを利用する例が多い。ただ、CMSを使用するにはCMS自体のインストールや設定、データベースの準備などが必要であるため、更新頻度の低いサイトやページ数の少ないサイトでは静的なHTMLファイルを使って構築したほうがコストが低くなる場合がある。 とはいえ、HTMLファイルをいちいち手動で作成するのは楽ではない。そのため、HTMLファイルを半自動生成するようなツールが数多く

    静的サイトジェネレータ「Hugo」と技術文書公開向けテーマ「Docsy」でOSSサイトを作る | さくらのナレッジ
    hylom
    hylom 2019/10/10
    描きました。OSS界隈ではそれなりに使われているのでは。
  • Gitリポジトリ上のソースコードをWebブラウザから検索・分析できるコード検索ツール「Sourcegraph」 | さくらのナレッジ

    大規模なソースコードを分析・閲覧する際に有用なのが、ソースコード専用の検索ツールだ。こういったツールは複数あるが、今回はGitリポジトリやGitHubなどのホスティングサービスとの連係機能を特徴とするオープンソースの検索ツール「Sourcegraph」を紹介する。 Webブラウザ上からGUIで操作できるソースコード検索ツール システム開発の現場において、クラスや関数がどこでどのように定義されているのかを調べたり、メッセージなどで表示される特定の文字列がどこで使われているかを調べたりするといった作業は割と頻繁に発生する。こういった作業はgrepなどの汎用検索ツールでも可能ではあるが、その場合たとえばソースコード以外のファイルに含まれる文字列も検索に引っかかるほか、その出力もやや見にくい。そこで活用したいのが、専用のソースコード検索ツールだ。 ソースコード検索ツールでは、対象のソースコードがど

    Gitリポジトリ上のソースコードをWebブラウザから検索・分析できるコード検索ツール「Sourcegraph」 | さくらのナレッジ
    hylom
    hylom 2019/07/19
    書きました(先週公開なので今更ですが)。IDEでも同じようなことできるよね……と思っていましたが、WebブラウザでIDEとは別のウィンドウで検索・表示できるのはなかなか便利なことに気付きました。
  • 面倒なJavaScriptコードのとりまとめがこれ1つで可能に、「webpack」入門 | さくらのナレッジ

    最近JavaScript関連の開発で採用が進んでいる「webpack」は、JavaScriptファイルの変換や結合といった操作をコマンド1つで実行できるツールだ。記事では、webpackとは何かという基的な概念から導入方法、実際の利用例などを紹介する。 モジュール管理機構の不足や未サポート機能の問題をツールで解決する「webpack」 今日のWeb開発においてJavaScriptの利用は避けることができないが、JavaScriptのソースコードをどのように管理・デプロイすべきかという問題に対しては、まだ決定的な解決策が生まれていない状況が続いている。その根的な原因の1つには、最近までJavaScriptにおいて普遍的に利用できるモジュール管理システムが存在しなかったことがある。 一般的なプログラミング言語では、大規模なプログラムを実装する際に作業性やメンテナンス性を高めるためプログラ

    面倒なJavaScriptコードのとりまとめがこれ1つで可能に、「webpack」入門 | さくらのナレッジ
    hylom
    hylom 2019/06/19
    インフラネタじゃなくてもOKということで書きました。webpackは難解とか言われますが、v4系は設定も楽になっていて分かりやすくなっていると思います。ただCSSやHTMLを扱おうとするとちょっとまだ分かりにくいような気が。
  • GoogleによるWebサイトパフォーマンス測定ツール「Lighthouse」入門 | さくらのナレッジ

    昨今ではWebサイトやWebアプリケーションに対し「適切にページが表示されるか」だけでなく、ロード時間の早さやアクセシビリティといった使い勝手の良さも求められるようになっている。これらは利用者の満足度向上だけでなくGoogle検索の表示結果にも影響するため、できる限り対応しておきたい。そこで今回は、Googleが提供するWebサイト/Webアプリのパフォーマンスやアクセシビリティ診断ツール「Lighthouse」を紹介する。 さまざまな指標による診断を手軽に実行可能できるツール「Lighthouse」 WebサイトやWebアプリケーションを構築する際には、かつてはどんなWebブラウザでも同じように表示され同じように動作することや、検索エンジンによって高く評価されるようなマークアップを行うことが求められていた。これらは現在でももちろん重要ではあるのだが、昨今ではそれに加えて使い勝手の良さも求

    GoogleによるWebサイトパフォーマンス測定ツール「Lighthouse」入門 | さくらのナレッジ
    hylom
    hylom 2019/05/27
  • Kubernetesのユーザー管理と認証・権限確認機構を理解しよう | さくらのナレッジ

    Kubernetesはさまざまな環境で利用され、かつ不特定多数がクラスタにアクセスできることを前提に構築されており、そのため非常に柔軟なユーザー認証機構やユーザーの権限を管理する機能が組み込まれている。記事ではこれらの認証や権限確認機構がどのように働くのかや、その仕組みについて解説する。 Kubernetesにおける認証の必要性 Kubernetesはさまざまな企業・組織が参加するオープンな組織「Cloud Native Computing Foundation(CNCF)」によって開発が進められているが、元々はGoogleによってその開発がスタートしたプロジェクトであり、同社の持つコンテナクラスタ管理技術を元にしている。そのため、Kubernetesは当初から不特定多数がアクセスできるパブリッククラウドでの利用が想定されており、そういった環境でもセキュアかつ柔軟に利用できるよう設計され

    Kubernetesのユーザー管理と認証・権限確認機構を理解しよう | さくらのナレッジ
    hylom
    hylom 2019/04/04
    書きました、今話題のオンプレでのKubernetes運用に役立つ話です
  • 2019年版・Kubernetesクラスタ構築入門 | さくらのナレッジ

    Kubernetesが標準で提供するリソースの一覧はAPIドキュメントで確認できる。また、独自のリソースを定義して利用することもできる。 Kubernetesでは、「マニフェスト(manifest)」と呼ばれる形式で各種リソースを定義する。マニフェストは木(ツリー)構造で表現できるデータであり、たとえばコマンドラインツール「kubectl」ではYAML形式で記述されたマニフェストを元にリソースの作成や削除、変更といった操作を行える。 kubectlの使い方についてはドキュメントを参照して欲しいが、たとえば、DockerHubで公開されている「httpd」コンテナイメージを利用してApache HTTP Serverを実行させるには、まず次のようなマニフェストファイルを用意する。 apiVersion: v1 kind: Pod metadata: name: httpd labels: a

    2019年版・Kubernetesクラスタ構築入門 | さくらのナレッジ
    hylom
    hylom 2019/03/11
    kubeadmでのクラスタ構築方法を解説しました。公式ツールですしこれで簡単にクラスタが構築できる、と思いきやそれなりにハマりポイントが存在するので、実運用はなかなか大変だとも思いました。
  • Istioが備えるテレメトリ/ポリシー管理機能を使った統計情報取得と接続管理 | さくらのナレッジ

    なお、利用できる属性値はAttribute Vocabularyドキュメントを、演算子についてはExpression Languageドキュメントを参照して欲しい。 今回は次のように、送信元および送信先、URLのパス部分、リクエストメソッド、トラフィックの方向という5つの情報をラベルとして付与するような設定でリソースを作成した。 apiVersion: config.istio.io/v1alpha2 kind: metric metadata: name: my-metric spec: value: "1" dimensions: source: source.labels["app"] | "unknown" destination: destination.labels["app"] | "unknown" path: request.path | "unknown" method

    Istioが備えるテレメトリ/ポリシー管理機能を使った統計情報取得と接続管理 | さくらのナレッジ
    hylom
    hylom 2019/02/12
    書きました。Istioの話2回目です。機能的にはとても面白いのですが、ここまで使いこなすことが求められる現場は少ないのかもしれないとは思いました。
  • マイクロサービスアーキテクチャ向けにサービスメッシュを提供する「Istio」の概要と環境構築、トラフィックルーティング設定 | さくらのナレッジ

    Istio環境の構築 さて、続いては実際にIstioを利用できるクラスタ環境を構築していく流れを紹介していこう。 前提条件 Istioの利用には、まずコンテナエンジンとしてDockerが必要となる。また、対応するコンテナクラスタはKubernetes(バージョン1.9以降)もしくはNomad+サービスディスカバリツールConsul環境となっている。ただし、現時点ではNomadベースのクラスタでの利用は未テストというステータスのようだ。そのため今回は独自に構築したKubernetesベースのクラスタ上でIstioを利用する流れを説明する。 なお、IstioKubernetesのServiceやPod、Deploymentといった機能と連携して動作するようになっている。そのため、利用にはKubernetesの知識が前提となる。記事もKubernetesに関する知識がないと理解が難しい点があ

    マイクロサービスアーキテクチャ向けにサービスメッシュを提供する「Istio」の概要と環境構築、トラフィックルーティング設定 | さくらのナレッジ
    hylom
    hylom 2019/01/23
    書きました。メモリが少なめの環境でクラスタを作ろうとしたらろくなエラーも出力せずにbootstrappingに失敗するのが非常に辛かったです……。
  • マイクロサービスアーキテクチャとそれを支える技術 | さくらのナレッジ

    最近では「マイクロサービス」と呼ばれる、機能毎に細かくサービスを分割して開発や運用を行うアーキテクチャの採用例が増えている。記事ではこのマイクロサービスアーキテクチャや、それに使われる技術について紹介する。 マイクロサービスとは 近年、ITシステムの開発・運用において「Microservice(マイクロサービス)」というアーキテクチャを採用する例が増えている。マイクロサービスアーキテクチャは、簡単に言えばサービスを構成する各要素を「マイクロサービス」と呼ばれる独立した小さなコンポーネントとして実装するという手法で、2011年ごろから提唱されているものだ。 マイクロサービスについては、2014年に公開された「Microservices」という文書が有名だ(有志による日語訳)。また、さくらのナレッジでも2015年に紹介されている。マイクロサービスの詳しい思想についてはこれら記事を参照してほ

    マイクロサービスアーキテクチャとそれを支える技術 | さくらのナレッジ
    hylom
    hylom 2018/12/10
    書きました、最近技術系の実践記事ばかりでちょっと重かったので軽く概念解説的記事でも書くか……と思って書いたらブックマーク数が200近くになっていて驚いています
  • 人工知能フレームワーク入門(第2回):TensorFlowの基本的な使い方 | さくらのナレッジ

    人工知能関連のソフトウェアを実装するに当たって広く使われているのがGoogleが提供するオープンソースの数値演算・人工知能関連ライブラリである「TensorFlow」だ。今回はこのTensorFlowのアーキテクチャや、基的な行列演算、CSVファイルからのデータ読み込み、機械学習プログラムの実装を行う流れを紹介する。 TensorFlowのアーキテクチャ 前回記事で紹介したとおり、TensorFlowは人工知能や強化学習を利用するシステムで使われるさまざまな部品を提供するライブラリだ。提供される機能としてはさまざまな行列・ベクトル演算、非線形演算関数、データファイルの読み書き、最適化問題を解くためのソルバー、ニューラルネットワークで使われる各種演算処理など多岐にわたる。 TensorFlowが一般的な数値演算ライブラリと異なるのは、計算グラフ(Computation Graph)というも

    人工知能フレームワーク入門(第2回):TensorFlowの基本的な使い方 | さくらのナレッジ
    hylom
    hylom 2018/01/25
    書きました。TensorFlow入門として定番のMNISTをあえてスルーした記事となっております。
  • 人工知能フレームワーク入門(第1回):人工知能とTensorFlow | さくらのナレッジ

    昨今では「人工知能AI)」やそれに関連する技術が注目されている。そこで連載では人工知能に関する技術の概要や、それを利用するためのソフトウェアについて紹介する。 人工知能とは何か ここ数年、「人工知能」や「AI」という言葉がさまざまな分野で使われるようになった。人工知能関連の技術はここ数年で急速に発展しており、たとえば将棋や囲碁といった分野では、人工知能技術を使ったソフトウェアが人間のプロ棋士に勝利するレベルとなっている。また、iPhoneに搭載されて話題となった「Siri」は人間の言葉を理解してそれに対し適切なアクションを実行することができるが、これにも人工知能技術が使われている。そのほか、文字や画像の認識、文章の分析など、人工知能関連技術を使った多くの製品がすでに市場に投入されている。 しかし人工知能と言われても、それが実際にはどんなものなのか想像できる人は少ないだろう。そこで記事

    人工知能フレームワーク入門(第1回):人工知能とTensorFlow | さくらのナレッジ
    hylom
    hylom 2018/01/25
    書きました。強化学習や数理最適化、人工知能、画像処理については大学〜大学院時代にずっとやっていたのですが今更こういう記事を書くことになろうとはまったく思ってませんでしたね……。
  • AMP HTMLの拡張コンポーネントとAMP対応ページのデバッグ | さくらのナレッジ

    AMP対応ページではJavaScriptの実行が制限されている。そのため、サイト独自の動的な機能などはそのままでは実装できない。今回はこれに対応するための「拡張コンポーネント」と、AMP対応ページのデバッグについて解説する。 AMP HTMLの拡張コンポーネントを利用する 前編記事で説明したとおり、AMPではページ内に画像を埋め込む際にimgタグではなく、「amp-img」タグを利用する。また、「amp-pixel」や「amp-video」といったタグも用意されている(表1)。これら3つのタグは、「Built-in Components」(ビルトインコンポーネント)と呼ばれている。 表1 AMP HTMLのBuilt-in Components タグ名 説明

    AMP HTMLの拡張コンポーネントとAMP対応ページのデバッグ | さくらのナレッジ
    hylom
    hylom 2017/02/27
    書きました。AMPはモバイル/小さい画面の端末専用というわけでは無くレスポンシブルにも使えるので、拡張コンポーネントは非モバイル向け環境でも利用できるUI部品としても有用では無いかと思いました
  • 7443

    Googleが2015年に発表した「Accelerated Mobile Pages(AMP)」は、モバイル向けに高速に表示できるWebページを記述するための仕様だ。GoogleはAMPを推進しており、すでにモバイル版Google検索では検索結果にAMP対応ラベルが表示されるといった対応が行われている。今回はこのAMPの概要と、AMP対応の核となる「AMP HTML」について解説する。 動的な表示のコントロールとキャッシュによる高速化を行うAMP 昨今ではスマートフォンおよび高速な通信回線の普及によって、モバイル環境でもリッチなWebサイトを閲覧できるようになった。しかし、常に高速な通信回線が利用できるわけではなく、またすべての端末が動的な表示を行うのに十分なマシンパワーを持っているわけではない。そこでGoogleがスタートさせたのが「AMP(Accelerated Mobile Page

    7443
    hylom
    hylom 2017/02/27
    書きました。まずは基本編。
  • Webサーバー向けのベンチマークツールを使ってみよう(後編)――Apache Jmeterとwbench | さくらのナレッジ

    今回はWebサーバーに対するある特定のパターンでのアクセスによって発生する負荷を調べたい、といった場合に有用な「Apache Jmeter」と、クライアントでのJavaScriptの実行時間までも含めたWebページのロード時間を測定できる「wbench」を紹介する。 グラフィカルにテストシーケンスを作成できる「Apache Jmeter」 記事前編ではWebサーバーの負荷テストを行える「Apache Bench」や「Siege」といったツールを紹介した。Apache Benchは手軽さが、またSiegeでは複数のURLを対象にテストを実行できる点が特徴だが、これ以外にもWebサーバーのテストに活用できるツールはいくつか存在する。今回紹介する「Apache Jmeter」もその1つだ(図1)。 図1 Apache Jmeterのメインウィンドウ Apache Jmeter(以下、Jmeter

    Webサーバー向けのベンチマークツールを使ってみよう(後編)――Apache Jmeterとwbench | さくらのナレッジ
    hylom
    hylom 2017/01/24
    書きました。Jmeterは手軽に使うには大げさかな、という感じなので、Webアプリのテストと組み合わせるのがよさそう。wbenchはちょっと毛色が違いますが、簡単にJavaScriptコードの実行時間を集計できるのが面白いです。
  • Webサーバー向けのベンチマークツールを使ってみよう(前編)――Apache BenchとSiege | さくらのナレッジ

    WebサーバーやWebサービスの公開前には、そのサーバーがどの程度のアクセスにまで耐えられるかを事前に調査しておくことが好ましい。記事では、こういった調査の際によく使われる「Apache Bench」および「Siege」というツールの使い方を紹介する。 サービスの公開前に行っておくべき負荷テスト 昨今では低価格サーバーでも高性能化が進んでおり、静的なページを表示するだけのWebサーバーや比較的負荷の少ない処理を行うようなWebアプリケーションでは、1台のサーバーのみでそれなりの規模のアクセスに耐えられるようになっている。とはいえ、CPUの性能やメモリ容量、ストレージの種類などによってアプリケーションのピーク性能は変動するため、単純にハードウェアの性能や使用するソフトウェアといった情報だけでどの程度までのアクセスを捌けるのかを判断することは難しい。実際、負荷をかけてみたら「想定していたレベ

    Webサーバー向けのベンチマークツールを使ってみよう(前編)――Apache BenchとSiege | さくらのナレッジ
    hylom
    hylom 2017/01/24
    書きました。まずは定番辺り。Siegeはスクリプトなどで自動化して定期的に実行するような用途で使いやすそう。
  • Docker 1.12の新機能、ヘルスチェック機能を使ってみる | さくらのナレッジ

    Docker 1.12では新たにコンテナのヘルスチェック機能が実装されており、コンテナやコンテナ内のサービスが正しく動作しているかをDockerだけで監視することができる。現時点では用途が限られているものの、同じくDocker 1.12で導入されたSwarmモードではこれを使ってサービスの再起動が可能だ。記事ではこの監視機能について紹介する。 Docker 1.12に実装されたヘルスチェック機能概要 Docker 1.12で実装されたヘルスチェック機能は、一定間隔で指定されたコマンドを実行し、その終了コードが1だった場合が一定回数継続したらコンテナに問題が発生したと判断するものだ(図1)。 図1 Dockerのヘルスチェック機能概要 ヘルスチェック機能を利用するよう設定したコンテナでは健康状態(health)というステータスが設定され、問題が発生したコンテナは「unhealthy」、問題

    Docker 1.12の新機能、ヘルスチェック機能を使ってみる | さくらのナレッジ
    hylom
    hylom 2016/12/26
    書きました。Swarmモード以外では現状では使いにくい感じですが、Docker Eventと組み合わせれば便利なものが作れるかもしれません。
  • Dockerコンテナのロギング機能を使ってみる | さくらのナレッジ

    Dockerではコンテナ内で実行されたプロセスの出力をログとして記録しておく機能が用意されている。このログ出力機構では、さまざまなログ記録システムにログを転送することが可能であり、複数の異なるホストで稼動しているコンテナのログを1つのマシンに集約する、といったこともできる。今回はこのログ機能について紹介する。 DockerLogging Driver機構 Dockerコンテナでは、コンテナ作成後にコンテナ内のファイルシステムに書き込まれたデータはコンテナの削除時に一緒に破棄されてしまう。そのため、各種ログやエラーメッセージ出力などの保存しておきたい情報はコンテナ外に出力して保存しておく必要がある。Dockerではこれを支援する機能の1つとして、ログを外部のログ記録ソフトウェアに転送する機構が用意されている。これを利用することで、多数のコンテナが稼動するような環境や、複数のマシンを組み合わ

    Dockerコンテナのロギング機能を使ってみる | さくらのナレッジ
    hylom
    hylom 2016/12/26
  • Googleが開発する最新ビルドツール「Bazel」を使ってみよう | さくらのナレッジ

    Bazelの特徴2:ビルドによってディレクトリを汚染しない Bazelでは、ソースコードやテストデータなどが格納されているディレクトリとは別のディレクトリでビルドやテストなどを行う仕組みになっている。makeコマンドでは意図的に設定や操作を行わない限りソースコードと生成物が同じディレクトリに混在する事態になることが多いが、Bazelではこういった問題が発生しない。 また、ビルドやテストはデフォルトではサンドボックス化された環境で行われるため、ビルドやテストがそれを実行しているシステムに影響を及ぼす可能性が最小限に抑えられている。 Bazelの特徴3:並列ビルド 大規模なソフトウェアではビルド対象が増えるため、ビルドにかかる時間も増える傾向がある。Bazelでは生成物どうしの依存性を自動的に把握し、可能な限り並列でビルドを実行する仕組みになっている。これにより、ビルド時間の短縮が期待できる。

    Googleが開発する最新ビルドツール「Bazel」を使ってみよう | さくらのナレッジ
    hylom
    hylom 2016/12/08
    書きました。
  • Wiresharkを使った通信監視(後編)――コマンドラインベースでのパケットキャプチャ | さくらのナレッジ

    フィルタ関係では「-f」オプションと「-Y」オプションの2つが用意されているが、前者はWiresharkのキャプチャフィルタに、後者は表示フィルタに相当するものだ。表示フィルタで表示対象外に設定したパケットについても、キャプチャフィルタでフィルタリングされていなければファイルには保存される。また、tsharkの実行には通常はroot権限が必要だ。 tsharkでキャプチャを行うには、まず-Dオプション付きでtsharkを実行し、利用できるネットワークインターフェイスを確認する。 # tshark -D 1. eth0 2. docker0 3. veth9803aed 4. eth1 5. veth6f5ff7a 6. vethd6ff2e7 7. vethebacd45 8. vethc81a304 9. veth1977258 10. any 11. lo (Loopback) 12.

    Wiresharkを使った通信監視(後編)――コマンドラインベースでのパケットキャプチャ | さくらのナレッジ
    hylom
    hylom 2016/11/17
    書きました。こっちはコマンドライン版Wiresharkとかtcpdumpの話。コマンドライン版Wiresharkはリアルタイム解析用途ではtcpdumpよりも便利ですよ