Terraform 和基础设施即代码

基础设施即代码 配置云资源的挑战 大规模手动配置基础设施既缓慢又繁琐。通过点击式 GUI 配置基础设施容易出错、效率低下且无法扩展。云是为自动化而构建的,但为每项服务和每个用例编写自定义脚本对于开发团队来说既耗时又昂贵。 解决方案 基础设施即代码 (IaC) 可在任何云上自动配置基础设施。多云配置应使用声明式基础设施即代码实现自动化。应该有一种简单易学的配置语言,允许人们定义基础设施资源,以便可以在所有环境中以一致的工作流对基础设施进行编码、共享、版本控制和执行。 Terraform 基础设施即代码有几十种不同的工具,HashiCorp 开发的 Terraform 是目前业内最受欢迎的 IaC 工具之一。 另外,OpenTofu 是从 terraform 1.5.6 分叉的开源工具,提供类似的功能和界面。 Terraform 快速入门 Terraform 的工作原理 Terraform 依赖不同的服务提供商来实际管理不同平台上的基础设施资源。服务提供商实际上是一个使用上游平台 API 来配置资源的模块。 使用 Terraform 部署基础设施有 5 个步骤: 1.范围 - 确定项目的基础设施 2.作者 - 编写基础设施的配置 3.初始化 - 安装 Terraform 管理基础设施所需的插件 4.计划 - 预览 Terraform 将进行的更改以匹配您的配置 5.应用 - 进行计划的更改 安装 Terraform CLI 使用 Homebrew 在 Mac 上安装 Terraform 1 2 brew tap hashicorp/tap brew install hashicorp/tap/terraform 验证安装 ...

October 19, 2024 · 8 min · 1571 words · Justin Hu

GitHub Actions以及它为何比Jenkins更受欢迎并成为默认CI/CD工具

本站的所有文章都默认为英文,中文版本由Google Translate 翻译。 由于时间限制,并非所有文章都有中文版本。。 什么是 Git Actions 根据 Github 的说法: GitHub Actions 是一个持续集成和持续交付 (CI/CD) 平台,可让您自动化构建、测试和部署管道。您可以创建工作流,在将更改推送到存储库时运行测试,或者将合并的拉取请求部署到生产环境中。如果您有 CI/CD 工具使用经验,可能使用过 Genkins,那么您可以将 Github Actions 视为一种类似但更好的工具,可以实现相同的目的。 类似地,GitHub Actions 可用于: 构建和测试 部署 发布包 管理 github(问题、标签)等等 一个简单的例子 1. 创建 Github Action 工作流 YAML 文件 在 GitHub 上的存储库中,在 .github/workflows 目录中创建一个名为 github-actions-hello-world.yml 的工作流文件。 2. 复制并粘贴以下 Hello World YAML 内容 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 name: GitHub Actions Hello World run-name: ${{ github.actor }} is testing out GitHub Actions 🚀 on: [push] jobs: Explore-GitHub-Actions: runs-on: ubuntu-latest steps: - run: echo "🎉 The job was automatically triggered by a ${{ github.event_name }} event." - run: echo "🐧 This job is now running on a ${{ runner.os }} server hosted by GitHub!" - run: echo "🔎 The name of your branch is ${{ github.ref }} and your repository is ${{ github.repository }}." - name: Check out repository code uses: actions/checkout@v4 - run: echo "💡 The ${{ github.repository }} repository has been cloned to the runner." - run: echo "🖥️ The workflow is now ready to test your code on the runner." - name: List files in the repository run: | ls ${{ github.workspace }} - run: echo "🍏 This job's status is ${{ job.status }}." 将 YAML 文件提交到 Repo 将工作流文件提交到您的分支 ...

October 19, 2024 · 2 min · 249 words · Justin Hu

如何创建自签名SSL证书

SSL证书 在当今网络犯罪变得越来越普遍的数字环境中,保护您的网站或应用程序变得越来越重要。 实现安全性的一种常见方法是通过加密。 对称和非对称加密在密码学领域已得到深入研究,并广泛应用于业界以帮助保护数字系统。 SSL 证书建立在非对称加密之上,通常用于通过确保客户端和 Web 服务器之间传输的数据经过加密来保护网站安全,从而保证数据的私密性和安全性。 企业、组织和开发人员通常从充当互联网信任源的公共CA(证书颁发机构)获取SSL证书。 在某些情况下,例如测试、学习、开发或内部目的,可能需要创建自签名 SSL 证书。 本文作为如何使用OpenSSL生成自签名SSL证书的简单指南。 分步指南 1: 安装OpenSSL 互联网上有大量有关如何安装 OpenSSL 的信息。 对于基于 Ubuntu 或 Debian 的系统: 1 sudo apt install openssl 对于基于 CentOS、Fedora 或 RHEL 的系统: 1 sudo yum install openssl 对于MacOS 1 brew install openssl 2: 生成私钥 1 openssl genrsa -out test.key 2048 运行命令生成 2048 位 RSA 私钥(将 test.key 替换为您的文件名): 1 2 3 4 Generating RSA private key, 2048 bit long modulus (2 primes) ..............+++++ .............+++++ e is 65537 (0x010001) 3: 创建证书签名请求 证书签名请求 (CSR) 包含有关您的应用程序和组织的所有信息。 然后可以使用 CSR 来生成 SSL 证书。 ...

January 28, 2024 · 2 min · 337 words · Justin Hu

FastAPI 初探

What is FastAPI? According to its official website, FastAPI is a modern, fast (high-performance), web framework for building APIs with Python 3.8+ based on standard Python type hints. Hello World with FastAPI Installation Requirements Python3.8+ Install FastAPI 1 pip install fastapi Install ASGI Server 1 pip install "uvicorn[standard]" Define a FastAPI app Create a file main.py with: 1 2 3 4 5 from typing import Union from fastapi import FastAPI app = FastAPI() Create API Endpoints In main.py add the following 2 endpoints implementation ...

December 1, 2023 · 2 min · 415 words · Justin Hu

Apache Kafka以及与RabbitMQ的比较

本站的所有文章都默认为英文,中文版本由Google Translate 翻译。 由于时间限制,并非所有文章都有中文版本。 Kafka介绍 Apache Kafka 现在在我的工作中大量使用。 因此,我认为写一篇关于它的帖子会很有用和有帮助。 Kafka 是一个事件流平台。 Apache Kafka 定义事件流如下: 从技术上讲,事件流是以事件流的形式从数据库、传感器、移动设备、云服务和软件应用程序等事件源实时捕获数据的实践; 持久存储这些事件流以供以后检索; 实时和回顾性地操纵、处理和响应事件流; 并根据需要将事件流路由到不同的目标 技术。 因此,事件流可确保数据的连续流动和解释,从而使正确的信息在正确的时间出现在正确的位置。 Kafka安装和Hello World 关于如何在其他系统上安装和运行Kafka,请参考官方文档: https://kafka.apache.org/quickstart 我正在使用 Mac。 Homebrew 是一个非常好的工具,可以在 Mac 上安装和管理包,与 Ubuntu 上的 apt-get 非常相似。 MacOS 上的 Appstore 对于普通用户来说安装、升级、更新应用已经足够了,但是对于开发者来说绝对不够用。 老实说,我认为 Apple 应该收购 Homebrew 并将其集成到 MacOS 中。 安装Java 1 2 brew install java java --version 安装Kafka 1 brew install kafka 启动ZooKeeper 打开一个新的终端,运行命令启动 ZooKeeper,因为 Kafka 利用 ZooKeeper 来管理集群。 1 zookeeper-server-start /usr/local/etc/kafka/zookeeper.properties 启动Kafka 注意: 编辑/usr/local/etc/kafka/server.properties,将listeners改为listeners=PLAINTEXT://localhost:9092 ...

December 23, 2022 · 2 min · 258 words · Justin Hu