S'S ALGORITHM

SDLC(软件开发生命周期,Software Development Life Cycle)是指软件开发过程中涉及的一系列步骤和阶段。每个阶段都有特定的活动和产出,旨在确保软件项目按时、高质量地交付。典型的SDLC阶段包括:

  1. 需求分析(Requirements Analysis):收集和分析用户需求,确定系统功能和性能要求。
  2. 系统设计(System Design):设计系统架构和详细设计,定义软件组件和接口。
  3. 实现(Implementation):编写代码,将设计转化为实际的软件产品。
  4. 测试(Testing):进行各种测试(单元测试、集成测试、系统测试、验收测试)以确保软件的质量和功能。
  5. 部署(Deployment):将软件部署到生产环境,使其可供用户使用。
  6. 维护(Maintenance):修复缺陷、进行改进和升级,以确保软件的长期稳定和性能。

不同的软件开发方法(如瀑布模型、敏捷开发、DevOps)可能会有不同的阶段和流程,但核心的SDLC概念在大多数方法中都是一致的。

DevOps是一种结合了软件开发(Development)和IT运维(Operations)的实践和文化,旨在通过更紧密的协作和自动化工具来提高软件交付速度和质量。DevOps的核心理念包括以下几个方面:

  1. 持续集成和持续交付(CI/CD)
    • 持续集成(Continuous Integration, CI):开发人员频繁地将代码更改合并到主分支,并通过自动化构建和测试来确保代码质量。
    • 持续交付(Continuous Delivery, CD):在持续集成的基础上,代码更改在经过自动化测试后,可以随时部署到生产环境。
  2. 自动化
    • 使用自动化工具和脚本来减少人为错误,提高效率。包括自动化的构建、测试、部署和监控。
  3. 协作与沟通
    • 打破开发和运维之间的壁垒,促进团队之间的协作和沟通。通常通过使用跨职能团队来实现这一目标。
  4. 监控与反馈
    • 实时监控系统性能和用户反馈,快速响应和解决问题。利用日志分析、性能监控工具等来获得持续的反馈。
  5. 基础设施即代码(Infrastructure as Code, IaC)
    • 使用代码来管理和配置基础设施,使其可以像应用代码一样进行版本控制和自动化部署。
  6. 文化转变
    • 鼓励一种共享责任和持续改进的文化。开发人员和运维人员共同负责系统的稳定性和性能。

为了实现这些目标,DevOps使用一系列工具来自动化和简化流程,包括但不限于:

SDLC Automation

CI/CD in AWS

CodeCommit -> Github

CodePipeline

CodeBuild

CodeDeploy

CodeArtifact

CodeGuru

EC2 Image Builder

AWS Amplify

Configuration & Management & LaC

CloudFormation

Service Catalog

Elastic Beanstalk

SAM(Serverless Application Model)

CDK(Cloud Development Kit)

Step Functions(base on data engineer note)

AppConfig

System Manager

Resilient Cloud Solution

Lambda

API Gateway

ECS

EKS

Amazon Fargate work with ECS/EKS

ECR

ECS/EKS Anywhere

Kinesis

参照Data Engineer部分的Kinesis全部内容!和devops的内容基本一致

Route53

也可参考高级网络笔记,这里只记录重点记忆点!

RDS Read Replicas & Multi-AZ

Aurora

ElastiCache

DynamoDB

Data Engineer 中记录的更详细!这里关注devops的重点!

DMS

S3 Replication

Storage Gateway

Auto Scaling

ELB

NAT Gateway

Monitoring & Logging

Cloud Watch

Athena

Incident & Event Response

EventBridge

S3相关

Health Dashboard

EC2 instance status check

CloudTrail

参考安全专家内容

DLQ of SQS

X-RAY

Security & Compliance

全部服务参照安全专家,包括如下重点服务:这里只记录自我简单总结

AWS Config

AWS Organization

Control Tower

IAM Identity Center(SSO)

External IdP(外部身份提供者)指的是一个管理用户身份和认证的第三方服务。例如,Google、Microsoft Azure Active Directory(AD)和Okta等都是常见的身份提供者,它们可以帮助组织管理用户身份和访问权限,而不需要组织自己维护所有的用户账户信息。

在AWS(Amazon Web Services)中,AWS Identity Center(之前称为AWS Single Sign-On,SSO)支持与外部身份提供者集成,以实现统一的身份管理和单点登录。以下是AWS Identity Center如何为外部身份提供者认证的基本流程:

  1. 配置身份提供者:首先,你需要在AWS Identity Center中配置外部身份提供者的连接。这通常包括输入外部身份提供者的相关信息,如其元数据文件、SAML端点URL等。

  2. 设置SAML(安全断言标记语言)或OIDC(开放ID连接):AWS Identity Center支持通过SAML 2.0或OIDC协议与外部身份提供者进行集成。这些协议使得AWS Identity Center能够与外部身份提供者交换认证信息。

  3. 用户登录:当用户尝试访问AWS服务时,他们会被重定向到外部身份提供者进行认证。这是通过SAML或OIDC协议的单点登录(SSO)实现的。

  4. 身份验证:用户在外部身份提供者那里输入凭据并完成认证后,外部身份提供者会生成一个认证令牌或断言,并将其发送回AWS Identity Center。

  5. 获取访问权限:AWS Identity Center解析认证断言或令牌,验证用户的身份,并根据预配置的访问权限授予用户对AWS资源的访问权限。

  6. 单点登录:一旦认证通过,用户可以无缝访问AWS资源,无需再次登录。

这种集成的主要好处是简化了用户管理和访问控制,同时确保了统一的身份认证和安全策略。如果组织已经使用了外部身份提供者进行身份管理,通过AWS Identity Center集成可以大大提高效率,并确保一致的用户体验。

WAF

AWS Firewall Manager

GuardDuty

Detective

Inspector

Trusted Advisor

Secrets Manager