00:00:09.860
Hello, everyone. I'm Adam Kalsey from Troppo. You might notice that I usually talk loud enough that I don’t need a microphone, but when I do use one, it does all kinds of fun things. Today, I'm going to discuss a topic that relates to lock-in in cloud services.
00:00:34.590
One of the interesting aspects of the Ruby community is its heavy reliance on cloud services. Whether it's Gmail for your email, GitHub for version control, or platforms like Heroku and Engine Yard, the Ruby community uses cloud services more than any other developer community I've encountered. About 15 years ago, I worked for a company that was essentially an e-commerce ASP, a term people used before they coined it as ‘cloud providers’.
00:01:03.270
We managed various functions such as e-commerce, warehouse management, and finance for our clients. Whenever we brought in a new customer, we would entirely redesign their business process to work around our platform, which was quite successful for a time. We had nearly half a billion dollars in funding and revenue, and everyone thought the company was in a great position. However, we eventually shut down, giving our clients only 60 days' notice before we ceased operations. This left about a hundred companies that relied on us scrambling, and many went out of business as a result.
00:01:39.299
This experience has influenced my perspective at Troppo, where we decided to go open source with our entire platform. We wanted to ensure that if clients couldn't stay with us, they wouldn’t be left in a hopeless situation; they could take their platform and run it on their own servers.
00:02:19.530
So, what is lock-in? Lock-in occurs when you have applications or deployments that are tied to a single vendor. For example, if your data is stuck with a specific provider or if your business processes only work with their systems, you risk being locked in. If you've built your workflow around a specific vendor's tools, what happens if that vendor fails or decides to exit the business? Just because a vendor is large, such as Microsoft, doesn’t mean they will always be there for you. They might exit a business line if it's not lucrative enough.
00:03:06.350
Even if a vendor is well-funded and doing great, acquisitions happen, and you may end up with a company whose values or practices you don't align with. Lock-in also occurs because sometimes companies build their platforms on closed systems or rely on proprietary extensions that make switching to another provider difficult.
00:03:30.660
Switching costs can create lock-in as well. For instance, how many of you were using AOL email back in the mid-90s? When it came time to transition to a different email provider, many faced challenges due to the amount of communication established over the AOL domain.
00:04:30.100
With installed software, lock-in issues may be less severe compared to cloud services, yet there can still be legal agreements that bind you to a vendor without you even realizing it. Contracts can include locked-in fees for a set duration, guaranteed minimums, and more.
00:05:42.470
To avoid lock-in, you want to understand the exit strategy before you even begin working with a vendor. Assess the costs and benefits of switching away from a provider. If it’s easy to move your application to another provider, then the risk of lock-in is significantly reduced.
00:06:07.810
Consider options like code escrow agreements where if a vendor goes out of business, you receive a copy of their source code. This ensures continuity even if the vendor fails. However, keep in mind the investments in training and understanding how to use a platform, because moving away might require code archaeology.
00:06:52.650
You should also consider the implications of using API services. Just because an API is documented doesn't mean it's open. If an API is only offered by a single vendor, you're still risking lock-in. Standards that are recognized by multiple vendors can help you avoid this problem.
00:07:46.760
Using established standards allows you to run applications across different vendors, enabling greater flexibility. For instance, Eucalyptus lets you run AWS applications on your private cloud, and many cloud vendors strive for compatibility with AWS APIs.
00:08:07.300
In summary, I want to encourage you all to evaluate the cloud services you are currently using. Examine the portability of your apps and data. Ask yourself: if your vendor vanished tomorrow, what would you do? Planning for such scenarios can help protect you from the risks of vendor lock-in.
00:08:44.810
Finally, my name is Jeff Bowman from Val Technologies. I’ve been dabbling in Ruby and TK, primarily because I find it an interesting alternative to working with web frameworks. TK is an older toolkit, originally built for X Windows and Unix systems, which is still highly useful for developing cross-platform applications.
00:09:06.750
If you're working on TK, you need to be aware that it makes significant use of instance eval, which can affect scoping. When getting started, you'll require the appropriate libraries. Once you've set up your environment, it's about utilizing those libraries to build interfaces effectively.
00:10:10.030
For resources, I recommend 'Tcl and the Tk Toolkit' by John K. Ousterhout, which is an excellent book for learning about TK. If you’re using Linux, you can easily install the necessary libraries. Mac users might find success with Homebrew, and Windows users should look into ActiveState.
00:10:56.520
In terms of using Ruby with TK, I'll walk you through some basic coding practices. A significant part of managing your code is keeping your methods organized to prevent scoping issues related to strings in TK. I will share some sample code that demonstrates setting up the main window and additional elements.
00:11:45.900
Here’s how to create a simple entry box and frame in TK. As you work within the framework, ensure that you're comfortably managing the instance variables and how they are handled within your methods. This simple organization will go a long way in maintaining clean code.
00:12:20.000
For those planning to integrate Ruby and TK, remember to consider cross-platform deployment. You can run these applications on Windows, Mac, and Linux seamlessly. The community support available for Ruby and TK can assist you in the development process.
00:13:00.480
As I wrap up, consider utilizing Jekyll for your static sites. It simplifies the development process considerably, enabling you to compile templates into static HTML without the comprehensive overhead of server management. Jekyll allows quick and straightforward asset handling.
00:14:06.050
While we embrace the advantages of rapid development using modern tools, it's essential to be mindful of the pitfalls based on past experiences. Always keep your applications as minimalist as possible and evaluate whether every feature is truly necessary.
00:14:41.300
In conclusion, always question your assumptions. Just because you believe a feature is vital doesn’t mean it is. Focus on what you truly need and avoid building excess features prematurely. Thank you for your attention today.