首页 文章 精选 留言 我的

精选列表

搜索[卓越架构师最佳实践征文],共10001篇文章
优秀的个人博客,低调大师

邀您参与阿里云MaxCompute2.0最佳实践征文活动

DT时代,越来越多的企业应用数据步入云端。与传统Hadoop相比,阿里云大数据计算服务MaxCompute(原名ODPS)向用户提供了完善的数据导入方案以及多种经典的分布式计算模型,能够更快速的解决用户海量数据计算问题,有效降低企业成本,并保障数据安全。 最新推出的MaxCompute 2.0,在高性能方面主要依托于全新的SQL 2.0计算引擎。同时,基于MaxCompute2.0新一代的SQL引擎,MaxCompute显著提升了SQL语言编译过程的易用性与语言的表达能力。在新功能方面提供了非结构化的处理能力,在云上开始使用OSS(开放的对象存储)、OTS(开放的表格存储),MaxCompute对其进一步分析和计算提供了连接性。安全方面,提供了Label字段级别数据访问控制及数据脱敏。用量控制方面,推出了禁止全表扫描FullScan

优秀的个人博客,低调大师

编写 Dockerfile 最佳实践

官方仓库虽然有数十万计的免费镜像,但大多数无法直接满足公司业务需求,这就需要我们自己去定制镜像了。 Docker通过Dockerfile自动构建镜像,Dockerfile是一个包含用于组建镜像的文本文件,由一条一条的指令组成。 这里,给你提供5点编写建议,可帮助你编写高效易用的Dockerfile。 1、减少镜像层 一次RUN指令形成新的一层,尽量Shell命令都写在一行,减少镜像层。 例如: FROM centos:7 MAINTAINER www.aliangedu.cn RUN yuminstallepel-release-y RUN yuminstall-y gcc gcc-c++ make -y RUN wgethttp://docs.php.net/distributions/php-5.6.36.tar.gz RUN tar zxf php-5.6.36.tar.gz RUN cd php-5.6.36 RUN ./configure--prefix=/usr/local/php RUN make -j4 RUN makeinstall EXPOSE9000 CMD ["php-fpm"] 应该写成: FROM centos:7 MAINTAINER www.aliangedu.cn RUN yuminstallepel-release-y && \ yuminstall-y gcc gcc-c++ make RUN wgethttp://docs.php.net/distributions/php-5.6.36.tar.gz && \ tar zxf php-5.6.36.tar.gz && \ cd php-5.6.36&& \ ./configure--prefix=/usr/local/php && \ make -j4&& makeinstall EXPOSE9000 CMD ["php-fpm"] 结果:12层 -> 6层 2、优化镜像大小:清理无用数据 一次RUN形成新的一层,如果没有在同一层删除,无论文件是否最后删除,都会带到下一层,所以要在每一层清理对应的残留数据,减小镜像大小。 FROM centos:7 MAINTAINER www.aliangedu.cn RUN yum install epel-release -y&& \ yum install -ygcc gcc-c++makegd-devel libxml2-devel \ libcurl-devel libjpeg-devel libpng-devel openssl-devel \ libmcrypt-devel libxslt-devel libtidy-devel autoconf \ iproute net-tools telnet wget curl && \ yum cleanall&& \ rm -rf /var/cache/yum/* RUN wget http://docs.php.net/distributions/php-5.6.36.tar.gz && \ tar zxf php-5.6.36.tar.gz && \ cdphp-5.6.36&& \ ./configure --prefix=/usr/local/php \ make-j4&&makeinstall && \ cd/ && rm -rf php* 至少能节省几十M,甚至几百M。 3、减少网络传输时间 最好在内部有一个存放软件包的地方,类似于上述的PHP官方下载地址:http://docs.php.net/distributions/php-5.6.36.tar.gz,如果用到maven构建这样的操作,同时也更改为私有maven仓库,减少网络传输时间,提高镜像构建速度。 4、多阶段进行镜像构建 如果运行一个项目,根据咱们上面的做法,是直接把代码拷贝到基础镜像里,如果是一个需要预先代码编译的项目呢?例如JAVA语言,如何代码编译、部署在一起完成呢! 上面做法需要事先在一个Dockerfile构建一个基础镜像,包括项目运行时环境及依赖库,再写一个Dockerfile将项目拷贝到运行环境中,有点略显复杂了。 像JAVA这类语言如果代码编译是在Dockerfile里操作,还需要把源代码构建进去,但实际运行时只需要构建出的包,这种把源代码放进去有一定安全风险,并且也增加了镜像体积。 为了解决上述问题,Docker 17.05开始支持多阶段构建(multi-stage builds),可以简化Dockerfile,减少镜像大小。 例如,构建JAVA项目镜像: #gitclonehttps://github.com/lizhenliang/tomcat-java-demo #cdtomcat-java-demo #vi Dockerfile FROM maven AS build ADD ./pom.xml pom.xml ADD ./src src/ RUN mvn clean package FROM lizhenliang/tomcat RUN rm -rf /usr/local/tomcat/webapps/ROOT COPY --from=build target/*.war /usr/local/tomcat/webapps/ROOT.war #docker build -t demo:v1 . #docker container run -d -v demo:v1 首先,第一个FROM 后边多了个 AS 关键字,可以给这个阶段起个名字。 然后,第二部分FROM用的我们上面构建的Tomcat镜像,COPY关键字增加了—from参数,用于拷贝某个阶段的文件到当前阶段。这样一个Dockerfile就都搞定了。 5、选择小的基础镜像 选择原则一:追求镜像小,可使用Alpine镜像,Alpine是一个轻量级的Linux发行版,镜像仅有5.6MB,构建出的镜像也很小,但其采用MuslLibc,相比Glibc兼容性市面主流技术较差,需进一步测试。 选择原则二:追求稳定及使用习惯,使用CentOS镜像。 选择原则三:追求稳定及软件包新版,使用Ubuntu/Debian镜像,软件包新版发布上线快。 小结:镜像小有很多好处,例如快速部署、快速回滚。减少服务中断时间,同时镜像仓库占用磁盘空间也少了。

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册