Automate Software Builds

Access software development resources as well as strategies for measuring software quality, reducing legacy, and understanding complex software.

managing software intelligently

How to Automate Software Builds, Tests, QA and Releases

This website will give you information on how to automate software builds but also how to automate the full software release process. The best way to become agile and responsive is to ensure your software development outfit is automated.

As well as ensuring your programmers automate software builds, their ability to measure software quality and keep complex and legacy software at bay will define the quality of your enterprise application and make it agile and responsive.

Have you ever wondered how some businesses are able to release working software every day without bugs, outages or delays?

The answers are simple enough to understand but until now were hard to implement. Iterate, Don't Repeat Yourself (DRY), follow Lean principles, practise continuous integration and raise quality through unit and other automated tests!

There are many tools that help with parts of the problem. But these have not yet been brought together in a coherent fashion that is easy to adopt.

Enter Conduit. Conduit ties together all the pieces in the change, software and configuration management domain. Not in some overbearing complex way. But with simplicity at its core.

Now your Software Developers, Database and Network administrators can enjoy the incredible feeling arising from being able to release working software. Continuously. Twice, even three times a day. And they can now concentrate on business and domain issues, rather than copying files, installing software, running database scripts and performing marathon releases well into the night.

Why not audit your IT setup right away? And have some fun too! Do the anonymous audit which should give you a rough indication of where your IT setup ranks in relation to its ability to continuously and frequently "delight" its customers.

Conduit supports you by acting the minute a new or current software developer sits at their desk. At the press of a button (and quicker than it takes to make the morning cup of coffee) they will have a development environment setup. Conduit doesn't just oversee the integration of software. Database scripts are integrated too!! So you get your own sandbox of software, application services (like J2EE servers, Directories, Message Queues), and Database with the schema built, populated and ready to use.

Conduit ensures the developers continuously integrates the web site pages, application software, phone apps, database software, reference data.

Conduit brings together the suite of quality assurance tools to offer you an enticing menu to maintain external and internal software quality. Not only unit tests, but automated system tests, stress and load tests, as well as style, standards, security and documentation checks all crunched to answer that vital question. Does the software build pass. If no - the team can move quickly to address it. If yes - you have another release candidate. When your change management and quality office say yes - they can schedule the version of software to be released at any point in the future - and to any environment.

The release goes out - making a splash only from the champagne coming from even more customers that you have delighted. You have not just met their expectations - you have surpassed them. And if you don't want to tell them how - we won't mind because our joy comes from you delighting your customers.

Conduit - Making easy things easy, and hard things possible.

Remember that when you automate software builds you are just at the beginning of the journey. Conduit is not the only product in the space of managing your overall software build, install and deployment. However we have have kept simplicity as our central objective. You do not need a steep learning curve just when you are pushing to meet pressing deadlines.

You do not need rigidity. And we won't be telling you what is best practise because that won't help. What you need is support in the areas you want, when you want. So you decide what you want Conduit to automate - and then it simply starts doing it. Soon you and your team can rewrite the old mantra of the time, cost and quality triangle. Businesses that have adopted Conduit and similar process tools now can release software fast, with extremely high quality and reduced costs. They have said goodbye to the triangle now you can too.

Quickly the whole organisation will trust your IT team because they will be visibly delivering value continuously to the customer - and will attain productivity levels that make hard things not only possible, but achievable, day in, day out. No one will bet against any of your projects succeeding. Because in the world of software you now hold the key to success.

Conduit - Managing a Continuous Flow of Value to the Customer

The Oxford English Dictionary defines a Conduit as "a channel for conveying water or other fluid".

Value (brought about by technology) flows from the efforts of software developers, database and system administrators towards the customers (end-users of the application).

iWorld-Ventures.com recognises that facilitating an orderly, repeatable, and automated flow of value enables IT teams to achieve maximum productivity.

Maximum productivity. How? From not having to repeat tasks, not having to individually build servers and from having a distributed responsibility driven architecture.

Conduit stands for "CONtinuous Delivery and Upgrade of IT. It uses the concept of environment (habitats) and extends this concept in a disciplined and regulatory driven fashion by supporting the automated installation and full life-cycle of the following types of environments.

  • a) development, system test and integration testing environments.

  • b) production (Prod), pre-production and disaster recovery environments

  • c) Continuous INtegration (CoIN) Environments using portals such as Hudson or CruiseControl.

  • d) Project Change Hub (CHub) Environments for WIKIs, Project Mgt tools, Comms tools and Bug Tracking.

  • e) Environments (named PIXIE) for XML and Web Services integration with external partners.

  • Overview of Conduit User Driven Functionality

    At the command line - appropriately vetted IT and/or change managers can perform the following tasks.

    1) Automate for developers, testers and server administrators the building of complex environments that contain the following non-exhaustive list.

  • a) Web Servers (like Apache)

  • b) J2EE Application Servers (like JBoss or WebLogic)

  • c) Servlet and JSP Containers (like Tomcat).

  • d) Web Services components (like Apache Axis and Apache CXF)

  • e) Database Services (like MySQL)

  • f) Directory Services (like ActiveDirectory or OpenLDAP)

  • g) Outgoing and Incoming E-mail Services

  • h) Outgoing and Incoming SMS Services

  • i) Queue Management and Processing Services (like ApacheMQ)

  • j) System Commnunication Services such as SSH, Samba and SFTP

  • 2) Schedule an automated unattended RELEASE of the Application Software and Database Schema/Data changes INSTALL, PATCH and UPGRADE the components that provide application services.

  • a) to the local habitat or to any network visible iWorld machine including the production servers in exactly the same way.
  • b) in an unattended fashion. You can schedule a release at 4am the next morning which will automatically happen and deliver a report.
  • c) that has passed a large set of automated testing criteria including unit tests, system tests, stress and load tests.
  • d) that has met minimum internal software quality standards such as documentation, code style, dependency rules, unit test coverage, and unit test quality.
  • e) agreed by change personnel by specifying the revision number to be released.
  • f) that has only been built ONCE. Software is never rebuilt for production. The same software build is used for test, pre-release, and production.
  • g) by selecting a type of release. These include

    i) a full-server-build including the operating system, web server,
    application server and database.
    ii) a release of application files and database changes
    iii) releases to CRON (time based jobs)
    iv) security updates and patches to application services like Apache and Tomcat.
    v) a simple restart all that will restart all system services.

  • 3) Also schedule an automated and hands free release that INSTALLS, PATCHES and UPGRADES server components and application services.

    4) Interact easily with the repository versioning system. Helpers exist for checking out a working copy set of files, receiving updates and checking in changes.

    5) Monitor the services status. By running a command sys admins can see what services are installed and working well as well as which services are not responding or are unattainable.

    6) Build and rebuild a version repository. This complex task is automated and increases productivity when a new repository is required. Also at time repository rebuilds are necessary when purging history or removing dangerous history like password files accidentally checked in.

    Automate Software Builds and other Cron Driven Features

    We understand that some jobs have to run regularly (daily, monthly ...). Conduit provides functionality to automate

    a) the Continuous Integration quality process. A CI server (Hudson) checks out the most recent revision of software, and tests it as well as auditing it for quality. If it passes it is held as a possible release candidate. If the software revision contains failing tests or does not meet quality criteria the team are informed.

    b) your software version repository backup process.

    c) your monitoring process. All services however small are monitored and an alert sent out should there be a critical component that is not operating within acceptable bounds.

    As long as you automate software builds and you keep as much of your IT and enterprise application infrastructure hands free, you will be on the road to enjoying agilty and a responsiveness to your customers that can be unbeatable.