The Issue of Monorepo and Polyrepo In Large Enterprises

at <Programming> 2019, ICW 2019 Interconnecting Code Workshop, Genoa, Italy

Product and engineering teams’ speed of producing high-quality results is critical to ensuring enterprise competitiveness. Additionally, one can observe an increase in IT systems complexity driven by the adoption of service-oriented architecture, micro-services, and serverless. Therefore, many large enterprises benefit from a mono-repository for source code management because of the improved team cognition that results from eroding barriers between teams and from influencing enhanced teamwork quality. This paper, first, reviews the characteristics of a multi-repositories structure, a monorepository structure, and a hybrid model. Second, it discusses why some manage source code in a multi-repositories structure, either by choice or because of the organic evolution of large enterprises. Third, it reviews how mono-repositories in large teams, beyond the technical arguments, can drive high efficiency and enhanced product quality through improved team cognition.

Improving Adobe Experience Cloud Services Dependability with Machine Learning

at Machine Learning for DevOps Summit, Houston, TX

Adobe Experience Cloud is a collection of best-in-class solutions for marketing, analytics, advertising, and commerce. All integrated on a cloud platform for a single experience system of record. The Adobe Experience Cloud’s SRE team works hand-in-hand with the Product and Engineering teams to build dependable services. In this presentation you will learn how the team leverage Adobe’s artificial intelligence and machine learning engine to build predictive auto-scaling and self-healing services.

Use of Self-Healing Techniques to Improve the Reliability of a Dynamic and Geo-Distributed Ad Delivery Service

at The 29th IEEE International Symposium on Software Reliability Engineering (ISSRE 2018), Memphis, TN

The advertising industry faces numerous challenges in achieving its goal of targeting a given audience dynamically and accurately in order to deliver a meaningful brand message. Near real-time, low latency delivery of dynamic content, the sheer volume of information processed, and the sparse geographic distribution of the intended eyeball traffic all drive the complexity of building a successful experience for the end user and the brand. Additionally, the competitiveness of the industry makes it critical to preserve low operational expenses while delivering reliably at scale. In attempting to address the above, we have found that a distributed infrastructure that leverages public cloud providers and a private cloud with open infrastructure technologies can deliver dynamic advertising content with low latency while preserving its high availability. But network or physical utility infrastructures can’t be relied on to ensure the service dependability. We show that the complexity of the networks, the sparse geographic distribution of eyeballs, the risk of data center failures, and the increase of encrypted transactions call for thoughtful architectures. The introduction of modern practices, failure injections, and self-healing mechanisms allowed us to improve the service fault tolerance while optimizing for latency and significantly improve our service reliability.