Bài đăng

Test coverage trong python flask.

Hình ảnh
Viết unit test là công đoạn mà developer nào cũng phải làm, unit test dùng để kiểm tra code của bạn viết có làm việc như mong đợi hay không ?  Flask cung cấp một bộ test dưới trình máy khách để  request lên ứng dụng và trả về một dữ liệu.  Bạn phải test code nhiều nhất có thể, trong trường hợp có nhiều nhánh trong lệnh if bạn phải đảm bảo các nhánh if đã được test khi các điều kiện được match.  100% coverage không có nghĩa là đảm bảo ứng dụng của bạn không có bug. Trong flask thông thường bạn sử dụng thư viện pytest và coverage, cài đặt nó: $ pip install pytest coverage Thiết lập: Tạo một folder test, và trong folder này có file : conftest.py; file này chứa những hàm  fixtures    Mỗi test sẽ tạo ra một database file và có vài thông tin trong nó:  INSERT INTO user ( username , password ) VALUES ( 'test' , 'pbkdf2:sha256:50000$TCI4GzcX$0de171a4f4dac32e3364c7ddc7c14f3e2fa61f2d17574483f7ffbb431b4acb2f' ), ( 'other' , 'pbkdf2:sha256:50000$kJPKsz6N$d2

Autoscaling with Kinesis

Hình ảnh

Phiên bản kubernetes version 1.21 ra đời ngày 08 tháng 04 năm 2021

 Phiên bản kubernetes version 1.21 ra đời ngày 08 tháng 04 năm 2021 Một số nâng cấp và thay đổi trong phiên bản kubernetes version 1.21.  Tính năng cronjob từ bảng thử trở thành tính năng chính thức sau một thời gian là bảng beta.  Feature Secrets và ConfigMaps sẽ không thay đổi sau khi bạn tạo, muốn thay đổi các giá trị trong feature này thì phải tạo mới.  - Sự thay đổi này làm cho hệ thống scale hơn như Kubernetes thông báo vì API Server sẽ không cần phải lấy lại thông tin sau khi bạn thay đổi các giá trị tài nguyên trong Secrets và ConfigMaps.  Kubernetes v1.21 hỗ trợ IP version 4 và IP version 6.  Shutdown worker node một các có hệ thống, như các phiên bản trước thì tính năng này không có nên khi một node đột ngột shutdown thì pod không được shutdown một cách có hệ thống và tuần tự.  Khi tính năng này ra đời làm cho các pod shotdown có hệ thống và tuần tự nên không gây nên những vấn đề trong workload.  Giám sát PV, Kubenetes v1.21 có tính năng alpha là giám sát health của Persis

Môt số operation trong pyspark RDD

 Trong RDD viết tắt bởi  Resilient Distributed Dataset  pyspark có một số operation chú ý và RDDs là những thành phần không thể thay đổi được, chúng được thực thi trên đa node và thực thi một cách song song parrallel.  1. Count() - đếm.  - Số lượng đơn vị element trong RDD trả về. Ví dụ:  ----------------------------------------count.py--------------------------------------- from pyspark import SparkContext sc = SparkContext("local", "count app") words = sc.parallelize ( ["scala", "java", "hadoop", "spark", "akka", "spark vs hadoop", "pyspark", "pyspark and spark"] ) counts = words.count() print "Number of elements in RDD -> %i" % (counts) ----------------------------------------count.py--------------------------------------- và khi chaỵ thì output ra:  Number of elements in RDD → 8.   2. Collect() - Tất cả các thành phần trong RDD được trả về

Ví dụ đơn giản về Spark script

 Hôm này đụng lại Spark trong việc xử lý data transformation.  Bài này nói về  tổng quan về Spark API, spark được xây dựng trên nền tảng distributed datasets. Nó chứa đựng các đối tượng tùy ý. Bạn tạo một dataset từ dữ liệu ngoài, rồi áp nó vào xử lý theo chế độ đồng thời nhiều luồng parallel. Các block của Spark được gọi là RDD(Resilient Distributed Datasets) API, trong RDD API có 2 kiểu xử lý là : transformations và actions  - Transformations: là những dataset được định nghĩa dựa trên các dataset trước đó. Một vài transformation trên RDD là : flatMap(), map(), reduceKey(), filter() và sortByKey() - Actions: là khởi đầu thực thi 1 job trong cluster. Một vài actions trên RDD là:   count(), collect(), first(), max(), reduce() và ... Ở high-level RDD API nó cung cấp : DataFrame API và Machine Learning API.  Sử dụng hàm createDataFrame() val data = Seq ( ( 'James' , '' , 'Smith' , '1991-04-01' , 'M' , 3000 ) , ( 'Michael' , 'Rose