与下文创建API作为代码(Terraft)和无服务器(Lambda + Python) - 第2部分CI/CD
#aws #python #cloudnative #terraform
GitHub Repository

连续集成和连续部署

持续集成和连续部署(CI/CD)是现代软件开发的基本实践。它们允许设备自动化和优化应用程序的构建,测试和实施过程,减少手动努力并确保更多的玫瑰和可靠发射。

Terraform Apply

Circlei

Circlei是一个CI/CD平台,可自动化并加快应用程序的施工过程,测试和部署。它提供了可扩展且灵活的基础架构,以在云中执行CI/CD工作流程。与Jenkins及其相关的基础结构的配置相比,Circlei的配置和使用更简单。此外,Circlei免费提供主要特征,还包括配置手动批准的选项,在其他平台(例如GitHub Actions)上。


- plan-apply:
    filters:
     branches:
      only:
        - main
- hold-apply:
    type: approval
    requires:
      - plan-apply
- apply:
    requires:
      - hold-apply

实施手动批准,这是实施的最重要,最重要的特征之一。

CircleCI

lambda层

代码必须在Python文件夹中

Layers

例如,如果我们要使用请求书店,我们可以或将所有整个软件包安装在同一文件夹中,或者更好地将图层放置在共享代码中。

Terraform Layers

好的做法

  1. 在软件存储库中不要长时间维护分支(勇敢)。建议全天与主分支(主要)集成。
  2. 版本整个代码和基础架构。保持足够的版本控制帮助,以监视和手势更改。
  3. 定期执行统一和集成测试以在置信度生产中释放软件。
  4. 实施适当的安全措施,例如身份验证和授权,以保护您的未经授权的访问API。
  5. 使用监视工具(例如Elk stack)来收集和分析真实的时间性能数据。
  6. 使用Swagger或Postman等工具生成交互式文档,以促进您的API消耗。
  7. 最小化特权并安全保存用于显示基础结构的凭据。

安全

在Amazon API网关上,您可以配置速度对等聚件(限制速率)以按时间间隔限制请求数,并避免使用API​​时滥用。此外,您可以在

中启用身份验证选项

API网关,作为基于API密钥,授权令牌或与IAM Cognito AWS或自定义服务等身份供应商集成的身份验证,以确保只有授权的用户才能访问API及其受保护的资源。这些速度和身份验证的度量共同为API的访问和使用提供了安全和控制。

当前可以在没有任何验证的情况下进行呼叫,只是知道端点。

http "$(terraform output -raw base_url)/hello"

远程状态

在上一篇文章中,我们将Terraform状态文件留在本地世界之外。理想情况下,所有更改都必须从服务器执行,控制粒度并保存所有更改。因此,我们将使用Terraft Cloud从另一个环境进行配置和安全处理所有内容,而无需处理状态文件。

Terraform云提供了诸如基础架构状态的集中管理,计划和应用程序的远程执行以及更改和通知的注册,以维持对基础架构中修改的明确监控。

Resources

结论

自动化,诸如服务(SaaS),人工智能和其他技术之类的软件平台正在促进越来越多的良好实践框架内的应用程序。但是,发展过程仍然是一个人类的问题,心态和专业精神使我们能够达到更高的卓越水平。

重要的是要强调,软件开发和交付过程中最大的问题是组织和人员。最后,构建应用程序是一项社会活动,但是我们解决了多少技术问题和沟通越好,到达生产就应该越多。费利兹编码! ð

如果您喜欢这些文章,请访问我的博客jorgetovar.dev