Tag Archives: open source

Continuous Delivery and Open Source: Taking it on the Road

I’m honored to be speaking at two conferences this week. First, I’ll be at the Open Business Conference in San Francisco.  Matt Asay is not only the VP of Business Development and Strategy at MongoDB, but he’s also one of the founders of the Open Business Conference. When he reached out and asked me to speak, I was honored and thrilled to be able to say yes. I’ll be speaking on how Netflix has woven together open source components to build a continuous delivery platform. Furthermore, other companies are able to use these projects as well, and build solutions that meet their needs. At Netflix, we’re pretty happy to provide these artifacts of our technology business practices to the community. We’ve benefitted from open source software as well, and it’s great to be able to contribute to the ecosystem. The Open Business Conference runs Monday and Tuesday. My talk is on Tuesday: “Continuous Delivery at Netflix: From Code to the Monkeys”. I’ll be participating in a town hall meeting in the afternoon as well.

And when Michael Keeling reached out to me about the SATURN 2014 conference, I was equally thrilled and excited. I was crushed when I realized that it was the same week as the Open Business Conference. With some clever finagling with both family and at work, I realized I could do both. So I’ll be delivering a keynote at SATURN on Thursday morning, “Engineering Velocity: Continuous Delivery at Netflix”.

So while I won’t get to spend as much time at either conference as I would like, I will get to attend both and only miss 2 bedtimes and 1 morning with my kids. And my team will rock through the week without me.  Hope to see many of you at one place or the other!

Conformity Monkey: now open sourced

This week, Netflix open sourced yet another member of the Simian Army: Conformity Monkey. This monkey is charged with inspecting Amazon Machine Images (AMI) to determine if they meet the rules that we have specified.  At Netflix they range from ensuring that security guidelines are met to specifying failover information.

By open sourcing Conformity Monkey, Netflix has made this software widely available so that your guidelines can be specified as rules in your configuration. As standards emerge for cloud deployment, it can be a confusing place for new developers. The use of Conformity Monkey can help structure your environment around emerging best practices, developed internally or in the community as a whole.

Let us know how you might be able to use Conformity Monkey by commenting on the announcement post. We would love to hear from you.

Netflix is hiring for the Simian Army team. Join us to work on the monkeys!

SimianArmy

Dynamic Languages on the CLR

Jim Hugunin and John Lam

Jim created Jython and IronPython.  John is working on Ruby for the CLR, but has only recently transitioned to working for Microsoft.  I get the impression that Ruby for the CLR will be released Really Soon Now.

Just as I was getting grumpy about not having an interactive conversation, Jim and John came on to do the Dynamic Languages on the CLR talk. They turned it into a completely interactive conversation with no Powerpoint. They even turned some of the questions around to the audience, asking for our input. This was SO much more interesting for me, at least, and for the speakers as well, I expect.

The guys took questions:

1.Ruby or Python: Which sucks less? Use the language that fits your mind best. Some people work well in Python. Others have that same experience with Ruby. It’s not necessarily a fundamental difference in languages, but rather a difference in minds. Not a huge argument that one is superior to another. But comparing either to Javascsript is a different question. That language is impoverished. Doing DSL tricks is easy in Ruby and allows people to write closer to the problem domain.

2.How are you going to lock us into your platform? IronPython has always been about being completely compliant implementation of Python and completely integrated with .NET. To do both is a lot of work. So, in Python “strip()” removes whitespace, but in .NET “Trim()” removes whitespace but is illegal in Python. But if you import clr, then for that file ONLY it is allowed to run s.Trim(). So the parts of your code that are doing pure data structures or pure algorithms can ignore whether you’re working in IronPython. Being up front about wanting people to lock into .NET. By providing really cool libraries, they will lock programmers into .NET? Strength is that you can write Mac-specific or .NET-specific code. Pure Python code works everywhere. Python has a huge wealth of pre-existing modules. Those written in Python will work (or it’s a bug in IronPython). Those that are written in C are more problematic. FePy project is a community based project that includes a lot of modules that fill in these gaps.

3.What is the plan for PHP? Would PHP running on .NET, would that be convincing to switch. Not really, so it doesn’t really look like there’s interest. Microsoft is doing dynamic languages because it’s interesting to a group of developers.

4.What is it going to take for Rails to run on top of .NET? Imagine it happens. Is it a good idea? Deployment is a pain in Rails. Want to sell into .NET companies in the enterprise. What it’s going to take is a good business reason to want to use it. Developers need to want it.

5.When is the veil of silence going to be limited? Jim went dark for 8 months after coming to work at Microsoft. IronPython is being run as an open source project with an open mailing list. IronPython 1.1 was just released. Incremental releases were driven by user bug reports in an open, interactive way. Python 2.0 more modules, end of year. John’s only been at Microsoft for 2 months, so he will start becoming more open soon.

6.Why dynamic languages? There are millions of programmers who clearly love dynamic languages. It works for them. Let them program in a way that they enjoy and can be productive. More expressive. First refactoring tool written for Smalltalk. First unit testing framework written for Smalltalk. Good ideas have come out of the dynamic language community.

7.Do we want to run the CLR in IE? Killer fast Javascript and Ruby in the browser would be compelling. Performance is the big thing. Testing, running javascript on IE. As we create more sophisticated apps, there’s no visibility in the CLR. But, would you put it in Firefox too?

8.Mono? Mono doesn’t work well. Winforms and GTK# and supposedly it’s compatible. Some say it runs beautifully and some say it doesn’t run at all. Mono regularly runs IronPython.

9.Should dynamic languages be an Intro CS100 language? Yes, dramatically lower barrier to entry. Number of things you need to know to write a program in a static language: classes, methods, static method calls. In dynamic languages only need a function call or statement to write Hello World. If you want to talk about the essence of programming, it’s about control flow and data structures, not types. But the lower concept count means that people with less programming experience can write in dynamic languages. Means that it might have an impact in terms of nonprogrammers writing code. Introducing patterns on top of the language adds a different level of complexity. Malleable syntax in Ruby allows for custom languages like Rails DSL. The ability to create DSLs in Ruby is interesting.

10.What about IDE support? Today, for IronPython, Visual Studio SDK shows people how to extend Visual Studio. It includes IronPython integration (all written in C#). Minimal intellisense support, ships as a sample. Left to developers to extend. The lightweight solution to an IDE is a real challenge. Can use the debugger today. The best part of IronPython/.NET integration is availability of the debugger. Profiler works poorly. Infrastructure issue that needs to be solved fairly soon. RubyCLR: John demo’ed an IDE that he worked on before he came to Microsoft. He was running on a Mac, running RubyCLR. He used WPF with Ruby, using Ruby metaprogramming stuff. This enabled him to reduce the number of things he had to type.

Day 1 at the MTS07: Keynote

Keynote:

They keynote was delivered by Bill Hilf. Bill comes from the open source community but now works for Microsoft, as the General Manager of Platform Strategy. His intent is to build the community, for the benefit of the software community as a whole as well as for the benefit of Microsoft. Bill seems to get the idea about how open source can benefit Microsoft, and how collaboration can help as well.

Bill is unapologetic. Microsoft is in the OSS to make more money. For him, this is not an emotional process. By building partnerships with other companies, he can sell more software (licenses, etc.). They sponsor every open source conference, to some extent. They will speak and sponsor at every event.

Port25 is the community front end for communicating the strategy and intention coming out of the open source lab.

http://port25.technet.com

Codeplex is open source community for developers, based on Visual Studio

Bill described a set of lessons about cooperating as well as competing with other companies, that he has taken from his favorite video game: Official Strategy Guide, World of Warcraft

Collaborate and compete, but there are challenges to doing so:

  • The Observer Effect – when you enter into an environment you change it by becoming a part of it
  • Balance – how much to compete, how much to cooperate
  • Perceptions – small but loud open source philosophers.  They believe that commercial software shouldn’t exist.  Huge base of people who write and deploy code and make policy about code: much more pragmatic.  Understanding the audience is important, and don’t target the business policy to the philosopher.
  • Red Oceans and status quo – what could you build?  Windows and Office are existing markets that make a lot of money.  Moving those markets is not a trival task. 
  • Focus – limited resources
  • The benefit and bane of history.  History of Microsoft, what has been problematic, what has been done and what they don’t do well.

 

Things that matter include:

  • Relationships
  • Platforms
  • Communities
  • Ecosystems
  • Value
  • Making Money

 

Lessons:

  • Patience is the key
  • Learn what you can handle
  • Invest in friends and skilled allies (hire people smarter than yourself)
  • Identify goals and suitable targets
  • The right place at the right time
  • Use all resources – “play long, play hard, and use as many sources as you see fit”

 

Port25
Community front end for communicating strategy and intention coming out of open source lab
CodePlex
Open Source Community for developers, based on Visual Studio