分享

我与阿里云的一千零一夜-013-建立后端生产线(其一)

 偏扁豆 2021-11-29

0x0 前言

在这段知识探索的道路上,我想自己不是那个能够专心深研的那一个,毕竟我们探索的是云计算,一个商家宣传都是高大上的名词,一个专家讲解都是层层累积的架构,一个平常我们都用的到却又敬而远之的事物。

我们要开始征程了,一个要有补给,要有航线,要有船和车,要有干活的伙计,要有得心应手的工具,要有漂亮的门面,甚至还要有维护治安的、侦查犯罪的、从事保险的、应急救援的或者通风报信的。

因此,这段旅程我们会有shell、golang、HTML5、markdown,也会有python、java、JavaScript、typescript、C++。我们需要熟知的正是那些耳熟能详又高深莫测的操作系统、虚拟机监视程序、平台容器、中间件、数据库、应用程序。

0x1 关于golang

我们已经前面已经见过golang了。

golang是一种静态强类型编译型语言。Go 语言语法与 C 相近,但功能上有:内存安全,GC(垃圾回收),结构形态及 CSP-style 并发计算


golang著名的产品有k8s/docker/etcd。


在后端api的构建上,golang是开发效率接近python,运行效率接近java的静态语言,docker对于golang的支持也是最新的。我们选择golang开发后端api服务器。

golang的安装部署见:

https://studygolang.com/


0x2 关于mysql

结构化数据、半结构化数据和非结构化数据的典型代表就是表格、JSON、文档多媒体,关键信息的存储往往使用结构化数据存储和使用。

关系型数据库和非关系型数据库的典型代表就是mysql和MongoDB,代表的数据分别是表格和键值对。
时至今日,mysql依旧风光不减的原因无他,就是较为稳定、可靠,又免费开源(mariadb其实和mysql技术是一脉相承的)。我们选择mysql作为开发后端服务器首个数据库。

使用docker部署mysql。

# 第一步,拉取docker pull mysql:5.7# 第二步,运行(注意新建相关文件夹)docker run -id \-p 3306:3306 \--name=mysql \-v $PWD/conf:/etc/mysql \-v $PWD/log:/var/log/mysql \-v $PWD/data:/var/lib/mysql \-e MYSQL_ROOT_PASSWORD=root \mysql:5.7# 第三步,进入docker容器内部进行建库建表docker exec -it 容器id /bin/bash

0x3 小结

像nginx、mysql等重量级核心应用是否应当部署到容器的问题一直都是技术小圈内被广泛争议的话题。

这里只说一点:没到性能优化的时候不需要过分考虑性能的问题,比如容器网络、存储技术对于容器应用的影响。中小应用直接放容器内毫无问题,大型应用比如淘宝、京东这个量级的才需要下大气力研究、测试、对比、分析、论证,而且和业务逻辑是紧耦合的,没个一桌专家很难解决问题。

正所谓,车到山前必有路,船到桥头自然直。

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多