ProGet Free to ProGet Enterprise
by Olivia Glenn-Han, on Jul 26, 2019, 2:30:00 PM
At Inedo, our goal is to make your development process seamless so you can concentrate on creating the applications you need and not waste time on the process. ProGet Free will get you started on using a Universal Package Manager, but if you have more than 50 developers, it’s time to think about improving your performance.
Speed and complexity define the software world. How fast can your company code, build, test, and release? Can you test multiple changes to your code at the same time without slowing down or crashing your servers? Are you stuck assigning twilight hours to your teams and burning out your talent?
Development workstations are often just as powerful (if not more powerful) than servers, which means a few dozen developers can quickly overpower a single server. Increasing the CPU or memory allocation on a web node does not help, since the bottleneck is often network-related.
Each developer using packages is making a thousand simultaneous requests from moment to moment. The bottleneck comes from the number of simultaneous connections made at any given time. With more developers, the number of immediate and simultaneous requests skyrockets.
It is the equivalent of a super fast highway. Cars can speed at will until there are too many cars on the road. A Ferrari can only top-out on an open road. If there is five o’clock traffic, the Ferrari can only travel as fast as the cars in front of it. The solution to this problem is adding more lanes to the highway. In developer-speak, this is called “Load Balancing,” and that extra lane is an added server.
ProGet Enterprise protects your software from being overwhelmed, which protects productivity. The highest cost to tech companies is developers’ time. It makes sense to protect their productivity—and the company’s bottom-line—by having servers that meet the need anytime and without question.
We understand that staying relevant to today’s consumers means delivering software quickly and without bugs. No easy task to be sure. All told, any given organization has thousands of different applications and components from various sources powering the business. Each application and component is tweaked, patched, or updated almost continuously sometimes across a global network. It’s complicated, and it takes incredible computing power and availability.
As a general rule, if your developers use packages, consider these ratios:
- High Performance: 1 Server per 50 Developers. The network never slows down, never crashes.
- Average Performance: 1 Server per 100 Developers. The network slows down and drops productivity 10% on average during peak times daily.
- Acceptable Performance: 1 Server per 200 Developers. The network slows down and drops productivity 10-30% during peak times daily.
- Unacceptable Performance: 1 Server per 250+ Developers. The network is unstable and crashes.
High Availability and Load-Balancing
ProGet's distributed architecture allows you to use any number of servers for both load-balancing and automatic failover purposes, such that one server node can take over in the event of any other server failure or outage. If you can’t afford to lose time on downed servers, then keep reading.
Redundant Nodes Protect Your Bottom-line
It is challenging for a business to anticipate at any given moment how many web nodes are needed because it depends on complicated factors like network latency, package usage, etc.
With ProGet Enterprise, we help you design the most efficient system for your performance needs and ensure the proper redundancy to protect your most valuable asset: your software. To achieve a genuinely high-availability configuration, in addition to the DFS and DB Cluster, we strongly recommend at least five servers for ProGet: two indexing nodes and three web nodes.
High-Availability Testing Environment
Once you sign up for ProGet Enterprise, we help you think through the best configuration for the high-availability environment and how to test it for efficacy. When you go with ProGet Enterprise, its more than software, it's a leap forward.
As always, we strongly recommend testing a system before going live! For ProGet Enterprise, we encourage you to test ProGet’s instance to experiment with new features, try out new configurations, and test upgrades before applying them to your live environment.
When configuring a high-availability instance of ProGet, we design the testing for your high-availability configuration to ensure the following:
- Upgraded process
- ProGet Enterprise instance will span multiple servers, and you’ll want to build and test a process that can perform with minimal downtime.
- Allow safe and rapid changes to internal processes.
- Resilience testing
- The only way to verify that your high-availability configuration is resilient is to pull a random node out of service and make sure the whole system still works.
- Create a playground for developers to test configuration and extensions.
- Disaster recovery preparation
- Run a disaster scenario where more than one server goes down and review response protocols.
The next step in protecting your system is to monitor its performance. With ProGet Enterprise, we help you design a monitoring practice. We recommend testing your high-availability configuration regularly. This may include randomly taking servers out of load under controlled conditions and examining your high-availability instance.
Global Scale? Replication is the Solution
As telecommuting and globalization have gained traction, companies find that their developers may no longer be in a single office. Many companies have developers collaborating across incredible distances, and this has created a problem for version control, network access, and speed. If your company is multi-state or multi-national, we strongly recommend using ProGet Enterprise’s Replication feature.
It allows you to:
- Share packages around divisions.
- Prevent network latency and bandwidth limitations.
- Keep critical services highly available so that site-specific hardware faults do not limit access.
- Automate replication schedule based on time, events, or on-demand.
- Replicate repositories to another instance of ProGet that is outside of your local network.
- Make packages available to different teams wherever they are in the world.
In a hyper-fast environment, you have to trust your process. We can show you how with ProGet Enterprise, which includes:
- Priced based on number of serves and instances
- Onboarding and setup assistance
- Architecture advice
- Complimentary tickets to InedoCon
- VIP access to support
- Free classroom training (at Inedocon)
What’s Best for Your Needs?
How to choose between ProGet Free, ProGet Basic, or ProGet Enterprise
Knowing what version of ProGet to get depends on several factors. We have created a questionnaire to help you with this important decision, but we are always available to speak with you too. Please feel free to contact us here if the questionnaire doesn’t help.
- Are you new to Universal Package Management tools and exploring them on your own? If yes, then our free version is a great place to start. If you are comfortable using packages and your company is ready to embark on package use, then ProGet Basic or ProGet Enterprise is better.
- Do you have compliance issues? If yes, then you absolutely should choose ProGet Basic or ProGet Enterprise to access the license scanning and blocking feature.
- Do you have more than 50 developers using packages? If yes, then you need the ProGet Enterprise version for load balancing and high availability. You cannot afford a slowdown because your customers demand speed.
- Do you have offices across the United States or the world? If yes, then you need the ProGet Enterprise version. The replication feature will keep your business running as smoothly as if all your developers were in the same building.
- Do you need to filter connectors, and do you monitor connector health? If yes, then ProGet Basic and ProGet Enterprise versions have you covered.
- Do you have high or low server crash tolerance? If your crash tolerance is low or zero, then ProGet Enterprise is the only version to consider for its multiple web nodes feature.
- Do you need more control over permission and privileges? The ProGet Basic and ProGet Enterprise versions come with Active Directory Integration to give you more control.
- Do you want to automate workflows? ProGet Basic and ProGet Enterprise versions offer webhooks, which send HTTP-based notifications (payloads) when certain events like package publishing, deployment, and deletion occur. These payloads can be adapted to fit into nearly any other tool's API, including workflow automation services such as Zappier, Microsoft Flow, etc.