Prévia do material em texto
DevOps Engineer Learning Plan (Partner) Getting Started with DevOps on AWS AWS Cloud9 is Amazon's cloud-based IDE, which you can use to write, run, and debug your code with just a browser. You can use AWS Cloud9 to make code changes in a CodeCommit repository. You can also use AWS Cloud9 with the AWS specific software development kits (SDKs). Getting Started with AWS CloudFormation The cost structure of CloudFormation is simple. CloudFormation is free for managing AWS resources. You are only charged for the resources you create and the API calls that CloudFormation performs on your behalf. Text-based (JSON or YAML). Resources – Any of the things you can create within AWS, which includes things like Amazon Simple Storage Service (Amazon S3) buckets, Amazon Elastic Compute Cloud (Amazon EC2) instances, or Amazon Simple Queue Service (Amazon SQS) queues. Templates – Text-based (JSON or YAML) descriptions of CloudFormation stacks that you can use to define all of your resources, including which resources depend on each other. Stack – A collection of AWS resources that you can manage as a single unit. StackSet – A named set of stacks that use the same template, but applied across different accounts and Regions. You can create, update, or delete stacks across multiple accounts and Regions with a single operation. Introduction to AWS Elastic Beanstalk Create a CI/CD pipeline to deploy your app to AWS Fargate Sem acesso AWS Partner: Containers on AWS (Technical) Microservices Microservice architectures decouple, or deconstruct, application components by separating them into independent services. Each service runs its own processes and communicates through APIs, both externally and with other microservice-based components in that same application. Containers provide process isolation that makes it easy to break apart and run applications as small, independently scalable components. Modern applications Modern applications are distributed, cloud-native, and built with microservices. A modern application can scale quickly to millions of users, provide global availability, manage petabytes (and potentially exabytes) of data, and respond in milliseconds. Applications built with microservices speed up the release of feature enhancements because changes to individual components are easier to make. Modern applications are built with a combination of new architecture patterns, operational models, and software delivery processes. Your customers need to adopt methods to make individual microservices into a sustainable, automated chain. DevOps DevOps—a set of practices that automates the processes between software development and operations teams—can help customers to build, test, and release software faster and more reliably. DevOps combines cultural philosophies, practices, and tools that increase the ability to deliver applications at a faster pace than organizations using traditional software development and infrastructure management processes. CI/CD Now your customers have individual components (microservices) and can run them in isolation (containers) using an automated process (DevOps). In a microservices architecture, teams are organized around a single service, with each team releasing updates independently. How can your customers rapidly build, test, and release code while minimizing errors? CI/CD enables customers to standardize the infrastructure and automate the DevOps processes. Code templates allow your customers to implement and maintain CI/CD pipelines, enabling identical staging, test, and development environments, and ensuring that teams meet central security requirements. AWS Solutions Training for Partners: Containers on AWS (Technical) N/A AWS Partner: Containers on AWS (Technical) To simplify communication between nodes, Amazon EKS uses the Amazon VPC Container Networking Interface (CNI) plugin for Kubernetes to integrate Amazon VPC networking into Kubernetes. A service provides a constant IP and port as an entry point to a group of pods. Each service has an IP address and port that doesn’t change while the service exists. Internal or external clients can reach out to an application running in a group of pods by connecting to the service IP and port. Those connections are then routed to one of the pods backing that service. Amazon EKS supports the Network Load Balancer through the Kubernetes service type LoadBalancer. The LoadBalancer service type extends the NodePort service by adding a LoadBalancer in front of all nodes. AWS Observability One of the most common questions asked by CloudWatch users is the difference between observability and monitoring. Monitoring is a subset of observability, and you will often see monitoring, tracing, and logging described as the three pillars of observability. However, other tools help you achieve observability, such as code profilers and artificial intelligence for IT operations (AIOps). This course will focus on monitoring, tracing, and logging. The default namespace for metrics collected by the CloudWatch agent is CWAgent. Unless you have a good reason to change this, you should keep this default namespace as the configured namespace for CloudWatch agent metrics so that it works with other services, such as Compute Optimizer. Metrics are uniquely defined by a name, a namespace, and zero or more dimensions. Each data point in a metric has a time stamp and a unit of measure (optional). You can retrieve statistics from CloudWatch for any metric. State Manager, a capability of AWS Systems Manager State Manager, is a secure and scalable configuration management service. It automates the process of keeping your Amazon EC2 and hybrid infrastructure in a state you define. With Systems Manager, you can control configuration details, such as servers configurations, antivirus definitions, firewall settings, and more. Synthetic transactions using CloudWatch Synthetics are useful for testing functionality and performance, particularly when there is little or no usage of your application. However, CloudWatch RUM cannot consider all the variables involved in a user’s interaction with your application, such as location, browser, and connectivity. AWS Cloud Development Kit (CDK) Primer AWS Cloud Development Kit (AWS CDK) is an open-source software development framework for defining cloud infrastructure as code. Using AWS CloudFormation, AWS CDK then provisions the cloud infrastructure resources with the help of command line tools. AWS CloudFormation templates are used to create the cloud infrastructure. AWS CDK then uses the templates to create cloud infrastructure. AWS CDK also enables developers to use common code-development practices by offering tools to check for potential problems, identify code differences, and bootstrapping resources needed for deployment. Constructs are the basic building blocks of AWS CDK apps. A construct represents a cloud component and encapsulates everything that AWS CloudFormation needs to create the component. A construct can represent a single cloud resource (such as an AWS Lambda function), or it can represent a higher-level component consisting of multiple AWS CDK resources. AWS CDK includes the AWS Construct Library, which contains constructs representing Amazon Web Services (AWS) resources. This library includes constructs that represent all the resources available on AWS. Stacks are a unit of deployment in AWS CDK. All AWS resources defined within the scope of a stack, directly or indirectly, are provisioned as a single unit. Because AWS CDK stacks are implemented through AWS CloudFormation stacks, they have the same limitations. You can define any number of stacks in an AWS CDK app. Your CDK application is an app, and is represented by the AWS CDK App class. To provision infrastructure resources, all constructs that represent AWS resources must be defined, directly or indirectly, within the scope of a stack construct. The AWS Construct library is divided into modules, one for each AWS service. For example,if you want to define an Amazon VPC, use ec2.CfnVPC. When you create an Amazon VPC construct using the AWS CloudFormation Resource construct, the process is similar to working with AWS CloudFormation. Advanced Testing Practices Using AWS DevOps Tools Code standards are technical definitions and guidelines for developers that help establish the technical requirements for the code, and practices that all members of the team will follow. There are two methodologies used in software development projects: Test-driven development (TDD) and Behavior-driven development (BDD). In place deployment: The application on each instance is stopped, the latest application revision is installed, and the new version of the application is started and validated. Only deployments that use the Amazon EC2 or on-premises compute platform can use in-place deployments. Blue/green deployment: A blue/green deployment is used to update your applications while minimizing interruptions caused by the changes of a new application version. CodeDeploy provisions your new application version alongside the old version before rerouting your production traffic. This means during deployment, you’ll have two versions of your application running at the same time. image1.png image2.png image3.png