kobasaです(´ω`*)ようやく実装課題まで辿り着きました!明日から進めるぞ!
と言いたいところなんですがワクチン接種があるんですよね…
体調マシな状態でできるのは木曜くらいからかなぁ?
72日目の勉強内容
プログラムの管理
大規模アプリケーションの開発や、定期的なテストやデプロイを人力でやろうとすると負担が大きいため、それらを自動化することが重要になっている。
Sider(サイダー)
コードレビューを自動で行うツール。インデントの体裁や開発者が設定したルールに反していないかを自動判定する。
GitHub上で駆動し、プルリクエストのコードに対してチェックを行う。
CircleCI(サークルシーアイ)
追加・変更されたアプリケーションのテスト、テストが完了して問題がなかったコードのデプロイを自動で実行するクラウドサービス。使ってみたい。
「CI/CD」という概念に基づいている。Facebookやメルカリに導入されている。
CI/CD
Continuous Intergration/Continuous Delivery
CI:継続的インテグレーションの意味。コードのテストを定期的に自動で実行すること
CD:継続的デリバリーの意味。コードを自動で本番環境にデプロイできる状態に整えること
サーバーとクラウド
クラウドとはサーバーの一種で、コンピューター資源の利用形態を指す。
ソフトウェア、ハードウェア、ストレージなどをネットワーク経由でユーザーにサービスとして提供している。
クラウドにもサービスの種類がある。
SaaS(Software as Service)
クライアント側に導入せずに、サービスを提供しているサーバーに直接アクセスしてサービスを利用する形態。
・Office365・Gmail・Dropbox・サイボウズなど
PaaS(Platform as a Service)
作成したアプリケーションなどをネットワーク上に公開するためのプラットフォームを提供するサービス。
・Herokuなど
IaaS(Infrastructure as a Service)
サービスを利用するユーザーに仮想化したCPUやメモリ、ストレージなどをインターネット経由で提供するサービス。
サービスを利用するたびに金額が発生する。
・Microsoft Azur・Google Compute Engineなど
仮想サーバーとコンテナ
1台のサーバーで仮想的に複数のサーバーを稼働させる仮想サーバーという仕組みがある。
処理速度の向上や保守コストの削減などの利点があるが、デメリットとして、
消費メモリが膨大・高度な技術が必要・設定や管理などの負荷がかかるというものがある。
コンテナは他のユーザーから隔離された実行環境のこと。ホストOS上に作成される。
1つのOSで稼働するためメモリの消費が少なく、ストレージの使用もわずかで済む。
仮想サーバーに比べて、起動時間が短く、同じ性能のハードウェアならより多くのコンテナを同時に動かすことができる。
Docker(ドッカー)
コンテナを用いてアプリケーションを開発・配置・実行するためのオープンソースソフトウェア。
エンジニアにとって必須らしい。M1チップ搭載MacBookにはまだ非対応(´・ω・`)
コメント