ພວກເຮົາບໍ່ດົນມານີ້ໄດ້ເລີ່ມໂຄງການຂະຫນາດນ້ອຍເພື່ອທໍາຄວາມສະອາດວິທີການຂອງພາກສ່ວນຂອງລະບົບຂອງພວກເຮົາຕິດຕໍ່ກັນຢູ່ເບື້ອງຫຼັງຂອງ scenes ໃນ Buffer. ບາງສະພາບການໄວ: ພວກເຮົາໃຊ້ບາງສິ່ງບາງຢ່າງເອີ້ນວ່າ SQS (Amazon Simple Queue Service. ຄິວເຫຼົ່ານີ້ເຮັດຄືກັບຫ້ອງລໍຖ້າສໍາລັບວຽກງານ. ພາກສ່ວນຫນຶ່ງຂອງລະບົບຂອງພວກເຮົາຖິ້ມຂໍ້ຄວາມ, ແລະອີກອັນຫນຶ່ງຈະເອົາມັນຂຶ້ນໃນພາຍຫລັງ. ຄິດວ່າມັນຄ້າຍຄືການປະໄວ້ບັນທຶກສໍາລັບເພື່ອນຮ່ວມງານ: "Hey, ຂະບວນການນີ້, ມີໂອກາດທີ່ຈະສົ່ງຂໍ້ມູນ. ເພື່ອລໍຖ້າການຕອບຮັບ. ໂຄງການຂອງພວກເຮົາແມ່ນເພື່ອປະຕິບັດການບໍາລຸງຮັກສາເປັນປົກກະຕິ: ປັບປຸງເຄື່ອງມືທີ່ພວກເຮົາໃຊ້ເພື່ອທົດສອບຄິວຢູ່ໃນທ້ອງຖິ່ນແລະເຮັດຄວາມສະອາດການຕັ້ງຄ່າຂອງພວກເຂົາ. ແຕ່ໃນຂະນະທີ່ພວກເຮົາກໍາລັງວາງແຜນສິ່ງທີ່ພວກເຮົາໃຊ້ຕົວຈິງ, ພວກເຮົາພົບເຫັນບາງຢ່າງທີ່ພວກເຮົາບໍ່ໄດ້ຄາດຫວັງ: ເຈັດຂະບວນການພື້ນຖານທີ່ແຕກຕ່າງກັນ (ຫຼືວຽກ cron, ເຊິ່ງແມ່ນວຽກງານທີ່ຖືກກໍານົດໄວ້ໂດຍອັດຕະໂນມັດ) ແລະຄົນງານທີ່ເຮັດວຽກຢ່າງງຽບໆ. ບໍ່ມີຫຍັງເລີຍ ບັນຫາ, ພວກເຮົາພົບເຫັນພວກເຂົາແນວໃດ, ແລະສິ່ງທີ່ພວກເຮົາໄດ້ເຮັດກ່ຽວກັບມັນ. ເປັນຫຍັງມັນສໍາຄັນຫຼາຍກ່ວາທີ່ເຈົ້າຄິດແມ່ນແລ້ວ, ການໃຊ້ໂຄງສ້າງພື້ນຖານທີ່ບໍ່ຈໍາເປັນຕ້ອງໃຊ້ເງິນ, ຂ້ອຍໄດ້ຄິດໄລ່ຢ່າງໄວວາແລະສໍາລັບຄົນງານຄົນຫນຶ່ງ, ພວກເຮົາຈະໄດ້ຈ່າຍ ~ $ 360-600 ໃນໄລຍະ 5 ປີ, ນີ້ແມ່ນຈໍານວນເລັກນ້ອຍໃນແຜນການທີ່ຍິ່ງໃຫຍ່ຂອງການເງິນຂອງພວກເຮົາ, ແຕ່ແນ່ນອນບໍ່ມີສິ່ງເສດເຫຼືອໃດໆທີ່ຈະເກີດຂຶ້ນ. ຕົວຈິງແລ້ວຄ່າໃຊ້ຈ່າຍແມ່ນສ່ວນນ້ອຍທີ່ສຸດຂອງບັນຫາ. ທຸກໆຄັ້ງທີ່ວິສະວະກອນໃໝ່ເຂົ້າຮ່ວມທີມ ແລະ ສຳຫຼວດລະບົບຂອງພວກເຮົາ, ເຂົາເຈົ້າຈະພົບກັບຂະບວນການລຶກລັບເຫຼົ່ານີ້ "ພະນັກງານຄົນນີ້ເຮັດຫຍັງຢູ່?" ກາຍເປັນຄຳຖາມທີ່ກິນເວລາຂຶ້ນເຮືອບິນ ແລະສ້າງຄວາມບໍ່ແນ່ນອນ - ການແນມເບິ່ງລະຫັດໃດໜຶ່ງ, ຢ້ານທີ່ຈະແຕະຕ້ອງມັນ ເພາະບາງທີມັນອາດເຮັດໃຫ້ການອັບເດດມີຄວາມສຳຄັນຫຼາຍ. ການແກ້ໄຂຄວາມເຂົ້າກັນໄດ້ເມື່ອມີສິ່ງອື່ນປ່ຽນແປງ, ອັນນີ້ເຮັດໃຫ້ທີມງານຂອງພວກເຮົາໃຊ້ຈ່າຍໃນຮອບວຽນການບຳລຸງຮັກສາລະຫັດທີ່ບໍ່ມີຈຸດປະສົງ. ແລະເມື່ອເວລາຜ່ານໄປ, ຄວາມຮູ້ຂອງສະຖາບັນຈະຫາຍໄປ, ມັນເປັນການແກ້ໄຂຊົ່ວຄາວທີ່ກາຍເປັນແບບຖາວອນບໍ? ຖືກຍົກເລີກ, ແຕ່ວຽກພື້ນຖານທີ່ສະຫນັບສະຫນູນມັນຍັງສືບຕໍ່ເຮັດວຽກຢູ່, ມີຄົນຫມຸນຄົນງານ "ຊົ່ວຄາວ" ເພື່ອຈັດການກັບການເຄື່ອນຍ້າຍ, ແລະມັນບໍ່ເຄີຍຖືກທໍາລາຍ, ວຽກງານທີ່ຖືກກໍານົດໄວ້ຈະກາຍເປັນຊ້ໍາຊ້ອນຫຼັງຈາກການປ່ຽນແປງສະຖາປັດຕະຍະກໍາ, ແຕ່ບໍ່ມີໃຜຄິດທີ່ຈະກວດສອບ ອີເມວທີ່ປັບແຕ່ງສະເພາະຕົວໃນປີ 2020, ພວກເຮົາໄດ້ປ່ຽນເຄື່ອງມືທາງອີເມລ໌ທາງທຸລະກຳຂອງພວກເຮົາ ແຕ່ລືມເອົາພະນັກງານຄົນນີ້ອອກ—ມັນສືບຕໍ່ແລ່ນໄປອີກຫ້າປີ. ບໍ່ມີອັນໃດແມ່ນຄວາມລົ້ມເຫລວຂອງບຸກຄົນ — ເຂົາເຈົ້າເປັນຄວາມລົ້ມເຫລວຂອງຂະບວນການໂດຍບໍ່ໄດ້ຕັ້ງໃຈທຳຄວາມສະອາດໃນວິທີການເຮັດວຽກ, entropy ຊະນະ. ວິທີທີ່ສະຖາປັດຕະຍະກຳຂອງພວກເຮົາຊ່ວຍພວກເຮົາຊອກຫາມັນຄືກັບຫຼາຍບໍລິສັດ, Buffer codes ທີ່ເປັນທີ່ນິຍົມກັນ. ການບໍລິການເອກະລາດ) ໃນປີກ່ອນ. ພວກເຮົາແຍກ monolith ຂອງພວກເຮົາອອກເປັນບໍລິການແຍກຕ່າງຫາກ, ແຕ່ລະຄົນມີ repository ຂອງຕົນເອງ, ທໍ່ນໍາໄປໃຊ້, ແລະໂຄງສ້າງພື້ນຖານໃນເວລານັ້ນ, ມັນສົມເຫດສົມຜົນ: ແຕ່ລະບໍລິການສາມາດ deployed ຂອງຕົນເອງ, ມີຂອບເຂດທີ່ຈະແຈ້ງລະຫວ່າງທີມງານ ເປັນເຂດແດນທີ່ມີເຫດຜົນ, ແຕ່ພວກເຂົາອາໄສຢູ່ຮ່ວມກັນຢູ່ໃນສະຖານທີ່ດຽວ. ນີ້ກາຍເປັນສິ່ງທີ່ເຮັດໃຫ້ການຄົ້ນພົບເປັນໄປໄດ້. ໃນໂລກຂອງບໍລິການຈຸລະພາກ, ແຕ່ລະ repository ແມ່ນເກາະຂອງຕົນເອງ, ພະນັກງານທີ່ລືມໃນ repo ຫນຶ່ງອາດຈະບໍ່ສັງເກດເຫັນໂດຍວິສະວະກອນທີ່ເຮັດວຽກຢູ່ບ່ອນອື່ນ, ບໍ່ມີບ່ອນດຽວທີ່ຈະຊອກຫາຊື່ຄິວ, ບໍ່ມີມຸມເບິ່ງລວມຂອງສິ່ງທີ່ກໍາລັງແລ່ນຢູ່ບ່ອນໃດ. ໃນທີ່ສຸດພວກເຮົາສາມາດເບິ່ງຮູບພາບທັງຫມົດໃນຫນຶ່ງ ຜູ້ຜະລິດ.ການຄົ້ນພົບເກືອບບໍ່ສາມາດຫຼີກລ່ຽງໄດ້.ສິ່ງທີ່ພວກເຮົາເຮັດຕົວຈິງເມື່ອພວກເຮົາກໍານົດຂະບວນການເດັກກໍາພ້າ, ພວກເຮົາຕ້ອງຕັດສິນໃຈວ່າຈະເຮັດແນວໃດກັບເຂົາເຈົ້າ. ນີ້ແມ່ນວິທີທີ່ພວກເຮົາເຂົ້າຫາມັນ. ທໍາອິດ, ພວກເຮົາຕິດຕາມແຕ່ລະຄົນໄປຫາຕົ້ນກໍາເນີດຂອງມັນ. ພວກເຮົາຂຸດຜ່ານປະຫວັດສາດ git ແລະເອກະສານເກົ່າເພື່ອເຂົ້າໃຈວ່າເປັນຫຍັງພະນັກງານແຕ່ລະຄົນຖືກສ້າງຂື້ນໃນຄັ້ງທໍາອິດ. ໃນກໍລະນີຫຼາຍທີ່ສຸດ, ຈຸດປະສົງຕົ້ນສະບັບແມ່ນຈະແຈ້ງ: ການໂອນຂໍ້ມູນແບບຄັ້ງດຽວ, ຄຸນສົມບັດທີ່ໄດ້ຕາເວັນຕົກ, ການແກ້ໄຂຊົ່ວຄາວທີ່ມີປະໂຫຍດຂອງມັນ. ຈາກນັ້ນພວກເຮົາຢືນຢັນວ່າພວກມັນບໍ່ໄດ້ໃຊ້ແທ້ໆ. ກ່ອນທີ່ຈະເອົາອັນໃດອັນໜຶ່ງອອກ, ພວກເຮົາໄດ້ເພີ່ມການລົງທືນເພື່ອກວດສອບວ່າຂະບວນການເຫຼົ່ານີ້ບໍ່ໄດ້ເຮັດອັນສຳຄັນທີ່ພວກເຮົາພາດໄປຢ່າງງຽບໆ. ພວກເຮົາໄດ້ຕິດຕາມສອງສາມມື້ເພື່ອໃຫ້ແນ່ໃຈວ່າພວກເຂົາບໍ່ໄດ້ໂທຫາທັງຫມົດ, ແລະພວກເຮົາເອົາພວກມັນອອກເທື່ອລະກ້າວ. ພວກເຮົາບໍ່ໄດ້ລຶບທຸກຢ່າງໃນຄັ້ງດຽວ. ພວກເຮົາໄດ້ລົບຂະບວນການຫນຶ່ງໂດຍຫນຶ່ງ, ການເບິ່ງສໍາລັບຜົນກະທົບຂ້າງຄຽງທີ່ບໍ່ຄາດຄິດໃດໆ. (ໂຊກດີ, ບໍ່ມີອັນໃດເລີຍ.)ສຸດທ້າຍ, ພວກເຮົາໄດ້ບັນທຶກສິ່ງທີ່ພວກເຮົາໄດ້ຮຽນຮູ້. ພວກເຮົາໄດ້ເພີ່ມບັນທຶກໃສ່ເອກະສານພາຍໃນຂອງພວກເຮົາກ່ຽວກັບສິ່ງທີ່ແຕ່ລະຂະບວນການໄດ້ເຮັດໃນຕອນຕົ້ນ ແລະ ເປັນຫຍັງມັນຈຶ່ງຖືກລຶບອອກ, ດັ່ງນັ້ນນັກວິສະວະກອນໃນອະນາຄົດຈະບໍ່ສົງໄສວ່າມີສິ່ງທີ່ສໍາຄັນຫາຍໄປ. ສິ່ງທີ່ມີການປ່ຽນແປງຫຼັງຈາກການເຮັດຄວາມສະອາດພວກເຮົາຍັງຢູ່ໃນໄວໃນການວັດແທກຜົນກະທົບຢ່າງເຕັມທີ່, ແຕ່ນີ້ແມ່ນສິ່ງທີ່ພວກເຮົາເຫັນມາເຖິງຕອນນັ້ນ. ຂໍ້ມູນພື້ນຖານໂຄງລ່າງຂອງພວກເຮົາແມ່ນຖືກຕ້ອງແລ້ວ. ເມື່ອມີຄົນຖາມວ່າ, "ພວກເຮົາເຮັດວຽກຫຍັງ?" ພວກເຮົາສາມາດຕອບຄຳຖາມນັ້ນໄດ້ຢ່າງໝັ້ນໃຈ. ວິສະວະກອນໃຫມ່ບໍ່ໄດ້ສະດຸດໃນຂະບວນການທີ່ລຶກລັບແລະສົງໄສວ່າພວກເຂົາຂາດບໍລິບົດ. codebase ສະທ້ອນເຖິງສິ່ງທີ່ພວກເຮົາເຮັດຕົວຈິງ, ບໍ່ແມ່ນສິ່ງທີ່ພວກເຮົາໄດ້ເຮັດເມື່ອຫ້າປີກ່ອນ. ປະຕິບັດ refactors ເປັນໂບຮານຄະດີແລະການປ້ອງກັນການຖອນຕົວທີ່ໃຫຍ່ທີ່ສຸດຂອງຂ້ອຍຈາກໂຄງການນີ້: ທຸກໆ refactor ທີ່ສໍາຄັນແມ່ນໂອກາດສໍາລັບໂບຮານຄະດີ. ເມື່ອທ່ານເລິກເຂົ້າໄປໃນລະບົບ, ເຂົ້າໃຈຢ່າງແທ້ຈິງວ່າຊິ້ນສ່ວນເຊື່ອມຕໍ່ແນວໃດ, ທ່ານຢູ່ໃນຕໍາແຫນ່ງທີ່ສົມບູນແບບທີ່ຈະຖາມສິ່ງທີ່ຍັງຕ້ອງການ. ແຖວນັ້ນມາຈາກໂຄງການເກົ່າບໍ? ຄົນງານທີ່ຄົນສ້າງຂື້ນເພື່ອການເຄື່ອນຍ້າຍຂໍ້ມູນຄັ້ງດຽວ? ວຽກທີ່ຕັ້ງໄວ້ທີ່ອ້າງອີງເຖິງຄຸນສົມບັດທີ່ທ່ານບໍ່ເຄີຍໄດ້ຍິນບໍ? ພວກມັນອາດຈະຍັງແລ່ນຢູ່. ນີ້ແມ່ນສິ່ງທີ່ພວກເຮົາກຳລັງສ້າງໃນຂະບວນການຂອງພວກເຮົາໃນຕໍ່ໜ້າ: ໃນລະຫວ່າງການ refactor ໃດ, ຖາມວ່າ: ມີຫຍັງອີກແດ່ທີ່ແຕະຕ້ອງລະບົບນີ້ທີ່ພວກເຮົາບໍ່ໄດ້ເບິ່ງໃນຂະນະນີ້? ເມື່ອຍົກເລີກຄຸນສົມບັດ, ຕິດຕາມມັນໄປຕະຫຼອດຂັ້ນຕອນຂອງຂະບວນການພື້ນຖານຂອງມັນ, ບໍ່ພຽງແຕ່ລະຫັດທີ່ປະເຊີນກັບຜູ້ໃຊ້ເທົ່ານັ້ນ. ເມື່ອມີຄົນອອກຈາກທີມງານ, ບັນທຶກສິ່ງທີ່ພວກເຂົາຮັບຜິດຊອບໃນລະຫັດທີ່ເກົ່າກວ່ານັ້ນ, ໂດຍສະເພາະໃນພື້ນຖານຂອງພວກເຮົາ. ຍັງບໍ່ທັນໄດ້ຮັບການຍົກຍ້າຍໄປໃນ repository ດຽວ. ໃນຂະນະທີ່ພວກເຮົາສືບຕໍ່ການລວມຕົວກັນ, ພວກເຮົາໝັ້ນໃຈວ່າພວກເຮົາຈະພົບເຫັນວັດຖຸບູຮານທີ່ເຊື່ອງໄວ້ເຫຼົ່ານີ້ຫຼາຍຂຶ້ນ. ແຕ່ດຽວນີ້ພວກເຮົາຖືກຕັ້ງຂຶ້ນເພື່ອຈັບພວກມັນ ແລະປ້ອງກັນບໍ່ໃຫ້ອັນໃໝ່ເກີດຂຶ້ນ. ເມື່ອລະຫັດທັງໝົດຂອງເຈົ້າຢູ່ໃນບ່ອນດຽວ, ໂຄງສ້າງພື້ນຖານຂອງເດັກກຳພ້າບໍ່ມີບ່ອນໃດທີ່ຈະເຊື່ອງໄດ້.
ສິ່ງທີ່ພວກເຮົາໄດ້ຮຽນຮູ້ຫຼັງຈາກການຊອກຫາ 7 ວຽກທີ່ລືມທີ່ດໍາເນີນການສໍາລັບ 5 ປີ
By Social Media
·
·
6 min read
·
199 views
Read in:
aa
ace
af
ak
alz
am
ar
as
awa
ay
az
ba
ban
be
bew
+191 more
bg
bho
bik
bm
bn
brx
bs
bug
ca
ceb
cgg
ckb
co
crh
cs
cv
cy
da
de
din
doi
dv
dyu
dz
ee
el
en
eo
es
et
eu
fa
ff
fi
fj
fo
fr
fur
fy
ga
gd
gl
gom
gn
gu
ha
haw
he
hi
hil
hne
hmn
hr
hrx
ht
hu
hy
id
ig
ilo
is
it
ja
jam
jv
ka
kab
kbp
kg
kha
kk
kl
km
kn
ko
kri
ku
ktu
ky
la
lb
lg
li
lij
ln
lo
lmo
lt
ltg
lua
luo
lus
lv
mai
mak
mg
mi
min
mk
ml
mn
mni-mtei
mos
mr
ms
mt
my
nd
ne
nl
nn
no
nr
nso
nus
ny
oc
om
or
pa
pag
pam
pap
pl
ps
pt
pt-br
qu
rn
ro
ru
rw
sa
sah
sat
sc
scn
sg
si
sk
sl
sm
sn
so
sq
sr
ss
st
su
sus
sv
sw
szl
ta
tcy
te
tg
th
ti
tiv
tk
tl
tn
to
tpi
tr
trp
ts
tt
tum
ty
udm
ug
uk
ur
uz
ve
vec
vi
war
wo
xh
yi
yo
yua
yue
zap
zh
zh-hk
zh-tw
zu