Movatterモバイル変換


[0]ホーム

URL:


Daisuke Hiraoka, profile picture
Uploaded byDaisuke Hiraoka
PPTX, PDF292 views

Appsody でnodejsのアプリを立ち上げよう!

Appsodyを使ってnodejsのアプリケーションを立ち上げます。従来の環境にミドルウェアをインストールしてnodejsのアプリを立ち上げる場合とどんな違いがあるのでしょうか?

Embed presentation

Download to read offline
でnodejsのアプリを立ち上げよう!
Daisuke Hiraoka(平岡 大祐)• IBM Champion for Cloud 2019-2020• 2013年からオンプレミスシステムからIBM Cloudへの移行を支援• 2016年からIBM CloudでOpenShift/Kubernetes/Dockerの運用を開始Twitter: @HiraokaDaisukeLinkedin: @Daisuke Hiraoka
今回の内容Node.jsのデモアプリを以下の2つのパターンで立ち上げて違いを確認してみよう1. Node.jsをローカル環境にインストールしてデモアプリを立ち上げる。2. appsodyでデモアプリを立ち上げる
今回使用するデモノードアプリ韓国で実際に使われているマスクの在庫アプリをデプロイします。
事前準備事前にデモアプリをgithubからCloneします。$ git clone https://github.com/daihiraoka/kf94maskmap$ cd kf94maskmap/$ lsLICENSE README.md api app.js images manifest.yml package-lock.jsonpackage.json static
1.Nodejsをローカル環境にインストールして立ち上げる。node.jsのインストール$ curl -sL https://rpm.nodesource.com/setup_13.x | sudo bash -$ sudo yum install nodejs$ npm install <- ノードの依存関係をインストールするために実行added 58 packages from 49 contributors and audited 166 packages in 1.785sfound 0 vulnerabilities$ npm audit fix <-監査の問題を修正するために実行しますup to date in 0.457sfixed 0 of 0 vulnerabilities in 166 scanned packagesローカル環境で実行する$ npm start> kf94maskmap@0.1.1 start /home/dai/ws/kf94maskmap> node app.jsTo view your app, open this link in your browser: http://localhost:3000
ブラウザでhttp://localhost:3000にアクセスしてアプリの起動を確認
2. Appsodyでデモアプリを立ち上げる今回の範囲
事前準備(Appsodyのインストール)Appsodyのドキュメントのインストール手順を利用してセットアップInstalling Appsodyhttps://appsody.dev/docs/installing/installing-appsody
Appsodyのインストール評価した環境 CentOS7前提: Dockerがインストールされていること1. dockerグループにAppsodyを実行するユーザーを追加sudo usermod -aG docker <Linuxユーザー名>2. Appsodyのrpmをダウンロードcurl –LO https://github.com/appsody/appsody/releases/download/0.5.9/appsody-0.5.9-1.x86_64.rpm3. Appsodyのrpmをインストールsudo yum install appsody-0.5.9-1.x86_64.rpmInstalling on RHELhttps://appsody.dev/docs/installing/rhel/
Appsody はじめの1歩% appsodyThe Appsody command-line tool (CLI) enables the rapid development of cloud native applications.Complete documentation is available at https://appsody.devUsage:appsody [command]Available Commands:build Build a local container image of your Appsody project.completion Generate tab completionsdebug Debug your Appsody project.deploy Build and deploy your Appsody project to Kubernetes.extract Extract your Appsody project to a local directory.help Help about any commandinit Initialize an Appsody project.list List the available Appsody stacks.operator Install or uninstall the Appsody operator from your Kubernetes cluster.ps List the Appsody containers running in the local Docker environment.repo Manage your Appsody repositoriesrun Run your Appsody project in a containerized development environment.stack Tools to help create and test Appsody stacksstop Stop the local, running Appsody container.test Test your project in the local Appsody environment.version Show the version of the Appsody CLI.Flags:--config string The absolute path to the Appsody config file. Use this option when you want to specify your own, customized config file (default '$HOME/.appsody/.appsody.yaml')--dryrun Shows the commands that are called by this command, without running them.-h, --help help for appsody-v, --verbose Prints more detailed log output, to the console and to a file in $HOME/.appsody/logsappsodyコマンドを実行すると次のような出力が表示されます。
Appsodyリポジトリー、スタック、テンプレートappsody list コマンドを実行すると次のような出力が表示されます。$ appsody listREPO ID VERSION TEMPLATES DESCRIPTIONexperimental go-modules 0.1.0 *default Runtime for Go using Go 1.11+ modules for dependenciesexperimental java-spring-boot2-liberty 0.1.11 *default Spring Boot on Open Liberty & OpenJ9 usingMavenexperimental nodejs-functions 0.2.0 *simple Serverless runtime for Node.js functionsexperimental quarkus 0.2.3 *default Quarkus runtime for running Java applicationsexperimental rocket 0.1.0 *simple Rocket web framework for Rustexperimental rust 0.1.6 *simple Runtime for Rust applicationsexperimental vertx 0.1.4 *default Eclipse Vert.x runtime for running Java applications*incubator node-red 0.1.2 *simple Node-RED runtime for running flows*incubator nodejs 0.3.5 *simple Runtime for Node.js applications*incubator nodejs-express 0.4.6 scaffold, *simple Express web framework for Node.js*incubator nodejs-loopback 0.2.3 *scaffold LoopBack 4 API Framework for Node.js*incubator python-flask 0.2.2 *simple Flask web Framework for Python*incubator starter 0.1.2 *simple Runnable starter stack, copy to create a new stack*incubator swift 0.2.5 *simple Appsody runtime for Swift applicationsREPO列はリポジトリー、IDの列はスタック名、VERSIONの列はスタックのバージョン、TEMPLATEの列は使用可能なテンプレートのリストです。
Appsodyリポジトリー、スタック、テンプレートappsody init incubator/nodejs simpleappsody init Reposity名/Stack名 Template名を実行してアプリ作成用のスケルトンを作成*コードを生成するのでコマンドを実行するフォルダは空である必要がある*既存のソースコードを使用する場合は、Template名をnoneして実行するAppsody Repositoryincubatorjava-spring-boot2 stacksimpletemplatedefaulttemplatesimpletemplatenodejs stackAppsodyのRepository、Stack、 Templateの関係を図で表すと。。。
Appsodyリポジトリー、スタック、テンプレートリポジトリ、スタック、テンプレートの構成を少し深掘りしてみます。まずはリポジトリーの一覧を出力します。$ appsody repo listNAME URL*incubator https://github.com/appsody/stacks/releases/latest/download/incubator-index.yamlappsodyhub030 https://github.com/appsody/stacks/releases/download/nodejs-express-v0.3.0/incubator-index.yamlexperimental https://github.com/appsody/stacks/releases/latest/download/experimental-index.yaml
incubatorリポジトリのincubator-index.yamlの構成apiVersion: v2stacks:- id: nodejsname: Node.jsversion: 0.3.5description: Runtime for Node.js applicationslicense: Apache-2.0language: nodejsmaintainers:- name: Sam Robertsemail: vieuxtech@gmail.comgithub-id: sam-githubdefault-template: simplesrc: https://github.com/appsody/stacks/releases/download/nodejs-v0.3.5/incubator.nodejs.v0.3.5.source.tar.gztemplates:- id: simpleurl: https://github.com/appsody/stacks/releases/download/nodejs-v0.3.5/incubator.nodejs.v0.3.5.templates.simple.tar.gzrequirements:docker-version: '>= 17.09.0'appsody-version: '>= 0.2.7'image: docker.io/appsody/nodejs:0.3.5- id: kituraname: Kituraversion: 0.2.6description: Runtime for Kitura applicationslicense: Apache-2.0language: swiftmaintainers:- name: Ian Partridgeemail: i.partridge@uk.ibm.comgithub-id: ianpartridge- name: David Jonesemail: djones6@uk.ibm.comgithub-id: djones6default-template: defaultsrc: https://github.com/appsody/stacks/releases/download/kitura-v0.2.6/incubator.kitura.v0.2.6.source.tar.gz
incubator.nodejs.v0.3.5.source.tar.gzの構成$ lsREADME.md stack.yaml templates$ ls -l ./templates/合計 0drwxrwxr-x. 4 dai dai 95 3月 13 01:15 imagedrwxrwxr-x. 3 dai dai 98 3月 13 01:15 simple$ ls -l ./templates/image/合計 16-rw-rw-r--. 1 dai dai 982 3月 13 01:15 Dockerfile-stack-rw-rw-r--. 1 dai dai 11356 3月 13 01:15 LICENSEdrwxrwxr-x. 2 dai dai 29 3月 28 00:42 configdrwxrwxr-x. 2 dai dai 65 3月 28 00:42 project$ ls -l ./templates/image/config/合計 4-rw-rw-r--. 1 dai dai 272 3月 13 01:15 app-deploy.yaml$ ls -l ./templates/image/project/合計 8-rw-rw-r--. 1 dai dai 879 3月 28 00:42 Dockerfile-rw-rw-r--. 1 dai dai 335 3月 13 01:15 package.json$ lsREADME.md stack.yaml templates$ cat stack.yamlname: Node.jsversion: 0.3.5description: Runtime for Node.js applicationslicense: Apache-2.0language: nodejsmaintainers:- name: Sam Robertsemail: vieuxtech@gmail.comgithub-id: sam-githubdefault-template: simplerequirements:docker-version: ">= 17.09.0"appsody-version: ">= 0.2.7"
incubator.nodejs.v0.3.5.templates.simple.tar.gzの構成$ ls -la合計 20drwxrwxr-x. 3 dai dai 126 3月 28 00:41 .drwxrwxr-x. 4 dai dai 164 3月 28 02:16 ..-rw-rw-r--. 1 dai dai 35 3月 13 01:16 .appsody-config.yaml-rw-rw-r--. 1 dai dai 1316 3月 13 01:15 .gitignoredrwxrwxr-x. 2 dai dai 43 3月 13 01:15 .vscode-rw-rw-r--. 1 dai dai 37 3月 13 01:15 app.js-rw-rw-r--. 1 dai dai 76 3月 13 01:15 package-lock.json-rw-rw-r--. 1 dai dai 358 3月 13 01:15 package.json
Appsodyで新しいプロジェクトを作成する$ appsody init incubator/nodejs noneNo stack requirements set. Skipping...Running appsody init...Downloading nodejs-express template project from https://github.com/appsody/stacks/releases/download/nodejs-express-v0.3.0/incubator.nodejs-express.v0.3.0.templates.simple.tar.gzDownload complete. Do not unzip the template project. Only extracting .appsody-config.yaml file from/home/dai/ws/kf94maskmap/nodejs-express.tar.gzSetting up the development environmentYour Appsody project name has been set to kf94maskmapPulling docker image docker.io/appsody/nodejs-express:0.3Running command: docker pull docker.io/appsody/nodejs-express:0.30.3: Pulling from appsody/nodejs-expressDigest: sha256:3558c07499dbb9df5bbccf417e57b82019eeb2d2995d7edea314903372f53568Status: Image is up to date for appsody/nodejs-express:0.3docker.io/appsody/nodejs-express:0.3Running command: docker run --rm --entrypoint /bin/bash docker.io/appsody/nodejs-express:0.3 -c "find /project -type f-name .appsody-init.sh"Successfully initialized Appsody project with the appsodyhub030/nodejs-express stack and no template.appsody initコマンドを使って新しいプロジェクトを作成します。例えば、incubatorリポジトリのnodejsスタックを使って、ソースコードは既にあるソースコード(kf94maskmap)を使うので templateは使わないnoneを指定して実行します。
Appsodyを使ってデモアプリを立ち上げる$ appsody runRunning development environment...Pulling docker image docker.io/appsody/nodejs:0.3Running command: docker pull docker.io/appsody/nodejs:0.30.3: Pulling from appsody/nodejsDigest: sha256:c0bc3aef3a2d5a631acfebc8fc33e2dfc230c37a0783d5ae2b6d61f93af1fe39Status: Image is up to date for appsody/nodejs:0.3docker.io/appsody/nodejs:0.3Running command: docker run --rm -p 3000:3000 -p 9229:9229 --name kf94maskmap-dev -v /home/dai/ws/kf94maskmap/:/pro[Container] Running APPSODY_PREP command: npm installaudited 166 packages in 1.01s[Container] found 0 vulnerabilities[Container]Running command: npm start --node-options --require=appmetrics-dash/attach[Container][Container] > kf94maskmap@0.1.1 start /project/user-app[Container] > node app.js[Container][Container] [Fri Mar 27 14:59:36 2020] com.ibm.diagnostics.healthcenter.loader INFO: Node Application Metrics 5.1.1.202003121[Container] [Fri Mar 27 14:59:37 2020] com.ibm.diagnostics.healthcenter.mqtt INFO: Connecting to broker localhost:1883[Container] To view your app, open this link in your browser: http://localhost:3000appsody run コマンドを実行してデモアプリを起動
Appsodyを使ってデモアプリを立ち上げるブラウザでhttp://localhost:3000にアクセスしてアプリの起動を確認
Appsodyを使ってデモアプリを立ち上げる$ docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES0baf731a99a2 appsody/nodejs:0.3 "/.appsody/appsody-c…" 3 minutes ago Up 3 minutes 0.0.0.0:3000->3000/tcp, 0.0.0.0:9229->9229/tcpdocker psコマンドを実行するとDockerコンテナが起動していることが確認できる
デモ
まとめ・ Appsodyを使うとゼロから始めるのではなく、nodejs、java、springなど特定のユースケースに合わせて最適化されたスタックとテンプレートをベースにアプリケーションを作ることができます。・Appsodyはベースとなるスタックとテンプレートは分離されているため開発者はソースコードを書く、運用者・アーキテクトはスタックとテンプレートの管理を行うと、役割を分離されているのでDevOpsが推進しやすい思想になってます。・Appsodyはコンテナを使った開発に必要なスキル、例えばdocker コマンドなど抽象化しているので学習コストが低くなってます。今回説明していない appsody deployコマンドでローカル環境、Kubernetes、OpenShiftと複数の環境にデプロイすることができます。・Appsodyで作られたアプリケーションはコンテナ化されるので、従来の各環境にミドルウェアをインストールしていた時に比べると環境差異は少なくなるかほぼ無くなります。環境依存が大きいサービスのアプリケーションの利用に向いてます。・Appsody(Kabanero)は IBM が今、重要視している製品 IBM Cloud Pak for Applicationsのコンポーメントの1つのOSSのプロジェクトです。そのため、開発に勢いがあり、Appsodyに限らずTektonなどKabaneroを構成するコンポーネントはどんどん機能追加されています。

Recommended

PDF
Niigata.pm #1
PDF
はてなにおける継続的デプロイメントの現状と Docker の導入
PDF
Dockerと継続的インテグレーション
PDF
Docker Swarm入門
PDF
NDS#31
PDF
アプリ屋もDockerをドカドカ使おう ~ Docker入門
PDF
【dots. IT勉強会】開発環境のDocker化
PPTX
開発環境をVagrantからdockerに移行してみた
PPTX
Ansibleを使ってdockerコンテナをプロビジョニングする
PDF
はじめてのコンテナーDocker & Windows & Linux
PPTX
Docker & Kubernetes基礎
PDF
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014
PDF
ECS-CLI in Action
PDF
Drone.io のご紹介
PDF
Vagrant & Dockerによるイマドキの開発環境構築
PDF
2015-07-27 Docker Introduction 〜Dockerの基礎とユースケースに関する考察〜
PDF
Rancher command line interface
PDF
Re: 運用に自動化を求めるのは間違っているだろうか
PDF
静的サイトどこにする?
PDF
Circle ci and docker+serverspec
PDF
Dockerは2016年の秋現在どのような状況なのか~忙しい人の5分で分かるDocker~
PDF
cf-containers-broker を使ってローカル環境もサービスの恩恵をうける
PPTX
ネットワークエンジニアのための Puppet / Chef
 
PPTX
IBM Log Analysis with LogDNAを評価した話
PDF
BOSH-lite で 1VM Cloud Foundry
PDF
Dockerハンズオン
PDF
Apache Auroraの始めかた
PPTX
Java ScriptでつくるはじめてのiPhoneAndroidゲーム開発体験ハンズオン
PPTX
13016 n分で作るtype scriptでnodejs

More Related Content

PDF
Niigata.pm #1
PDF
はてなにおける継続的デプロイメントの現状と Docker の導入
PDF
Dockerと継続的インテグレーション
PDF
Docker Swarm入門
PDF
NDS#31
PDF
アプリ屋もDockerをドカドカ使おう ~ Docker入門
PDF
【dots. IT勉強会】開発環境のDocker化
PPTX
開発環境をVagrantからdockerに移行してみた
Niigata.pm #1
はてなにおける継続的デプロイメントの現状と Docker の導入
Dockerと継続的インテグレーション
Docker Swarm入門
NDS#31
アプリ屋もDockerをドカドカ使おう ~ Docker入門
【dots. IT勉強会】開発環境のDocker化
開発環境をVagrantからdockerに移行してみた

What's hot

PPTX
Ansibleを使ってdockerコンテナをプロビジョニングする
PDF
はじめてのコンテナーDocker & Windows & Linux
PPTX
Docker & Kubernetes基礎
PDF
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014
PDF
ECS-CLI in Action
PDF
Drone.io のご紹介
PDF
Vagrant & Dockerによるイマドキの開発環境構築
PDF
2015-07-27 Docker Introduction 〜Dockerの基礎とユースケースに関する考察〜
PDF
Rancher command line interface
PDF
Re: 運用に自動化を求めるのは間違っているだろうか
PDF
静的サイトどこにする?
PDF
Circle ci and docker+serverspec
PDF
Dockerは2016年の秋現在どのような状況なのか~忙しい人の5分で分かるDocker~
PDF
cf-containers-broker を使ってローカル環境もサービスの恩恵をうける
PPTX
ネットワークエンジニアのための Puppet / Chef
 
PPTX
IBM Log Analysis with LogDNAを評価した話
PDF
BOSH-lite で 1VM Cloud Foundry
PDF
Dockerハンズオン
PDF
Apache Auroraの始めかた
Ansibleを使ってdockerコンテナをプロビジョニングする
はじめてのコンテナーDocker & Windows & Linux
Docker & Kubernetes基礎
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014
ECS-CLI in Action
Drone.io のご紹介
Vagrant & Dockerによるイマドキの開発環境構築
2015-07-27 Docker Introduction 〜Dockerの基礎とユースケースに関する考察〜
Rancher command line interface
Re: 運用に自動化を求めるのは間違っているだろうか
静的サイトどこにする?
Circle ci and docker+serverspec
Dockerは2016年の秋現在どのような状況なのか~忙しい人の5分で分かるDocker~
cf-containers-broker を使ってローカル環境もサービスの恩恵をうける
ネットワークエンジニアのための Puppet / Chef
 
IBM Log Analysis with LogDNAを評価した話
BOSH-lite で 1VM Cloud Foundry
Dockerハンズオン
Apache Auroraの始めかた

Similar to Appsody でnodejsのアプリを立ち上げよう!

PPTX
Java ScriptでつくるはじめてのiPhoneAndroidゲーム開発体験ハンズオン
PPTX
13016 n分で作るtype scriptでnodejs
PDF
Node.jsでブラウザメッセンジャー
PDF
オープンソースエコシステム #demodaytokyo
PDF
あと一つプログラミング言語を
覚えたら死ぬ! 脳みそがパンクしそうな
あなたのための
nodeJSことはじめ
PDF
SmartPhone development guide with CoffeeScript + Node + HTML5 Technology, for...
PPTX
Visual Studio App Centerを公式サンプルアプリから学ぼうiOS(swift),Android(java)
PDF
10分で作る Node.js Auto Scale 環境 with CloudFormation
PDF
Nodejuku01 ohtsu
PDF
CodePushとReact Nativeで緊急OTAリリース!了解!
PPTX
Nodejs
Java ScriptでつくるはじめてのiPhoneAndroidゲーム開発体験ハンズオン
13016 n分で作るtype scriptでnodejs
Node.jsでブラウザメッセンジャー
オープンソースエコシステム #demodaytokyo
あと一つプログラミング言語を
覚えたら死ぬ! 脳みそがパンクしそうな
あなたのための
nodeJSことはじめ
SmartPhone development guide with CoffeeScript + Node + HTML5 Technology, for...
Visual Studio App Centerを公式サンプルアプリから学ぼうiOS(swift),Android(java)
10分で作る Node.js Auto Scale 環境 with CloudFormation
Nodejuku01 ohtsu
CodePushとReact Nativeで緊急OTAリリース!了解!
Nodejs

Appsody でnodejsのアプリを立ち上げよう!

Editor's Notes

  • #13 これらのコマンドの大部分は、Stackの操作用です:ビルド、デバッグ、実行停止、テスト、抽出、リスト。
  • #14 これらのコマンドの大部分は、Stackの操作用です:ビルド、デバッグ、実行停止、テスト、抽出、リスト。
  • #15 これらのコマンドの大部分は、Stackの操作用です:ビルド、デバッグ、実行停止、テスト、抽出、リスト。
  • #16 これらのコマンドの大部分は、Stackの操作用です:ビルド、デバッグ、実行停止、テスト、抽出、リスト。
  • #17 これらのコマンドの大部分は、Stackの操作用です:ビルド、デバッグ、実行停止、テスト、抽出、リスト。
  • #18 これらのコマンドの大部分は、Stackの操作用です:ビルド、デバッグ、実行停止、テスト、抽出、リスト。

[8]ページ先頭

©2009-2025 Movatter.jp