Chuyện của sys

DevOps Blog

Tối ưu hệ thống để tăng performance cho Elasticsearch trên Centos 7 May 27, 2018

Sau bài hướng dẫn cài đặt và cấu hình cơ bản, chúng ta tiếp tục đi tới phần nâng cao để có 1 hệ thống Elasticsearch đáp ứng được performance tốt hơn, bài viết này cóp nhặt với nhiều nguồn khác nhau, hi vọng giúp bạn có thêm những cách tối ưu cho hệ thống đang chạy của bạn.
1. Tăng số lượng file descriptors lên 64K
vi /etc/security/limits.conf
elasticsearch – nofile 65536
elasticsearch – memlock unlimited
su – elasticsearch
ulimit -n
65536
ulimit -l
unlimited
2. Tăng virtual memory
Elasticsearch sử dụng thư mục mmapfs theo mặc định để lưu trữ các chỉ số của nó. Giới hạn hệ điều hành mặc định về số lượng mmap có thể quá thấp, điều này có thể dẫn đến các lỗi của bộ nhớ. Vì vậy ta có thể tăng số lượng lên bằng câu lệnh sau trên Centos 7.
sysctl -w vm.max_map_count=262144
vm.max_map_count = 262144
3. Tắt swap
Mặc định thì hệ điều hành Centos 7 để swappiness bằng 30, tuy nhiên để tối ưu cho Elasticsearch hoàn toàn không sử dụng swap nên chúng ta sẽ tắt nó đi.
sysctl vm.swappiness=0
vm.swappiness = 0
4. Tối ưu config/jvm.options
Chúng ta luôn set giá trị min và max JVM heap size bằng nhau, thường ở mức 1/2 tổng bộ nhớ RAM physical, tối đa không vượt quá 30.5GB

## IMPORTANT: JVM heap size
################################################################
##
## You should always set the min and max JVM heap
## size to the same value. For example, to set
## the heap to 4 GB, set:
##
## -Xms4g
## -Xmx4g
##
## See https://www.elastic.co/guide/en/elasticsearch/reference/current/heap-size.html
## for more information
##

Cấu hình GC, log4j cũng ở trong config này, ( cái này expert quá nên mình chưa thử)
5. Cấu hình Elasticsearch 
vi config/elasticsearch.yml
Lock toàn bộ memory khi khởi động
bootstrap.mlockall: true

# Lock the memory on startup:
#
#bootstrap.memory_lock: true
#
# Make sure that the heap size is set to about half the memory available
# on the system and that the owner of the process is allowed to use this
# limit.
#
# Elasticsearch performs poorly when the system is swapping the memory.
#

Một số cấu hình khác:
“indices.memory.index_buffer_size”: “30%”
“index.translog.flush_threshold_ops”: 50000
“index.refresh_interval”: “5s”
“index.store.type”: “mmapfs”
Trên đây là 1 số cấu hình cần được tối ưu để chạy Elasticsearch, hi vọng có thể giúp bạn lúc bắt đầu, tuy nhiên, có thể 1 số cấu hình không được chính xác và mang tính chủ quan, hi vọng được sự góp ý của các bạn.
 

1 Comment on Tối ưu hệ thống để tăng performance cho Elasticsearch trên Centos 7
Categories: Tài liệu

Hướng dẫn cài đặt và cấu hình Elasticsearch trên Centos 7

Giới thiệu
Elasticsearch là một phần mềm mã nguồn mở và miễn phí  của Elastic, dựa trên Apache Lucene, là platform được sử dụng cho việc phân phối tìm kiếm và phân tích dữ liệu trong thời gian thực, được sử dụng rộng rãi do tính dễ sử dụng, tính năng mạnh mẽ và khả năng mở rộng tốt, bạn có thể sử dụng các phương thức HTTP để giao tiếp qua RESTful để thao tác với dữ liệu, thân thiện với người sử dụng cũng như các nhà phát triển.
Elasticsearch được sử dụng rộng rãi cho các dự án cá nhân cũng như là search engine chính trong các công ty lớn.
Tuy có rất nhiều bài viết, tutorial đề cập tới việc hướng dẫn cài đặt cũng như cấu hình, nhưng hi vọng bài viết này sẽ cung cấp cho bạn 1 cách chi tiết và trọn vẹn nhất để thực hiện trên bản Centos 7 và Elasticsearch phiên bản mới nhất 6.2
Các bước cài đặt
1. Cài đặt Java 8
Do Elasticsearch được viết bằng Java nên bạn cần có 1 JRE để chạy nó, ở đây mình sử dụng JDK 8 bản update 171 mới nhất.
Link download:

wget http://download.oracle.com/otn-pub/java/jdk/8u171-b11/512cd62ec5174c3487ac17c61aaa89e8/jdk-8u171-linux-x64.tar.gz
tar -xvzf jdk-8u171-linux-x64.tar.gz
mv jdk1.8.0_171 /opt/

Cấu hình biến môi trường cho toàn bộ user:

vi /etc/profile
export JAVA_HOME=/opt/jdk1.8.0_171
export PATH=$PATH:$JAVA_HOME/bin
. /etc/profile

Verify:
java -version
java version “1.8.0_171”
Java(TM) SE Runtime Environment (build 1.8.0_171-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.171-b11, mixed mode)
2. Download và cài đặt Elasticsearch
 
Vào trang chủ https://www.elastic.co/downloads và download bản mới nhất hiện tại là 6.2.4

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.2.4.tar.gz
tar -xvzf elasticsearch-6.2.4.tar.gz
mv elasticsearch-6.2.4 /data/elastic/elasticsearch

Tạo user elasticsearch và thư mục /data/elatic/

adduser elasticsearch
chown -R elasticsearch. /data/elastic/
su – elasticsearch
cd /data/elastic/elasticsearch/

Cấu trúc thư mục như sau:

ls
bin lib logs NOTICE.txt README.textile
config LICENSE.txt modules plugins

3. Cấu hình Elasticsearch
Các file cấu hình cần chú ý:

ls config/
elasticsearch.yml jvm.options log4j2.properties

Bạn có thể sửa lại theo ý mình cho các file config này, nếu không cần thiết thì để nguyên và thực hiện sau trong phần tunning cho Elasticsearch.
Khởi chạy Elasticsearch

./bin/elasticsearch

Sample output:
[2018-05-28T02:56:03,739][INFO ][o.e.n.Node ] [] initializing …
[2018-05-28T02:56:03,846][INFO ][o.e.e.NodeEnvironment ] [zqsXYde] using [1] data paths, mounts [[/ (rootfs)]], net usable_space [10.4gb], net total_space [17.4gb], types [rootfs]
[2018-05-28T02:56:03,846][INFO ][o.e.e.NodeEnvironment ] [zqsXYde] heap size [1007.3mb], compressed ordinary object pointers [true]
[2018-05-28T02:56:03,850][INFO ][o.e.n.Node ] node name [zqsXYde] derived from node ID [zqsXYdeEQ8ifax0sYq72gg]; set [node.name] to override
[2018-05-28T02:56:03,850][INFO ][o.e.n.Node ] version[6.2.4], pid[1624], build[ccec39f/2018-04-12T20:37:28.497551Z], OS[Linux/3.10.0-693.5.2.el7.x86_64/amd64], JVM[Oracle Corporation/Java HotSpot(TM) 64-Bit Server VM/1.8.0_171/25.171-b11]
[2018-05-28T02:56:03,851][INFO ][o.e.n.Node ] JVM arguments [-Xms1g, -Xmx1g, -XX:+UseConcMarkSweepGC, -XX:CMSInitiatingOccupancyFraction=75, -XX:+UseCMSInitiatingOccupancyOnly, -XX:+AlwaysPreTouch, -Xss1m, -Djava.awt.headless=true, -Dfile.encoding=UTF-8, -Djna.nosys=true, -XX:-OmitStackTraceInFastThrow, -Dio.netty.noUnsafe=true, -Dio.netty.noKeySetOptimization=true, -Dio.netty.recycler.maxCapacityPerThread=0, -Dlog4j.shutdownHookEnabled=false, -Dlog4j2.disable.jmx=true, -Djava.io.tmpdir=/tmp/elasticsearch.BOVwKawi, -XX:+HeapDumpOnOutOfMemoryError, -XX:+PrintGCDetails, -XX:+PrintGCDateStamps, -XX:+PrintTenuringDistribution, -XX:+PrintGCApplicationStoppedTime, -Xloggc:logs/gc.log, -XX:+UseGCLogFileRotation, -XX:NumberOfGCLogFiles=32, -XX:GCLogFileSize=64m, -Des.path.home=/data/elastic/elasticsearch, -Des.path.conf=/data/elastic/elasticsearch/config]
….
[2018-05-28T02:56:09,185][INFO ][o.e.t.TransportService ] [zqsXYde] publish_address {127.0.0.1:9300}, bound_addresses {[::1]:9300}, {127.0.0.1:9300}
[2018-05-28T02:56:09,200][WARN ][o.e.b.BootstrapChecks ] [zqsXYde] max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
[2018-05-28T02:56:09,201][WARN ][o.e.b.BootstrapChecks ] [zqsXYde] max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
[2018-05-28T02:56:12,290][INFO ][o.e.c.s.MasterService ] [zqsXYde] zen-disco-elected-as-master ([0] nodes joined), reason: new_master {zqsXYde}{zqsXYdeEQ8ifax0sYq72gg}{3MVumgkjQGK04HXp82FPCA}{127.0.0.1}{127.0.0.1:9300}
[2018-05-28T02:56:12,311][INFO ][o.e.c.s.ClusterApplierService] [zqsXYde] new_master {zqsXYde}{zqsXYdeEQ8ifax0sYq72gg}{3MVumgkjQGK04HXp82FPCA}{127.0.0.1}{127.0.0.1:9300}, reason: apply cluster state (from master [master {zqsXYde}{zqsXYdeEQ8ifax0sYq72gg}{3MVumgkjQGK04HXp82FPCA}{127.0.0.1}{127.0.0.1:9300} committed version [1] source [zen-disco-elected-as-master ([0] nodes joined)]])
[2018-05-28T02:56:12,361][INFO ][o.e.g.GatewayService ] [zqsXYde] recovered [0] indices into cluster_state
[2018-05-28T02:56:12,368][INFO ][o.e.h.n.Netty4HttpServerTransport] [zqsXYde] publish_address {127.0.0.1:9200}, bound_addresses {[::1]:9200}, {127.0.0.1:9200}
[2018-05-28T02:56:12,368][INFO ][o.e.n.Node ] [zqsXYde] started
Trong output trên có warning những thứ cần phải tunning cho phù hợp, mình sẽ đề cập ở bài viết sau.
4. Kiểm tra hoạt động
Ctrl + Z để thoát và bg để chạy backgroud

^Z
[1]+ Stopped ./bin/elasticsearch
bg
[1]+ ./bin/elasticsearch &

Verify process đang chạy:

ps aux |grep elastic |grep java
elastic+ 1624 11.3 66.0 3626528 1233032 pts/0 Sl 02:55 0:20 /opt/jdk1.8.0_171/bin/java -Xms1g -Xmx1g -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -XX:+AlwaysPreTouch -Xss1m -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djna.nosys=true -XX:-OmitStackTraceInFastThrow -Dio.netty.noUnsafe=true -Dio.netty.noKeySetOptimization=true -Dio.netty.recycler.maxCapacityPerThread=0 -Dlog4j.shutdownHookEnabled=false -Dlog4j2.disable.jmx=true -Djava.io.tmpdir=/tmp/elasticsearch.BOVwKawi -XX:+HeapDumpOnOutOfMemoryError -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintTenuringDistribution -XX:+PrintGCApplicationStoppedTime -Xloggc:logs/gc.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=32 -XX:GCLogFileSize=64m -Des.path.home=/data/elastic/elasticsearch -Des.path.conf=/data/elastic/elasticsearch/config -cp /data/elastic/elasticsearch/lib/* org.elasticsearch.bootstrap.Elasticsearch

Verify port đang lắng nghe

netstat -aonp |grep java |grep 9*00
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
tcp6 0 0 127.0.0.1:9200 :::* LISTEN 1624/java off (0.00/0/0)
tcp6 0 0 ::1:9200 :::* LISTEN 1624/java off (0.00/0/0)
tcp6 0 0 127.0.0.1:9300 :::* LISTEN 1624/java off (0.00/0/0)
tcp6 0 0 ::1:9300 :::* LISTEN 1624/java off (0.00/0/0)

Bằng HTTP

curl -X GET ‘http://localhost:9200’
{
“name” : “zqsXYde”,
“cluster_name” : “elasticsearch”,
“cluster_uuid” : “jvbM2A4XRhmYoDgD_tmzSg”,
“version” : {
“number” : “6.2.4”,
“build_hash” : “ccec39f”,
“build_date” : “2018-04-12T20:37:28.497551Z”,
“build_snapshot” : false,
“lucene_version” : “7.2.1”,
“minimum_wire_compatibility_version” : “5.6.0”,
“minimum_index_compatibility_version” : “5.0.0”
},
“tagline” : “You Know, for Search”
}

Testing:
Thử POST 1 document
curl -X POST -H ‘Content-Type: application/json’ ‘http://localhost:9200/chuyencuasys/elastic_note/1’ -d ‘{ “message”: “Hello World!” }’
[2018-05-28T03:04:24,379][INFO ][o.e.c.m.MetaDataCreateIndexService] [zqsXYde] [chuyencuasys] creating index, cause [auto(bulk api)], templates [], shards [5]/[1], mappings []
[2018-05-28T03:04:24,814][INFO ][o.e.c.m.MetaDataMappingService] [zqsXYde] [chuyencuasys/tpb7MoIpRSqLobimaUFVZg] create_mapping [elastic_note]
{“_index”:”chuyencuasys”,”_type”:”elastic_note”,”_id”:”1″,”_version”:1,”result”:”created”,”_shards”:{“total”:2,”successful”:1,”failed”:0},”_seq_no”:0,”_primary_term”:1}
Sau đó GET:
curl -X GET ‘http://localhost:9200/chuyencuasys/elastic_note/1’
{“_index”:”chuyencuasys”,”_type”:”elastic_note”,”_id”:”1″,”_version”:1,”found”:true,”_source”:{ “message”: “Hello World!” }}
View cho dễ nhìn hơn với pretty
curl -X GET ‘http://localhost:9200/chuyencuasys/elastic_note/1?pretty’
{
“_index” : “chuyencuasys”,
“_type” : “elastic_note”,
“_id” : “1”,
“_version” : 1,
“found” : true,
“_source” : {
“message” : “Hello World!”
}
}
Như vậy là chúng ta đã xong phần cơ bản với cài đặt và cấu hình Elasticsearch, rất đơn giản và dễ hiểu phải không nào? Phần tiếp theo mình sẽ viết thêm về tunning và cấu hình nâng cao, cũng như một số thành phần có liên quan để xây dựng 1 hệ sản phẩm Elastic.

No Comments on Hướng dẫn cài đặt và cấu hình Elasticsearch trên Centos 7

Tôi đã pass vị trí System Engineer tại Zalo như nào ? Part 3 May 26, 2018

Khó khăn mới bắt đầu ?

“Chặng đường nào trải bước trên hoa hồng bàn chân cũng thấm đau vì những mũi gai”
Series bài viết này cũng như một hồi kí mà tôi muốn nhắc mình phải cố gắng hơn thế cố gắng không ngừng nghỉ để phát triển mình hơn không được chùn bước với bất kì lí do gì .
Dạo gần đây bắt đầu công việc khi mới vào làm khá là nhiều và phải học nhiều thứ nên hôm nay mới có thời gian để lên đây viết vài lời tâm sự cùng anh em :))
Tiếp tục với câu chuyện ở Part2 khi mới bắt đầu tiếp xúc với linux …
Trước đó khoảng 1 năm sau khi sếp mình giao task nghiên cứu về mail ZIMBRA thì mình đã tiếp xúc với linux và có tham gia 1 số cộng đồng mã nguồn mở lên đó nghe ngóng tình hình rồi thấy ai làm gì hay hay thì mình cũng mày mò tự cài đặt những service đơn giản trên linux như DNS , DHCP , APACHE , NGINX , PHP , MYSQL …
Lúc bấy giờ thì chưa biết gì cả chỉ step by step search ở mạng rồi làm theo nhưng khi cài được 1 service nó chạy thì vui lắm cứ thế dần dần nó thành thói quen rồi khi có bug thì bắt đầu search hỏi rồi dần dần skill linux của mình cũng đỡ đỡ hơn rồi sau đó bắt đầu cài những service phức tạp hơn như NAGIOS , ZABBIX , REVERSE PROXY , HAPROXY …
Đặc biệt sau đó mình làm mail và ở đây là ZIMBRA mình tìm hiểu cái này cũng phải hơn 1 năm , khi làm mail ZIMBRA này mình quen rất nhiều anh em bạn bè tốt ở mọi miền họ đã giúp đỡ mình rất nhiều trong kỹ thuật cũng như là cuộc sống , mình rất biết ơn những người đã giúp đỡ mình trong những bước đi đầu đời bởi nếu không gặp được họ liệu rằng mình sẽ không thể đi nhanh và xa như vậy.
Việc làm một hệ thống mail rất phức tạp đặc biệt là làm sao để mail khi build không bị spam , không bị vào junk , hệ thống backup mailbox cũng như HA hệ thống … Mình đã biết khái niệm thế nào là SPF , DKIM , DRMAC , PTR cách gỡ spam , cách xử lí khi bị spam , thế nào là muilt server zimbra , HA , cluster hệ thống … những việc này tăng cho mình kinh nghiệm rất nhiều trong việc quản trị linux .
Vậy đó mình đã tiếp xúc với linux như vậy hãy cứ làm việc mà mình thích làm những cái nhỏ nhất rồi từ từ các bạn sẽ thấy những chuyện này chẳng nhỏ chút nào . Mình có nghe ai đó nói 1 câu rằng “Tìm cho mình một công việc yêu thích, và rồi bạn sẽ chẳng phải làm việc thêm bất cứ một ngày nào nữa.
Thôi lan man đến đây coi như là hồi kí sau này đọc lại tự cảm thấy mình đã cố gắng như nào Part sau mình sẽ viết cho các bạn mình đã chuẩn bị CV như nào gửi cho ZALO , rồi được gọi phỏng vấn và phỏng vấn với các anh làm việc ở ZALO như nào . Chào các bạn mình viết report cuối tuần đây , chúc các bạn cuối tuần vui vẻ .

No Comments on Tôi đã pass vị trí System Engineer tại Zalo như nào ? Part 3
Categories: Linh tinh

Tôi đã pass vị trí System Engineer tại Zalo như nào ? Part 2 May 20, 2018

Mọi chuyện đã diễn biến ra sao vỡ mộng thế nào ?

Lúc bấy giờ khi còn là một sinh viên khi đã học cho mình xong CCNA cứ tưởng rằng khi ra đi làm sẽ được ngồi cấu hình những thiết bị Cisco , Juniper … nhưng các bạn sẽ không biết ngày đầu tiên mình đi làm công việc của mình như thế nào đâu ?
Hôm đó mình vẫn nhớ như in năm 2015 hồi tháng 11 cuối đông ở Đà Nẵng , tối hôm đó mình nhận được tin nhắn của anh ” Sáng mai 8h tới nhà anh đi cùng anh có việc nha em ” đúng thật là hôm đó mình ngủ không được cảm giác nửa lo nửa sợ không biết có làm được không ? mãi đến 2 3h sáng mới ngủ được .
Sáng hôm sau tôi tới nhà anh gọi điện cho anh tầm 10p thì anh ra cùng trên người là một balo và một hộp chứa thiết bị và lên đường ( Lúc bấy giờ tôi cũng chưa hiểu việc gì xảy ra ? ).
Tôi và anh cùng nhau đi trên con đường biển chạy về hướng Hội An tầm 20km thì dùng tại 1 nhà máy may công nghiệp khá là lớn . Đến nơi tôi cùng anh làm giấy tờ rồi đi vào trong và task đầu tiên trong nghề này của tôi là phải leo thang kiểm tra tính hiệu cable của một số camera trong nhà máy .
Sau những lần đó là tôi và anh có khi một mình tôi đi làm về việc những kiểu triển khai camera,hệ thống báo cháy,thi công mạng cho toà nhà…Rồi từ đó kĩ năng của tôi được nâng cao lên rất là nhiều ví dụ như ( Nối điện, bấm cáp,leo thang , đục tường , khoan nền , thi công cáp , trám xi măng … ) Vì trước đó tôi không hề biết làm những công việc trên bởi thửa nhỏ được mẹ rất là cưng chiều .
Nhưng tôi học được gì ? Được thực hành được làm thực tế nối cáp , bấm cáp , được tự tay cấu hình camera các loại , được tự tay thực hành cơ chế NAT khi còn học CCNA trong các router của nhà mạng ( TP-Link ,ZTE,GPON…), được cấu hình cho một thiết bị router có thể connect internet , được vọc các thiết bị báo động , biết được chia IP thực tế sẽ như nào , biết được những thủ thuật thi công mạng ( Dùng rệp để đấu nối cable , dùng chì để nối cable , dùng đèn thông mạch để đo tín hiệu mạng đã thông mạng  ) , cách xử lí tình huống , cách tư duy trong lúc làm việc , cách mà các bạn nói chuyện với khác hàng …
Nhưng đặc biệt nhất trong khi làm việc vẫn là được quen biết những người anh , những người thầy trong nghề mà sau này đã cho tôi những định hướng và giúp đỡ tôi cực kì nhiều để tôi có thể có được những bước chuyển mình đúng đắn trong nghề này .
Đấy những công việc trên tôi đã làm suốt gần nửa năm , một buổi chiều tôi với anh đi làm về rồi anh rủ mình đi đến quán cháo lòng ở đường Hoàng Hoa Thám =)) . Trong lúc ăn cùng nhau thì tôi có nói với anh.
Tôi: ” Anh à , anh có định hướng gì cho em không chứ em thấy làm như này hoài cũng không ổn lắm ? ”
Anh: ” Sắp tới anh cũng có định hướng triển khai một số hệ thống mail cho khách hàng ở Đà Nẵng không biết em có tìm hiểu gì nó chưa ? Anh có một người bạn mà chỉ triển khai hệ thống mail zimbra thôi mà nuôi cả công ty ở Hà Nội đấy .
Tôi: “Dạ vậy anh cứ giao cho em đi để em tìm hiểu thêm”
Anh:”OK vậy em về cài centos 6 rồi cài mail zimbra lên nhé ”
Tôi:”Dạ vâng OK anh ạ”
….
Và rồi trong lúc cài mail zimbra tôi đã quen những người anh mà sau này có sức ảnh hưởng đến tôi đến tận bây giờ …
Nhưng mình mới thi MARX-LENIN tốt nghiệp về nên hơi mệt cần được ngủ nên hẹn các bạn ở bài viết sau tôi sẽ nói thêm và nhiều hơn về tôi việc đã tiếp xúc với linux như thế nào ?  và chọn nó là con đường đi của mình cho đến tận bây giờ .
Câu nói mình dành tặng cho các bạn ở cuối bài viết này là : “Hãy làm gì đó đi ? Phải làm thì mới biết các bạn muốn gì và thích gì “

2 Comments on Tôi đã pass vị trí System Engineer tại Zalo như nào ? Part 2
Categories: Linh tinh

Tôi đã pass vị trí System Engineer tại Zalo như nào ? Part 1 May 17, 2018

Đây là một trải nghiệm rất tuyệt vời và tôi cảm thấy may mắn rằng nỗ lực của mình đã được đền đáp. Do vậy, tôi quyết định viết thứ gì đó về nó. Tôi sẽ chia sẻ với bạn về cách tôi đã chuẩn bị những gì, trước khi tôi bắt đầu đủ tự tin để nộp CV vào Zalo với vị trí System Engineer.

Mọi chuyện bắt đầu như thế nào?

Tôi hiện tại một sinh viên năm cuối của một trường đại học tư thục về công nghệ thông tin ở Đà Nẵng , ngược dòng xa xôi một chút về những ngày đầu tiên khi bắt đầu vào trường đại học tất cả các kiến thức về chuyên ngành được nhét vào đầu cùng một lúc C, C++, Java, OSI , TCP/IP… Chưa kể những môn đại cương lý hóa lịch sử bla bla … Làm cho tôi cảm thấy rối và không biết đang lạc ở đâu trong thế giới này , các bạn biết rồi đấy khi ngồi trên ghế nhà trường thì chỉ được học những kiến thức cơ bản nhất và cũng sẽ chẳng các thầy cô giáo cầm tay chỉ việc cho các bạn về bất cứ vấn đề gì đâu nên các bạn cứ yên tâm mà tự học nhé .
Được giác ngộ và cảnh tỉnh sớm về việc ở trên vì vậy khi còn là sinh viên năm 2 tôi đã quyết định đi học 1 khóa CCNA tại một trung tâm duy nhất lúc bấy giờ ở Đà Nẵng , trong quá trình đi học có tầm 10 thành viên thì mình là người nhỏ tuổi nhất còn lại toàn những anh chị 8x đời đầu cũng có đời cuối cũng có 9x đời đầu cũng có luôn =))  làm cho mình cảm thấy khá là ngạc nhiên lẽ nào mình học nhầm lớp rồi sao .
Nhưng trong quá trình học thì mình cảm thấy được dạy những kiến thức cơ bản nhất về network (OSI, TCP/IP, Route , NAT …) hiểu rõ hơn về mô hình mạng của một doanh nghiệp nhỏ vừa hoạt động như nào ? và đây cũng là những bước đi đầu tiên trong con đường trở thành một System Engineer .
Sau khi hoàn tất khóa học thì mình nhận được một lời mời về làm việc tại công ty làm về hạ tầng của thầy giáo mình và anh cũng là một người thầy một người anh đã dẫn dắt mình trong những ngày đầu tiên khi bắt vào nghề . Thời gian đó quả là một thời gian cực kì stress đối với mình khi vừa phải đi học vừa phải đi làm và sắp xếp lịch học và đi làm một cách cực kì hợp lí để làm sao học vừa đủ qua môn là được ( ở đây mình không khuyên các bạn là phải học vừa đủ qua môn là được đâu nhé hí hí )
Và rồi mình đã làm việc cùng anh gần 2 năm trong khoảng thời gian đó mình đã làm những công việc nào khó khăn như nào và mình đã học được những gì trong khoảng thời gian 2 năm đó thì ở part sau mình sẽ nói tiếp nhé cảm ơn các bạn đã nghe những dòng tâm sự của mình hí hí
… Còn tiếp

No Comments on Tôi đã pass vị trí System Engineer tại Zalo như nào ? Part 1
Categories: Linh tinh