DevOps

2242 ワード

現在構築されているサーバ環境の説明とCIの使用を統合して自動化することで、コードの衝動を防止し、CDを使用して導入の自動化を実現します.
また、Kubernetesのオーケストラを通じてコンテナ管理環境を作りたい.
Application Infrastructure
Azure Cloud環境で現在配備されているアプリケーション
  • の導入に使用される高速API仮想マシン
  • 導入前TEST Rest API仮想マシン
  • フロントエンドWeb仮想マシン
  • アプリケーション
  • 全部で5つの構成がある.ローカルで動作したコード変更を共有Github Repositoryにアップロードし、コードを確認してPRし、テスト仮想マシンからpullを取得し、docker-compositeを再構築します.テスト後に問題がない場合は、実際の導入サーバ仮想マシンからコードを取得し、docker-composeを再構築して導入します.
    同様に、Webがローカル作業後に共有レポートにアップロードされると、コード確認後にPRが行われ、Webサーバ仮想マシンからdocker-composite導入環境が取得され再構築されます.
    CircleCI
    Jenkins vs CircleCI
    Jenkinsの特徴はユーザーが多く、pluginが多いことです.構築制御はより複雑であり、CircleCIはクラウドベースであるため、伸縮性があり、サイクルも可能である.yamlはファイルで管理されているので簡単です.DebugではJenkinsも複雑であるが,CircleCIはSSHに基づいているため,Debugは容易に実現できる.サーバーの大部分はDockerに戻り、Docker WorkflowもJenkinsに内蔵されていないのでCircleCIが存在するので、もっと良いと言っています.このほかUIインタフェースにおいてもJenkinsの反応が遅いため,CircleCIの評価がよりよい.
    Reduce Docker image size
    The reason why don't use python alpine images on docker is that longer build times, obscure bugs, and performance issues.
    python:3.8-slim-buster is recommeded on 2021.
    Link1
    Link2
    Alpine image size is 35MB and python:3.8-slim-buster image size is 60MB that is not much benefit even alpine can raise more dependencies error than debian10(Buster).
    Django unit test code
    django.test.TestCase
    実行前にきれいなデータベースを作成し、独自のオブジェクト上ですべてのテストを実行します.
    .circleci/config.yml
    version: 2
    jobs:
      build:
        # working_directory: ~/app
        docker:
          - image: circleci/python:3.8.6
        steps:
          - checkout # set working_directory by SSH default path
          - restore_cache:
              key: deps1-{{ .Branch }}-{{ checksum "requirements.txt" }}
              # - run: docker-login
          - run:
    Running the circleci locally
    brew install circleci
    circleci