Top 5 AWS Technologies to keep an eye on in 2019

Top 5 AWS Technologies to keep an eye on in 2019

AWS Re:Invent is a learning conference hosted by Amazon Web Services for the global cloud computing community. The event features more than 2,000 technical sessions, a partner expo, after-hours events, training and so much more. It’s the main event to find out the latest with AWS products and new releases.

With several dozen new products announced at the most recent AWS Re:Invent, it’s certainly challenging to decide what to follow. So we’ve filtered it down to the top 5 technologies to pay attention to in 2019.

1. Lambda Layers

First up, we have Lambda Layers. The quick and dirty description of Lambda is: serverless code that is easily scalable, where you only pay for what you use, when you use it, taking much of the hassle out.

Lambda Layers builds on this product by offering a simple way to manage software and data across multiple lambda functions. No longer do you need to deploy shared code with every function that uses it, now you just need to package the components in a zip file within a single Lambda layer and have the function reference it, just like it would do normally.

2. AWS Transit Gateway

Next comes AWS Transit Gateway, a new service with the goal of simplifying the management of network architecture and easing scalability. AWS Transit Gateway acts as the hub, managing and routing all connected networks from this single connection that can be installed on premises data centres or remote offices.

While easing scalability is a major concern for many, the most immediate benefit of AWS Transit Gateways is operational cost reduction.  This is brought about by each network only needing to connect to the singular AWS Transit Gateway.

3. AWS Control Tower

Next up, AWS Control Tower, this technology is so brand new it is only available in preview at the moment. Its core purpose is that it seeks to automate the set-up of your multi-account AWS environment with just a few clicks, whilst providing options to enforce policies using service controls and detect policy violations as well.

On top of the automation of such processes, Control Tower provides an integrated dashboard for a top-level summary of the environment. Facilitating easy monitoring and enforcing of policies, as well as providing intuitive feedback. It’s a great feature to have for any company attempting to embrace and practice DevOps.

4. AWS Marketplace for Containers

With the industry making significant moves towards the micro-service architecture, utilising containers for many services and processes, Amazon now offers more than 180 curated and trusted container products in AWS Marketplace and through the Amazon Elastic Container Services (Amazon ECS) console. This facilitates taking advantage of the rest of Amazon’s services, such as Amazon Elastic Container Services for Kubernetes (Amazon EKS), and AWS Fargate, leveraging on current knowledge and skills without any friction or need to change.

5. AWS Security Hub

Another important and new technology available for preview is AWS Security Hub. This technology aims to keep security monitoring as agile as possible. Currently, with the vast number of security tools available ranging from firewalls to compliance scanners, processing all the data and alerts can be difficult. AWS Security Hub provides a single place to aggregate everything. Integrating with other AWS services like Amazon GuardDuty, Inspector and Macie, AWS Security Hub aims to provide a strong visual summary of the information, while enforcing best practices and compliance. In other words, Security Hub is focused on giving a comprehensive view of high-priority security alerts and compliance statuses across AWS accounts.

While there is not yet a feature for custom rule sets, Amazon has made indications that they are looking to open up more options for policies and standards of best practice. This will hopefully give companies more flexibility to choose and adopt the policies most relevant to them.

 

 

Matthew SongTop 5 AWS Technologies to keep an eye on in 2019
read more
Can a new hire benefit from Terraform?

Can a new hire benefit from Terraform?

The short answer? Yes. For that matter, any programmer, new or old, can benefit from Terraform. I’m only a few months into my journey with Terraform and its already proving itself as extremely beneficial.

Before describing how Terraform can benefit you, it would probably be best to explain what Terraform is and get everyone on the same page. Terraform is software created by our partner Hashicorp, responsible for helping us to implement infrastructure as code. With the industry’s bid to turn everything into code, it seemed only natural for Hashicorp to provide a solution to spinning up service providers, whilst enabling easy versioning and replication. In a single sentence: Terraform allows us to turn the entire process of setting up cloud providers into code that can be automated and version controlled.

The main benefits of using Terraform are how replicable everything becomes and how easy it is to make changes and track said changes. Like any good code, all these resources that Terraform creates are easily transferrable.

Problem Scenario

Imagine, for some internal testing you set up a group of resources to test a Continuous Pipeline on AWS. The plan is to use an orchestration tool like Jenkins, test software like SonarQube and a binary repository like Nexus. You set up the resources, the security groups, subnet, etc. You configure the ports the software is expected to run on, along with various other requirements they need, like Java versions.

Four months later after the testing is complete, you need to set up the same solution for a client. Maybe with a different binary repository like JFrog. Only, the resources are gone. No reason to keep resources you weren’t using for four months (or if you did, that was four months of subscription for resources that weren’t being used- a loss either way). Now you have to go through the entire process of setting up everything again. In the best-case scenario with perfect documentation, you’d still have to manually go through each and every step, provisioning each resource and configuring each software package. More than likely, you’ll find a knowledge gap somewhere and you have to fumble around trying to get it all working again.

In addition to this, there are minor changes and updates. For example, a new port needs to be opened and perhaps the keys need changing for security reasons. Perhaps a value was misnamed and needs correction. How can you ensure that the changes won’t impact the setup of the service? Then for every change and update the documentation would also need updating as well to record this.

Terraform to the Rescue

With Terraform, most, if not all of the hassle, can be removed from that messy situation. Code can be reused infinitely, with perhaps some minor changes and updates to suit the new scenario.

Want to pre-install software like Jenkins and Nexus without having to manually download them and their dependencies? Turn it into a script and automate it.

Need to configure ports and environmental variables for said software? Put those in the script too.

A year has passed, maybe the original programmer for the solution has been moved to another project.  Don’t worry, the terraform script remains.

Made a change to security groups and unsure if it works? Copy the code, make the change and run the code to verify its functionality. With some refactoring, it even becomes possible to only copy parts relevant to you. As with the scenario above, simply remove the script and associated config files, if any, for installing Nexus and prepare one for JFrog. Now you have a terraform code for installing a CI pipeline that supports either Nexus or JFrog, which can also be easily modified to work on other OSes and even install other tools.

Not For Everyone

Now that being said, an absolute newcomer, should not start using Terraform immediately. Terraform knowledge in no way supersedes the knowledge of the actual provider. Knowing that a security group exists and is needed for Terraform to create an AWS resource instance is not a suitable replacement for understanding WHY the security group is necessary or WHAT the security group does. Some hands on with what goes on “under the hood” still goes a long way.

My Short Terraform Journey So Far…

As infrastructure as code, Terraform provides an easily mutable code that is version controlled when integrated with other services like Git… And being code, it is easily repurposed for other projects and uses. As a new hire at ECS Digital with only a few months of using Terraform, I’ve already benefited tremendously from this incredible tool. Ranging from repurposing the code and scripts of others in my own setup, to easily providing fresh instances for me to test without all the manual work that goes into setting them up.

Just as excitingly, Hashicorp is far from done with Terraform. As of this article, Terraform is still at version 0.11. This means that there is still vast room for iteration and improvement on Terraform, such as better importing of pre-existing resources into Terraform’s set of managed resources.

Having already benefited so much from Terraform in its early life cycle, I am certainly keen to see what more can be done with it. If you’re interested in starting your Terraform journey with us, feel free to contact us or check out our Hashicorp training we provided as official Hashicorp partners.

Matthew SongCan a new hire benefit from Terraform?
read more
Digital Women in Tech – DevOps Playground: Hands on with Cypress

Digital Women in Tech – DevOps Playground: Hands on with Cypress

As part of ECS Digital’s initiative to attract more women in technology, we held our first ever Digital Women in Tech MeetUp in our London office at Bermondsey Street where we did a hands on session about a new automation testing tool called Cypress.

Cypress is a test automation tool created by Brian Mann to help developers write automation tests from a user’s perspective. With Cypress, any actions that users can do can be simulated such as clicking a button, typing values on forms, or selecting checkboxes. It’s a tool that is written purely in JavaScript and is often compared to Selenium but it’s actually different from Selenium. The tool was created to address the issues that developers faced when writing automated tests.

In this hands on session, we went over what Cypress can offer, it’s limitations and key differences with Selenium. We then guided everyone how to connect to their remote machines and how to launch the sample React application that we were going to test. The machines provided have been pre-installed with all the software that they needed to follow the session. Once everyone was familiarised with using Cypress and its test runner, we guided everyone on how to write the test scenarios that we planned for them.

Following this video you should be able to run through this playground from the comfort of your own home.

Thank you to everyone who attended the first Digital Women in Tech MeetUp and for making it successful!

Interested in attending our next DevOps Playground events. Follow us on Meetup to receive a notification about the next event

Marie CruzDigital Women in Tech – DevOps Playground: Hands on with Cypress
read more
Key takeaways from DevOps Deadlock webinar

Key takeaways from DevOps Deadlock webinar

On Thursday 8th November 2018, Andy Cureton (ECS Digital), Jen Thomson (IDC) and Dave Gore (Lloyds Banking Group) presented on ‘How to get past the DevOps Deadlock’.

This coming together of industry experts gave an exclusive look into how organisations are utilising DevOps. More importantly, it looked at how organisations are moving past the experimental stage to successfully adopt DevOps at scale.

This ability to get past what has been coined as ‘DevOps deadlock’ an approach that utilizes new KPIs spanning the cultural, business, process, technology and talent/staffing changes required for any business transformation that utilizes DevOps.

Accelerating the DevOps Journey

Jen Thomson drew on IDC’s latest research, shining a light on how different organisations are accelerating their DevOps journey to get to what IDC are terming ‘DevOps Determined’.

Whilst unicorns and digital natives are already starting to reap some real benefits from early DevOps adoption, Jen explains that the journey for the majority of organisations is far from over.

In reality, the journey to enterprise scale DevOps is only just beginning. Out of the 60% of organisations who have already adopted a DevOps methodology, each belongs to one of two distinct groups:

  1. Protagonists or DevOps Determined. These make up 40% of large European organisations talking to IDC
  2. DevOps Distracted. These organisations prioritise other challenges and find it hard to scale beyond the DevOps experimental stage. They make up the remaining 60% of large organisations talking to IDC

The performance gap between these two groups continues to widen, with Jen noting that 57% of ‘distracted’ organisation are at a DevOps deadlock, unable to get past the challenges and bottlenecks they face internally.

Moving past the DevOps Deadlock

Whilst DevOps deadlock is a challenge, organisations can and are successfully breaking this transformation blocker.

Andy Cureton, Founder of ECS Digital, pinpointed four key traits businesses are adopting in order to gain traction in their programs. These are:

  • Structure
  • Communication
  • The supporting organisation
  • Enabling transformation

What was interesting about Andy’s talk was that whilst he recognises that DevOps isn’t mandatory, DevOps methodologies, new tooling and ways of working are well proven. How to adopt these at scale across an organisation, however, are not.

The businesses succeeding at scale are those with a central framework, structure or program in place that is coordinating the transformation activities across the organisation.

Taking work that is completed in one area of an organisation such as a CI/CD pipeline and bottling it up to create a quick start or accelerator so that it can be simply leveraged by other areas of the organisation is critical to amplifying the return on the investment. A centralised library is typically used to capture and publicise what is available. Andy described this as the ‘secret source’ to magnifying the benefit going forward.

Another interesting point Andy raised was that ‘fear of change is a phenomenally powerful inhibitor at an Enterprise Scale’. You need to be able to sell the benefits to the individuals who will be impacted by the change of the program, on channels and in ways easily digested by your audience. The aim is to create a pull effect for the transformation rather than magnifying the inertia typically present in established organisations by not focusing on communication.

Whilst most DevOps determined look to retake control of app development and IT operations, they still need the people, know-how and business acumen to drive these changes in a way that stakeholders can buy in to. Having a partner like ECS Digital enables you to strike this balance of accelerating your transformation and enabling your internal teams to become self-sufficient so you can run on your own.

One of the ways ECS Digital is helping organisations facing the conundrum of going faster and insourcing engineering talent is through an offering called Enablement Pods. Perfect for the modern organisation looking to move past their own DevOps deadlock.

Succeeding with DevOps

Talking about a transformation might seem like progressive thinking, but as the saying goes, actions speak louder than words. Dave Gore, Engineering Transformation Lead at Lloyds Banking Group (LBG), described what it takes to get a transformation off the ground and the fundamental pillars to making that transformation a success.

Dave started by explaining that starting the DevOps conversation is mostly about the people in an enterprise scale organisation. If you are able to hold a good conversation across that community, then you’ve started your transformation off on the right foot.

To secure this crucial buy-in from all stakeholders, you need to sell the principles of the programme and set out outcomes (benefits) that it will deliver to the business. You also need to create an environment where your engineers feel empowered to create outstanding technology solutions for both colleagues and customers.

Once both have been established, you need to find something real and take the plunge! Dave explained that getting started is often the hardest part in an enterprise scale organisation. There will always be a myriad of options, stakeholders, what-if scenarios etc. Identifying one anchor point that you can scale and build from makes it an easier first step – never easy, just easier.

By structuring your programme in this way, you are giving yourself the opportunity to showcase the challenges and achievements encountered with these new ways of working, tools and technologies and continue the conversation that remains so fundamental to its success.

Since starting their journey, LBG have seen a lot happen and 2018 was no different. By following the above principles, LBG have started to see rapid adoption of DevOps methodologies across the business. And whilst these took effort to reach, they have unlocked other valuable areas of LBG.

In Dave’s words, this has made the initial commitment and investment in moving the dial on how LBG do things worthwhile, establishing positive change and building very different capabilities in the organisation today.

What are your next steps?

Whilst Dave, Jen and Andy provided exclusive insights into how businesses have been successfully adopting DevOps practices at scale, the above is only the tip of the iceberg. If you would like to learn more specifically the ways of working, tools, and technologies that could accelerate your transformation out of a deadlock, get in touch today.

If you would like to watch webinar, click here now.

Andy CuretonKey takeaways from DevOps Deadlock webinar
read more
Closing the gap between business and technology

Closing the gap between business and technology

27% of final decisions regarding IT planning, spending and management are now made by someone other than the IT department. For a successful DevOps transformation, you need to have implementation come from both the top and the bottom. Here’s how…

For a successful DevOps transformation, you need to have implementation come from both the top and the bottom.

A recent survey by IT industry association CompTIA found that 27% of final decisions are now made by someone other than the IT department (i.e., the heads of other business functions such as finance, marketing, sales and logistics).

Within a bottom-up, grassroots approach, whereby engineering alone is trying to build a better continuous development pipeline, without the support from senior stakeholders, DevOps will only stay siloed in one area. DevOps can and does scale across whole organisations, the problem is that there will be disconnect between the business and development teams. Changes to the organisation and culture are needed to close the gap.

But how should you go about ‘bridging the gap’?

It sounds cliché, but it’s all about communication. Ensuring goals of both the organisation and the teams within it all have overarching and very strategic goals they can work towards collaboratively. Making sure every product is geared towards achieving that goal. Whether it’s to increase sales or click-throughs to a specific page of a website, it must be specific, clear and concise.

Organisations must bring the business and development teams together so they can build products that help achieve strategic goals, and there are a number of effective ways that can help achieve this.

  1. Impact Mapping

Impact mapping is a strategic planning technique that prevents organisations from getting lost while building products and delivering projects. It does this by clearly communicating assumptions, helping teams align their activities with overall business objectives and make better roadmap decisions.

2. Customer Dashboards

Another way to ensure your team is guaranteeing business and IT function buy-in is through custom dashboards. These show you a representation of where you are as well as the business value of the digital transformation. The best countermeasures to inaccurate communications are the mutually reinforcing pillars of automation and measurement.

Automated systems, like custom dashboards, enable better reporting of business metrics. Rather than relying on information that’s filtered upwards to executives, you have an objective measurement system to share across the business, helping everyone get onto the same page.

Meeting the strategic goals of the organisation is imperative. Dashboards are one of the ways we ensure that we are as transparent as possible when communicating our progress, inspection and adaption from the other two core pillars of Scrum Theory and should be adopted not just at the engineering and team level, but also the program and portfolio level. Mapping things at the start does not mean that the job is done, we must update the plan to take into consideration the competitive landscape outside the organisation.

3. Organisational Culture

Finally, organisational culture is extremely important when planning a Digital Transformation project. It often comes down to how your team communicates with one another that makes the biggest difference. Ensuring that your team plans workshops with business/IT functions to get the most value from the projects, and all stakeholders are kept up to date with new developments on the project will also help.

What have we learned?

With the two examples outlined, it’s clear that if you don’t get your business involved, the product team can easily go-off on a tangent. The business will be frustrated as the product won’t be servicing a business need, and objectives will not be fulfilled.

Communicating is key, without it both parties will become disengaged.

Cultural change has to come from the top, leadership must be bought into the transformation and motivated to make it a success. Those at the coal face, the development teams rarely need convincing, they understand the benefits of a DevOps culture and in most cases will always be your path to least resistance. The key to developing applications that release true business value is bridging the gap between the two, the development teams should be seen as part of the business, rather than a service set up to support it.

ECS Digital can help you close your business’ gap on your digital transformation journey, get in contact today to find out how. We held a webinar in November which explained how to get past the DevOps Deadlock within your company – watch now.

Sarndeep NijjarClosing the gap between business and technology
read more
Why learning for future innovation is an essential skill 

Why learning for future innovation is an essential skill 

There are few parts of our lives that haven’t been fundamentally changed by the growth of technology over the past few decades – and nobody knows this better than Information Technology (IT) professionals. In fact, if you work in IT there’s a good chance that your job didn’t even exist ten years ago. But technology isn’t only changing the IT world: it’s changing almost every facet of the way we live, work and interact. 

How you approach this level of change on a daily basis can either be the catalyst for boundless innovation or a serious detriment to the success of your business. In this blog, we’ll take a look at why being prepared to learn for future innovation can be the best defence against stagnation in an ever-changing market. 

Learning for future innovation requires specific techniques and agility 

Learning for future innovation is a very different process to learning for something that already exists. Learning for an existing technology is more straight-forward because the method you choose is already tried and tested. Learning for future innovation, by contrast, seems almost self-contradictory.

While it’s certainly no walk in the park, there are ways to make this easier, and at the rate that technology continues to drive our world forward, there will be an ever-increasing number of topics to cover. And, if the mounting evidence is to be believed, most of us have been taught how to learn ‘wrongly’ throughout our lives. For professionals who are serious about learning future technologies, it’s vital to be able to adapt to a variety of working conditions, learning styles and environments in order to think outside the box and innovate more easily than the competition. 

Everybody learns in their own way; no two learning styles are the same. 

Every person has their preferred learning style, and what works for one person might be totally ineffective for the next. Here are the most common learning styles: 

  • Elaborative interrogation: Being able to explain why an explicitly stated fact or concept is true – in other words, repeatedly questioning the facts or pushing the concept to its limits 
  • Self-explanation: Explaining new concepts in the context of existing information, or explaining the necessary steps taken during problem solving. 
  • Summarisation: Summarising information in various lengths, to study from later 
  • Highlighting/underlining: Marking the pertinent sections of a text or piece of work to be revisited later 
  • Keyword mnemonic: Using keywords and mental imagery to associate verbal materials 
  • Imagery for text: Forming a set of related mental images from text materials while reading or listening 
  • Rereading: Restudying text material again after an initial reading, often several times 
  • Practice testing: Self-testing or doing practice tests on the material that needs to be learned 
  • Distributed practice: Implementing a schedule of practice that spreads out study activities over time, with the objective of forming a long-term understanding 
  • Interleaved practice: A schedule of practice that mixes different kinds of problems, or a study programme that mixes different kinds of material within one single study session 

Having an understanding of the different learning styles and how they differ from one another isn’t only a good way to find out which works best for you, it’s also a valuable tool for understanding how the other members of your team may prefer to learn. Ultimately, working as a team means being able to translate new information into a format your colleagues are able to understand is as important as being able to understand it yourself. 

DevOps courses in Singapore 

Whether you’re a DevOps veteran looking for a new opportunity for innovation or an aspiring newbie, ECS Digital Singapore offers a comprehensive selection of training courses that cover everything from DevOps basics to advanced tips and tricks.  

Having spent over 12 years implementing DevOps in organisations around the world, we have adopted a variety of learning styles to ensure what we teach can be easily absorbed by those wishing to learn.   

In our experience, one of the most effective styles for developing skills in new technology and tools is face-to-face sessions. With this in mind, we have partnered with Singapore Management University to deliver an interactive three-day course designed to give you a better understanding of the DevOps methodology.  

If you’d like to find out more about developing your DevOps understanding and skills further, visit our training page to find out more about our Adopting DevOps course in Singapore. 

Kok Hoong WaiWhy learning for future innovation is an essential skill 
read more
Learning DevOps: Theory versus Practice

Learning DevOps: Theory versus Practice

DevOps is notoriously difficult to define.

There are many reasons for this, not least of which is that it’s not simply a skill, a tool or a process – it’s a combination of all three. More specifically, it is how these three factors interact to bring about a change in the way software is delivered. For this reason, learning DevOps is a tricky thing to talk about.

Knowing the theory behind good DevOps practices is essential, but without any practical knowledge, you’ll quickly find yourself out of your depth in your organisation’s DevOps journey. As Alfred Korzybski put it, ‘the map is not the territory’. But that doesn’t mean you should jump head-first into DevOps without any kind of roadmap.

In short, mastering DevOps requires both a solid understanding of the theory that underpins it, as well as the ability to handle the reality of DevOps in practice. In this blog, we’ll look at what this means for learning DevOps.

Theory provides the foundation, practice allows for innovation.

In a strange way, learning DevOps is similar to learning how to play an instrument: you could spend years studying the theory and learning how to read music, but if you never sit down to practice, you won’t have any idea how to actually play a piece of music. In the same way, learning the fundamentals of DevOps lays the groundwork, but without practical experience, you’ll very quickly find yourself out of your depth.

A significant part of success with DevOps relies on innovation – the theory might show you how to accomplish something, but there is no ‘one size fits all’ DevOps solution. With practice, you’ll be able to refine and adapt the theory to create a variation that suits your organisation perfectly.

By no means is this a recipe for success. You may get some broken chords along the way, but the key is to learn from your mistakes and improve. As Elon Musk – CEO of Tesla and SpaceX – says “If you’re not failing, you’re not innovating enough.” Ultimately, having a good handle on both the theory and practical application of DevOps is essential for organisations that pride themselves on innovation.

What is DevOps theory, and where do I learn it?

The way we see it at ECS Digital, DevOps consultancy consists of three components: people, processes and tools – in that order.

DevOps theory is concerned with the first two: people and processes. Because DevOps makes some fundamental changes to the way people within the organisation collaborate, getting a handle on the theory behind it requires completely rethinking the nature of a software company from the ground up. At its core, DevOps is influenced by the principles of agile software development – continuous delivery and integration. Shorter delivery times and working in sprints are the legacy of agile development’s influence on DevOps.

There are many resources for learning about DevOps theory all around the internet, from blogs, to social media portals, to training videos on sites like Vimeo and YouTube. However, more in-depth training focuses on theory and practice in equal measure, since mastering DevOps requires an understanding of both as two sides of the same coin. 

What is the best way to learn about DevOps in practice?

The final component of DevOps in ECS Digital’s view are the tools that underpin the software delivery processes and bring DevOps to life. Defining exactly what a DevOps tool is can be problematic, since there are many aspects of the practice that can be augmented with a huge number of tools. Because of this, it’s not uncommon for different organisations to use entirely different combinations of tooling depending on what works best for them.

Typically, DevOps tools can be grouped into some core categories:

  1. Configuration Management – tools like Ansible, Puppet and Chef make it possible to manage and automate infrastructure as code;
  2. Application Deployment – tools such as Automic and Jenkins provide the framework for continuous integration;
  3. Delivery

Learning which of these are most valuable to your cause comes with experience of the tools themselves. The DevOps training offered by ECS Digital Singapore provides the theoretical foundations and then introduces the practical concept with some of the leading tools.

DevOps courses in Singapore

Whether you’re a DevOps veteran looking for new opportunity for innovation or an aspiring newbie, ECS Digital offers a comprehensive selection of training courses in Singapore that cover everything from DevOps basics to advanced tips and tricks.

Not only do we have 12 years’ experience implementing DevOps in organisations around the world and in a myriad of different industries, we have partnered with Singapore Management University to deliver an interactive three-day course designed to give you a better understanding of the DevOps methodology.

If you’d like to find out more about developing your DevOps understanding and skills further, visit our training page to find out more about our Adopting DevOps course in Singapore.

Kok Hoong WaiLearning DevOps: Theory versus Practice
read more
Singapore is not DevOps ready but ready for DevOps

Singapore is not DevOps ready but ready for DevOps

DevOps is a culture that has been exponentially gaining popularity in its application and adoption in many European and American based companies. In spite of its popularity though, much of Asia is slow on its adoption, and Singapore is no different. In spite of this however, as a globalised city, Singapore is uniquely positioned to take advantage of the experience of the matured DevOps markets and spread it throughout the region.

What is DevOps?

Before any company can adopt DevOps, it is important to pinpoint what DevOps is, and just as importantly what it isn’t.

‘DevOps is automation and Infrastructure as Code’. No, it isn’t. It’s not a team either

Having automation doesn’t make an organisation “do” DevOps anymore than having a car makes one a driver. In both examples, the tool is certainly critical, but it’s part of it rather than the whole idea.

DevOps

In addition to the above misconception, one very common misnomer of DevOps is having a “DevOps team”. There is no such thing. There can be a team dedicated to maintenance of the automation tools and the maintenance of the pipeline, but there is no team that is “doing DevOps”. If there exists such a thing within the organisation than they are doing DevOps wrong.

The culture of DevOps

As this subtitle indicates, DevOps is a culture. It is not a tool, it is not a team and it most certainly is not a passing fad. DevOps is the logical extension of the popular Agile methodology.

While the Agile methodology can, and has, fill entire books, for brevity, the key principles are “collaboration, flexibility and adaptability”. DevOps is all about continuous feedback and the dissolution of programming silos (groups) to encourage cooperation and quicker responses. This is carried out through the automation of as many processes as possible.

Credit: Atlassian https://marketplace.atlassian.com/categories/devops

The above infinity figure is very popular when describing DevOps. While the specific details of each section may differ from organisation to organisation, its essence remains the same; DevOps is a concept that loops back onto itself, providing a continuous process.

Developers keen on reducing overhead and improving their processes is one thing, but management must also

Continuous Integration is all about developing a pipeline that integrates the code into the shared repository often and triggering the various automated tests and builds to ensure functionality, i.e. ‘if it breaks, you will know.’ The results of these builds and tests are fed back to the developers, which allows to fix the problem, if any, or move on to other work. This facilitates the quicker feature development and reaction to market changes, which all organisations strive for.

Why DevOps?

As has been established, the DevOps philosophy has many benefits when being adopted. However, how does any of that actually help the organisation?

This is where the unparalleled flexibility and adaptability of DevOps bears fruits. The reduction of development cycle times from months to weeks, even days for the more ambitious organisations, offers an unprecedented ability to react to market forces and competitors. Rather than scrambling around in a bid to mimic what rival companies have made, it becomes possible to become a market leader, pushing new releases and updates within weeks when the market is still fresh.

Even within the organisation, the culture would bear fruit. The smoothening of the development process through automation frees up resources that can be better spent elsewhere, such as actual problems that need addressing instead of facilitating the work of others.

Automated testing allows developers to identify issues with minor code commits immediately, and with no overhead from needing to create test cases or environments. On top of that, this has the side benefit of preventing the compounding of bugs and issues to be discovered on “deployment day”, with entire weekends burnt debugging the now massive code merges.

How Singapore is not DevOps ready but ready for DevOps

Many companies in Singapore still suffer under the misconceptions of what DevOps is and isn’t. Without a strong push from the government or a market disruptor, there is no strong impetus for organisations to innovate or change. “If it ain’t broke, don’t fix it”. This status quo won’t remain as is however; change is the only constant. Eventually, companies will be forced to adapt or be left behind.

That being said, that companies and teams in Singapore are trying to integrate the DevOps culture is a good sign and a step in the right direction. As the regional hub and the gateway of many companies into the region, Singapore can easily lead the region with its established technology foothold and infrastructure.

Bringing newcomers up to speed

Regardless of the organisation, on-boarding of newcomers is a significant drain on resources. From the initial probationary period, to familiarisation with company culture to training in the usage of company tools, each step can be a challenge to succeed. Let us at ECS digital help you do so. The flexibility of our courses can be custom-suited to the tools and frameworks used by your organisation. Not only will students walk away with a clearer understanding of what DevOps is, but they will have a foundation of what it means to your organisation and how the philosophy and tools facilitate this.

Kok Hoong WaiSingapore is not DevOps ready but ready for DevOps
read more
Open source. Are you part of the community?

Open source. Are you part of the community?

Open source is a type of licensing agreement – not very exciting. The exciting bit is that it allows users to create and publish work that can be freely used, modified, integrated into larger projects or derived into new work based on the original by other users.

In an age of trade secrets and profit-driven professions, this is a unique platform that actively promotes a global exchange of innovation. It has been specifically designed to encourage contributions so that the software doesn’t stand still. The collective goal of this barrier-free community is the advancement of creative, scientific and technological tools and applications – which for many is more important than a price tag.

Who uses open source?

Although, it is most commonly used in the software industry, professionals adopt open source licenses in many industries including biotech, fashion, robotics and teaching. This article will focus solely on software applications.

What’s interesting is that more and more businesses are contributing their own source code to the community – Facebook, Airbnb, Cyprus are leading examples. According to a 2018 Tidelift Professional Open Source Survey, 92% of projects amongst European respondents contain open source libraries. Whilst on the surface this contradicts conventional commercial instinct, businesses gain a lot by giving away a little. Whilst the benefits are vast, we are going to focus on five:

  1. Competition:

Since the late 90’s and the advancement of the digital age, competition no longer resides simply between two rival companies. Businesses today also find themselves competing with open source software projects that are free, open to the public and constantly evolving.

Due to the current scale of open source contribution, even the giants in the tech industry are struggling to devote the resources or teams large enough to compete with their community counterparts.

Turning to the open source community enables businesses to outsource resource rich projects to a bottomless sea of innovative capabilities. This potentially reduces cost, pressure and speeds up the feedback loop considerably.

  1. Reputation:

In the same way the Big Bang Theory made traditional science nerds cool, the open source community can boost a business’ profile on the cool/not-cool spectrum.

Not only do businesses become more attractive to potential employees, by initiating an open source software project, or contributing to an existing one, they make their mark on an additional and power channel popular within IT circles. If done well, this has the potential to establish, maintain or improve a brand’s image, as well as attract new business.

  1. Advancement:

Helping to advance something as big as the technology industry isn’t something to turn your nose up at. In fact, businesses revel with the idea of having their name against a leading piece of software that has the potential to make history.

But history moves fast. And building software inhouse can be stifled by other business priorities, resource restrictions and other competitors beating you to the finish line.

Rather than building behind closed doors and waiting until your software it is perfect, opening your source code to the community in its earlier stages has two benefits:

  1. You can plant your flag earlier
  2. You invite an endless list of innovative capability to help advance your idea at a rate unlikely attainable behind closed doors

It also acts as an incentive for individuals to feel part of a project than extends far beyond the business they work for.

  1. Trust:

Fake news, data breaches, shady deals – all of these have encouraged people to lose trust in businesses. Including open source projects in company policy encourages business to be more transparent with its consumers. Whilst it is naive to believe a company will lay down all their cards, companies such as Facebook made 15,682 contributions in 2016. Automattic created WordPress as an open source project and currently powers 31% of the internet, and Netflix frequently open sources the tools they develop in-house.

Not only are they strengthening their brand, sharing is showing the world they have nothing to hide – which is a proven way to start winning back trust.

A great example of building this trust through transparency is the cryptocurrency space where many projects including Bitcoin allow you to browse through the project’s source. A very different approach to their corporate counterparts.

  1. Speed:

Many companies face the same problems. Sometimes companies are kind enough to share the solution. If a problem has been solved before and will provide business value in a fraction of the time and half the man power everybody wins.

Contributing to the community also gives you the capability to ask the projects contributors directly questions, ask for features or raise issues enabling you fast feedback which keeps your project moving

How does open source work? 

Contributors create a project and solve a problem. They realise that other people might benefit from this project to solve their problems. The project is shared on an open platform such as GitHub which can be downloaded and used by other users interested in the project.

If users wish to contribute, they can do this by downloading the project, creating a fork (which is an exact replica of a certain part of the pipeline) and editing the code until they are happy with the changes. Users can then request a pull request which notifies the authors that a suggested change is requested.

It is up to the author to approve the change, before deciding whether they want to include the changes. If they do, this usually becomes part of the next version, which is released at the author’s discretion.

The problem is, this could take some time. The author is under no obligation to release new versions or accept proposed changes. In fact, this is one of the limitations of the open source community. People will only give up as much information as they want to / their projects need. Authors are not there to solve specific problems, and often release software that focuses on their needs rather than trying to create something too generic.

This can be frustrating if an open source project only solves half your problem, however, the community can help bridge knowledge gaps. Users also have the option to download, build and run the project locally in the interim whilst waiting for the official new version – meaning they don’t need to wait for the software to be released with the changes they need.

How it is viable?

Whilst it doesn’t make economic sense on the surface, the community have found a way to make open source viable from a business and individual perspective. Some have capitalised on their projects, making basic versions available at no cost to the user, but adding a price tag to different versions or ‘add-ons’.

Other businesses or individuals actively contributing to the platform have benefited from angel investments, as well as new business after demonstrating successful projects.

It is also often a side project for businesses and individuals. Due to the legal freedom attributed to an open source platform, you’re able to modify the code of the product you’re using endlessly, for free, at no risk of breaching privacy policies or user agreements. This makes it the opportune ‘playground’ for those looking to get into the industry or develop new skills. According to LinkedIn:

“We believe that open sourcing projects makes our engineers better at what they do best. Engineers grow in their craft by having their work shared with the entire community.”

Risks:

With all open platforms, there is a risk of abuse. Open source communities are no different and have certainly experienced their fair share of malicious activity. However, it is the open source approach that significantly increases the reliability of the projects available to the public.

By establishing a community who believe in the future potential of the projects produced, you immediately have a security indicator in place. Many of them in fact. And with so many eyes looking at projects, malicious activity is quick to be spotted and remedied. This is because open source platforms embody an agile mentality, applied in a community wide approach. Rather than make one big change and focus on ensuring it is okay for the next six-months, contributors and authors are interested in making changes quickly, so things get fixed and evolved just as quick.

******

ECS Digital love to find value for our clients and give it back to the wider community, which is why we make tools available on open source platforms such as GitHub and NPM.

We will also be hosting a hands-on session and demonstration of AyeSpy– a visual regression testing tool – at an upcoming DevOps Playground on the 29th of November. Come along to learn more about what the AyeSpy has to offer!

Matt LowryOpen source. Are you part of the community?
read more