90DaysOfDevOps/ja/Days/day02.md
2022-06-14 16:36:02 +09:00

67 lines
6.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: '#90DaysOfDevOps - DevOpsエンジニアの責務 - 2日目'
published: false
description: 90DaysOfDevOps - DevOpsエンジニアの責務
tags: 'devops, 90daysofdevops, learning'
cover_image: null
canonical_url: null
id: 1048699
---
## DevOpsエンジニアの責務
希望的には、[#90DaysOfDevOps の一日目](day01.md)のリソースと投稿に目を通した後に、本稿を読んでほしい。
最初の投稿で簡単に触れましたが、このコンセプトをより深く理解し、アプリケーションを作成する際に2つの主要な部分があることを理解する必要があります。まず、ソフトウェア開発者がアプリケーションをプログラムし、それをテストする**開発**の部分があります。そして、アプリケーションをサーバーにデプロイし、維持する**運用**の部分があります。
## DevOps は両者をつなぐもの
DevOpsやDevOpsエンジニアが行う作業を理解するためには、ツールやプロセス、それらの概要、そしてそれらがどのように組み合わされているかを理解する必要があります。
すべてはアプリケーションから始まる DevOpsに関しては、アプリケーションがすべてであることがよくわかると思います。
開発者はアプリケーションを作成します。これは様々なテクノロジースタックを使って行うことができますが、これについては後で説明するので、今は想像にお任せします。また、多くの異なるプログラミング言語、ビルドツール、コードリポジトリなどが含まれることもあります。
DevOpsエンジニアとして、あなたはアプリケーションをプログラミングすることはありませんが、開発者がどのように働いているか、彼らが使っているシステム、ツール、プロセスの概念をよく理解していることが成功への鍵となります。
非常に高いレベルでは、アプリケーションが必要なすべてのサービスやデータサービスと対話するためにどのように構成されるかを知る必要がありますし、これをどのようにテストできるか、またはすべきかの要件も必要です。
アプリケーションは、どこかに配置される必要があります。ここでは、一般的にシンプルにして、サーバーとします。このアプリケーションは、作成されたアプリケーションに応じて、顧客やエンドユーザがアクセスすることが期待されます。
このサーバーは、オンプレミス、パブリッククラウド、サーバーレスここではサーバーレスについては触れませんが、選択肢の一つであり、ますます多くの企業がこの方向に向かっていますなど、どこかで実行される必要があります。この要素は、DevOpsエンジニアとして、これらのサーバーをデプロイし、設定するために、あなたに降りかかるかもしれません。
これらのサーバーはオペレーティング・システムを実行する必要があり、一般的に言えば、これはLinuxになるのですが、このセクションまたは週で、ここで得るべき基礎知識をいくつか取り上げます。
また、ネットワークや環境内の他のサービスと通信する必要がある場合もあるので、ネットワーキングやその設定に関する知識も必要です。ここでもまた、DNS、DHCP、ロードバランシングなどに関する専門的なセクションでより詳しく説明します。
## なんでも屋
ネットワークやインフラの専門家である必要はありませんが、プログラミング言語の基礎知識は必要ですが、開発者である必要はありません。しかし、ある分野のスペシャリストとして入社すれば、他の分野に適応するための大きな足がかりになるでしょう。
また、サーバーやアプリケーションの管理を日常的に行うことはほとんどないでしょう。
これまでサーバーについて説明してきましたが、アプリケーションはコンテナとして動作するように開発される可能性が高いです。それでも大部分はサーバ上で動作しますが、仮想化、IaaS (Cloud Infrastructure as a Service) だけでなく、コンテナ化についても理解する必要があります。
## ハイレベルの概要
一方では、開発者がアプリケーションの新機能(およびバグフィックス)を作成しています。
もう一方では、このアプリケーションを実行し、必要なすべてのサービスと通信するために構成され管理される、ある種の環境、インフラストラクチャ、またはサーバーがあります。
大きな問題は、これらの機能やバグフィックスをどのように本番環境に導入し、エンドユーザーが利用できるようにするかということです。
新しいアプリケーションのバージョンをどのようにリリースするのでしょうかこれはDevOpsエンジニアの主なタスクの1つで、ここで重要なのは、これを1回だけ行う方法を見つけ出すことではなく、継続的に、自動化された効率的な方法で行う必要があり、テストも含める必要があります。
ここで、今日の学習を終了します。これが役に立つことを願っています。次の数日間で、DevOpsのいくつかの領域をもう少し深く掘り下げていきます。そして、ツールやプロセス、これらの利点について深く掘り下げたセクションに入ります。
## 参考情報
このReadmeファイルは学習用として用意したものなので、いつでも追加リソースを受け付けています。
私のアドバイスは、以下のビデオをすべて見ること、そして上記のテキストや説明から何かを感じ取っていただけることを願っています。
- [What is DevOps? - TechWorld with Nana](https://www.youtube.com/watch?v=0yWAtQ6wYNM)
- [What is DevOps? - GitHub YouTube](https://www.youtube.com/watch?v=kBV8gPVZNEE)
- [What is DevOps? - IBM YouTube](https://www.youtube.com/watch?v=UbtB4sMaaNM)
- [What is DevOps? - AWS ](https://aws.amazon.com/devops/what-is-devops/)
- [What is DevOps? - Microsoft](https://docs.microsoft.com/en-us/devops/what-is-devops)
ここまで来れば、ここが自分の望むところかどうかが分かるはずです。それでは、[3日目](day03.md)でお会いしましょう。