Infra-Work-01-OverView

私が考えるインフラエンジニアの役割

  • 情報化社会の高度化されたITインフラを支える仕事。
  • 過去にはビジネスの安定的な支援であったが、現在に至ってはビジネスの革新を主導する。

1. インフラエンジニアの業務

  • 大きく分けてインフラ設計、インフラ構築、インフラ運営の3段階に分類できる。

    インフラ設計

    • インフラを作る目的を理解しなければならない。
    • 目的を達成するのに必要な機能や性能などを整理する。
    • 費用と期間を予測して企画書と設計書を作成する。
    • 責任者に決済をする。

    インフラ構築

    • 直接する場合もあり、オペレーターや外部の業者に任せる時もある。

    • 機器の運搬と組み立て、装着、設置、設定、動作テスト、負荷テストなどに分類できる。

    • CE(Customer Engineer):ハードウェア関連の作業

    • SE(System Engineer):サーバーやストレージ設定

    • NE(Network Engineer):ネットワーク装置設定

    • このように分業化することもある。

    インフラ運営

    • 24時間、365日稼働中。

    • 障害対応、受容量管理、インフラが原因ではなく問題の把握に分けられる。

      障害対応

      • ハードウェア故障、急激なアクセス増加への対策、不適切な権限設定によるアクセスが不可能な状況の解消

      水容量管理

      • アクセス数やデータ量が流動的なので、適切に調整する。

      インフラが原因ではない問題の把握

      • プログラムのバグやアプリケーションの設定ミスかもしれない。

2. ITインフラを構成する要素

## ファシリティー
  - 建物、施設、設備などを意味
  - データセンターとデータセンターを構成するラック、エアコン、発電機、変圧器、消火設備などが含まれる。

## サーバー、ストレージ
  - ITサービスを提供するサーバーとデータを大量に保存するストレージ

## ネットワーク
  - サーバーとストレージを接続し、インターネットに接続するネットワーク

3. 技術者の観点から見るインフラエンジニア

- 要請された課題に対して技術的な観点から適切な答えを提案し、実践できなければならない。
- 短期間に本質的な解決策を提示できる技術者
- 最新の動向にも精通している必要がある。

サーバハードウェア

- IA(Intel Architecture)サーバーとエンタープライズサーバーの2つが存在

サーバーOS

- Linux、Windows、Unixに集約

ストレージ

- ストレージ仮想化、シーンプロビジョニング、重複除去、スナップショットなど新技術が登場。
- 各技術の長所·短所を把握し、費用対効果の面で適切なストレージを選定

- ネットワークの設計と構築
- TCP/IPにほぼ集約

- ネットワーク機器
- 通信の交換

- ネットワーク機器はメーカーごとに命令体系が異なるため、メーカーごとの命令体系を学習する必要がある。

4. 選定者としてのインフラエンジニア

## システム構成
- どの規模でどのように構成するのか。
## サーバ仕様選定
- CPU、メモリ、ディスク、RAID、NIC、PSUの二重化の必要性、保守年数、保守レベル、拡張性、物理的大きさ及び重量などがある。

## ネットワーク構成
- 保証期間、メーカー、スイッチをいくつ?、収容量、二重化するかどうかなど…
## データベース設計
- RDBMS、必要容量計算、データベーススキーマと物理的なデータ配置決定
## オペレーティングシステム
- システムをどのように監視して運営するのか。
- 障害の発生をシステム感知ツールで感知し、障害発生を感知したときのみ社員が対応する。
- 一次対応はMSP業者に委任し、解決しないときに社員に問題を伝えて段階的に対応
- 別組織で24時間、365日監視運用システムを構築

Famous-Saying-2020-06-04

  1. 私がこれまで成し遂げたことの多くは、私の怠けからきている - Fortan創始者、 John Backus

  2. 優れたプログラマーが備えるべき3つの徳目は”怠惰、苛立ち、うぬぼれ”だ。 誠実で粘り強い人には退屈で大変な課題を単純にする動機が生じないからだ。- Pearl創始者、 Larry Wall

  3. 未来を予測する最も良い方法は、未来を発明することだ。
    ソフトウェアについて本当に真剣な人たちは彼ら自身のハードウェアを作らなければならない。
    LISPは言語ではなく建築資材だ。- Alan Kay

  4. Cは並外れて、欠点あり、大成功だった。- C創始者、Dennis M. Ritchie

  5. “私は真のプログラマーではない。 できるまで色々試して見られたら次に移る。 真のプログラマーは”はい、できますがあちこちでメモリ漏れが発生します。 おそらく修正すべきでしょう”と語る。 私はただ要請が10回入ってくるたびにアパッチを再び始める。” - PHP創始者、Rasmus Lerdorf

SAP-ABAP-01-Install

Preference

  • OS : macOS Catalina 10.15.5
  • Container(VM) : Docker
  • SAP Version : SAP ABAP 7.52
    (SAP NetWeaver ABAP Developer Edition in Docker)

Docker Setting

  • Advancedタブに入って、自分のスペックに合わせて使用環境を変更してあげましょう。
    ディスクボリュームは100GBをお勧めします。
    私は後でSAP HANAもインストールしようと思ってます。
    (私はポータブルSSDを利用します。)

    Before

    After

Book-Review-Architecture-Patterns-with-Python


ほとんどの開発者は、ドメインモデルを見たことがなく、データモデルだけを見ています。

  • ‘Most developers have never seen a domain model, only a data model.’
    Cyrille Martraire, DDD EU 2017

驚くほど面白くて有益な本だった。

  • デベロッパーとして働くようになると、各種業務を担当することになる。 製造、テスト、お客様との商談など···
    そうしているうちにアーキテクチャの設計に対して自らレベルアップしているのかという疑問が湧いてくる。
    もちろん、大部分のデベロッパーは忙しい日程に追われる場合が多い。
  • 軽量フレームワークであるflaskでアーキテクトへの負担は抑えつつ、説明はとても親切だ。
  • 特にモデリングについての案内は逸品だ。(カラー)
  • 残念な点といえば、チャプターの始まりには常にリアルライフについての長い説明。



Etc

  • 大企業などで使われるSAPが、自社CloudサービスをNodeJSとFlashを利用して簡単に利用できるという。
    かなり印象的だ。


Work-05-Web-Server

What is Web-Server?

  • HTTPで、ウェブブラウザから呼ぶHTML、Object(imagefileなど)を送るServiceProgram。
  • WebServerは2種類で、SoftwareとHardware。

Work-04-vsftpd-FTP

Why need a vsftpd?

  • サーバの構築とサーバプログラムをアップロード/ダウンロードする目的でvsftpdをインストールします。

What is vsftpd?

  • vsftpdはファイル転送規約(File Transfer Protocol、FTP)でファイルを円滑にアップロード/ダウンロードするのが目的です。

  • 例えば、マイコンピュータにあるサーバにファイルをアップロードしたり、サーバにあるファイルをマイコンピュータにダウンロードしたりするためです。 サーバプログラムをアップロードしたり、その他のファイルをアップロードするためにインストールして使用します。

What is FTP?

  • ネットワークに接続されたコンピュータ同士でデータを円滑に交換するための目的で開発されました。

  • 簡単に例を挙げると、宅配便を必ず箱に入れて送ろうと規則を決めるようにパソコンのファイルも一つの約束をするのです。

    1 ) FTP install Check

    1
    [root@centos ~]# rpm -qa vsftpd*

    2 ) Intall FTP

    1
    [root@centos ~]# yum install vsftpd -y

    3 ) FTP install Check

    1
    [root@centos ~]# service vsftpd status

    4 ) FTP Setting

    1
    [root@centos ~]# vi /etc/vsftpd/vsftpd.conf
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    anonymous_enable=NO                 # anonymous user's connect check
    local_enable=YES # anonymous user's connect enable
    write_enable=YES # upload enable
    xferlog_enable=YES # ファイル転送ログの残りを許可
    connect_from_port_20=YES # 20ポートの使用許容
    xferlog_file=/var/log/xferlog # ファイル転送ログ位置設定
    #chroot_local_user=YES # ルートフォルダへのアクセス制限
    listen=YES # vsftpdデーモンの動作方式指定(yes->standalone、no->xinted)

    local_root=/var/www/static # 接続経路設定
    pam_service_name=vsftpd
    userlist_enable=YES
    tcp_wrappers=YES

    listen_port=45000 # ファイル転送接続ポート設定
    port_enable=YES
    pasv_enable=YES
    ftp_data_port=45001 # ファイル転送データポート設定
    pasv_min_port=45000
    pasv_max_port=45001
    session_support=YES
    userlist_enable=YES # user list enable

    5 ) FTP start & start check

    1
    [root@centos ~]# service vsftpd start
    1
    [root@centos ~]# netstat -anp | grep vsftpd

    6 ) When FTP reboot, auto restart setting

    1
    2
    [root@centos ~]# chkconfig vsftpd on
    [root@centos ~]# chkconfig --list | grep vsftpd

    7 ) TestUser add

    1
    2
    [root@centos ~]# useradd testing
    [root@centos ~]# passwd testing

    8 ) When Connect vsftpd, show this message

    1
    2
    3
    4
    5
    6
    Status:      Connecting to IP:PORT...
    Status: Connection established, waiting for welcome message...
    Status: Insecure server, it does not support FTP over TLS.
    Status: Logged in
    Status: Retrieving directory listing...
    Status: Directory listing of ".../static" successful

Work-03-Building-a-Server

基本設定および確認

  • 一般のウィンドウやマックなどのグイ(GUI)環境はコンピューターのリソース(Resource)を多く使うようになります。
    ですから、このような資源を最大限節約し、サーバ性能の最大化のために見にくいTextモードを利用することになります。

    1. サーバー接続

    1
    2
    3
    #ssh -l ID -p Port IP
    code : ssh -l root -p 43232 123.155.157.1xx
    root@IP's password:
  • セキュアシェル(Secure Shell、SSH)はネットワーク上の他のコンピュータにログインしたり、遠隔システムで命令を実行し、他のシステムでファイルを複数できるようにするアプリケーションやプロトコルを指します。
    強力な認証方法により、安全ではないネットワークで安全に通信できる機能を提供します。
    セキュアシェル(SSH)は暗号化手法を使うため、通信が露出されたとしても理解できない暗号化された文字と考えられる。

    1 ) Linux Version Check

    1
    [root@centos ~]# uname -a

    2 ) CentOS Version Check

    1
    [root@centos ~]# cat /etc/redhat-release

    3 ) HardDisk Volume Check

    1
    #df -h
    1
    2
    3
    Filesystem      Size  Used Avail Use%  Mounted on
    /dev/xvda1 50G 7.7G 39G 17% /
    tmpfs 935M 0 935M 0% /dev/shm

    4 ) Memory Check

    1
    [root@centos ~]# free -m

    5 ) CPU Check

    1
    [root@centos ~]# cat /proc/cpuinfo | grep processor | wc -l
    1
    #cat /proc/cpuinfo

    6 ) Package List Update

    1
    [root@centos ~]# yum update

    7 ) System time Setting

    1
    [root@centos ~]# cp /usr/share/zoneinfo/Asia/Tokyo /etc/localtime

Work-02-OS

オペレーティングシステム(Operating System)とは?

  • サーバ構築という目的に運営体制は何と言えばいいでしょうか?
    コンピュータを制御できるようにするプログラムをオペレーティングシステムといいます。

OSの選択

  1. Linux
  • 長所 : 無料ということと、サーバー構築に必要な仕様が低いです。
  • 短所 : 私たちは皆ウインドウ環境に慣れているので適応するのが難しいです。
  1. Windows
  • 長所 : 私たちが最も多く使うウィンドウズなので使うことに慣れています。
  • 短所 : 有料という点と基本仕様が重いです。

Linux配布版選択

  • 技術的な面で見れば、二人ともLinuxという共通点があるが、基本的な環境管理方式(プログラム管理)が異なります。
  • Linuxを基盤として配布者たちの思惑どおりネットワークや、デスクトップ環境、サーバー環境、プログラムのアップグレード方式を背中をそれぞれ最適化して配布をします。
    それで同じLinux基盤としても、RedhatやDebianのように、他の系列で配布になって使途も他の面があります。

    プログラム的に大きく眺めると、環境設定を容易にするために使用するプログラム(パッケージ管理、セット管理)がRedhat系列とDebian系列が違います。

  • 簡単に彼らが志向することに対し、私の考えをお知らせいたします。
    “Redhatは徹底的に商業化されたLinux”
    “Debian系列はアップデート志向なLinux”

  • 実際にRedhat系列は、企業や証券取引所など、巨大なサービスで使用されている方です。
    一方、Debian系列は個人サーバ用として人気が多いです。

Redhat系列の異なる2つのLinux

  1. Fedora : Redhatの先行OS、
    Redhatの新技術を体験したいならFedoraを使えばいいです。
  2. CentOs : Redhatの以前のOS、
    Redhatの安定的な技術をそのまま継承して使用します。
    (実際に多くの大学や大手はCentOSで運営)
  • ps. Linuxの奇数バージョンはDevelper用で、偶数バージョンは配布型です。
You need to set client_id and slot_id to show this AD unit. Please set it in _config.yml.