Digital transformation is about evolving into a technology business to compete in the digital economy. Businesses can’t transform without relying on the developer to implement the transformation strategy and deliver value. Unfortunately, as developers look to adopt new approaches that let them deliver business value more quickly, they find it challenging to get started in a timely fashion.
First, they have to pick a software stack to use as a foundation. In the world of open source, there is an abundance of choice, however, it can be difficult to compare them in terms of maturity, adoption, and security practices. Another challenge often overlooked when selecting code to use, is verifying whether that code’s open source licensing terms are compatible with the developer’s own organizational guidelines. At the end of the day, it’s difficult to confidently pick the right components for the stack.
It can take a long time to set up and configure the development tools for the each project. A development and test environment needs to be built and needs infrastructure to run on. Hardware might need to be procured, a range of cloud hosting providers might need to be evaluated, or the organization’s IT staff might need to be engaged to obtain access to internal machines, networks, and storage.
A typical developer’s day doesn’t leave much time for change
After the startup tasks are sorted out, that doesn’t mean a developer can focus on coding. In a typical day, instead of writing code, a developer might help a team member get their personal development environments setup and configured to match his or her own. There is also the ongoing task of keeping those environments up to date, which is even more challenging with a globally distributed team.
Once they can focus on writing code, figuring out what to do first or next can be quite time consuming. Business requirements can be scattered across email or various documents in different systems. To keep track of things, the developer might set up an issue tracker that is only used by the developers but not the business people. This adds an administrative burden of trying to keep the issue tracker up to date, especially as priorities change.
Finally, there are the problems that show up in production. Production rollouts fail, or worse there are those “only in production” bugs. These reputation-damaging problems become visible to management and customers and are the most costly to fix. The root causes of many of these problems are subtle or not so subtle differences between the production environment and the development and test environments.
Shackled with the pressures of trying to just get things done, developers can’t afford the time to move to new technologies and better development practices. Even though developers are aware of the acute need to change so they can innovate quickly, they often just fall back on the old, established ways.
Stop the madness
Clearly, the status quo isn’t sustainable. Just as businesses must transform to stay competitive, the processes and tools used by development teams need to evolve to keep up with the demand for change and the changing technology landscape. Imagine a world where:
- Developers can start quickly because development, test, and deployment environments are automatically created for them, and are configured identically to avoid mismatches in production environments.
- Development tools are created with modern container-based applications in mind to avoid additional learning curves and configuration.
- It’s easy to bring other developers and stakeholders like business analysts and project managers on board, even if they are geographically disbursed. The entire team can collaborate and ideate to define the requirements, the business challenges driving them, and the priorities for each development cycle.
- As developers on the team write code, integration and deployments happen continuously, without complicated configuration.
- Developers have the tools to help them gain confidence in the open source components used as part of the stack while reducing risk.
Finally, to really start delivering value, the platform supports a holistic approach, where the analysis of one development cycle drives the ideation and planning of the next iteration, leading to a virtuous cycle.
Introducing Red Hat OpenShift.io
To help developers get started quickly and be productive while understanding the needs of the business, Red Hat created OpenShift.io. OpenShift.io is an end-to-end development environment for planning, building and deploying cloud-native applications. Using just a browser and an internet connection, a developer or an entire development team can get a whole development platform ready to go without downloading or installing any software. OpenShift.io is optimized for creating cloud-native, container-based applications, and microservices-based solutions - the ideal combination for continuous value delivery.
Team workspaces in the cloud
The experience begins in an OpenShift.io “space” which is the virtual place where a software team works. Because following good development processes is critical to success when creating a space, a choice of software engineering methodologies are presented. Choosing agile, scrum™, scenario-based planning, or just a simple issue tracker, shapes how the whole space is set up and responds for managing the entire application lifecycle.
Kickstart your project with quick starts
To kickstart development projects, OpenShift.io includes quick starts, which are a set of vetted development stacks, covering common patterns like RESTful microservices. Selecting a quick start adds a ready-to-use software project that follows best practices, to your space. While the first thing you might notice is all of the boilerplate code that is added to the built-in next generation IDE, a lot more is happening. All of the components of the selected stack are pulled into space, along with the information to automatically build the project into Linux containers.
Develop and deploy on Red Hat OpenShift Online
Development on OpenShift.io happens in containers, so you develop, test, and deploy in the same container-based environment right from the start. The container-based applications built with OpenShift.io are ready for deployment on Red Hat OpenShift Online with a few simple clicks. Not only does this save a tremendous amount of time getting started, but it also removes the mismatched development and production environments problem.
Build and deployment pipelines out of the box
In terms of building, testing, and deploying the application, OpenShift.io provides quick and easy access to sophisticated continuous integration and deployment functionality through OpenShift pipelines and Jenkins. Pipeline stages can include automated testing, deployment to staging, and approval processes. Mature enterprise-grade applications often have rollout strategies like canary or blue-green deployments to reduce roll out risk. But you can’t always afford the time or the resources to do this for smaller applications. In OpenShift.io, pipelines are easy enough that when you choose a quick start, you can select a deployment strategy like canary, with or without approval stages, right from the import wizard.
Gain confidence in your choices
To help gain confidence in the components that make up your software stack, OpenShift.io has deep stack analysis. Insights and advice are offered, like flagging a component that has a known security vulnerability with the recommendation to update to a specific newer release that is free of the vulnerability. OpenShift.io does a full stack analysis on each build. The results are available in both report form and context-sensitive tips from within the IDE, such as when editing dependency files like Maven’s pom.xml. Predictive analysis in OpenShift.io also offers advice like additional packages to consider based on analysis of the components that are most frequently used with the chosen stack.
Plan, collaborate, and develop in one place
To give teams the tools they need to ideate, collaborate, and innovate, OpenShift.io includes planning and project management capabilities. You can create items to track ideas, scenarios, or tasks, assign work items to a team member, and schedule and prioritize work items into development iterations. You can use a task board to get an overview of the work for the team or drill down to the tasks assigned to you--all from within OpenShift.io. Tight integration enables new efficiencies: for example, when predictive analysis displays a recommendation, it gives you the option to easily convert it into a task to ensure it will be acted upon.
OpenShift.io combines the innovations of a number of open source projects including fabric8, Eclipse Che, Jenkins, JBoss Forge, WildFly Swarm, Vert.x, Kubernetes, and of course OpenShift. OpenShift.io itself is a container-based application delivered on Red Hat OpenShift Online.
Available for free, OpenShift.io is currently in a limited developer preview. Sign up at openshift.io to be notified when space becomes available.Last updated: November 16, 2018