Giaosucan's blog - Chia sẻ kiến thức theo cách bá đạo

Ticker

20/recent/ticker-posts

Sự tích về Platform ENGINEERING - Part 1


Platform Engineering | Wichon

Câu chuyện về mô hình DevOps truyền thống

Ngày xửa ngày xưa, ở 1 công ty nọ, có một đội DevOps/SRE gồm 10 chú phục vụ cho một dự án tầm 80 người, gồm đủ loại thành phần từ Dev/QA/SDET. Hàng ngày, team nhận ticket từ Jira

Hello CICD, mọi người deploy cho mình version 1.x.x nha, ticket đây ạ
Alo cả nhà ơi, build cho mình branch XXX-123, chiều này team QA cần chạy regression test ạ
Có ai rảnh không, provision cho team Dev server trên AWS, team cần test bản code mới ạ
OK con dê, anh team lead assign ticket cho mấy thanh niên trong team. Daily stanup,
Ticket đã assign, mọi người upate status hàng ngày
EZ man, anh cứ để em.
Ku DevOps A, mở Jenkins, chạy pipeline build, chọn branch, trigger. Pipeline chạy phè phè, maven build, scan Sonar Quebe, Snyk security, Unit Test, upload artifact lên JFrog. Ngon lành cành đào, ticket done trong vòng một nốt nhạc
Chú SRE B, bật Spinnaker, run CD pipeline, provision fleet of EC2, VPC, S3 blo bla, môi trường provisioning lên AWS căng đét
Cuộc sống cứ lặng lẽ trôi qua, mỗi ngày lại ngày bình thường như cân đường hộp sữa, cho đến một ngày
Business phát triển, team ngày một đông, code update liên tục daily, tester làm việc như chong chóng
Ê CICD, deploy gấp cho tao bản 2.x.x phát, 1h sau tao test, bà QA leader réo
Có cái infra AWS làm éo gì mà provision lâu thế, block task team tao rồi, anh team lead Dev chửi
Code branch XXX build xong chưa, éo thấy trên artifact, làm chậm như rùa.
DCM, Vlxxx, javahay.tv
Tiếng chửi rủa vang lên trong khoang làm việc, complaint esclated lên manager. Team bị bắt phải giải trình. Anh Lead DevOps akay quá chửi
DM, team có 10 thằng mà task một đống, gánh sao được, mày giỏi nhào vô làm
Bọn tao có biết Jenkins, Spinnaker, Terraform là cái gì đâu mà làm, làm được thì cần DevOps làm gì
Anh Lead chột dạ, đúng mẹ rồi, phải có một cái tool/platform nào đó GUI thân thiện để các team khác tự build/deploy thì mới release được effort của DevOps
Và từ đó người ta nghĩ ra một khái niệm mới Platform engineering

Platform engineering

Diagram of Platform Engineering
Khái niệm này lên Google có đầy, còn giải thích theo kiểu giaosucan’s blog thì đơn giản thế này
Thay vì DevOps phải trực tiếp build code, deploy theo cách truyền thống, họ sẽ tự phát triển một platform riêng, có GUI friendly, đảm bảo người dùng non-tech vẫn hiểu, user chỉ việc nhập thông tin trên GUI, rồi click chuột là platform sẽ tự build, code deploy, provision infra. Platform này được gọi là Internal Developer Portal (IDP). Behind the scence của IDP vẫn là những công cụ DevOps truyền thống như CICD (Jenkins, Gitlab), Source (Github), IaC (terraform), nhưng IDP sẽ là một asbtract layer phía trên, cho phép người dùng tương tác với phần core DevOps phía dưới mà ko cần care Jenkins, IaC là cái gì. Miễn là output OK là xong

Từ ngày có IDP, thì mấy anh DevOps khoẻ, không cần phải làm ticket deploy, build nữa, vì việc này đã trao lại cho chính Developer, Dev tự code. push lên Git rồi dùng IDP để spin up resource, deploy app, QA nhẩy vào test, rollback version cũ. Mọi thứ hoàn toàn tự động, theo nguyên tắc. Mày code thì mày tự run/deploy đi, gọi là tự phục vụ đi.
3_panes_of_glass.png
Mội IDP bao gồm

Infrastructure orchestration
Application configuration
Deployment management
Environment management
RBAC

Kiến trúc của IDP

Platform Engineer sẽ căn cứ vào nhu cầu của user (Dev/QA) để phát triển những tính năng mới trên IDP. Ví dụ anh Dev muốn GUI tạo một infra có EC2, RDS, ALB thì Platform engineer sẽ implement IDP để giải quyết user story đó, chính xác là viết code terraform, với các tham số được user nhập trên GUI, rồi khi click apply là chạy terraform code behind the scene
IDP hiện tại cũng có nhiều trong đó có một nền tảng tôi đang nghiên cứu đó là backstage, một IDP do spotify phát triển

Backstage Software Catalog : quản lý microservices, libraries, data pipelines, websites, và các ML models.
Backstage Software Templates : hỗ trợ khởi tạo các project 1 cách nhanh chóng và tiện lợi.
Backstage TechDocs : tự động tạo document cho project

Từ ngày có IDP, team DevOps khoẻ re, việc build/deploy được bàn giao lại cho Dev/QA, các thanh niên chỉ ngồi lo maintain hệ thống, monitor, implement các chức năng mới. Và từ đó mô hình DevOps/SRE truyền thống được chuyển dần sang khái niệm mới Platform Engineering. Xu hướng này đã được một số công ty lớn áp dụng, thay thế dần SRE/DevOps truyền thống.

Từ ngày rảnh task, mấy anh DevOps giờ lên công ty chỉ uống cafe, xem vlxxx, thỉnh thoảng có issue IDP thì nhẩy vô fix, số lượng ticket giảm hẳn, không gian khoang làm việc trở nên yên ắng, chỉ có tiếng muỗi kêu và tiếng rên nhè nhẹ của mấy em QA. Anh Lead lo lắng lắm

Platform Engineering ra đời thì mấy chú DevOps chắc mất việc mất

Liệu điều này có xảy ra, đón đọc phần tiếp theo

Đăng nhận xét

0 Nhận xét