Master
ThoughtWorks
Menu
Fechar
  • O que fazemos
    • Visão geral
    • Experiência de Cliente, Produto e Design
    • Estratégia, Engenharia e Análise de Dados
    • Operação e Transformação Digital
    • Modernização Empresarial, Plataformas e Nuvem
  • Com quem trabalhamos
    • Visão geral
    • Setor automotivo
    • Saúde
    • Setor público
    • Cleantech, energia e utilidade pública
    • Mídia
    • Varejo e e-commerce
    • Serviços financeiros e seguros
    • Organizações sem fins lucrativos
    • Viagem e transporte
  • Insights
    • Visão geral
    • Destaques

      • Tecnologia

        Uma análise abrangente de tecnologias e práticas de engenharia nas empresas

      • Negócios

        Mantenha-se em dia com as mais recentes tendências da indústria

      • Cultura

        Um espaço para conteúdo sobre desenvolvimento profissional e nossa visão sobre justiça social e inclusão

    • Ferramentas e Publicações Digitais

      • Technology Radar

        Um guia com opiniões firmes sobre as fronteiras da tecnologia

      • Perspectives

        Uma publicação para líderes digitais

      • Modelo de Fluência Digital

        Um modelo para priorizar as competências digitais necessárias para se navegar a incerteza

      • Decoder

        Um guia de A a Z sobre tecnologia para lideranças executivas

    • Todos os Insights

      • Artigos

        Visões de especialistas para ajudar seu negócio a crescer

      • Blogs

        Pontos de vista pessoais de ThoughtWorkers de todo o mundo

      • Livros

        Explore nossa vasta biblioteca

      • Podcasts

        Discussões instigantes sobre as últimas novidades em negócios e tecnologia

  • Carreiras
    • Visão geral
    • Processo de aplicação

      O que esperar de uma entrevista conosco

    • Pessoas em início ou mudança de carreira

      Comece sua jornada na tecnologia aqui

    • Vagas abertas

      Encontre oportunidades na sua região

    • Conecte-se

      Assine nossa newsletter mensal

  • Sobre
    • Visão geral
    • Nosso propósito
    • Prêmios e reconhecimentos
    • Diversidade, equidade e inclusão
    • Nossas lideranças
    • Parcerias
    • Notícias
    • Conferências e eventos
  • Contato
Brazil | Português
  • United States United States
    English
  • China China
    中文 | English
  • India India
    English
  • Canada Canada
    English
  • Singapore Singapore
    English
  • United Kingdom United Kingdom
    English
  • Australia Australia
    English
  • Germany Germany
    English | Deutsch
  • Brazil Brazil
    English | Português
  • Spain Spain
    English | Español
  • Global Global
    English
Blogs
Selecione um tema
Ver todos os tópicosFechar
Tecnologia 
Gestão de Projetos Agil Nuvem Entrega Contínua Ciência e Engenharia de Dados Defendendo a Internet Livre Arquitetura Evolutiva Design de Experiência IoT Linguagens, Ferramentas & Frameworks Modernização de sistemas legados Machine Learning & Artificial Intelligence Microsserviços Plataformas Segurança Testes de Software Estratégia de Tecnologia 
O negócio 
Serviços Financeiros Saúde Global Inovação Varejo Transformação 
Carreiras 
Dicas de Carreira Diversidade e Inclusão Transformação social 
Blogs

Topics

Escolha um tópico
  • Tecnologia
    Tecnologia
  • Tecnologia Visão Geral
  • Gestão de Projetos Agil
  • Nuvem
  • Entrega Contínua
  • Ciência e Engenharia de Dados
  • Defendendo a Internet Livre
  • Arquitetura Evolutiva
  • Design de Experiência
  • IoT
  • Linguagens, Ferramentas & Frameworks
  • Modernização de sistemas legados
  • Machine Learning & Artificial Intelligence
  • Microsserviços
  • Plataformas
  • Segurança
  • Testes de Software
  • Estratégia de Tecnologia
  • O negócio
    O negócio
  • O negócio Visão Geral
  • Serviços Financeiros
  • Saúde Global
  • Inovação
  • Varejo
  • Transformação
  • Carreiras
    Carreiras
  • Carreiras Visão Geral
  • Dicas de Carreira
  • Diversidade e Inclusão
  • Transformação social
Entrega ContínuaTecnologia

Go Goes Open Source

Jez Humble Jez Humble

Published: Mar 4, 2014

ThoughtWorks has long been associated with continuous integration. In 2000 we began using it on a large project and Matt Foemmel wrote what we think was the first CI server to help make it easier. Other people wanted the tool and through a complicated process of idea-sharing and dragging code across the US we ended up creating CruiseControl, the first publicly available CI server.

Since we weren't into products at the time, we released it as free software where it spread rapidly, breeding sister tools for .NET and Ruby. CruiseControl did a lot to popularize the idea of continuous integration, a remarkably powerful practice that improves software quality and helps teams get rid of non-value-add activities such as stabilization, integration and testing phases.

In 2007, while working at ThoughtWorks India, I was riding my motorbike home from our Bangalore office when I got a call from Roy Singham, our founder. He wanted to know if I was interested in moving to China and starting up a new product for ThoughtWorks Studios aimed at helping enterprises adopt continuous integration. We convened a team in Xi’an, China to share our experiences doing continuous integration at scale and coming up with a vision for the tool.

We decided to build an easy-to-manage product that could run complicated multi-step build, test and deployment processes seamlessly across large server farms, providing visibility into the production-readiness of software projects for large and distributed teams. Ultimately we wanted to create a product that could scale to serve a large IT group.

The Go Team at ThoughtWorks Beijing
The Go Team at ThoughtWorks Beijing

After spending a few months working off the CruiseControl codebase in our Beijing office, we realized in December 2007 that its architecture would not support the way we wanted to implement grids and the build, test and deployment workflow. We were also not getting enough revenue to support our original business model of using paid consulting work to support the development of an open-source tool. Thus, we pivoted. We decided to create a new tool and build a commercial product business around selling licenses.

We set ourselves a target to have our new product self-hosting so it could build and re-deploy itself by Chinese New Year: February 7, 2008. Using the existing CruiseControl codebase as the platform for the build agents, we created an entirely new server component from scratch, using Spring, Velocity, iBatis and Hypersonic. At this point we needed to find a customer. Fortunately we had -- just one desk over in our Beijing office -- a busy offshore project with around 30 developers who were happy to use our fledgling product as their CI server.

Supporting a project in full flight with its own deadlines had something of a nightmarish quality. Nearly every day we'd get some urgent request for a feature or reports of problems with something we were in the middle of developing. But the benefit was we had constant feedback from exactly the kind of team we wanted the product to support. This kind of close working relationship with your customer is a principle we regularly push for in our project delivery work, and we find it makes a big difference.

Cruise 1.0, as our product was then known, was released for the first time on July 27 2008. It was the first CI and release management product designed around the concept of deployment pipelines, a pattern that forms the central plank of continuous delivery (although the model we use in the product is by no means the only way of modeling a deployment pipeline).

Subsequent releases saw the product grow in terms of both features and is ability to support large build farms and multiple, large teams. Our 2.0 product, renamed Go, included the ability to run a large suite of acceptance tests across the grid and report back which tests are currently breaking and which check-in broke them, a unique capability in a commercial CI tool at the time. We also modeled the concept of multi-server environments to allow you to see and control what was in every test and production environment under Go’s control.

Over time the Go team changed, moving from Beijing to San Francisco to Bangalore. We also re-architected the software, using branch-by-abstraction to change both the UI stack and the persistence layer while continuing to release the product.

The Go Team at ThoughtWorks Bangalore

Around this time the Continuous Delivery book came out and took off, and I bowed out from active involvement in the product, although I was delighted to see later releases add unique features such as the ability to visualize your value stream from check-in through to release, as well as making it easier to manage large grids and multiple large projects.

Despite all of this innovation, we feel that Go has not done enough to support our wider goal: to revolutionize software development by making continuous delivery standard practice throughout the industry. Thus I’m thrilled to hear that, as of today, Go will be free open source software (as in freedom).

ThoughtWorks will continue to provide commercial support for the product. We’ll also be developing commercial plug-ins for it. Most important, the Go team will continue to be active in supporting its development and the community around it.

I’d like to thank all of our users and customers for their support over the last five years. I’d also like to salute all the people I was privileged to work with on the Go team: Many of the ideas that went into the Continuous Delivery book came out of our discussions.

Download the tool and try it out, and please do give us your feedback.

\

Master
Política de privacidade | Declaração contra a escravidão moderna | Acessibilidade
Connect with us
×

WeChat

QR code to ThoughtWorks China WeChat subscription account
© 2021 ThoughtWorks, Inc.