インターネットの基礎知識の技術の概要 ・ドメイン、DNS ・IPアドレス ・サーバー、クライアント ・HTT、アプリケーション、DB ・フロントエンド、バックエンド ・プログラミング言語、フレームワーク ・スマートフォンアプリ ・クラウド(AWS、BaaS)
@norinuxインターネット基礎講座
View Slide
@norinuxHELLO!技術本部長 / スタートアップスタジオ責任者佐々木喜徳仕事:起業家の発掘、投資スタートアップ向けの開発組織の運営ガイアックスの技術戦略の策定2yoshinori.sasaki2
@norinux私とインターネットの出会い3
@norinux本講座で得られること今日はこれを頭の片隅に置いて参加ください4
@norinuxPhoto by mrjn Photography on Unsplash5水ってなんですか?
@norinux水ってなんですか?ユーザーの視点 ビジネスの視点 技術者の視点炊事に使う洗濯に使う。シャワーや風呂に使う飲む。水分補給お茶やコーヒーをいれる・販売網、市場規模供給、保管方法運搬方法水質、消費期限入手方法、水源再利用・浄水技術水道管の材質や設置貯水タンクの建設蛇口の仕組み掘削、組み上げ技術・ もし、Gaiax が、「人と水をつなげる」と 水に関するビジネスに取り組んでいたとして、 何をどこまで知っている必要がありますか?6
@norinuxPhoto by John Schnobrich on Unsplashインターネットってなんですか?
@norinux8 インターネットってなんですか?ユーザーの視点 ビジネスの視点 技術者の視点メールができるSNSができるECで買い物ができる電話ができる動画、映画が見れる・・・・情報が公開する仕組み拡散される仕組みデータを保存効率化、自動化課金の仕組み・・通信インフラ技術アプリ開発技術データベース開発プロセス運用、障害対応技術・・ ソーシャルメディア、シェアエコ事業に関わり WEBを通して仕事をする必要があるあなたは 何をどこまで知っている必要がありますか?
@norinuxインターネットの仕組みや用語を知っている状態WEBを通して、ビジネス(仕事)をする上で9
@norinuxインターネットの基礎知識身近なサービスを例に理解してみよう10 @norinux
@norinuxドメイン、DNSIPアドレスサーバー、クライアントHTT、アプリケーション、DBフロントエンド、バックエンドプログラミング言語、フレームワークスマートフォンアプリクラウド(AWS、BaaS)Twitter みたいなサービスを作りたい!どんな技術が必要なんだろう?11
@norinux12ドメイン
@norinuxDNSって聞いたことある?DomainNameSystem13DNS
@norinuxドメイン14DNSmobile.twitter.comトップレベルドメインドメインにおける苗字TLDによって用途がある程度決まっている。ドメイン名登録制で、世界中で重複しないようになっている。サブドメイン役割を分割するために、自由に追加できる名称
@norinuxDNSの役割15DNSリクエストDNSサーバーwww.gaiax.com は、52.219.0.160 だよぅ。www.gaiax.co.jp52.219.0.160ルートDNS.comDNSgaiax.comDNS
@norinuxドメインとは? 16DNSどこから、情報を取得するのかを指定するための世界で一つしかない名前。そのドメインに紐づいた、IPアドレスという情報の住所を示した、「数字」を得ることができる。ドメイン: www.gaiax.co.jp ↓IPアドレス:52.219.0.160
@norinux17IPアドレス
@norinux あなたのIPアドレスはなんですか?18IPaddressWindowsネットワーク接続を開いて繋がっているデバイスの状態を見るOSXシステム環境設定を開いてネットワークを見る
@norinux19IPaddress あなたのインターネット上の接続元 IPアドレスはなんですか?https://goo.gl/7ZzA2b
@norinux20IPaddress IPアドレスの謎を解明PCのIPアドレス10.1.7.176www.gaiax.co.jp52.219.0.160GRIDのIPアドレス124.35.198.10ローカルエリアネットワークグローバルネットワーク10.0.0.0~10.255.255.255172.16.0.0~172.32.255.255192.168.0.0~192.168.255.255GRIDのIPアドレス10.1.0.1
@norinux21IPaddress VPNとは?インターネットトンネルパソコンのローカルネットワークと、インターネットの向こう側にありローカルネットワーク通しを暗号化したトンネルを利用して、直接つないでしまう仕組み。離れた拠点でのオフィスやデータセンターを接続したり、リモートワークで自宅やカフェから業務ネットワークに接続するのに利用。
@norinuxIPアドレスとは? 22情報をやりとりするための住所を指定するための「数字」。IPアドレスに対して、リクエストを送信することで、それに従って情報をレスポンスしてもらうことができる。IPaddress
@norinux23サーバー
@norinuxサーバーとクライアント 24Serverクライアントサービスを利用するためのコンピュータであり、複数台接続する。サーバーサービスを提供するためのコンピュータであり、たくさんの役割がある。一般的に役割ごとに複数台が接続しあって運用されている。サーバに接続するためにドメインがあり、DNSを利用してIPアドレスを知り、IPアドレスに対して接続している。
@norinuxサーバーにはどのような役割(ミドルウェア)があるのか25ServerHTTPサーバー一般的にWEBサーバーと呼ばれている。クライアントからのリクエストを受け付けており、リクエストの内容に応じて処理を振り分けて適切なレスポンスを返す。例)Apache , Nginx ...アプリケーションサーバーサービスのビジネスロジックが実装されたプログラムを実行する。リクエストからデータを保存 /編集したり、データを取り出し処理を加えてクライアントに届ける。例)Ruby , PHP , Python...DBサーバーデータの出し入れや蓄積をしており、大量のデータ、大量の書き込み、大量の複雑な取り出しを行うための仕組みを提供している。例) MySQL , Postgres , Oracle...
@norinuxサーバーとクライアントの実際26Server複数のHTTPサーバー複数のアプリサーバー複数のDBサーバー各サーバーにも、ドメインおよびIPアドレスを持っており、お互いに通信し合って役割分担を行っている。
@norinuxサーバーとは? 27クライアントに、サービスを提供する仕組みの総称。実際には、様々なミドルウェアを役割をになっているサーバー群が複数繋がりあって、一つのサービスを提供している。IPaddress
@norinux28プログラミング言語フレームワークフロントエンドバックエンド
@norinuxフロントエンド or バックエンド29フロントエンドバックエンドひとつのサービスを提供する上で、サーバーが役割によって分かれているように、プログラミング言語も役割によって分かれている。 HTML CSS Javascript Ruby PHP Python Perl SQL
@norinuxバックエンド30フロントエンドバックエンドサーバー側で処理がされて、フロントエンドのインターフェースに必要なデータや実行して欲しい処理を渡す役割 インタプリタ言語(Ruby,PHP,Python,Perl….)軽量プログラミング言語(LL)とも呼ばれており、比較的学習難易度が低く簡単で記述で処理を記述できるので、WEBプログラミングの主流となっている。 コンパイラ言語(C, Java, Go,Scala .....)事前にプログラムをコンパイル(機械語に翻訳)しておかなければ実行することのできない言語。習得する難易度が高い分、記述ミスの発見や、プログラムの処理がインタプリタ言語に比べて高速など利点もある。 SQLデータベースにデータを追加したり取り出したり、編集、削除するための命令を書くための形式記述。最近だと、フレームワークで必要なSQL文を自動で実行してくれるために、直接記述する機会は少なくなってきている。
@norinuxフロントエンド31フロントエンドバックエンドクライアントコンピューターのブラウザで、処理が実行されるプログラム HTMLHTML (HyperText Markup Language) はウェブのもっとも基本的な構成要素で、基本レイアウトに従ってウェブページのコンテンツを記述し定義するものです。厳密にはプログラミング言語ではなくて、マークアップ言語。 CSSウェブページのスタイルを指定するための言語です。 文書のスタイルを指定する技術全般をスタイルシートといいます。 HTMLやXHTMLなどで作成されるウェブページにスタイルを適用する場合に利用されている。 Javascriptユーザー側のWebブラウザと、Webサイトまたはウェブサービスの相互間のやりとりを、円滑にするために使われており、実質的に、ブラウザで体験できることのすべてはJavaScriptの処理によるもの
@norinuxフレームワーク32フロントエンドバックエンドプログラミング言語ごとに特定用途向けに作られたプログラミングを楽にするためのツール。
@norinuxプログラミング言語フレームワーク33プログラミング言語インプットされたデータを元に、サービスとして価値を提供するための処理を記述するための形式記述。よく利用される記述を簡略化したり、複数人で開発するためにルールを定めたのがフレームワーク。
@norinuxフロントエンド or バックエンド34フロントエンドバックエンドサービスを提供する上で必要なプログラムをどの位置で実行(解釈)するかの違い。プログラミング言語やそのフレームワークによって変わる。
@norinuxスマートフォンアプリケーション35
@norinuxスマートフォンアプリ 36スマートフォンスマートフォンインターネットでいうクライアント、開発でいくフロントエンドが、スマートフォン独自の仕組みで実現する。サーバーパソコン(ブラウザ)同様に、スマートフォンアプリケーションの場合でも、サーバー(バックエンド)は必要なケースが多い。
@norinuxスマートフォン37 端末の種類のよる違い開発言語: Swift , ObjectiveC開発環境: Xcode公開方法: App Store への申請と審査開発言語: Kotlin , Java開発環境: Android Studio公開方法: GooglePlay への申請と審査
@norinuxスマートフォン38 共通の言語で開発する手法Googleが開発した、Dart言語を利用したモバイルアプリケーション向けのフレームワーク。iPhone/Androideのモバイルアプリのデザインおよび機能を共通の言語で実装できる。C#やUnityScriptを用いて、マルチデバイス向けのゲーム開発をできるゲームエンジン。iPhone/Androidだけじゃなく、ブラウザやパソコン、ゲーム機など幅広く対応している。Gaiax の開発部ではこちらを採用!
@norinuxスマートフォン39 専用のアプリを開発せずにモバイル対応をする手法PWAとは、「Progressive Web Apps」の略称で、モバイル向け Webサイトをスマートフォン向けアプリのように使えるようにする仕組み。パソコン向けのWEBサービスに、レスポンシブデザインや、 Push通知、キャッシュやオフラインでの利用など、実装することで利用できる。要は、フロントエンドを PWA対応のフレームワークを使うことにより、普段のWEB開発の技術の延長で、スマートフォンで利用しやすいサービスを作ることができる※ インストール(アプリの設置)や、 iPhoneでの利用制限などあり、 完全にスマートフォンアプリの互換には至らない、
@norinuxクラウド40
@norinuxそもそもクラウドではない世界41クラウド
@norinuxクラウドの種類42クラウドSaaSクラウドで提供されるソフトウェアのことで、ユーザー側にソフトウェアをインストールするのではなく、ベンダー(プロバイダ)側でソフトウェアを稼働させ、ユーザーはネットワーク経由でソフトウェアの機能性を活用する。 例)Gmail , 働くDB、楽々精算PaaSアプリケーションソフトが稼動するためのハードウェアやOSなどのプラットフォーム一式を、インターネット上のサービスとして提供する形態のことで、プログラムを設置すればすぐにサービスを公開することができる。 例)Heroku, Google App EngineBaaSBaaS(Backend as a service)とは、アプリのバックエンド機能を提供する形態の事で、主にスマートフォンアプリのサーバー側に必要な裏側を実装する事なくまとめて利用することができる。例)FIrebaseIaaSサーバー機材やネットワークなどのインフラを、インターネット上のサービスとして提供する形態のことで、データセンターや回線など自社でインフラ資産を持つことなく、時間単位でリソースを利用できる。 例)さくらのクラウド、AWS EC2
@norinuxクラウドの事業者43クラウド
@norinuxクラウドとは?44クラウドサーバーや、プログラムの実行環境、データベース、ソフトウェアなどを自分で用意せずにインターネットの上でリソースを提供するサービス。利用方法や、利用する規模によっては、クラウドじゃなく自前で構築した方がコストメリットが大きくなることがある。
@norinuxTwitter みたいなサービスを作りたい!どんな技術が必要なんだろう?45
@norinuxTwitter みたいなサービスを作りたい!どんな技術が必要なんだろう?フロントエンド技術 スマートフォンアプリケーション技術サーバーサイド技術クラウドドメインIP46
@norinuxインターネットの未来47 @norinux
@norinuxインターネットの始まりは、みなさんご存知ですか?48歴史
@norinux歴史1969年 アメリカARPANETの基本的な「仕様」1. 負荷共有2. メッセージサービス3. 情報の共有4. プログラム共有5. 遠隔ログイン4つの大学を相互接続させる実証実験から始まった。「大規模で強力な研究用コンピュータを遠隔で利用したい」引用:https://ja.wikipedia.org/wiki/ARPANET49
@norinuxインターネットエンジニアリングはどのような未来が待ち受けているのか。50近い将来
@norinuxIPv6現在のIPv4の個数は、42億9496万7296個しかなく、世界の人口を考えると明らかに不足しており、すでにIPアドレス枯渇問題が発生している。IPv6だと、43億×43億×43億×43億1人当たり5.6穣(じょう)個(5600兆の100兆倍)51
@norinux525G2020年以降は、5Gが登場し通信速度が100倍になり、遅延が1/10になることで、通信を利用したサービスが増え生活が変わる。
@norinuxハイプサイクルインターネットに限らず、今どのような技術が期待されているかを知るには、ガードナーの「先進テクノロジのハイプ・サイクル」が参考なる。53
@norinux最後にひとことだけ物申したい54 @norinux
@norinux55ITベンチャーで働いてるけどインターネットことよくわからないんですって言っちゃうのカッコ悪いよね
@norinux56インターネット技術の活用方法を知っているそれは、この業界でビジネスマナーと同じくらい必須なスキル
@norinuxご清聴いただきありがとうございました