|By SmartBear Blog||
|April 1, 2016 02:13 PM EDT||
How to Ensure the Quality of Your Microservices Architecture with Peer Code Reviews
by Janet Wagner
Over the past few years, a growing number of companies have made the move from a monolithic to microservices architecture.
The list of companies that have made the switch include: Netflix, Amazon, Twitter, and PayPal.
A microservices architecture consists of smaller services, each focusing on completing a specific task. Each of these small services, or microservices, can be developed in any language and each can communicate using protocols that are language neutral such as HTTP resource APIs.
A microservices architecture is inherently complex and if not designed and coded correctly, serious problems can occur.
One of the biggest challenges of switching to a microservices architecture is that teams often operate independently from each other.
Each team is responsible for building and deploying one or more microservices to production. Netflix for example, broke down its monolithic architecture into microservices when the number of platform engineers reached about 100. Today, Netflix has about 30+ engineering teams responsible for building and deploying approximately 500+ fine-grained services.
The greater number of engineering teams and microservices, the greater the chances that code errors and other issues will occur.
This is where peer code reviews come in.
One of the best ways to ensure the design and code quality of a microservices architecture is by conducting peer code reviews throughout the development process.
In 2013, Microsoft conducted a study to find out "the motivations, challenges, and outcomes of tool-based code reviews." The study looked at the many diverse teams at Microsoft and found that while the primary reason for conducting code reviews was finding defects, there were many other benefits to conducting peer code reviews.
- Shared knowledge across teams: Peer code reviews allow developers to share knowledge, discuss alternative solutions, and improve coding skills which in turn helps teams produce clean, well-written code. Architectural problems and security issues can often be caught by conducting code reviews.
- Mentorship: Peer code reviews can be used as a way for team leaders to mentor new members and help familiarize them with the project. New members can learn via peer code reviews different aspects of a project such as architecture design, coding conventions, tools available, APIs to use, and more.
- Shared Ownership: Peer code reviews can help promote the concept "shared code ownership" in which team members work together often having overlapping coding responsibilities. The idea being that the entire team owns the code instead of individual developers owning portions of the code.
Peer code reviews can help enable awareness, transparency, and open communication for every member of every engineering team. This is especially important considering that there can be dozens of autonomous engineering teams involved in the development of a microservices architecture.
One of the keys to implementing peer code reviews is making sure you have the right tools to do it.
Using proper peer code review tools is very important for companies of all sizes, but especially for large companies with many engineering teams and a large number of microservices. Large companies can have difficulty with communication across many engineering teams, effective communication capabilities is an important feature of a code review tool.
There are a number of peer code review solutions available, the best choice depends on the needs of your company.
One of the most popular tools for conducting peer code reviews is GitHub. There are many engineering teams that use GitHub for source control and pull requests for code that is ready for review. GitHub comments can be used by teams to discuss code changes and other issues. Once the review is approved and finalized, the code can be merged.
Collaborator is a code review tool that helps development, testing, and management teams work together to produce high quality code. It allows teams to peer review code, user stories and test plans in a transparent, collaborative framework - instantly keeping the entire team up to speed on changes made to the code.
By enabling team members to work together to review their work, Collaborator can help you catch bugs before your software hits the market.
Collaborator also features GitHub pull request support providing an enhanced peer code review workflow.
Some companies have built and use their own internal tools for conducting peer code reviews. For example, there are many Microsoft developers that use a collaborative code review tool called CodeFlow. CodeFlow is an in-house code review tool developed and used by Microsoft. CodeFlow not only allows developers and managers at Microsoft to conduct code reviews, but also makes it possible to mine data from code reviews as well as generate metrics and analytics from the data.
Peer code review tools help companies streamline the peer code review process and help ensure that useful feedback is produced.
Choosing the best peer code review system and tools for a project based on microservices depends on a variety of factors including the number of engineering teams and microservices involved. If the project involves dozens of autonomous teams building and deploying hundreds of microservices, a highly scalable, efficient peer code review system would be needed.
The lasting benefits of peer code review
A microservices architecture is often built, deployed, and managed by many engineering teams each responsible for one or more specific services.
Peer code reviews can help companies promote open communication, transparency, knowledge sharing, shared code ownership, and many other benefits.
These benefits can help ensure code quality and architectural consistency across many engineering teams and microservices.
Need help implementing code review?
Everyone on your team understands the benefits of using a tool for code review except for one person; your boss. To help with this issue, we've recently interviewed over a handful of developers who have given us their best guidelines for how you can successfully approach your boss when it comes time to implementing a code review tool.
They explain what they want you to know and what they want you to do to get your bosses approval for a code review tool.
Today we can collect lots and lots of performance data. We build beautiful dashboards and even have fancy query languages to access and transform the data. Still performance data is a secret language only a couple of people understand. The more business becomes digital the more stakeholders are interested in this data including how it relates to business. Some of these people have never used a monitoring tool before. They have a question on their mind like “How is my application doing” but no id...
Apr. 30, 2017 07:45 PM EDT Reads: 7,479
Is your application too difficult to manage? Do changes take dozens of developers hundreds of hours to execute, and frequently result in downtime across all your site’s functions? It sounds like you have a monolith! A monolith is one of the three main software architectures that define most applications. Whether you’ve intentionally set out to create a monolith or not, it’s worth at least weighing the pros and cons of the different architectural approaches and deciding which one makes the most s...
Apr. 30, 2017 07:30 PM EDT Reads: 3,079
Developers want to create better apps faster. Static clouds are giving way to scalable systems, with dynamic resource allocation and application monitoring. You won't hear that chant from users on any picket line, but helping developers to create better apps faster is the mission of Lee Atchison, principal cloud architect and advocate at New Relic Inc., based in San Francisco. His singular job is to understand and drive the industry in the areas of cloud architecture, microservices, scalability ...
Apr. 30, 2017 07:00 PM EDT Reads: 3,769
When you decide to launch a startup company, business advisors, counselors, bankers and armchair know-it-alls will tell you that the first thing you need to do is get funding. While there is some validity to that boilerplate piece of wisdom, the availability of and need for startup funding has gone through a dramatic transformation over the past decade, and the next few years will see even more of a shift. A perfect storm of events is causing this seismic shift. On the macroeconomic side this ...
Apr. 30, 2017 06:30 PM EDT Reads: 731
Cloud promises the agility required by today’s digital businesses. As organizations adopt cloud based infrastructures and services, their IT resources become increasingly dynamic and hybrid in nature. Managing these require modern IT operations and tools. In his session at 20th Cloud Expo, Raj Sundaram, Senior Principal Product Manager at CA Technologies, will discuss how to modernize your IT operations in order to proactively manage your hybrid cloud and IT environments. He will be sharing be...
Apr. 30, 2017 01:00 PM EDT Reads: 1,105
Cloud Expo, Inc. has announced today that Aruna Ravichandran, vice president of DevOps Product and Solutions Marketing at CA Technologies, has been named co-conference chair of DevOps at Cloud Expo 2017. The @DevOpsSummit at Cloud Expo New York will take place on June 6-8, 2017, at the Javits Center in New York City, New York, and @DevOpsSummit at Cloud Expo Silicon Valley will take place Oct. 31-Nov. 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA.
Apr. 30, 2017 11:30 AM EDT Reads: 2,945
A Man in the Middle attack, or MITM, is a situation wherein a malicious entity can read/write data that is being transmitted between two or more systems (in most cases, between you and the website that you are surfing). MITMs are common in China, thanks to the “Great Cannon.” The “Great Cannon” is slightly different from the “The Great Firewall.” The firewall monitors web traffic moving in and out of China and blocks prohibited content. The Great Cannon, on the other hand, acts as a man in the...
Apr. 30, 2017 07:30 AM EDT Reads: 583
To more closely examine the variety of ways in which IT departments around the world are integrating cloud services, and the effect hybrid IT has had on their organizations and IT job roles, SolarWinds recently released the SolarWinds IT Trends Report 2017: Portrait of a Hybrid Organization. This annual study consists of survey-based research that explores significant trends, developments, and movements related to and directly affecting IT and IT professionals.
Apr. 30, 2017 05:30 AM EDT Reads: 1,966
NHK, Japan Broadcasting, will feature the upcoming @ThingsExpo Silicon Valley in a special 'Internet of Things' and smart technology documentary that will be filmed on the expo floor between November 3 to 5, 2015, in Santa Clara. NHK is the sole public TV network in Japan equivalent to the BBC in the UK and the largest in Asia with many award-winning science and technology programs. Japanese TV is producing a documentary about IoT and Smart technology and will be covering @ThingsExpo Silicon Val...
Apr. 30, 2017 03:45 AM EDT Reads: 9,497
In his general session at 19th Cloud Expo, Manish Dixit, VP of Product and Engineering at Dice, discussed how Dice leverages data insights and tools to help both tech professionals and recruiters better understand how skills relate to each other and which skills are in high demand using interactive visualizations and salary indicator tools to maximize earning potential. Manish Dixit is VP of Product and Engineering at Dice. As the leader of the Product, Engineering and Data Sciences team at D...
Apr. 30, 2017 03:30 AM EDT Reads: 6,286
Keeping pace with advancements in software delivery processes and tooling is taxing even for the most proficient organizations. Point tools, platforms, open source and the increasing adoption of private and public cloud services requires strong engineering rigor – all in the face of developer demands to use the tools of choice. As Agile has settled in as a mainstream practice, now DevOps has emerged as the next wave to improve software delivery speed and output. To make DevOps work, organization...
Apr. 30, 2017 02:45 AM EDT Reads: 9,297
Enterprise architects are increasingly adopting multi-cloud strategies as they seek to utilize existing data center assets, leverage the advantages of cloud computing and avoid cloud vendor lock-in. This requires a globally aware traffic management strategy that can monitor infrastructure health across data centers and end-user experience globally, while responding to control changes and system specification at the speed of today’s DevOps teams. In his session at 20th Cloud Expo, Josh Gray, Chie...
Apr. 29, 2017 10:45 AM EDT Reads: 3,632
This recent research on cloud computing from the Register delves a little deeper than many of the "We're all adopting cloud!" surveys we've seen. They found that meaningful cloud adoption and the idea of the cloud-first enterprise are still not reality for many businesses. The Register's stats also show a more gradual cloud deployment trend over the past five years, not any sort of explosion. One important takeaway is that coherence across internal and external clouds is essential for IT right n...
Apr. 28, 2017 05:00 PM EDT Reads: 2,008
Back in February of 2017, Andrew Clay Schafer of Pivotal tweeted the following: “seriously tho, the whole software industry is stuck on deployment when we desperately need architecture and telemetry.” Intrigue in a 140 characters. For me, I hear Andrew saying, “we’re jumping to step 5 before we’ve successfully completed steps 1-4.”
Apr. 28, 2017 02:00 PM EDT Reads: 1,994
In his session at 20th Cloud Expo, Scott Davis, CTO of Embotics, will discuss how automation can provide the dynamic management required to cost-effectively deliver microservices and container solutions at scale. He will discuss how flexible automation is the key to effectively bridging and seamlessly coordinating both IT and developer needs for component orchestration across disparate clouds – an increasingly important requirement at today’s multi-cloud enterprise.
Apr. 28, 2017 06:00 AM EDT Reads: 4,492
In large enterprises, environment provisioning and server provisioning account for a significant portion of the operations team's time. This often leaves users frustrated while they wait for these services. For instance, server provisioning can take several days and sometimes even weeks. At the same time, digital transformation means the need for server and environment provisioning is constantly growing. Organizations are adopting agile methodologies and software teams are increasing the speed ...
Apr. 27, 2017 08:30 PM EDT Reads: 3,540
Software as a service (SaaS), one of the earliest and most successful cloud services, has reached mainstream status. According to Cisco, by 2019 more than four-fifths (83 percent) of all data center traffic will be based in the cloud, up from 65 percent today. The majority of this traffic will be applications. Businesses of all sizes are adopting a variety of SaaS-based services – everything from collaboration tools to mission-critical commerce-oriented applications. The rise in SaaS usage has m...
Apr. 22, 2017 06:15 PM EDT Reads: 5,112
The proper isolation of resources is essential for multi-tenant environments. The traditional approach to isolate resources is, however, rather heavyweight. In his session at 18th Cloud Expo, Igor Drobiazko, co-founder of elastic.io, drew upon his own experience with operating a Docker container-based infrastructure on a large scale and present a lightweight solution for resource isolation using microservices. He also discussed the implementation of microservices in data and application integrat...
Apr. 22, 2017 05:45 AM EDT Reads: 6,553
We'd all like to fulfill that "find a job you love and you'll never work a day in your life" cliché. But in reality, every job (even if it's our dream job) comes with its downsides. For you, the constant fight against shadow IT might get on your last nerves. For your developer coworkers, infrastructure management is the roadblock that stands in the way of focusing on coding. As you watch more and more applications and processes move to the cloud, technology is coming to developers' rescue-most r...
Apr. 22, 2017 04:00 AM EDT Reads: 4,285
2016 has been an amazing year for Docker and the container industry. We had 3 major releases of Docker engine this year , and tremendous increase in usage. The community has been following along and contributing amazing Docker resources to help you learn and get hands-on experience. Here’s some of the top read and viewed content for the year. Of course releases are always really popular, particularly when they fit requests we had from the community.
Apr. 22, 2017 03:45 AM EDT Reads: 3,848