JFrog Japan Blog

DevOpsを加速する、JFrog日本法人メンバーによるブログです。

JFrog ArtifactoryやXrayといった自社ツールはもちろん、CI/CDやコンテナ技術(DockerやKubernetes)などDevOpsの一般的な内容も扱います。
その他、日本でのDevOps事例紹介やお楽しみコンテンツも掲載予定です。 JFrogならではの面白くて役に立つブログを目指しますので、お楽しみに!

猿でもわかるサーバーレス

JFrog DevOps Acceleration Engineer 三宅です。

先週、本年最後の JFrog ウェビナーで「猿でもわかるサーバーレス」と題してサーバーレス技術の基礎的な内容についてお伝えしました(下記アジェンダ)。

  • デプロイメント
  • サーバーレスとは?
  • サーバーレス・アーキテクチャー
  • サーバーレスのユースケース
  • サーバーレスのメリット
  • サーバーレスの制約

サーバーレスは「ソフトウェアをデプロイする」技術の一つですが、このデプロイメント一般の話を最初にお話しました。ここでは特に「プロセス」と「環境」の両面からデプロイ技術が進化してきたというお話をしました。

次に本題の「サーバーレスとは?」についてご紹介し、登場人物(ペルソナ)によって「サーバーレス」の意味合いが異なるというお話をしました。

「サーバーレス・アーキテクチャー」では旧来の3階層アプリケーションと比較してサーバーレスのアーキテクチャーがどのように変わったをお伝えしました。またここでは一般的に「サーバーレス = FaaS (Functions-as-as-Service)」という文脈で用いられていることが多い中、正式には Faas と BaaS (Backend-as-a-Service) を組み合わせたものが「サーバーレス」になるというお話をしました。

後半はサーバーレスのユースケース、メリット・制約についてご紹介しました。特に制約に関しては、そもそもサーバーレスに固有の制約と現在の実装による制約(将来改善が期待されるもの)に分けていくつかご紹介しました。

ウェビナーの内容(録画)とスライドは下記になります。当日参加できなかった方や詳細を確認されたい方は適宜ご利用ください。

www.youtube.com

speakerdeck.com

Java 開発者のための次世代 DevOps: BinOps

JFrog DevOps Acceleration Engineer 三宅です。

先日(といってもだいぶ経ちますが)JJUG CCC 2020 Fall (#jjug_ccc) にて「開発者がバイナリを中心とした開発フローを意識すると何が嬉しいのか?」についてご紹介してきました。ここではその内容を要約してご紹介したいと思います。

ソースコードと共にインフラコードも全て Git で管理する GitOps が脚光を浴びはじめています。この GitOps という言葉は皆さんも馴染みがあるのではないでしょうか?

運用 (Ops) の役割を開発 (Dev) に寄せていくというのは DevOps の成功に欠かせない要素です。GitOps はそのような背景で誕生し "Git as the source of truth" が根本の考え方になっています。一方、アプリケーションのライフサイクルや DevOps の真の実現を考えた際には、本当にソースコード「だけ」を管理すれば最適なソリューションとなるのでしょうか?

本セッションの内容は "BinOps" と呼ばれるバイナリやアーティファクトに焦点を当てた DevOps の実現方法 "Binary as the source of trush" の新しい考え方を特に Java 開発者の立場から理解してもらえるように作成しました。

私自身も開発の経験が長く、開発者にとってソースコードが舞台の中心であることはよく分かります。そのため実は JFrog にて本格的にバイナリを中心とした DevOps に触れる前は、ビルドした後のパッケージやアーティファクトの管理はあくまで副次的なもの、という印象がありました。

このような経験も含めて、一度自分のまとめとして「バイナリ管理」について整理したいと思っていました。今回の発表では出来るだけ噛み砕いてバイナリ管理のメリットをまとめることができたと思っています。詳細は下記発表スライドにてご確認ください。またご質問やご意見などもお待ちしております。

speakerdeck.com

カエルと実践するコンテナ

JFrog DevOps Acceleration Engineer 三宅です。

今回は「コンテナ」シリーズ全 3 回の最終回として、コンテナを中心とした開発フローやツールの実践についてご紹介したいと思います。

第 1 回、第 2 回は特定の商用製品やツールに触れずに、それぞれ「コンテナ」「コンテナ・オーケストレーション」の概要についてご紹介しました。

blog.jfrog.co.jp

blog.jfrog.co.jp

今回はコンテナベースのソフトウェアを開発・運用する上で実際に留意すべき点、必要になるツール群などのご紹介をしたいと思います。

そもそも「ソフトウェア・デプロイメント」とは何でしょうか? 定義としては「ソフトウェアを使用可能にするあらゆる活動」ですが、具体的には「プロセス」と「アーキテクチャー」から成り立ちます。「コンテナ」はこのいくつか進化してきたデプロイメントの「アーキテクチャー」に関連する最新の技術という捉え方ができます。

マイクロサービスのデプロイメントにはいくつかパターンがあり、コンテナを利用するものは "Container as a service" や "Service instance per container" などと呼ばれることがあります。

このアーキテクチャーを実現するために要となるのが「コンテナ・レジストリ」と呼ばれるツールです。Docker Hub やクラウドベンダーをはじめとする色々なコンテナ・レジストリが世の中に存在しています。

今回は「クレジットカードなし」でずっと(一年間などの制限なく)無料で使い続けることができる JFrog Artifactory の SaaS サービス やオンプレミス用のフリーのツール JFrog Container Registry についてご紹介致します。その特徴やコンテナ管理に止まらない「バイナリ全体を管理する」という新しい概念に触れていただければ幸いです。

以上、詳細は下記ウェビナーの内容にまとめてありますのでぜひご覧ください。

www.youtube.com

speakerdeck.com

何かご質問などあれば、どしどしお寄せください。

それでは、また次回お会いできることを楽しみにしております!

猿でもわかるコンテナ・オーケストレーション

JFrog DevOps Acceleration Engineer 三宅です。

今回は Kubernetes をはじめとするいわゆる「コンテナ・オーケストレーション」の話をしたいと思います。「コンテナ」シリーズ全 3 回のうちの第 2 回目となります。

第 1 回目は「コンテナ」の概要や歴史、それを支える OS の技術などをご紹介しました。

blog.jfrog.co.jp

コンテナは「リソースが分離されたプロセス」であり、OS レベルの仮想化にカテゴライズされるテクノロジーであることをご紹介しました。その「プロセスの隔離」を実現するための技術的な詳細についても触れました。

コンテナを使えばリソースを効率的に管理できるので、アプリケーションのデプロイに用いられる機会も増えてきました。ただアプリケーションが複雑になってくるとそれを構成するいわゆる「マイクロサービス」の構造も複雑になってくるため、これらがデプロイされる単位であるコンテナの数も膨大な数になってきます。この複雑で大規模になったコンテナを管理するためのツールが「コンテナ・オーケストレーション」です。

コンテナ技術と垂直・水平方向のスケールの歴史、また API とアーキテクチャーを中心に Kubernetes の基礎的内容を下記ウェビナーにてご紹介しましたので、ご興味あれば参照いただければと思います。

www.youtube.com

speakerdeck.com

何かご質問などあれば、どしどしお寄せください。

それでは、また次回お会いできることを楽しみにしております!

猿でもわかるコンテナ

JFrog DevOps Acceleration Engineer 三宅です。

今回から全 3 回に渡り「コンテナ」について紹介したいと思います。

まず第 1 回目は「コンテナ」の概要や歴史、それを支える OS の技術などを振り返りながらご紹介します。

  • コンテナとは?
  • アプリケーションの分離
  • コンテナを支える技術と歴史
  • イメージとは?
  • まとめ

一言で「コンテナ」と言っても、色々な見方があると思います。まずは多くの方がそうであるように「コンテナを利用する」側の見方があります。例えば開発者に取っては運用者にアプリケーションをハンドオーバーするときの「便利な箱」にもなるでしょうし、3rd パーティーのコンテナを利用するユーザーからすると Dockerfile が簡単なインストール手順書にもなるのではないでしょうか。

一方、「コンテナを実装する」側の見方もあります。なぜコンテナの中ではファイルシステムやプロセスやネットワークが制限されているのでしょうか? コンテナが「分離するもの」とはなんでしょうか? そのカラクリはどうなっているのでしょうか?

実はコンテナの歴史は長く、筆者が以前在籍していたサン・マイクロシステムズの商用 UNIX OS の Solaris に搭載された Solaris Container がリリースされたのが 2004 年、今から 15 年以上も前のことになります。そのコンテナの歴史も気になるところです。

現在のコンテナ技術は Linux をベースにしたものが中心でしょう。この Linux 上でコンテナ技術を実装するには Linux Namespaces や Linux Control Groups (cgroups) の理解が大切です。またイメージの技術は Union File System を土台にしています。

これらの詳細な内容を先日、弊社ウェビナーでご紹介致しました。当日は 200 名近くの参加があったようです。ご参加いただいた皆様どうもありがとうございました。また当日の録画とスライドは下記にありますので、振り返ってみたい方、見逃した方など適宜参照いただければ幸いです。

www.youtube.com

speakerdeck.com

何かご質問などあれば、どしどしお寄せください。

それでは、また次回お会いできることを楽しみにしております!