In Part 1 of this list, we talked about five open source projects by Alibaba, focusing on distributed systems. Despite the deployment complexity of distributed systems, the benefits of using a distributed framework far outweighs its disadvantages. A distributed system composed of smaller servers costs less, and, at the same time, makes the entire system more concurrent, expandable and reliable.
In Part 2 of this list, we will be focusing on web frontend and internet of things (IoT) open source projects by Alibaba.
As Web 2.0 is being replaced by Web 3.0, the performance of wireless hardware and the User Experience are becoming more important, Websites and Apps are becoming more and more important as well as more and more complex. This can be represented by the trend on JavaScript. JavaScript, Java and PHP were all born in 1995, but the development trajectory of the three has been quite different. JavaScript has gone through continuous development alongside its becoming more and more popular. There are 230,000 JavaScript open source projects on GitHub—making the language the most popular one there. It is 2.3 times larger than the second on the list— Python—and it is far more than Java and PHP combined. There have been more and more uses for and usages of JavaScript. In the frontend AJAX has made it essential, while Node.js is what made people start to notice this language in the backend.
As early as 1982, Carnegie Mellon University started been exploring the networking of smart devices, which can be regarded as the birth of the early concepts of Internet of Things. However, IoT's popularity only really began in recent years. The International Telecommunication Union in 2005 released the ITU Internet Report 2005: Internet of Things, which points out the arrival of the Internet of Things era. Gartner statistics show that there were 6.4 billion IoT devices in 2016 and the figure is expected to rise to 20.41 billion by 2020!
Ant Design is derived from Ant Financial's middle-back-end design experience. In product interaction and visual style it adheres to the concept of "Minimize · Determine · Happiness" and seeks to enhance the experience of users and designers. It has enriched, flexibly and utilitarian base components and prepared solutions to common problems. TypeScript is used for full type definitions, and high-quality React components are used for out-of-the-box enterprise development frameworks based on npm + webpack + dva.
Looking back in 2017, there are three major things Ant Design has done:
For the release blog click here:
https://medium.com/ant-design/announcing-ant-design-3-0-70e3e65eca0c
In the more than two years it has been open source, Ant Design has been continuously evolving through the collection of design and development requirements. The design team constantly optimizes and improves the design specifications of Ant Design. The overall visual effect adjustment is also reflected in the new v.3.0. Research & Development, on the other hand, takes into account a variety of business needs, both internal and external: exposing long-term planning of project development, especially key goals and breaking changes, to the community and collecting a large number of new requirements and issues from DingTalk groups and GitHub on a routine basis, maintain close interaction with the community. The project has a fixed minor version development cycle, a bugfix version will be released every week, a minor version released each month.
Ant Design is one of the most popular UI component library among React community. Other than Alibaba, companies such as Tencent, Baidu, Meituan, Didi and Ele.me are all using it. Currently Ant Design has 21,485 stars on GitHub. It is also on the list of Top 20 most popular Chinese open source software in 2017 by OSChina.
Pian You, the And Design spokesperson, indicates that, after Ant Design 3.0 is published, it will be a relatively mature project which will go into a long maintenance-only period and will not see major changes. The team will keep working on the Visual layout, Theme matching, internationalization and consolidation of Ant Design Pro.
Related:
http://ant.design/
http://pro.ant.design/
https://github.com/ant-design/ant-design
Enterprises have begun to adopt microservices architecture (which involves specific tasks such as service granularity, API interface, development and maintenance). Front-end and back-end have to face the dispute of whether it is more important to consider flexible experience on the user side, or the versatility of back-end service. Node.js has been in the vigorous development in recent years, slowly improving a lot of very critical problems. Npm ecosystem has the largest package count, the single-threaded problem is being improved; callback hell can be mitigated with the new ES specification; matured TypeScript brings type system; performance has been continuously optimized.
Unfortunately, however, the infrastructure maturity of Node.js does not match the heat, and Node.js is essentially a newborn. There are few web frameworks used by industry. The community keeps reinventing the wheel and lacks a standard library, resulting in a lot of repetitive, irrational use. Compared to applications, Basic Node.js research is still lacking. How to ensure high availability has become an important issue.
Alibaba's Node.js exploration began in 2011, after running into many of the aforementioned “reinventing the wheel” type problems, we began to seriously think about how to build a unified ecology which also could support different customizations. As a result, Egg came into being. Egg's name implies "conception", it is expected to become a Web development framework on top of which teams can develop their own suitable frameworks. Egg learned from large-scale enterprise applications, including many years of stable support of TMall Single's day promotion. It has also gone through four versions within three years.
Egg is based on Koa, but it differs from other upper level framework such as Sails or LoopBack. Egg is the middle layer that provides microkernel + plugins + framework customization. This provides a uniform set of conventions to server the upper level framework. Egg is developed incrementally with full scalability. It is suitable for single coder small projects as well as enterprise team works.
Although it has just been open source for only a year, Egg has received 500+ Pull Requests (272 on the main repository), handled 1200+ issues and released 40+ official documents in total of 100,000 words, received 6k + stars on GitHub, and over million views on the official website. Within Alibaba, Egg serves 500+ front-end developers and 1,000+ applications; outside of Alibaba, Egg has rceived feedback from more than 90 technicians from companies such as Baidu, Tencent, NCPC, and Lilac Park. Rod Vagg the TSC director of Node.js also tweeted Egg.js.
In the future, Egg will focus on optimizing the developer experience, and share more best practices.
Here we also need to say something about Alibaba's Node contribution. In addition to the 1000+ applications internally, Alibaba technicians also conducted bug fixes in low level Node.js, and is also in talk with Intel to explore how to further improve Node.js performance. Furthermore, Alibaba recently just released Node.js Performance Platform as an enterprise-class performance solution that provides free Node.js runtime + monitoring diagnostic services.
Related:
https://eggjs.org/
https://node.console.aliyun.com/
Since the introduction of the iPhone in 2007, the prevalence of smartphones has opened up the era of mobile development. Mobile Apps have begun to host more and more business scenarios. However, at the same time, this also poses a great challenge to development.
Like most Alibaba's open source projects, Altas also started at addressing our own problems. With the on-going development of mobile Taobao, the R&D team expanded and features are getting more complex. Faster iteration of end-side service is now required. There are more and more problems encountered during development and operation, which requires real time online bug fixing. With these in mind, the Mobile Taobao team started to think about how to simplify things, how to deploy dynamically and how to increase the mobile development efficiency.
Atlas solves the problem of large-scale team collaboration with containerized thinking, and is applicable to large-sized and small-sized App development of Android4.x and above. It also supports dynamic publishing. In general, the common solution in the industry is the plug-in framework, but, given its reusability, Atlas uses a componentization pattern that takes the business apart and reuses the common component. The project draws on the OSGI idea of the service end, and separates the services into independent bundles to isolate and decouple the operations so as to realize parallel development, rapid iteration and dynamic deployment.
Altas comes from five years of research and development accumulated by the Alibaba mobile team, who prepared static componentization and dynamic componentization. After being officially open sourced this year, Altas basically kept releasing major versions every two months, using the same set of code internally and in the community. Altas has improved stability, toolchain upgrades, and dexpatch aspects. Specifically, three major functions are: support of dynamic component deployment, dexpatch functionality, and view reuse between bundles.
As a first-time open source project, to be honest, Altas is not perfect. Its a high entrance, combined with poor documentation and poor demos which has resulted in many complaints online. Altas then decided to create a DingChat group that would allow developers to better understand and access Atlas while improving documentation and demos. It is reported that at present a lot of Android apps are using Altas (such as TMall, Taobao, Xiamo, Youku, Alibaba cloud). Outside of Alibaba ecosystem there have been at least three Atlas Apps are in operation, which is a very happy news for the Atlas team.
The motto of Atlas is "Bring you back to the idyllic era of app development". In the future, Atlas will keep perfecting documentation, upgrade toolchains, lower entrance, increase stability and compatibility. The commercial service called Emas for Atlas will ease publishing on server side.
Related:
http://atlas.taobao.org/
https://github.com/alibaba/atlas
Programmers communicate with each other in codes. The quality of code is directly correlated to the efficiency of the project and the team.
Experts at Alibaba developed a set of guidances on Java, and also self checking tools (IDEA, Eclipse) based on the guide. This way developers can follow the guide with ease.
After the code is scanned, the plug-in displays non-conforming code below as Blocker/Critical/Major level. On IDEA, we provided real-time detection based on the Inspection mechanism, with which bugs can be quickly spotted while writing code. For the history code, some of the rules can be repaired with one single click “Suggest an edit”.
Java code convention is presented to the industry as a plug-in. It defines the norms of Java language. Currently, plug-ins are integrated in cloud-based public cloud products.
Alibaba P3C project team will update and maintain the plug-in. The team also hopes that more people will be involved. In addition to detect and solve according to the rules, the ability to achieve more beneficial guidelines can make the plug-in better and it can help more developers in return.
Related:
https://github.com/alibaba/p3c
The OpenMessaging project (launched by Alibaba and co-founded by Yahoo, Didi Chuxing and Streamlio) aims to create distributed messaging and stream processing application development standards that are vendor agnostic and platform-neutral. According to the sponsor, as the standard continues to evolve, there will be more Internet and cloud computing vendors participating in the project and the ecosystem.
In the era of cloud computing, message passing has become a key aspect of modern data-driven architectures. Messaging middleware connects to data sources, data processing engines, and applications. However, there are still two major problems in the world of messaging. One is the lack of vendor-neutral industry standards, resulting in high complexity and incompatibility of various message middlewares, which in turn leads to the inefficiency, chaos and problems such as vendor locking. Second, the existing scheme does not fit the cloud architecture well, therefore it cannot effectively provide technical support for the emerging business needs such as big data, stream computing and the Internet of Things.
OpenMessaging, being a light-weight new design that does not have any technical debts, hopes to solve these shortcomings. In addition to being the standard that is cross-platform, cross-language and cross-product, OpenMessaging will provide Cloud Native capabilities for cloud computing and hybrid cloud architecture. It seamlessly migrates between cloud platforms, and aims at providing one stop solutions for finance, business, IoT and big data.
Related:
https://github.com/openmessaging/openmessaging-java/
As a relatively new field, the development of IoT is not without its problems. The operating system market is highly fragmented, with many using traditional embedded RTOS and others developing new IoT specific operating systems. There are however many pain points in both: high development and maintenance costs, limited hardware ecosystem, development tools and functional components, insecure/unreliable systems, and deployment difficulties in cloud based applications.
AliOS Things is a new generation IoT OS developed based on the previously mentioned pain points. It provides reliable, secure, scalable and highly optimized OS, a rich set of development tools and good integration with cloud frameworks.
AliOS Things is the industry's most widely used IoT operating system for lightweight consumer, connection and control microcontrollers. It is also worth mentioning that AliOS Things is capable of high level usecases such as security device management, voice recognition, cloud development and supply chain optimization, based on Alibaba cloud and all the relevant open IOT platforms. Currently, AliOS Things has been ported to 21 chips from 17 Chinese and international chip makers including STMicroelectronics, Espressif and Beken.
AliOS Things has released three major versions since it was open sourced in October of this year. It planned to keep this releasing period in the long run. The project has abundant documentation and an active developer community. The current project’s official website has 1500+ daily visits. AliOS Things is seen as the integrated device side platform for all Alibaba Cloud IOT services. It has successfully landed on multiple business projects.
Related:
https://github.com/alibaba/AliOS-Things
https://www.alibabacloud.com/blog/security-authentication-framework-in-alios-things-umesh_573441
After AliOS Things is open sourced, Alibaba will also open source AliOS Lite. AliOS Lite is a lightweight IoT operating system that supports multitask processing, voice interaction and visual computing. It is suitable for IoT devices with lower CPU and lower memory requirements (256MB minimum) such as smart speakers, smart watches, and smart cameras.
At the same time, due to the wide variety of IoT devices and large differences in their hardware capabilities, the industry cannot find an operating system with good compatibility and ease of development. It is also hard to find good supports for machine intelligence and security.
AliOS Lite solves the following problems:
Overall, the characteristics of AliOS Lite are that it is intelligent, light-weight, scalable and secure. It comes with a configurable scalable design and a high performant JavaScript engine. Application models can be used without installation. It also comes with unique lifecycle management capabilities.
In this article series, we have discussed 12 open source projects that are developed by Alibaba Group and Alibaba Cloud. In Part 1 of the list, we focused on projects related to distributed framework and middleware. In Part 2, we focused more on client-side and IoT-related projects.
Which one of these projects is your favorite? Do you have personal experience with any of the projects? Share your experience with us in the comments section!