2. WE WANT TO HEAR FROM YOU
CONTACT DETAILS
Tel.: +84 966.027.391
Mail: anhdmt@relipasoft.com
BKHN-K54
We’d love to hear from you!
CONNECT WITH ME ON
https://www.facebook.com/S.Foolish.S.Hungry
4. - SẾP BẢO LÀM, KHÔNG ĐƯỢC THÌ NGHỈ VIỆC ĐI !
- EM LÀM VÌ ĐAM MÊ (?)
5.
6. WHAT
TỐC ĐỘ PHẢN HỒI
PERFORMANCE
KHẢ NĂNG HOẠT ĐỘNG
AVAILABILITY
KHẢ NĂNG MỞ RỘNG
SCALABILITY
Tốc độ phản hồi của hệ thống, được đo
bằng đơn vị thời gian, có thể là giây
hoặc mili giây. Hệ thống hoạt động
càng nhanh thì người dùng làm được
nhiều việc hơn, đem lại lợi nhuận cao
hơn
Chỉ khả năng hoạt động của hệ thống
vào mọi thời điểm, được đo bằng
uptime. Ví dụ như trong 100 ngày, hệ
thống hoạt động 99 ngày còn 1 ngày
die thì uptime là 99/100 = 99%
Khả năng mở rộng của hệ thống. Liệu khi có
đông user hơn thì hệ thống có thể mở rộng
(scale) được không? Việc scale có thể thực
hiện dễ dàng, nhanh chóng hay không? Chi
phí scale như thế nào?
7. ĐẢM BẢO PERFOMANCE
CÂN BẰNG TẢI
LOAD BALANCER
Thiết bị (phần cứng hoặc phần mềm)
cho phép cân bằng tải đến nhiều
server.
CACHING
Tăng tốc độ đọc dữ liệu, bằng cách lưu
dữ liệu sẵn vào cache server để tăng
tốc độ đọc ở những lần sau.
CONTENT DELIVERY NETWORK
CDN
Mạng lưới các server được phân bố
trên nhiều khu vực
8. ĐẢM BẢO AVAILABILITY
MASTER/SLAVE
Thay vì chỉ chạy 1 server, ta chạy 2
hoặc nhiều hơn. 1 server chính gọi
là master, các server còn lại là
slave. Khi master có vấn đề (sập
nguồn hay crash), một slave sẽ
được chỉ định để lên thay thế
master.
REPLICATION
Thường được kết hợp chung với
Load Balancer. Code của ứng dụng
sẽ được deploy lên nhiều server.
Khi có 1 server die, load balancer
sẽ chuyển request sang server
khác, đảm bảo request vẫn được
thực hiện.
9. ĐẢM BẢO SCALABILITY
VERTICAL SCALING
Tăng sức mạnh phần cứng cho server
bằng cách… lắm thêm RAM, lắm thêm
chip, thay ổ cứng bằng ổ SSD.
STATELESS
Với application server (server chứa
code) cần đảm bảo code ở server là
stateless (không lưu trạng thái)
HORIZONTAL SCALING
Thay vì tăng sức mạnh cho 1 server, ta
thêm nhiều server vào hệ thống và
chạy cùng lúc.
SHARDING
Chia database thành các mẫu shard
nhỏ (theo IP, theo địa điểm vật lý của
người dùng,…)
10.
11. AWS NÓI GÌ ?
COST
AWS nói “bạn chỉ trả những gì mà bạn sử dụng”
KHÔNG CÒN LO LẮNG VỀ CAPACITY
Không cần phải dự đoán trước capacity của hệ
thống, bạn có thể dễ dàng stop các service idle, hoặc
start các service nhanh chóng nếu có sự gia tăng đột
biến.
KHẢ NĂNG SCALE
Scale là yêu cầu tối thiểu của 1 hệ thống Cloud, đáp
ứng nhu cầu mở rộng liên tục và dễ dàng
NHANH CHÓNG VÀ TỐC ĐỘ
Trong môi trường cloud, IT member chỉ cần click
trong vài phút để đáp ứng nhu cầu của công ty thay
vì mất vài tuần để chuẩn bị hạ tầng.
GIẢM THIỂU CHI PHÍ RUNNING &
MAINTAINING DATA CENTER
Cloud giúp cho bạn tập trung đáp ứng vào yêu cầu
của khách hàng (end-user) thay vì tập trung vào các
vấn đề của Server.
GO GLOBAL TRONG VÀI PHÚT
Chỉ bằng vài click, bạn có thể release 1 service ra
internet với độ trể thấp, hạ tầng ổn định & tối ưu
cost
16. Elastic Load Balancer
Cân Bằng Tải là việc phân bố đồng đều lưu lượng truy cập giữa hai hay nhiều các máy chủ
có cùng chức năng trong cùng một hệ thống. Bằng cách đó, sẽ giúp cho hệ thống giảm
thiểu tối đa tình trạng một máy chủ bị quá tải và ngưng hoạt động. hoặc khi một máy chủ
gặp sự cố, cân bằng tải sẽ chỉ đạo phân phối công việc của máy chủ đó cho các máy chủ
còn lại, đẩy thời gian uptime của hệ thống lên cao nhất và cải thiện năng suất hoạt động
tổng thể
17. Xây dựng một Elastic Load Balancer
Giả sử mình đã có 2 instances chạy 2 web
app đơn giản như sau
Mình sẽ tạo một load balancer để cân bằng
tải giữa 2 máy đó
25. • Là công cụ mã nguồn mở dùng để quản lý cài
đặt, cấu hình hệ thống một cách tập trung và
cho phép thực thi câu lệnh điều khiển.
• Sử dụng SSH (hoặc Powershell) và các module
được viết bằng ngôn ngữ Python để điểu
khiển hệ thống.
• Sử dụng định dạng JSON để hiển thị thông tin
và sử dụng YAML (Yet Another Markup
Language) để xây dựng cấu trúc mô tả hệ
thống
https://www.ansible.com/
26. • Việc triển khai và quản lý servers một
cách đáng tin cậy và hiểu quả không phải
là một công việc đơn giản
• Các quản trị viên thường phải quản lý
servers một cách thủ công từ những
công việc như cài đặt phần mềm, thay
đổi cấu hình và quản lý các services
• Với các hệ thống phức tạp với hàng trăm
servers, việc quản lý như vậy là không
hiểu quả (nêu không muốn nói là không
thể) và thường gây ra lỗi.
27. § Clear & Simple :
§ Dễ viết
§ Dễ học
§ Không yêu cầu viết code
§ ....
§ Secure: Ansible sử dụng SSH để
quản lý các hosts.
TẠI SAO LẠI SỬ DỤNG ANSIBLE ?
30. AUTO SCALING
Phương pháp giúp tự động mở rộng hoặc giảm thiểu số lượng các
tài nguyên máy tính được phân phối cho ứng dụng vào bất kỳ thời
điểm nào theo nhu cầu sử dụng.
31. ƯU ĐIỂM CỦA AUTO SCALING
• Tiết kiệm tiền điện,
chi phí vận hành
• Chi phí thấp
• Đảm bảo UPTIME • Tính sẵn sàng cao
32. CÁC PHƯƠNG PHÁP AUTO SCALING PHỔ BIẾN
Số lượng công
việc đang chờ
Mở rộng dựa trên
số lượng yêu cầu đến
Thời gian công việc
chờ xử lý
34. ELASTIC BEANSTALK
AWS Elastic Beanstalk là dịch vụ dễ sử
dụng, dùng để triển khai và mở rộng các
ứng dụng web và dịch vụ được phát triển
trên các máy chủ quen thuộc như Apache,
Nginx, Passenger với Java, .NET, PHP,
Node.js, Python, Ruby, Go và Docker , và IIS.
Bạn chỉ cần upload project của mình lên và
Elastic Beanstalk tự động xử lý việc triển
khai, từ việc cung cấp dung lượng, cân bằng
tải, tự động mở rộng theo dõi tình trạng
ứng dụng. Đồng thời, bạn vẫn giữ toàn
quyền kiểm soát các tài nguyên AWS cung
cấp cho ứng dụng của bạn và có thể truy
cập các tài nguyên cơ bản bất cứ lúc nào.
44. CONTENT DELIVERY
NETWORK
Mạng lưới gồm nhiều Server được triển khai tại nhiều Data center
khác nhau. Mục tiêu của CDN là phục vụ User với tính sẵn sàng và
ổn định cao. Ngày nay, CDN được dùng để phân phối nội dung rất
phổ biến, với nhiều loại nội dung khác nhau, bao gồm Web (chữ,
hình ảnh và script), các đối tượng có thể download được (Media
file, software, tài liệu), Ứng dụng, live-stream media, và cả mạng
xã hội
45.
46. Tăng tốc độ tải của hệ thống
Tăng tính bảo mật
Chống DDOS
Caching, tiết kiệm băng thông
Tăng tính ổn định của hệ thống
53. CACHING
q Cải thiện tốc độ, các yêu cầu gần như có thể đáp ứng tức
thời.
q Giảm thiểu băng thông, giảm thiểu hoạt động mạng bị lặp lại
nhiều lần không cần thiết.
q Tăng hiệu suất phần cứng, tăng hiệu suất, giảm thiểu các xử
lý phải thông qua CPU.
q Đáp ứng nhu cầu truy cập khi mạng bị gián đoạn.
q Đáp ứng lưu lượng truy cập lớn
10x
59. Tình nghĩa đôi ta chỉ thế thôi
STATELESS
Tình anh vẫn trao về em
STATEFUL
Stateless là thiết kế không lưu dữ liệu của client trên server. Có
nghĩa là sau khi client gửi dữ liệu lên server, server thực thi xong,
trả kết quả thì “quan hệ” giữa client và server bị “cắt đứt” – server
không lưu bất cứ dữ liệu gì của client
Stateful là một thiết kế ngược lại, chúng ta cần server lưu dữ liệu
của client, điều đó đồng nghĩa với việc ràng buộc giữa client và
server vẫn được giữ sau mỗi request (yêu cầu) của client. Data
được lưu lại phía server có thể làm input parameters cho lần kế
tiếp
66. Sharding là một tiến trình lưu giữ các bản ghi dữ liệu qua
nhiều thiết bị để đáp ứng yêu cầu về sự gia tăng dữ liệu.
Khi kích cỡ của dữ liệu tăng lên, một thiết bị đơn ( 1
database hay 1 bảng) không thể đủ để lưu giữ dữ liệu.
Sharding giải quyết vấn đề này với việc mở rộng phạm vi
theo bề ngang (horizontal scaling). Với Sharding, bạn bổ
sung thêm nhiều thiết bị để hỗ trợ cho việc gia tăng dữ
liệu và các yêu cầu của các hoạt động đọc và ghi