Luyện thi AWS SAP C01 – triển khai và vận hành

Luyện thi AWS SAP C01 – triển khai và vận hành
Photo by Colossus Cloud from Pixabay

Đây là memo về deployment & operation (triển khai và vận hành) trong quá trình học và thi chứng chỉ AWS. Nó là memo nên sẽ ở dạng note nhanh, không trình bày được đầy đủ, văn vẻ. Nội dung memo này dựa trên các thông tin học được, có thể đã outdate. Thông tin mới nhất luôn ở trên trang chủ của AWS

Types of deployment

img
  • Big Bang:
    • Mọi thứ sẽ go live 1 lần
    • Rủi ro lớn nhất
  • Phased Rollout:
    • Từ từ hơn
    • Ít rủi ro nhưng mất thời gian
  • Parallel Adoption:
    • Phát triển mới + duy trì cũ
    • Mất thời gian
    • Vẫn còn rủi ro do phải duy trì dữ liệu đồng bộ giữa hai hệ thống

=> Nghiên cứu kỹ hơn phương pháp phased rollout, nhiều ưu điểm + support bởi AWS

Rolling Deployment

img

A/B Testing

img

Canary Release

img

Blue/green deployment

img
  • Mục tiêu của blue/green deployment là đạt được hạ tầng bất biến, bạn không thể thay đổi ứng dụng sau khi nó deploy, mà sẽ deploy lại toàn bộ
  • Phương pháp
    • Update DNS với Route 53 trỏ tới ELB hoặc instance mới
    • Tráo đổi auto scaling group có sẵn instance version mới sau ELB
    • Thay đổi auto scaling group launch configuration để sử dụng AMI version mới và tắt instance cũ
    • Tráo đổi URL môi trường của Elastic Beanstalk
    • Clone stack trong AWS OpsWorks và update DNS
  • Chống chỉ định
    • Data schema gắn chặt với sự thay đổi code
    • Quá trình nâng cấp yêu cầu hoạt động đặc biệt trong khi deployment
    • Sản phẩm off-the-shelf: sản phẩm đóng gói đưa đến cho lượng lớn khách hàng với format giống nhau

Continuous Integration và Continuous Deployment

  • Continuous Integration
    • Merge code vào nhánh chính thường xuyên nhất có thể với test tự động
  • Continuous Delivery
    • Tự động hoá release process và có thể deploy bằng click button
  • Continuous Deployment
    • Mỗi lần thay đổi code pass mọi bước trong release process sẽ được release lên production và không cần thao tác con người
img
  • CI/CD
    • Mục tiêu là tạo các cải tiến và tính năng nhỏ, tăng dần, ngăn cách
    • Giảm deployment risk và cố gắng hạn chết ảnh hưởng xấu
    • Test tự động phải rất mạnh
    • Feature toggle pattern rất hữu dụng để đối phó với những tính năng đang xử lý, chưa sẵn sàng release (so với cách phân nhánh truyền thống)
    • Microservice rất tốt cho CI/CD

Development Lifecycle Tools

img

Elastic Beanstalk

  • Service dàn dựng (orchestration) để dễ dàng (push-button) deploy scalable web
  • Hỗ trợ rất nhiều platform – Docker, PHP, Java, Node.js
  • Nhiều môi trường ứng dụng (Dev, QA, Prod)
  • Tuyệt với nếu cần sự đơn giản deployment, không tốt nếu cần nhiều kiểm soát và mềm dẻo
img

Elastic Beanstalk Deployment Options

img

CloudFormation

  • Infrastructure as Code
  • Sử dụng JSON/YAML, có thể model và provision toàn bộ
  • Có thể lặp lại, tự động deployment và rollback
  • Các component chung lồng nhau để tái sử dụng
  • Hỗ trợ trên 300 resource type (Service)
  • Hỗ trợ custom resource thông qua SNS và Lambda

Resource Types

img

Concepts

  • Template: JSON/YAML file chứa hướng dẫn để build môi trường AWS
  • Stack: Toàn bộ môi trường được mô tả trong template và được tạo ra, update, delete như một đơn vị
  • Change set: Tổng hợp những thay đổi được đề xuất tới stack, cho phép nhìn những thay đổi này ảnh hưởng đến tài nguyên hiện tại trước khi cài đặt

Template sample

img

Stack Policies

  • Bảo vệ tài nguyên nhất định trong stack khỏi việc update/xoá không cố ý
  • Khi tạo stack thì có thể thêm stack policy qua console hoặc cli
  • stack đã tồn tại chỉ có thể thêm thông qua cli
  • Khi áp dụng, stack policy không xoá được, nhưng có thể sửa thông qua cli
  • Default sẽ chặn mọi thứ nên cần allow rõ ràng
img

Ví dụ

img

Best practice

  • AWS cung cấp Python helper script có thể sử dụng để cài đặt phần mềm hoặc start service trên EC2 instance
  • Sử dụng CloudFormation để thay đổi toàn bộ stack thay vì thao tác trực tiếp với từng resource
  • Sử dụng change set để xác định vấn đề tiềm ấn trong update
  • Sử dụng Stack Policy để bảo vệ những phần nhạy cảm
  • Sử dụng version control system (CodeCommit, Github) để theo dõi thay đổi

Elastic Container Service

img

Launch types

img

API Gateway

  • Được quản lý, high availability cho front-end API
  • Phía sau là custom code thông qua Lambda, làm proxy cho AWS dịch vụ khác hoặc HTTP API khác trên AWS hoặc chỗ khác
  • Dựa trên region, tối ưu cho private hoặc edge (deploy qua CloudFront)
  • Hỗ trợ API Key và Usage Plan cho định danh người dùng, throttling hoặc quản lý quota
  • Sử dụng CloudFront behind the scene và custom domain và SNI cũng được hỗ trợ
  • Có thể publish làm sản phẩm và kiếm tiền trên AWS Marketplace
img

Management Tools

AWS Config

  • Cho phép thẩm định, audit, đánh giá cấu hình của AWS Resource
  • Rất hữu tích để quản lý cấu hình trong ITIL
  • Tạo baseline cho rất nhiều setting và file cấu hình, sau đó theo dõi biến thể so với baseline
  • AWS Config Rule có thể kiểm tra tài nguyên cho một điều kiện nhất định và nếu có vi phạm tài nguyên được đánh dấu là không tuân thủ
  • Một số config rule
    • backup có được enable trên RDS?
    • CloudTrail được enable cho AWS Account?
    • EBS Volume có được mã hoá

AWS OpsWorks

  • Quản lý instance của Chef và Puppet – 2 platform tự động phổ biến
  • Cung cấp việc quản lý cấu hình để deploy code, tự động hoá tác vụ, cấu hình instance, upgrade, v.v..
  • Cung cấp:
    • OpsWorks for Chef Automate
    • OpsWorks for Puppet Enterprise
    • OpsWorks Stack
  • OpsWorks for Chef Automate và Puppet Enterprise là cài đặt được quản lý đầy đủ của mỗi platform
  • OpsWorks Stack là do AWS tạo và sử dụng embedded Chef solo client cài đặt trên EC2 instance và chạy Chef recipes
  • OpsWorks Stack hỗ trợ EC2 instance và on-premise server
  • OpsWorks Stack
    • Là một tập hợp các tài nguyên cần để hỗ trợ 1 service hoặc ứng dụng
    • Layer đại diện cho các thành phần của ứng dụng trong phân cấp (data, middleware, v.v…)
    • EC2 instance, RDS instance, ELB là các ví dụ của layer
    • Stack có thể clone nhưng trong cùng region
    • OpsWorks là dịch vụ global, nhưng khi tạo stack phải chỉ định region

AWS System Manager

  • Console tập trung và toolset cho các tác vụ quản lý hệ thống đa dạng
  • Thiết kế để quản lý hệ thống lớn – hàng chục, hàng trăm
  • SSM Agent enable các tính năng System Manager và hỗ trợ moi OS kể cả Windows Server 2003 và Raspbian
  • SSM Agent được cài đặt mặc định trong những AMI cho Linux và Windows của AWS gần đây
  • Quản lý hệ thống trên AWS và on-premise thông qua agent
img
img

Patch Manager Baseline

img

AWS System Manager Document

  • định nghĩa action mà system manager sẽ thực hiện
  • JSON hoặc YAML
  • Lưu version và có thể chia sẻ
img

Business Application and End-User Computing

img

WorkSpaces và AppStream

img
  • Được quản lý đầy đủ, Desktop as a service (WorkSpaces) và application hosting (AppStream)
  • Mọi thứ trên hạ tầng AWS và được quản lý và kiểm soát chặt chẽ
  • Use Case: Các ngành quy định cao khi bảo mật được quan tâm. Có thể sử dụng để giữ tất cả data trong VPC được bảo vệ tách khỏi local PC
  • Use Case: Nhân viên remote hoặc làm việc theo mùa ví dụ call center phân tán. Cung cấp nhân viên một virtual desktop hoặc hosted application và để họ sử dụng PC của mình
  • Use Case: Cho phép khách hàng demo sản phẩm mà không cho họ download và cài đặt

Amazon Connect và Amazon Chime

  • Connect:
    • contact center trên cloud, được quản lý đầy đủ, có thể cấu hình xử lý cuộc gọi, inbound, outbound, interactive voice response, chatbot và analytics
    • Có thể tích hợp với ứng dụng doanh nghiệp khác ví dụ Customer Relationship Management (CRM)
  • Chime:
    • Online meeting và video conferencing
    • Hỗ trợ tính năng hội nghị thông thường như desktop sharing, group chat, session recording

WorkDocs và WorkMail

  • WorkDocs
    • Lưu trữ và cộng tại document online
    • Hỗ trợ quản lý version, chia sẻ tài liệu và hợp tác edit
  • WorkMail
    • Dịch vụ email và calendar được quản lý đầy đủ
    • Tương thích với Microsoft Exchange, IMAP, mail client trên Android/iOS
  • Worklink
    • Cung cấp truy cập bảo mật vào ứng dụng web nội bộ cho thiết bị di động
    • Khi người dùng di động request app, nó được render trong máy bảo mật và image được gửi đến mobile client
  • Alexa for Business
    • Triển khai Alexa cho nội bộ doanh nghiệp
    • Tính năng quản lý phù hợp với tổ chức doanh nghiệp hơn so với việc mua và triển khai thiết bị Alex

AWS Machine Learning Landscape

img

Comprehend

  • Dịch vụ xử lý ngôn ngữ tự nhiên (NLP) tìm insight và mối quan hệ trong text
  • Phân tích ý kiến trên social media

Forecast

  • Kết hợp dữ liệu time-series với các biến khác để đưa ra dự đoán gần đúng
  • Dự đoán nhu cầu theo mùa cho một màu áo nào đó

Lex

  • Xây dựng giao diện giao tiếp được, có thể hiểu bối ảnh, dụng ý của lời nói tự nhiên
  • Xây dựng chatbot chăm sóc khách hàng có thể tự động xử lý các yêu cầu

Personalize

  • Engine recommend dựa trên nhân khẩu học và dữ liệu hành vi
  • Cung cấp sản phẩm upsell tiềm tàng ở bước checkout trong giao dịch web

Polly

  • Dịch vụ text-to-speech hỗ trợ nhiều ngôn ngữ, accent, voice
  • Cung cấp phản hồi giọng nói với các cuộc gọi

Rekognition

  • Phân tích hình ảnh/video và nhận diện đối tượng, người, hành vi và biểu cảm mặt
  • Cung cấp dạng khác cho nhận dạng nhân viên thông qua nhận diện khuân mặt

Textract

  • trích xuất text, context, metadata từ tài liệu scan
  • Tự động số hoá và xử lý giấy tờ vật lý

Transcribe

  • Dịch vụ speech-to-text
  • Tự động tạo transcript của presentation được ghi

Translate

  • Dịch text từ nhiều ngôn ngữ khác nhau
  • Tự động tạo nôi dung web dựa trên vị trí địa lý của người dùng

Tôi xin lỗi nếu bài viết có bất kỳ typo nào. Nếu bạn nhận thấy điều gì bất thường, xin hãy cho tôi biết.

Nếu có bất điều gì muốn nói, bạn có thể liên hệ với tôi qua các mạng xã hội, tạo discussion hoặc report issue trên Github.