As you may have read previously on the blog, the MongoDB team is adopting the Go language for a variety of projects. At last month’s New York MongoDB User Group, Sam Helman presented on how MongoDB is using Go for new and existing cloud tools. In Sam’s talk, you’ll learn how MongoDB is using Go for the backup capabilities in MongoDB Management Service and a new continuous integration tool.
Why go with Go? Between the lightweight syntax, the first-class concurrency and the well documented, idiomatic libraries such as mgo, Go is a great choice for writing anything from small scripts to large distributed applications.
Thanks to g33ktalk for recording Sam’s talk.
Open Source Software in Business
Open Source software (OSS) has made significant strides in enterprises. From the New York Stock Exchange to the smallest mom-and-pop store, the Linux operating system is powering today's business servers. Its growing popularity is due in no small part to the fact that thousands of IT professionals around the world recognize that producing and distributing this type of open standard software has tremendous benefits over traditional commercial products. Unlike off-the-shelf software, open source gives users access to the underlying source code of the application that programmers write and how they instruct a computer to perform certain tasks. Commercial software is considered proprietary to the company that produces it. “It works well, saves money, and is more secure. SMB or large enterprise, there's no down-side, says Steven Vaughn-Nichols, a long-time Linux and open source journalist. “OSS tends to be more secure -- its code is open so anyone can find, report and fix the bugs. You have no idea what may or may not be hiding in proprietary code.” OSS also tends to be cheaper than its proprietary brothers, he adds. “Better security and cheaper to boot? What's not to like?” Previously, security and licensing acted as traditional barriers to adoption. Now, OSS is driving change from the bottom up, according to the seventh annual “Future of Open Source Survey,” of more than 800 respondents, sponsored by North Bridge Venture Partners and Black Duck Software. Survey results indicate OSS is experiencing a growing influence in organizations. This is due to a cultural shift supported by executives' openness to work with active and strong communities to influence projects and spur innovation, the study found. Additionally, “open source has reached a depth and maturity where quality, access to code and costs are no longer barriers to adoption. “This trend is reinforced by thousands of developers working to reduce defects in code, improve its security and innovate with new features and enhancements that get closer to what users want - because those users can have a hand in making it so,” the study found. The biggest factor in OSS adoption, respondents said, is quality, a ranking that increased from third place in 2012. Freedom from vendor lock-in dropped to second place this year, from first place in 2012. Lower costs, big data, and systems integration are the top three business problems open source is solving. In terms of sector growth, the study found that government, as well as health care and media/entertainment are moving toward adoption of open source. Technical capabilities and features were cited by 45 percent of respondents as reasons for why they choose OSS over proprietary solutions. Only 12 percent chose commercial vendor support as being an important factor, according to the study. Linux has taken over some verticals, notes Vaughn-Nichols. “Most stock markets’ core servers, for example, now run Linux. It really has been moving everywhere in other businesses.” As for the types of applications, he says it started with edge servers, file and Web servers, and over the years Linux is now being used for a large variety of apps, including CRM. Sears, for example, used open source software to build a private cloud platform. According to published reports, the company opted for OSS because it helped reduce costs and boost flexibility. And Sears and Chevron are using Hadoop, an open source database to analyze large amounts of data. Because the code is reusable, OSS is also being used by MasterCard to build prototypes of mobile apps. This gives developers the ability to create apps quickly, the company said. While the energy industry typically hasn’t shown an interest in OSS and has generally only used Linux application servers, Chevron is using Hadoop to find oil in areas including the Gulf of Mexico. As for smaller businesses, Vaughn-Nichols says many are probably not aware that their Network-Attached Storage (NAS) device and Internet router “are almost certainly running Linux.” The OS is everywhere, he adds. “It's in your pocket with your Android smartphone and it's what powers your Google Web searches. The only place it really isn't is the conventional desktop.” Better quality was the number one factor for open source adoption in business cited by respondents in the Future of Open Source survey. Other factors in order of importance were: freedom from vendor lock-in; flexibility/access to libraries of software, extensions and add-ons; elasticity/ability to scale at little cost or penalty; superior security; pace of innovation; lower costs; and access to source code. Increasingly, open source software is being chosen over proprietary alternatives. Industry observers say it’s a viable choice for businesses because it provides: Control – Unlike commercial software, OSS lets you make decisions about how to run your business. Flexibility – OSS is licensed in a way that lets you modify it yourself or hire a third party to tailor the software to meet the needs of your business. Reliability – OSS typically has fewer bugs and is more reliable than software developed using a standard commercial development process. Cost – There are little to no upfront costs with OSS. Users only pay for the support they need and most importantly, when they need it. Longevity – If a commercial software company goes out of business, you lose all of your support, bug fixes, security patches and possibility of future upgrades. Contrast that to a mission-critical software application a business is using: all it has to do is find a consulting firm, programmer or another third-party provider. “Enterprises see [open source software] as leading innovation, delivering higher quality and driving growth rather than being just a free or low-cost alternative,’’ says Michael Skok, general partner at North Bridge Venture Partners. “Going forward, as broader adoption creates a virtuous cycle of innovation and investment, we can expect more disruption from open source, new business models and many more exciting new projects and companies." Vaughn-Nichols also sees OSS becoming more ubiquitous in business. “It's becoming invisible. People tend to think of software as what they see in front of them. For most people that means Windows or Macs. Behind all of them everything -- and I mean everything -- has been switching over to OSS.”
MACH Aligned for Retail (Microservices, API-First, Cloud Native SaaS, Headless)
Across the Retail industry, MACH principles and the Mach Alliance are becoming increasingly common. What is MACH and why is it being embraced for Retail? The MACH Alliance is a non-profit organization fostering the adoption of composable architecture principles. It stands for Microservices, API-First, Cloud-Native SaaS and Headless. The MACH Alliance’s Manifesto is to: “Future proof enterprise technology and propel current and future digital experiences" The MACH Alliance and the creation of this set of principles originated in the Retail Industry. Several of the 5 co-founders of the MACH Alliance are technology companies building for retail use cases: for example commercetools is a composable commerce platform for retail (built completely on MongoDB). MongoDB has been a member of the MACH Alliance since 2020, as an “enabler” member, meaning use of our technology can enable the implementation of the MACH principles in application architectures. This is because a data layer built on MongoDB is ideal as the basis for a MACH architecture. Members of our Industry Solutions team sit on the MACH technology, growth and marketing councils, and actively are involved with furthering the adoption of MACH across the Retail Industry. What is MACH, why is it important for retail? The retail industry has long been a fast adopter of technology and a forerunner in technology trends. This is because of the competitive nature of the business leading a drive towards innovation- its vital that retails are able to react quickly to new technologies (e.g. NFTs, VR, AI) to capture market share and stay ahead of the competitors. Retailers have realized that to be able to deliver new and value-add experiences to their customers, they have to cut back on operational overhead that leads to increased cost and build standard functionality that can either be bought or re-used. This is where the benefits of MACH comes in- it's all about increasing the ability to deliver innovation quickly while lowering operational costs & risk. Microservices: An approach to building applications in which business functions are broken down into smaller, self-contained components called services. These services function autonomously and are usually developed and deployed independently. This means the failure or outage of one microservice will not affect another and teams can develop in parallel, increasing efficiency. API-First: A style of development where the sharing and use of the data via API (application programming interface) is considered first and foremost in the development process. This means that services are designed to aid the easy sharing of information across the organization and simple interconnectivity of systems. Cloud-Native SaaS: Cloud-native SaaS solutions are vendor-managed applications developed in and for the cloud, and leveraging all the capabilities the cloud has to offer, such as fully managed hosting, built-in security, auto-scaling, cross-regional deployment and automatic updates. These are a good fit for a MACH architecture as adopting them can reduce operational costs and frees up developers for value-add work like new unique customer experiences. Headless: Decoupling the front end from the back-end so that front ends (or “heads”) can be created or iterated on with no dependencies on the back end. The fact that the layers are loosely coupled decreases time to market for new front ends, and encourages the re-use back-end services for multiple purposes. It also de-risks change in the long term as services can function independently. Where does MongoDB come in? MongoDB is an enabler for MACH, meaning that using MongoDB as your data layer helps retailers and retail software companies. achieve MACH compliance. Our data model, architecture and functionality empower IT organizations to build in line with these architecture principles. During a digital transformation, where a retailer is modernizing a monolith into a microservices based architecture, they're looking for a data layer which will enable speed of development & change. MongoDB is the "most wanted" database 4 years running on Stack Overflow's developer survey- this is because our document model maps to the way developers are thinking & coding, and the flexibility allows for iterative change of the data layer. When looking at API based communication, the standard format for APIs is JSON, which again maps to MongoDB's document model. The idea with API-first development is to develop with the API in mind- why not store the data the way you're going to serve it by API. This reduces complexity and increases performance. Cloud Native and SaaS products have become the norm as retailers wish to reduce maintenance and management work. MongoDB Atlas, provides a database-as-a-service, guaranteeing 99.995% uptime, automatic failover and self-healing and allowing DevOps engineers to spin up databases in minutes or by API/ script. Many retail software companies are also built on MongoDB Atlas- for example commercetools, which provides an ecommerce solution as a SaaS product. Headless architectures require a data layer that is able to adapt and change for new workloads. The ability to change the schema at runtime, with no downtime, makes MongoDB's document model ideal for this. Performance and the ability to scale for new "heads" is also important. MongoDB is known as a high performance database and can scale vertically automatically or scale out horizontally seamlessly. So MongoDB becomes a great choice for retailers choosing to adopt a MACH architecture (see figure 1 below). As a general purpose database with high performance, a rich expressive query language and secondary indexing, MongoDB is a really good fit as a data layer as it is capable of handling operational and analytical needs of the application. FIgure 1: Example of a MACH architecture Want to know more? Are you interested in a transition to MACH? Dive into our four part blog series exploring each topic in detail and how MongoDB supports each of these principles: Microservices API-First Cloud-Native SaaS Headless